Trong Substrate, sự khác biệt giữa `spec_version` và` Authoring_version` là gì?

Nov 12 2020

Mỗi thời gian chạy Substrate có một RuntimeVersion . Các trường trong cấu trúc RuntimeVersion này cho biết khi các khía cạnh khác nhau của thời gian chạy thay đổi và mỗi trường có ngữ nghĩa riêng được mô tả trong các tài liệu đó.

Tôi không chắc điều gì authoring_versioncó nghĩa là và khi nào chính xác nó sẽ thay đổi. Mô tả trong tài liệu không hoàn toàn rõ ràng đối với tôi

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.

Nếu có thể, vui lòng cung cấp các ví dụ về nâng cấp trong đó:

  • cả hai spec_versionauthoring_versionsẽ thay đổi
  • spec_versionsẽ thay đổi, nhưng authoring_versionsẽ không
  • authoring_versionsẽ thay đổi, nhưng spec_versionsẽ không

Trả lời

3 DanForbes Nov 17 2020 at 00:12

Tôi sẽ chia sẻ câu trả lời do nhà phát triển cốt lõi Bastian Köcher cung cấp cho tôi :

Không có nhiều thay đổi dẫn đến authoring_version

Ví dụ: nếu bạn thay đổi BlockBuilderapi thời gian chạy theo cách không tương thích ngược, bạn sẽ cần phải nhấnauthoring_version

Vì trình xác thực sẽ không thể tạo khối mới mà không cập nhật việc triển khai nút

Và nếu bạn chỉ thay đổi api thời gian chạy theo cách làm cho nó không tương thích với trước đó trong khi không thay đổi bất kỳ nội dung bên trong nào trong thời gian chạy sẽ dẫn đến một gốc lưu trữ khác, bạn sẽ chỉ va chạm authoring_version. Tuy nhiên, tôi hy vọng rằng điều này có thể không bao giờ xảy ra trong thực tế