This PR updates the unsolicited message handling logic to allow unsolicited p2p messages to be stored and retried in one of two conditions:
When the next sortition happens
(NEW) When the Stacks tenure changes
This new code path is required to correctly buffer and retry StackerDBPushChunk messages, which can arrive at a Stacks node before the message's identified tenure tip has been processed. With this patch, the node buffers up StackerDBPushChunk messages and retries them when the Stacks tenure changes. Before, they were erroneously retried when the sortition tip changed (meaning, they were likely to be dropped since the new sortition would have arrived before the corresponding tenure-change block).
This improves miner signer reliability in the face of Stacks nodes not all arriving at the same Stacks tip at the same time.
This PR updates the unsolicited message handling logic to allow unsolicited p2p messages to be stored and retried in one of two conditions:
This new code path is required to correctly buffer and retry
StackerDBPushChunk
messages, which can arrive at a Stacks node before the message's identified tenure tip has been processed. With this patch, the node buffers upStackerDBPushChunk
messages and retries them when the Stacks tenure changes. Before, they were erroneously retried when the sortition tip changed (meaning, they were likely to be dropped since the new sortition would have arrived before the corresponding tenure-change block).This improves miner signer reliability in the face of Stacks nodes not all arriving at the same Stacks tip at the same time.
This closes #5116