WebAssembly 在Polkadot 和Substrate 中被用作runtime 的編譯目標。
WebAssembly 是什麼?
WebAssembly 簡稱為Wasm,是一種用於基於堆棧的虛擬機的二進制指令格式。 Wasm 被設計成一個可移植的目標,用於編譯高級語言(如C/ c++ /Rust),支持在web 上部署客戶端和服務器應用程序。
為什麼要使用WebAssembly?
WebAssembly 是一種平台無關的二進制格式,這意味著它可以在它所操作的任何機器上運行相同的指令。區塊鏈需要確定性,以便在點對點網絡中的所有節點上進行可靠的狀態轉換更新,而不強制每個節點運行完全相同的硬件。 Wasm 非常適合用於可能不同的機器集之間的可靠性。 Wasm 既高效又快速。這種效率意味著它可以作為一團代碼上傳到鏈上,而不會造成太多的狀態膨脹,同時保持其以接近本機速度執行的能力。
無分叉升級
通過在Substrate 中使用Wasm,可以支持Polkadot、Kusama 和許多連接鏈,這些鏈可以在不進行硬分叉的情況下升級其runtime 邏輯。硬分叉是升級區塊鏈的標準方法,由於需要離線協調,它很慢、效率低、容易出錯,因此傾向於將多個升級打包到一個大型事件中。通過在鏈上部署Wasm,並讓節點在特定的塊高度自動執行新的邏輯,升級可以是小的、單獨的、非常具體的。
資源
包含規範鏈接的WebAssembly 主頁:https://webassembly.org/用Rust 寫的WebAssembly 解釋器:https://github.com/paritytech/WasmiParity Wasm:Rust 中的WebAssembly 序列化/反序列化。 https://github.com/paritytech/parity-WasmWasm utils:在Parity 和Wasm 合約開發中使用的Wasm 實用程序的集合。 https://github.com/paritytech/Wasm-utils
原文鏈接:
https://wiki.polkadot.network/docs/en/learn-wasm
翻譯:PolkaWorld 社區
直播預告:
每週四,「PolkaWorld 平行鏈系列」視頻直播準時和你見面!
本週四晚7 點,我們邀請到Bifrost 創始人Lurpis 來到直播間,和大家分享Bifrost 成為平行鏈對波卡生態有什麼意義。直播間中將發出? 500 BNC 大額紅包哦!點擊下方關注視頻號預約直播⬇️
歡迎學習Substrate: https://substrate.dev/關注Substrate 進展:https://github.com/paritytech/substrate關注Polkadot 進展:https://github.com/paritytech/polkadot