From 35705b3af2ff28fd21842cb5f356df3101aa73cf Mon Sep 17 00:00:00 2001 From: Kevin Heifner Date: Mon, 15 Jan 2024 15:43:20 -0600 Subject: [PATCH] GH-2045 Removed a warning and renamed hs_irreversible_block_num --- libraries/chain/controller.cpp | 16 ++++++---------- libraries/chain/hotstuff/chain_pacemaker.cpp | 2 +- .../chain/include/eosio/chain/controller.hpp | 2 +- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/libraries/chain/controller.cpp b/libraries/chain/controller.cpp index 1c4d585e62..63dd913629 100644 --- a/libraries/chain/controller.cpp +++ b/libraries/chain/controller.cpp @@ -1013,7 +1013,7 @@ struct controller_impl { std::optional pending; block_data_t block_data; // includes `head` aand `fork_db` std::optional pacemaker; - std::atomic hs_irreversible_block_num{0}; + std::atomic if_irreversible_block_num{0}; resource_limits_manager resource_limits; subjective_billing subjective_bill; authorization_manager authorization; @@ -1196,8 +1196,8 @@ struct controller_impl { ("lib_num", lib_num)("bn", fork_db_root_block_num()) ); } - const uint32_t hs_lib = hs_irreversible_block_num; - const uint32_t new_lib = hs_lib > 0 ? hs_lib : fork_db_head_irreversible_blocknum(); + const uint32_t if_lib = if_irreversible_block_num; + const uint32_t new_lib = if_lib > 0 ? if_lib : fork_db_head_irreversible_blocknum(); if( new_lib <= lib_num ) return; @@ -2482,9 +2482,6 @@ struct controller_impl { { EOS_ASSERT( !pending, block_validate_exception, "pending block already exists" ); - // can change during start_block, so use same value throughout - uint32_t hs_lib = hs_irreversible_block_num.load(); - emit( self.block_start, head_block_num() + 1 ); // at block level, no transaction specific logging is possible @@ -2739,7 +2736,7 @@ struct controller_impl { const auto& if_extension = std::get(*ext); if (if_extension.new_finalizer_policy) { ilog("Transition to instant finality happening after block ${b}", ("b", bsp->block_num())); - hs_irreversible_block_num = bsp->block_num(); + if_irreversible_block_num = bsp->block_num(); log_irreversible(); return true; @@ -4000,10 +3997,10 @@ std::optional controller::pending_producer_block_id()const { return my->pending->_producer_block_id; } -void controller::set_hs_irreversible_block_num(uint32_t block_num) { +void controller::set_if_irreversible_block_num(uint32_t block_num) { // needs to be set by qc_chain at startup and as irreversible changes assert(block_num > 0); - my->hs_irreversible_block_num = block_num; + my->if_irreversible_block_num = block_num; } uint32_t controller::last_irreversible_block_num() const { @@ -4197,7 +4194,6 @@ const producer_authority_schedule& controller::active_producers()const { if( !(my->pending) ) return my->block_data.head_active_schedule_auth(); -#warning todo: support active/pending_producers correctly when in IF mode (see assembled_block and completed_block stages) return my->pending->active_producers(); } diff --git a/libraries/chain/hotstuff/chain_pacemaker.cpp b/libraries/chain/hotstuff/chain_pacemaker.cpp index 2f3a84c41c..ebe34117be 100644 --- a/libraries/chain/hotstuff/chain_pacemaker.cpp +++ b/libraries/chain/hotstuff/chain_pacemaker.cpp @@ -176,7 +176,7 @@ namespace eosio::chain { ilog("Switching to instant finality at block ${b}", ("b", block->block_num())); // switching from dpos to hotstuff, all nodes will switch at same block height // block header extension is set in finish_block to value set by host function set_finalizers - _chain->set_hs_irreversible_block_num(block->block_num()); // can be any value <= dpos lib + _chain->set_if_irreversible_block_num(block->block_num()); // can be any value <= dpos lib } auto if_extension = std::get(*ext); #warning Revisit after finalizer policy change design is complete as this is not necessarily when we will change active finalizer policy. diff --git a/libraries/chain/include/eosio/chain/controller.hpp b/libraries/chain/include/eosio/chain/controller.hpp index cef7c8df25..4b726a3a2d 100644 --- a/libraries/chain/include/eosio/chain/controller.hpp +++ b/libraries/chain/include/eosio/chain/controller.hpp @@ -270,7 +270,7 @@ namespace eosio::chain { // Called by qc_chain to indicate the current irreversible block num // After hotstuff is activated, this should be called on startup by qc_chain - void set_hs_irreversible_block_num(uint32_t block_num); + void set_if_irreversible_block_num(uint32_t block_num); uint32_t last_irreversible_block_num() const; block_id_type last_irreversible_block_id() const;