Each Substrate runtime has a RuntimeVersion. The fields in this RuntimeVersion struct indicate when various aspects of the runtime change and each field has its own semantics described in those docs.
I'm not sure what authoring_version
means and when exactly it should change. The description in the docs is not totally clear to me
authoring_version: u32
authoring_version is the version of the authorship interface.
An authoring node will not attempt to author blocks unless this
is equal to its native runtime.
If possible please provide examples of upgrades where:
spec_version
and authoring_version
would changespec_version
would change, but authoring_version
would notauthoring_version
would change, but spec_version
would notI will share an answer provided to me by Substrate core developer Bastian Köcher:
There aren't that much changes that result in a bump of the
authoring_version
If you for example change the
BlockBuilder
runtime api in a non-backwards compatible way, you will need to bump theauthoring_version
As validators will not be able to build new blocks, without updating the node implementation
And if you just change the runtime api in such a way that you make it incompatible to the previous while don't changing any internals in the runtime that would lead to a different storage root, you would only bump the
authoring_version
. However, I expect that this probably never happens in reality
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With