Substrate에서`spec_version`과`authoring_version`의 차이점은 무엇입니까?

Nov 12 2020

각 Substrate 런타임에는 RuntimeVersion이 있습니다. 이 RuntimeVersion 구조체의 필드는 런타임의 다양한 측면이 변경되고 각 필드에 해당 문서에 설명 된 자체 의미가있는시기를 나타냅니다.

무슨 authoring_version뜻 인지 정확히 언제 바뀌어야 하는지 잘 모르겠습니다 . 문서의 설명이 완전히 명확하지 않습니다.

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.

가능한 경우 다음과 같은 업그레이드의 예를 제공하십시오.

  • 둘 다 spec_version그리고 authoring_version바뀔 것입니다
  • spec_version변경되지만 authoring_version그렇지 않습니다
  • authoring_version변경되지만 spec_version그렇지 않습니다

답변

3 DanForbes Nov 17 2020 at 00:12

Substrate 핵심 개발자 Bastian Köcher가 제공 한 답변을 공유 하겠습니다 .

그다지 큰 변화가 없습니다. authoring_version

예를 들어 BlockBuilder이전 버전과 호환되지 않는 방식으로 런타임 API 를 변경하는 경우authoring_version

검증자는 노드 구현을 업데이트하지 않고는 새로운 블록을 구축 할 수 없습니다.

그리고 다른 저장소 루트로 이어지는 런타임의 내부를 변경하지 않고 이전 버전과 호환되지 않도록 런타임 API를 변경하면 authoring_version. 그러나 나는 이것이 현실에서는 결코 일어나지 않을 것이라고 기대합니다.