I wondered if there might be some way to speed up the initial node synchronization, so I profiled it with perf. I discovered that the cryptonote_protocol_handler
function is reportedly spending 58% of its time in cryptonote::core::handle_incoming_txs
, and only 40% of its time in cryptonote::core::handle_incoming_block
. I'm still new to Monero, but shouldn't a still-synchronizing node be ignoring incoming transactions until it is fully synchronized?
(An explanation of those 58% and 40% numbers: See in the perf report
below the line 43.77% cryptonote::t_cryptonote_protocol_handler
, indicating that monerod
spent 43.77% of its time in that function. Then see the subsequent two lines, 25.47% cryptonote::core::handle_incoming_txs
and 17.65% cryptonote::core::handle_incoming_block
. 24.47 is 58% of 43.77, and 17.65 is 40% of 43.77.)
$ git status