Skip to content

Commit

Permalink
GH-2045 Removed a warning and renamed hs_irreversible_block_num
Browse files Browse the repository at this point in the history
  • Loading branch information
heifner committed Jan 15, 2024
1 parent b5dfdd4 commit 35705b3
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 12 deletions.
16 changes: 6 additions & 10 deletions libraries/chain/controller.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1013,7 +1013,7 @@ struct controller_impl {
std::optional<pending_state> pending;
block_data_t block_data; // includes `head` aand `fork_db`
std::optional<chain_pacemaker> pacemaker;
std::atomic<uint32_t> hs_irreversible_block_num{0};
std::atomic<uint32_t> if_irreversible_block_num{0};
resource_limits_manager resource_limits;
subjective_billing subjective_bill;
authorization_manager authorization;
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -2739,7 +2736,7 @@ struct controller_impl {
const auto& if_extension = std::get<instant_finality_extension>(*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;
Expand Down Expand Up @@ -4000,10 +3997,10 @@ std::optional<block_id_type> 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 {
Expand Down Expand Up @@ -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();
}

Expand Down
2 changes: 1 addition & 1 deletion libraries/chain/hotstuff/chain_pacemaker.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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<instant_finality_extension>(*ext);
#warning Revisit after finalizer policy change design is complete as this is not necessarily when we will change active finalizer policy.
Expand Down
2 changes: 1 addition & 1 deletion libraries/chain/include/eosio/chain/controller.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit 35705b3

Please sign in to comment.