提交 83a02dcf 编写于 作者: B Bart Wyatt

create option for disabling replay opts instead of co-opting the force-all-checks flag

上级 240ed8f5
......@@ -872,7 +872,7 @@ struct controller_impl {
pending.reset();
});
bool skip_db_sessions = !conf.force_all_checks && (s == controller::block_status::irreversible);
bool skip_db_sessions = !conf.disable_replay_opts && (s == controller::block_status::irreversible);
if (!skip_db_sessions) {
EOS_ASSERT( db.revision() == head->block_num, database_exception, "db revision is not on par with head block",
("db.revision()", db.revision())("controller_head_block", head->block_num)("fork_db_head_block", fork_db.head()->block_num) );
......@@ -1655,11 +1655,11 @@ bool controller::skip_auth_check() const {
}
bool controller::skip_db_sessions() const {
return !my->conf.force_all_checks && my->pending && !my->in_trx_requiring_checks && my->pending->_block_status == block_status::irreversible;
return !my->conf.disable_replay_opts && my->pending && !my->in_trx_requiring_checks && my->pending->_block_status == block_status::irreversible;
}
bool controller::skip_trx_checks() const {
return !my->conf.force_all_checks &&my->pending && !my->in_trx_requiring_checks && (my->pending->_block_status == block_status::irreversible || my->pending->_block_status == block_status::validated);
return !my->conf.disable_replay_opts &&my->pending && !my->in_trx_requiring_checks && (my->pending->_block_status == block_status::irreversible || my->pending->_block_status == block_status::validated);
}
bool controller::contracts_console()const {
......
......@@ -57,6 +57,7 @@ namespace eosio { namespace chain {
uint64_t reversible_guard_size = chain::config::default_reversible_guard_size;
bool read_only = false;
bool force_all_checks = false;
bool disable_replay_opts = false;
bool contracts_console = false;
genesis_state genesis;
......@@ -286,6 +287,7 @@ FC_REFLECT( eosio::chain::controller::config,
(reversible_cache_size)
(read_only)
(force_all_checks)
(disable_replay_opts)
(contracts_console)
(genesis)
(wasm_runtime)
......
......@@ -225,6 +225,8 @@ void chain_plugin::set_program_options(options_description& cli, options_descrip
"recovers reversible block database if that database is in a bad state")
("force-all-checks", bpo::bool_switch()->default_value(false),
"do not skip any checks that can be skipped while replaying irreversible blocks")
("disable-replay-opts", bpo::bool_switch()->default_value(false),
"disable optimizations that specifically target replay")
("replay-blockchain", bpo::bool_switch()->default_value(false),
"clear chain state database and replay all blocks")
("hard-replay-blockchain", bpo::bool_switch()->default_value(false),
......@@ -359,6 +361,7 @@ void chain_plugin::plugin_initialize(const variables_map& options) {
my->chain_config->wasm_runtime = *my->wasm_runtime;
my->chain_config->force_all_checks = options.at( "force-all-checks" ).as<bool>();
my->chain_config->disable_replay_opts = options.at( "disable-replay-opts" ).as<bool>();
my->chain_config->contracts_console = options.at( "contracts-console" ).as<bool>();
if( options.count( "extract-genesis-json" ) || options.at( "print-genesis-json" ).as<bool>()) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册