From 2757995cb91dd02ebd6ede693cc6c02c4e359afe Mon Sep 17 00:00:00 2001 From: Determinant Date: Sun, 7 Apr 2019 16:10:23 -0400 Subject: clean up consensus code --- src/hotstuff.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src/hotstuff.cpp') diff --git a/src/hotstuff.cpp b/src/hotstuff.cpp index 4a84927..9b36fa2 100644 --- a/src/hotstuff.cpp +++ b/src/hotstuff.cpp @@ -223,7 +223,8 @@ promise_t HotStuffBase::async_deliver_blk(const uint256_t &blk_hash, /* the parents should be delivered */ for (const auto &phash: blk->get_parent_hashes()) pms.push_back(async_deliver_blk(phash, replica_id)); - pms.push_back(blk->verify(get_config(), vpool)); + if (blk != get_genesis()) + pms.push_back(blk->verify(get_config(), vpool)); promise::all(pms).then([this, blk]() { on_deliver_blk(blk); }); @@ -238,8 +239,7 @@ void HotStuffBase::propose_handler(MsgPropose &&msg, const Net::conn_t &conn) { block_t blk = prop.blk; if (!blk) return; promise::all(std::vector{ - async_deliver_blk(prop.bqc_hash, peer), - async_deliver_blk(blk->get_hash(), peer), + async_deliver_blk(blk->get_hash(), peer) }).then([this, prop = std::move(prop)]() { on_receive_proposal(prop); }); @@ -251,11 +251,10 @@ void HotStuffBase::vote_handler(MsgVote &&msg, const Net::conn_t &conn) { //auto &vote = msg.vote; RcObj v(new Vote(std::move(msg.vote))); promise::all(std::vector{ - async_deliver_blk(v->bqc_hash, peer), async_deliver_blk(v->blk_hash, peer), v->verify(vpool), }).then([this, v=std::move(v)](const promise::values_t values) { - if (!promise::any_cast(values[2])) + if (!promise::any_cast(values[1])) LOG_WARN("invalid vote from %d", v->voter); else on_receive_vote(*v); @@ -415,7 +414,9 @@ void HotStuffBase::do_decide(Finality &&fin) { HotStuffBase::~HotStuffBase() {} -void HotStuffBase::start(std::vector> &&replicas, bool ec_loop) { +void HotStuffBase::start( + std::vector> &&replicas, + bool ec_loop) { for (size_t i = 0; i < replicas.size(); i++) { auto &addr = replicas[i].first; -- cgit v1.2.3