Meaning of different application versions #9602
-
There are 3 references in the documentation to various versions that the application has to specify but some of them seem to have ambiguous naming. For example there are 2 references to Are those References
Info
ConsensusParams
|
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
Hi, Let me first explain the difference between As far as I could track, ADR016 explains the role of In a long-standing chain, with several application upgrades, this version, stored in the block headers, can be used to re-process all blocks from genesis, making sure we always use the right version of the application software to do so. According to the spec, ABCI method Also according to ADR016, if the application updated its logic in a way it may affect the calculation of Finally, note that there is still another place where the app version is stored: I hope this clarifies the different occurrences of application version and their role in Tendermint. |
Beta Was this translation helpful? Give feedback.
Hi,
Let me first explain the difference between
version
andapp_version
inResponseInfo
. According to ADR016, fieldapp_version
is a field proposed by that ADR whereas fieldversion
was a pre-existing string that was left for backwards compatibility.As far as I could track,
version
is a SemVer string field describing the Application's version, used for informational purposes (it is logged by Tendermint upon its handshake with the application).ADR016 explains the role of
app_version
(auint64
), which can be summarized as follows. Given a block of height h,app_version
is used to track which version of the application was used to execute the block h - 1, and thus produce the app hash pres…