Include the specific app version of the proposer in the block that will not be validated #963
Replies: 5 comments 4 replies
-
All the content of a block is verified by any node receiving the block. How can a node that is not in the latest version verify a version number it does not know? |
Beta Was this translation helpful? Give feedback.
-
In my opinion, this can be a user case for vote extensions, shipped with ABCI 2.0. Validators can provide the versions they are running as vote extensions, and the proposer of the next block can use this information in some way at the application level (e.g., adding a transaction with the summary of this information). |
Beta Was this translation helpful? Give feedback.
-
@cason's proposal is the best I can think of. If you're on
You might need to relax the check in Still, @cason's way based on vote extensions is vastly superior, as every block will have version info on (at least) 2/3 of the validators, not just the proposer's version. One final note: none of the alternatives mentioned here deal with non-validating full nodes' versions. |
Beta Was this translation helpful? Give feedback.
-
Building on the previous proposals, here is another (untested) idea:
Some observations:
|
Beta Was this translation helpful? Give feedback.
-
I'm thinking of a place for metadata of the proposer that isn't validated as part of the consensus. Some section in the block in which we could embed more information about the proposer without having other validators verify the contents. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
When performing critical software updates for a running chain, it's important to know how many validators have updated to the latest version. However, since the chain is upgraded without a halt, it's difficult to know which nodes have been updated.
Additionally, validator LCD and RPC endpoints are often disabled for security reasons, making it impossible to ping their node for information. One potential solution is to add the specific version of the app (e.g. v0.15.1) to the block header, which would allow for easy tracking of updated validators.
Are there any other ideas that can be used to address this issue?
Beta Was this translation helpful? Give feedback.
All reactions