Trong Substrate, sự khác biệt giữa `spec_version` và` Authoring_version` là gì?
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_versionvàauthoring_versionsẽ thay đổi spec_versionsẽ thay đổi, nhưngauthoring_versionsẽ khôngauthoring_versionsẽ thay đổi, nhưngspec_versionsẽ không
Trả lời
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_versionVí 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_versionVì 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ế