From e1530709d973c092526977c09cd00574ebba2f9e Mon Sep 17 00:00:00 2001 From: theoreticalbts Date: Thu, 10 Sep 2015 12:08:01 -0400 Subject: [PATCH] witness.cpp: Set skip_undo_history_check when --enable-stale-production is specified --- .../witness/include/graphene/witness/witness.hpp | 1 + libraries/plugins/witness/witness.cpp | 10 +++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/libraries/plugins/witness/include/graphene/witness/witness.hpp b/libraries/plugins/witness/include/graphene/witness/witness.hpp index c82b83d8..df033094 100644 --- a/libraries/plugins/witness/include/graphene/witness/witness.hpp +++ b/libraries/plugins/witness/include/graphene/witness/witness.hpp @@ -75,6 +75,7 @@ private: bool _production_enabled = false; bool _consecutive_production_enabled = false; uint32_t _required_witness_participation = 33 * GRAPHENE_1_PERCENT; + uint32_t _production_skip_flags = graphene::chain::database::skip_nothing; std::map _private_keys; std::set _witnesses; diff --git a/libraries/plugins/witness/witness.cpp b/libraries/plugins/witness/witness.cpp index 24eb0309..db5154ec 100644 --- a/libraries/plugins/witness/witness.cpp +++ b/libraries/plugins/witness/witness.cpp @@ -123,8 +123,12 @@ void witness_plugin::plugin_startup() { ilog("Launching block production for ${n} witnesses.", ("n", _witnesses.size())); app().set_block_production(true); - if( _production_enabled && (d.head_block_num() == 0) ) - new_chain_banner(d); + if( _production_enabled ) + { + if( d.head_block_num() == 0 ) + new_chain_banner(d); + _production_skip_flags |= graphene::chain::database::skip_undo_history_check; + } schedule_production_loop(); } else elog("No witnesses configured! Please add witness IDs and private keys to configuration."); @@ -278,7 +282,7 @@ block_production_condition::block_production_condition_enum witness_plugin::mayb scheduled_time, scheduled_witness, private_key_itr->second, - graphene::chain::database::skip_nothing + _production_skip_flags ); capture("n", block.block_num())("t", block.timestamp)("c", now); p2p_node().broadcast(net::block_message(block));