aboutsummaryrefslogtreecommitdiff
path: root/src/cryptonote_core
diff options
context:
space:
mode:
authorRiccardo Spagni <ric@spagni.net>2017-03-19 23:03:18 +0200
committerRiccardo Spagni <ric@spagni.net>2017-03-19 23:03:18 +0200
commit73e8510717fbf30935ed2a55276e9c7af8f4b43c (patch)
tree537e260302cdeb0baf2f9ce8ba13d05bb76a1f0b /src/cryptonote_core
parentMerge pull request #1895 (diff)
parentcore: call {prepare|cleanup}_handle_incoming_blocks when adding a mined block (diff)
downloadmonero-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/cryptonote_core')
-rw-r--r--src/cryptonote_core/cryptonote_core.cpp17
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();