diff --git a/libraries/app/application.cpp b/libraries/app/application.cpp index 62cec1c4..6cfcac80 100644 --- a/libraries/app/application.cpp +++ b/libraries/app/application.cpp @@ -621,7 +621,12 @@ namespace detail { // returns a vector where the first element is the common ancestor with the preferred chain, // and the last element is the reference point you passed in assert(fork_history.size() >= 2); - assert(fork_history.back() == reference_point); + if( fork_history.back() != reference_point ) + { + edump( (fork_history)(reference_point) ); + assert(fork_history.back() == reference_point); + } + block_id_type last_non_fork_block = fork_history.front(); fork_history.erase(fork_history.begin()); // remove the common ancestor diff --git a/libraries/chain/db_block.cpp b/libraries/chain/db_block.cpp index 518fccd0..4712cb38 100644 --- a/libraries/chain/db_block.cpp +++ b/libraries/chain/db_block.cpp @@ -79,7 +79,14 @@ const signed_transaction& database::get_recent_transaction(const transaction_id_ std::vector database::get_block_ids_on_fork(block_id_type head_of_fork) const { pair branches = _fork_db.fetch_branch_from(head_block_id(), head_of_fork); - assert(branches.first.back()->previous_id() == branches.second.back()->previous_id()); + if( !((branches.first.back()->previous_id() == branches.second.back()->previous_id())) ) + { + edump( (head_of_fork) + (head_block_id()) + (branches.first.size()) + (branches.second.size()) ); + assert(branches.first.back()->previous_id() == branches.second.back()->previous_id()); + } std::vector result; for (const item_ptr& fork_block : branches.second) result.emplace_back(fork_block->id); diff --git a/libraries/plugins/witness/witness.cpp b/libraries/plugins/witness/witness.cpp index db5154ec..8e3e9baf 100644 --- a/libraries/plugins/witness/witness.cpp +++ b/libraries/plugins/witness/witness.cpp @@ -285,7 +285,7 @@ block_production_condition::block_production_condition_enum witness_plugin::mayb _production_skip_flags ); capture("n", block.block_num())("t", block.timestamp)("c", now); - p2p_node().broadcast(net::block_message(block)); + fc::async( [this,block](){ p2p_node().broadcast(net::block_message(block)); } ); return block_production_condition::produced; }