From 346f688916d87ff856a81e9cf3f3e69245101475 Mon Sep 17 00:00:00 2001 From: Determinant Date: Fri, 5 Jul 2019 18:25:43 -0400 Subject: WIP: pacemaker clean up --- src/consensus.cpp | 6 ++++-- src/hotstuff.cpp | 4 ++++ src/hotstuff_app.cpp | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/consensus.cpp b/src/consensus.cpp index 5dadbe0..70c1876 100644 --- a/src/consensus.cpp +++ b/src/consensus.cpp @@ -142,6 +142,7 @@ void HotStuffCore::update(const block_t &nblk) { { const block_t &blk = *it; blk->decision = 1; + do_consensus(blk); LOG_PROTO("commit %s", std::string(*blk).c_str()); for (size_t i = 0; i < blk->cmds.size(); i++) do_decide(Finality(id, 1, i, blk->height, @@ -150,7 +151,7 @@ void HotStuffCore::update(const block_t &nblk) { b_exec = blk; } -void HotStuffCore::on_propose(const std::vector &cmds, +block_t HotStuffCore::on_propose(const std::vector &cmds, const std::vector &parents, bytearray_t &&extra) { if (parents.empty()) @@ -189,6 +190,7 @@ void HotStuffCore::on_propose(const std::vector &cmds, on_propose_(prop); /* boradcast to other replicas */ do_broadcast_proposal(prop); + return bnew; } void HotStuffCore::on_receive_proposal(const Proposal &prop) { @@ -249,8 +251,8 @@ void HotStuffCore::on_receive_vote(const Vote &vote) { if (qsize + 1 == config.nmajority) { qc->compute(); - on_qc_finish(blk); update_hqc(blk, qc); + on_qc_finish(blk); } } /*** end HotStuff protocol logic ***/ diff --git a/src/hotstuff.cpp b/src/hotstuff.cpp index 12a44dc..22f0d82 100644 --- a/src/hotstuff.cpp +++ b/src/hotstuff.cpp @@ -374,6 +374,10 @@ void HotStuffBase::do_vote(ReplicaID last_proposer, const Vote &vote) { }); } +void HotStuffBase::do_consensus(const block_t &blk) { + pmaker->on_consensus(blk); +} + void HotStuffBase::do_decide(Finality &&fin) { part_decided++; state_machine_execute(fin); diff --git a/src/hotstuff_app.cpp b/src/hotstuff_app.cpp index 7aa9e1d..778c195 100644 --- a/src/hotstuff_app.cpp +++ b/src/hotstuff_app.cpp @@ -377,7 +377,7 @@ void HotStuffApp::start(const std::vector