Add vote relay messages and the vote_relay node capability (#5256) * Consolidate and document node capability flags The handshake capabilities are not in a release yet, so the flags are renumbered without a gap: bit 0 is reserved, no_ledger takes bit 1, topo_index bit 2 and the new vote_relay bit 3. The unused vote_storage placeholder is gone. Channels answer has_capability for a single flag. * Add vote_relay_req and vote_relay_ack messages A vote_relay_req asks a peer advertising the vote_relay capability for the votes it knows on up to 255 (block hash, root) pairs, from up to 255 named representatives or from any, and either final votes only or any vote, a choice nano::vote_finality names and vote::satisfies checks a vote against. The peer answers under the request id with vote_relay_acks of up to 64 votes each. An ack flagged completed, or one without votes, ends the answer, and an ack flagged refused tells the requester the peer did not take the request. vote_relay_ack::batch_votes splits votes into the acks they fit by count and payload size. Both messages store their payload length in the header extensions and ignore trailing bytes, like telemetry and the asc_pull messages, so newer versions can append fields. Realtime connections accept them; no component handles them yet, so they are counted as dropped by type.
__________
Type: commit
Hash: df6f91a981baf52104bc90778ccb768d9862353d
Created: today
__________
gr0v1ty/nano-node:df6f91a981baf52104bc90778ccb768d9862353d
| Test Case | Status | Duration | Median Deviation | Log | Graph |
|---|---|---|---|---|---|
| 5n4pr_conf_10k_bintree | PASS | 108 s | -5.5 s | GitHub job logs | Show |
| 5n4pr_conf_10k_change | PASS | 128 s | -16.5 s | GitHub job logs | Show |
| 5n4pr_conf_change_dependant | PASS | 117 s | 2.0 s | GitHub job logs | - |
| 5n4pr_conf_change_independant | PASS | 109 s | -2.5 s | GitHub job logs | - |
| 5n4pr_conf_send_dependant | PASS | 116 s | 0.5 s | GitHub job logs | - |
| 5n4pr_conf_send_independant | PASS | 112 s | 0.0 s | GitHub job logs | - |
| 5n4pr_rocks_10k_bintree | PASS | 111 s | -1.5 s | GitHub job logs | - |
| 5n4pr_rocks_10k_change | PASS | 160 s | -0.5 s | GitHub job logs | - |