diff options
author | Riccardo Spagni <ric@spagni.net> | 2017-03-19 23:03:18 +0200 |
---|---|---|
committer | Riccardo Spagni <ric@spagni.net> | 2017-03-19 23:03:18 +0200 |
commit | 73e8510717fbf30935ed2a55276e9c7af8f4b43c (patch) | |
tree | 537e260302cdeb0baf2f9ce8ba13d05bb76a1f0b /src | |
parent | Merge pull request #1895 (diff) | |
parent | core: call {prepare|cleanup}_handle_incoming_blocks when adding a mined block (diff) | |
download | monero-73e8510717fbf30935ed2a55276e9c7af8f4b43c.tar.xz |
Merge pull request #1896
a6f1d8fc core: call {prepare|cleanup}_handle_incoming_blocks when adding a mined block (moneromooo-monero)
Diffstat (limited to 'src')
-rw-r--r-- | src/cryptonote_core/cryptonote_core.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/cryptonote_core/cryptonote_core.cpp b/src/cryptonote_core/cryptonote_core.cpp index d53cacd8e..1b20776a5 100644 --- a/src/cryptonote_core/cryptonote_core.cpp +++ b/src/cryptonote_core/cryptonote_core.cpp @@ -887,11 +887,28 @@ namespace cryptonote m_miner.resume(); } //----------------------------------------------------------------------------------------------- + block_complete_entry get_block_complete_entry(block& b, tx_memory_pool &pool) + { + block_complete_entry bce; + bce.block = cryptonote::block_to_blob(b); + for (const auto &tx_hash: b.tx_hashes) + { + cryptonote::transaction tx; + CHECK_AND_ASSERT_THROW_MES(pool.get_transaction(tx_hash, tx), "Transaction not found in pool"); + bce.txs.push_back(cryptonote::tx_to_blob(tx)); + } + return bce; + } + //----------------------------------------------------------------------------------------------- bool core::handle_block_found(block& b) { block_verification_context bvc = boost::value_initialized<block_verification_context>(); m_miner.pause(); + std::list<block_complete_entry> blocks; + blocks.push_back(get_block_complete_entry(b, m_mempool)); + prepare_handle_incoming_blocks(blocks); m_blockchain_storage.add_new_block(b, bvc); + cleanup_handle_incoming_blocks(true); //anyway - update miner template update_miner_block_template(); m_miner.resume(); |