当前位置:   article > 正文

区块链、硬件与面向服务的架构,WASM 即将迎来大爆发?

wasm

区块链、硬件与面向服务的架构,WASM 即将迎来大爆发?

在上一篇文章中我们探讨了WASM在服务端的巨大潜力。这篇文章将从技术角度出发,以将 Rust 程序、C 程序编译成 WASM 的实例来深入解读 WebAssembly(Wasm),并探讨了 WASM 在区块链、硬件以及面向服务的架构(SOA)的实现。

本文作者: Second State 的研究员、开源核心开发 Tim McCallum

以下为正文:

本文不仅仅是对 Wasm 的技术探讨,还在更广义的范围内讨论 了Wasm 未来的潜力。

技术示例1:把一个简单的 Rust 程序编译成Wasm,并部署到一个独立的 Wasm 虚拟机(称为WAVM)上。

技术示例2:编写一个 C 程序,然后将其编译为 Wasm 并部署在 x86_64 硬件(macOS Catalina)上。在这个示例中,我们将使用 Fastly 的本地 WebAssembly 编译器和称为 Lucet 的运行时来执行。

本文还将讨论:

  • Wasm在区块链(全球去中心化计算)中的应用实现
  • 硬件实现(可移植binary )
  • 面向服务的架构(SOA) 实现

什么是 Wasm?

WASM 是一种接近机器的、独立于平台的、低级的、类似于汇编的语言(Reiser and Bläser,2017)。 Wasm 让 Web 有了安全、快速、可移植的低级代码(Rossberg等,2018)。

Wasm 计算模型基于堆栈机器(译者注:一种计算模型),指令通过隐式的操作数栈控制值,使用(出栈)参数值并产生或返回(入栈)结果值(webassembly.github.io,2019)。

Wasm 得到了极大的发展

下图是过去几年“ WebAssembly”学术论文的数量。


可以看出, 与“ WebAssembly” 相关的学术论文急剧增加,同时包含关键词“ WebAssembly”和“ Blockchain”两个词的论文数量也呈上升趋势。

本文将分别讨论浏览器内 Wasm 的实现和区块链中的 Wasm 实现。

浏览器内 Wasm 实现

WASM 的设计实现了渐进式 Web 开发(Webassembly.org,2019)。 Wasm 在浏览器中有许多让人眼前一亮的实现。

案例之一:在线 Wasm 迷宫游戏。

在编译后,这个网页版游戏的大小不超过2048字节!


浏览器内 Wasm 实现的案例之二:同样抓人眼球的 wasm-flate 的压缩/解压缩软件。

Wasm-flate 是当前浏览器中速度最快的压缩和解压软件。这种浏览器内的 Wasm 执行使 Web 开发者有机会将强大的新功能无缝集成到其 Web 应用程序中。这样的 Wasm 开发意味着最终用户不需要安装第三方系统级应用,也无需在第三方系统级应用之间切换。

浏览器中的像 Wasm-flate 这样的 Wasm 应用程序能否最终取代传统的系统级竞品应用程序,如WinZip?

Wasm 在区块链中的实现

比特币和以太坊使用基于堆栈的架构,该架构与 WebAssembly 基于堆栈的架构相似。

当然,每个独特的基于堆栈的虚拟机都有一些差异。例如,在 Wasm 中找不到类似大家熟知的堆栈项目重复操作的功能,例如比特币的 OP_DUP 操作码和以太坊的 DUP1 至 DUP16 操作码。


以太坊黄皮书中的复制操作。

幸好,Wasm 为每个 Wasm 函数提供了固定数量的局部变量。这些变量将信息存储在该特定函数本地的单个索引空间内。更值得关注的是,还有其他方法可以模拟特定堆栈行为。

另一个重要的差异是每次操作可入栈的项目数量。仔细查看以太坊黄皮书(上图),能够注意到两列标记为 δ 和 α 的列。

标记为 δ 的列表示要从堆栈中删除的项目数。标记为 α 的下一列代表要放置在堆栈上的其它项目的数量。以太坊虚拟机(EVM)上的每个操作都可以将许多项目入栈。在上面的示例中,DUP16 能够将17个项目入栈。

但是,在当前版本的 Wasm 中,一条指令只能将一个结果值入栈(webassembly.github.io,2019)。

还有许多像这样的细微差别。

毫无疑问,构建能将任何高级区块链智能合约源代码转换为可执行的 Wasm 式代码的编译器,这样的工作非常复杂且繁重。

但 Second State 的开发者最近构建了一个名为SOLL 的编译器(点击此处有视频demo),这是第一个允许在 Ewasm 测试网上进行以太坊 Solidity 智能合约的编译、部署、交互的编译器。

诸如此类的开拓性工作,标志着去中心化网络中数字价值和数据的交换,以及设备之间基于规则的交互开始了。将基于浏览器的设备编织到已经去中心化的区块链架构中,可以使无需许可、抗审查

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/819514
推荐阅读
相关标签
  

闽ICP备14008679号