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 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 | - | - |