자체 업그레이드 및 상태 마이그레이션
Three examples on how to handle updates and state migration:
- State Migration: How to implement a
migrate
method to migrate state between contract updates. - State Versioning: How to use readily use versioning on a state, to simplify updating it later.
- Self Update: How to implement a contract that can update itself.
상태 마이그레이션
The State Migration example shows how to handle state-breaking changes between contract updates.
이는 두 가지 컨트랙트로 구성됩니다.
- Base: A Guest Book where people can write messages.
- 업데이트: 매개변수를 제거하고 내부 구조를 변경하는 업데이트 입니다.
- 🦀 Rust
Loading...
마이그레이션 메서드
마이그레이션 메서드는 현재 상태(OldState
)를 역직렬화하고 메시지를 반복하여, payment
필드를 포함하는 새 PostedMessage
메시지로 업데이트합니다.
Notice that migrate is actually an initialization method that ignores the existing state ([#init(ignore_state)]
), thus being able to execute and rewrite the state.
상태 버전 관리
The State Versioning example shows how to use Enums to implement state versioning on a contract.
Versioning simplifies updating the contract since you only need to add a new version of the structure. 모든 버전이 공존할 수 있으므로, 기존 구조를 변경할 필요가 없습니다.
이는 두 컨트랙트로 구성됩니다.
- 기본: 버전 관리된
PostedMessages
(PostedMessagesV1
)를 사용하는 방명록 컨트랙트 - 업데이트: 새로운 버전의
PostedMessages
(PostedMessagesV2
)를 추가하는 업데이트
- 🦀 Rust
Loading...
Self Update
The Self Update example shows how to implement a contract that can update itself.
It is composed by 2 contracts:
- Base: A Guest Book were people can write messages, implementing a
update_contract
method. - 업데이트: 매개변수를 제거하고 내부 구조를 변경하는 업데이트입니다.
- 🦀 Rust
Loading...