blockchain: add --reorg-notify
This will trigger if a reorg is seen. This may be used to do things like stop automated withdrawals on large reorgs. %s is replaced by the height at the split point %h is replaced by the height of the new chain %n is replaced by the number of new blocks after the reorg
This commit is contained in:
@@ -185,6 +185,13 @@ namespace cryptonote
|
||||
, "Prune blockchain"
|
||||
, false
|
||||
};
|
||||
static const command_line::arg_descriptor<std::string> arg_reorg_notify = {
|
||||
"reorg-notify"
|
||||
, "Run a program for each reorg, '%s' will be replaced by the split height, "
|
||||
"'%h' will be replaced by the new blockchain height, and '%n' will be "
|
||||
"replaced by the number of new blocks in the new chain"
|
||||
, ""
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------------------------
|
||||
core::core(i_cryptonote_protocol* pprotocol):
|
||||
@@ -300,6 +307,7 @@ namespace cryptonote
|
||||
command_line::add_arg(desc, arg_pad_transactions);
|
||||
command_line::add_arg(desc, arg_block_notify);
|
||||
command_line::add_arg(desc, arg_prune_blockchain);
|
||||
command_line::add_arg(desc, arg_reorg_notify);
|
||||
|
||||
miner::init_options(desc);
|
||||
BlockchainDB::init_options(desc);
|
||||
@@ -582,6 +590,16 @@ namespace cryptonote
|
||||
MERROR("Failed to parse block notify spec");
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
if (!command_line::is_arg_defaulted(vm, arg_reorg_notify))
|
||||
m_blockchain_storage.set_reorg_notify(std::shared_ptr<tools::Notify>(new tools::Notify(command_line::get_arg(vm, arg_reorg_notify).c_str())));
|
||||
}
|
||||
catch (const std::exception &e)
|
||||
{
|
||||
MERROR("Failed to parse reorg notify spec");
|
||||
}
|
||||
|
||||
const std::pair<uint8_t, uint64_t> regtest_hard_forks[3] = {std::make_pair(1, 0), std::make_pair(Blockchain::get_hard_fork_heights(MAINNET).back().version, 1), std::make_pair(0, 0)};
|
||||
const cryptonote::test_options regtest_test_options = {
|
||||
regtest_hard_forks
|
||||
|
||||
Reference in New Issue
Block a user