【Substrate】포크리스 체인 업그레이드 방법

굉장한 포크리스 업그레이드



Substrate의 블록체인의 특징 중 하나는 포크리스, 실시간 체인 업그레이드군요. 매우 편리하다고 생각했으므로 여러분에게 공유합니다.
장점, 단점, 방법, 해설의 순서로 설명해 갑니다.

장점:



・Cargo build를 하지 않아도 되므로 구현이 빠르다!
・체인을 purge 하지 않기 때문에 기존 노드나 상태가 유지된다!

단점:



· 네이티브에 비해 인터프리터이므로 처리가 느립니다.

방법 (wasm과 cargo로 빌드 된 전제. 아직 사람은 여기)



1) 항상 그렇듯이 노드를 움직입니다.

bash1
$ ./runtime/release/<project name> --dev

2) 별도 터미널 열고 Wasm 빌드 실행

bash2
$ ./build

그러면 다음 경로에 compact.wasm 파일이 생성됩니다../runtime/wasm/target/wasm32-unknown-unknown/release/node_template_runtime_wasm.compact.wasm
3) Polkadot UI Extrinsics에서 Alice를 선택한 후 (Sudo는 admin 인 Alice 만 호출 할 수 있음), 이전 compact.wasm 파일을 입력하여 Submit. Sudid 이벤트가 표시되면 성공입니다!
sudo > sudo(proposal)
proposal: Proposal (extrinsic): consensus > setCode(new)



페이지를 업데이트하면 추가한 기능이 반영됩니다.
런타임 업그레이드 전의 스토리지 상태(밸런스, 계정 등)도 그대로 남아 있는 것을 확인할 수 있습니다.

무슨 일이 일어나고 있는지



지금 움직이고 있는 블록체인은 Substrate가 제공하는 Wasm 인터프리터를 통해 런타임을 움직이고 있습니다. 이를 통해 새로운 기능 등을 기존 노드나 상태를 손상시키지 않고 쉽게 구현할 수 있습니다.

이 런타임은 블록체인에 있으므로 체인에서 움직이는 모든 노드가 실시간으로 동기화됩니다. 위에서도 말했듯이, Wasm 인터프리터는 네이티브 바이너리에 비해 처리가 느리므로 필요에 따라 cargo build --release 와 구별합시다.

Source: Shawn Tabrizi

좋은 웹페이지 즐겨찾기