stacks-core
stacks-core copied to clipboard
[Nakamoto] Block anti-entropy state machine
Specific to the current (and possibly last N) tenures, the node must constantly make sure it has the latest blocks. It does so by executing a separate anti-entropy state machine for (1) determining what the current chain tip is, and (2) fetching the missing blocks from nodes that have a later chain tip than itself. It can perform (1) by piggy-backing the chain tip within a dedicated HTTP header, and in doing so, learn it in-band with any other HTTP-oriented protocol. It would run (2) constantly -- i.e. once per block time if need be.
- Ensure Nakamoto nodes stay in sync
- Nodes need to reach the chain tip within 1 round of block production, this is to ensure that the follow-up miner can keep pace with the current miner
- Consensus logic for dealing with flash blocks and failure to store an aggregate public key