波卡为什么使用 WebAssembly | Polkadot Wiki
加入 PolkaWorld 社区,共建 Web 3.0!
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/Wasmi
Parity Wasm:Rust 中的 WebAssembly 序列化/反序列化。https://github.com/paritytech/parity-Wasm
Wasm 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
更多内容:
波卡周报 | 下周重启 Rococo,预计接入 20 条平行链进行测试
Gavin Wood 的故事:低调的区块链先驱和真正的创造者
扫码关注公众号,回复 “1” 加入波卡群
关注 PolkaWorld
发现 Web 3.0 时代新机遇
点个 “在看” 再走吧!