diff --git a/libraries/chain/controller.cpp b/libraries/chain/controller.cpp index 167a5875b6..11a38855b4 100644 --- a/libraries/chain/controller.cpp +++ b/libraries/chain/controller.cpp @@ -3524,6 +3524,9 @@ void controller::set_disable_replay_opts( bool v ) { uint32_t controller::head_block_num()const { return my->head->block_num(); } +block_timestamp_type controller::head_block_timestamp()const { + return my->head->header.timestamp; +} time_point controller::head_block_time()const { return my->head->header.timestamp; } diff --git a/libraries/chain/include/eosio/chain/controller.hpp b/libraries/chain/include/eosio/chain/controller.hpp index 09c3679db8..8c4bfebac7 100644 --- a/libraries/chain/include/eosio/chain/controller.hpp +++ b/libraries/chain/include/eosio/chain/controller.hpp @@ -230,6 +230,7 @@ namespace eosio::chain { uint32_t head_block_num()const; time_point head_block_time()const; + block_timestamp_type head_block_timestamp()const; block_id_type head_block_id()const; account_name head_block_producer()const; const block_header& head_block_header()const; diff --git a/plugins/producer_plugin/producer_plugin.cpp b/plugins/producer_plugin/producer_plugin.cpp index 234c3e09f8..d64884a2a4 100644 --- a/plugins/producer_plugin/producer_plugin.cpp +++ b/plugins/producer_plugin/producer_plugin.cpp @@ -734,9 +734,8 @@ class producer_plugin_impl : public std::enable_shared_from_thistimestamp.next().to_time_point() >= now) { + if (chain.head_block_timestamp().next().to_time_point() >= now) { _production_enabled = true; } @@ -748,7 +747,8 @@ class producer_plugin_impl : public std::enable_shared_from_thistimestamp).count() / 1000)); const auto& hb_id = chain.head_block_id(); - if (chain.get_read_mode() != db_read_mode::IRREVERSIBLE && hb_id != id && hb != nullptr) { // not applied to head + const auto& hb = chain.head_block(); + if (chain.get_read_mode() != db_read_mode::IRREVERSIBLE && hb && hb_id != id && hb != nullptr) { // not applied to head ilog("Block not applied to head ${id}... #${n} @ ${t} signed by ${p} " "[trxs: ${count}, lib: ${lib}, net: ${net}, cpu: ${cpu}, elapsed: ${elapsed}, time: ${time}, latency: ${latency} ms]", ("p", hb->producer)("id", hb_id.str().substr(8, 16))("n", hb->block_num())("t", hb->timestamp)