Test Details Overview

Extract election broadcast pacing into election_pacing

Election kept its outbound pacing as loose timestamp fields (last_vote,
last_block, last_block_hash, last_req) with the decision logic buried in
private methods reading the clock directly, making it untestable in
isolation.

election_pacing is a pure value object owned by the election: time is
injected, no locking or stats, and it consolidates the timing policy in
one place, including the behavior-dependent confirmation request
interval. Covered by unit tests that need no node or system.

This also fixes the broadcast_block_initial stat, which was checked
after the hash was recorded and therefore always counted as repeat, and
makes the first vote/request due immediately instead of depending on
time since the steady clock epoch.

__________

Type: commit

Hash: ea446afcf80b9f45f25948852f024b9778133300

Created: yesterday

__________

gr0v1ty/nano-node:ea446afcf80b9f45f25948852f024b9778133300

Test Results

Test Case Status Duration Median Deviation Log Graph
5n4pr_conf_10k_bintree PASS 112 s -2.5 s - Show
5n4pr_conf_10k_change PASS 139 s -13.0 s - Show
5n4pr_conf_change_dependant PASS 149 s 34.0 s - -
5n4pr_conf_change_independant PASS 119 s 4.0 s - -
5n4pr_conf_send_dependant PASS 112 s -5.0 s - -
5n4pr_conf_send_independant PASS 124 s 10.0 s - -
5n4pr_rocks_10k_bintree PASS 123 s 0.0 s - -
5n4pr_rocks_10k_change PASS 159 s -7.0 s - -