Incentives: Heartbeat to keep an unlucky node online #5799
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This build on top of #5757 . In that PR, it became possible for the network to "suspend" accounts that have not proposed a block in a "long" time (with respect to how often they should have proposed). The assumption is that these accounts have crashed or decided to stop running their node without issuing a
keyreg
transaction to officially go offline.However, they might have just been unlucky. This PR introduces a new opcode
heartbeat
which allows a node to show it is still operating and avoid suspension. The opcode requires a message signed by the participation key of the node that wants to show it is working. Using the partkey allows the node operator to issue the heartbeat without using the spending key (which may be in cold storage, or require using a ledger, etc).There's a lot left to do in this PR. The main thing is to get
algod
to issue these heartbeats automatically if the node notices that it has been unlucky and could be suspended soon.