“波卡知识图谱”是我们针对波卡从零到一的入门级文章,我们尝试从波卡最基础的部分讲起,为大家提供全方位了解波卡的内容,当然这是一项巨大的工程,也充满了挑战,然而我们希望通过这样的努力让大家能够正确认知波卡,也让不了解波卡的人方便快速掌握波卡相关知识,今天是该栏目的第30期,了解一种便捷、安全的开发者工具WebAssembly。
此前,关于使用Wasm进行区块链开发的话题,就引起了广泛的讨论。
EVM是区块链常用的虚拟机,也是以太坊的智能合约运行环境,虽然EVM的出现能使得开发人员更便捷的部署智能合约,但其也有很多局限性。
为了解决这些局限性,一些新兴的公链开始使用WebAssembly技术,那么这个WebAssembly是什么呢?
什么是WebAssembly?
WebAssembly,简称Wasm。官方的定义是:一个可移植、体积小、加载快并且兼容Web的全新格式。
准确来说,Wasm是一种为基于堆栈的虚拟机设计的二进制指令格式。Wasm被设计为用类似C/C/Rust等高级语言的平台目标,从而可以在Web上部署客户端和服务器应用程序。
Wasm是由万维网联盟创建和定义的,最早是为Web而推进的标准,还得到了谷歌、微软、苹果和Mozilla等厂商的支持。最初Wasm的设计目的是为了解决JavaScript的性能问题。
WebAssembly有什么特点?
WebAssembly作为一个编译目标而不是手写的几行代码,它能将C、C、Java等编程语言编译为机器码,这个过程中省略了转换器。因此,Wasm有着快速高效、内存安全等特点,并且十分开放获得了许多开发者的喜爱。
高效:Wasm有着一套完整的语义,它的二进制格式加载速度快并且能在很大程度上减小代码包的体积,最终凭借硬件能力以达到原生执行效率。
安全性:Wasm是运行在一个沙箱化的执行环境中,甚至可以和当前的Java虚拟机共享一套环境。通过严格遵守主机浏览器的权限策略和保持向后兼容性来实现Web环境中的安全性。
开放:首先Wasm具备人类可读的文本格式,这种非常规整的文本格式可以用来测试、实验、调试、学习、优化以及编写,并且Wasm的开放标准不受任何一家厂商控制。
分叉作为升级区块链的标准方法,由于需要离线协调的级别,所以这种升级速度缓慢、效率低下且容易出错,因此,它倾向于将许多升级捆绑到一个大规模事件中。
而将Wasm使用在基于Substrate框架的波卡或Kusama中,这些链能够升级其Runtime逻辑而无需硬分叉。通过在链上部署Wasm,并让节点在特定的块高度自动执行新逻辑,升级可以是小型的、孤立的、非常具体的。
Polkadot生态研究院的电报:https://t.me/polkadot_eri
欢迎大家访问波卡生态研究院的Mirror地址:https://mirror.xyz/0x9A259b3a2316281Cc948cE2Cf1Ac610a79844f05
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。