文章目录

  • 一、什么是Wasm、WASI
  • 二、WebAssembly(WASM) 和云原生
    • WebAssembly 能不能取代 Docker
  • 三、Wasm container 与 Kubernetes
  • 四、云原生、WASM和边缘计算
    • 为边缘优化的 WebAssembly 虚拟机: wasmedge
  • 五、wasm和区块链
    • Wasm对于EVM有什么优势?
    • 虚拟机之战:WASM 与 EVM

一、什么是Wasm、WASI

Wasm,即WebAssembly,是一种用来补充JS在运行上不足的“低级”语言——基于二进制编写。其目标之一正是达到在网页上如同运行机器语言一样快速高效。其开发团队分别来自Mozilla、Google、Microsoft、Apple。

Wasm允许用户采用自己熟悉的语言书写(目前支持C/C++/Rust),再在虚拟机引擎在浏览器上运行。它支持沙盒模式,即先用高级语言编写wasm模块,再在JS中以库函数加载。

WebAssembly,我们都知道,是一种新的字节码格式,目前被应用于 web 中,由于其可移植、体积小,安全性的等优点被渐渐广泛认可,但是其主要是运行在浏览器中。

一些天才们,想让 WebAssembly 也可以运行在非浏览器环境中,这就产生了 WASI。

WASI是一个新的API体系, 由Wasmtime项目设计, 目的是为WASM设计一套引擎无关(engine-indepent),
面向非Web系统(non-Web system-oriented)的API标准.

二、WebAssembly(WASM) 和云原生

说到 WebAssembly 最初与 Docker、云原生产生关联,就不得不提 Docker 联合创始人 Solomon Hykes 在 2019 年 3 月份发布的一条推文。他在推文中表示:如果 WASM(WebAssembly)和 WASI(WebAssembly System Interface, WASM 系统接口)在 2008 年就已经存在,那就没有必要创建 Docker 了。

在这条动态里,他说如果 Wasm + WASI 在 2008年就存在了,就没有必要创建 Docker了,Wasm 是云计算的未来。

很多人只看到了这一句话,没有看到他后面补发的内容,他说 WebAssembly 不会取代 Docker,Docker 与 WebAssembly 会肩并肩运行。

随着Wasm的发展,WebAssembly system interface(简称Wasi)出现了。WASI代表WebAssembly系统接口。这是由Wasmtime项目设计的API,可提供对几种类似操作系统的功能的访问,包括文件和文件系统,Berkeley套接字,时钟和随机数。

此时Wasm的沙箱机制带来的隔离性和安全性,都比Docker做的更好。

Wasm已经成为了云原生项目的扩展利器,并且非常有可能成为云原生工作负载的最佳运行时。

WebAssembly已经成为2021年增长最快的云原生趋势之一。

WebAssembly 能不能取代 Docker

Docker 联合创始人 Solomon Hykes 推特说,如果 Wasm + WASI 在 2008年就存在了,就没有必要创建 Docker了,Wasm 是云计算的未来。
很多人只看到了这一句话,没有看到他后面补发的内容,他说 WebAssembly 不会取代 Docker,Docker 与 WebAssembly 会肩并肩运行。

WebAssembly 与 Docker 不是一个取代关系。WebAssembly 与 Docker 是各有所长、互相补足的关系,就像之前提到的,WebAssembly 对工具链要求比较高,但是 WebAssembly 的性能高、轻量级、安全的特点会让 WebAssembly 用在今天 Docker 进不去的场景。

举个具体的例子,WebAssembly 在冷启动方面,能够比 Docker 快100倍。所以 Docker 很难满足 的边缘计算、轻服务、汽车、区块链,都是 WebAssembly 的用武之地。

三、Wasm container 与 Kubernetes

WebAssembly崛起,Kubevirt成主流,2022年云原生的五大发展趋势
参考URL: http://app.myzaker.com/news/article.php?pk=61edfe9eb15ec0709e1236a0&f=normal
国外原文链接:https://thenewstack.io/5-cloud-native-trends-to-watch-out-for-in-2022/

WebAssembly 已经发展成为一个高性能、跨平台和多语种的软件沙盒环境,被运用于云原生软件组件。由于容器运行时和 WebAssembly(WASM)存在惊人的相似性,所以 Kubernetes 也可以被用于协调 WASM 组件。

WasmCloud、 WasmEdge、KubeEdge 以及 Krustlet 等项目使 WASM 成为云原生宇宙的公民之一。Kubernetes 可以从一个单一的控制平面无缝协调 WebAssembly 和容器两种工作负载,也就是说我们甚至可以将打包成 WebAssembly 的软件与容器化软件一起运行。包括 SecondState, Cosmonic 和 Suborbital 在内的创业公司正在建立的平台和工具,都在加速 WASM 的采用。预计自 2022 年我们可以看到云原生 WASM 的崛起。

四、云原生、WASM和边缘计算

云原生的下一步,或从WebAssembly在边缘取代Docker开始
参考URL: https://weibo.com/ttarticle/p/show?id=2309404751926406546094

过去几年,云计算的边界不断向边缘侧延伸。作为云原生技术事实标准的Kubernetes+容器组合,自然也被很多人考虑部署到边缘侧。不过K8s+容器组对于边缘计算场景来说,还是太过重了。因为边缘设备通常硬件资源有限,没有足够的资源部署运行完整的K8s。

很多边缘设备基于ARM架构,但大部分K8s发行版不支持ARM架构。同时,很多边缘设备所处环境复杂,无法保证稳定可靠的网络连接,而K8s的致命问题就是不支持离线运行。

传统容器方案,比如Docker,问题与K8s类似,Docker镜像大小很容易就达到一两百MB以上,边缘场景有不少内存和磁盘空间小于1GB的微型设备。

Docker 资源消耗大,对边缘设备要求高。

边缘计算不仅需要更轻量的K8s,也需要更轻量、更快的容器方案,WebAssembly(WASM)就是近几年出现的一个新选择。

云原生的下一步,或从WebAssembly在边缘取代Docker开始! 到2030年,估计有500亿台联网设备将放大我们的工作负荷–这些设备可能很小,可能很便宜–但它们将变得越来越智能和复杂。由于上述原因,WebAssemblies一次编写到处运行,安全模式和可移植性肯定会使它成为未来基础设施的重要组成部分。

为边缘优化的 WebAssembly 虚拟机: wasmedge

官网:https://wasmedge.org/
github: https://github.com/WasmEdge/WasmEdge

五、wasm和区块链

以太坊内核实现了一个图灵完备的虚拟机,即以太坊虚拟机(简称EVM)。它定义了一套通用的、确定性的指令,程序可以被编译成这些指令,并且可以在全世界任何一台计算机上运行。

传统计算机包含的指令集只接受32位或者64位的输入。EVM与此不同并且很特殊,它是一台256位的计算机,故意设计成这样是为了更易于处理以太坊的哈希算法,它会明确产生256位的输出。

然而,实际运行EVM程序的计算机则需要把256位的字拆分成它们的本地架构来执行智能合约,从而使得整个系统变得非常低效和不实用。

WebAssembly,或者简称为WASM,是内存安全、平台独立的,可以完美高效地映射到所有类型的CPU架构上。

使用 WebAssembly,不依赖于EVM,现在我们有了一套优秀并且高效的指令集,可以编译各种类型的语言,并且有信心它们可以在不同类型的平台上执行且具有同等的性能 - 这对于去中心化应用来说是非常理想的!更进一步,通过去除浮点运算指令,WASM指令集可以很容易地变成确定性指令集,从而很适合作为EVM的替代品。

尽管EVM目前算是区块链领域较为完备的机制,但它的局限性和时效性随着区块链发展也显得有些“落伍”,而作为EVM合约升级版的Wasm合约开始受到了众人关注。

以太坊创始人“V神”早就表示以太坊2.0将会升级为Wasm合约(eWASM),以满足更多开发需求。

EWASM团队已经着手在以太坊上集成WebAssembly,从而保证以太坊2.0的执行层更加高效、简单,适合作为完全的去中心化计算平台。https://github.com/ewasm

以太坊不是唯一一家正在调研 WebAssembly 技术的区块链企业。还有很多人都在押注这项技术,包括 Dfinity、EOS、NEAR、和 波卡 等等——它似乎已成为构建新一代区块链网络的事实标准。

作为EVM的发明者同时也是波卡创始人Gavin博士,对这个问题拥有足够的话语权。在做波卡的时候,Gavin并没有沿用自己发明的EVM,而是选择Wasm。

比较新兴的公链会更多的支持Wasm,然后以兼容的形式对接EVM。例如 波卡兼容EVM又支持Wasm,波卡的许多生态项目也是两者皆有。

Wasm对于EVM有什么优势?

以太坊基金会在Devcon上多次说明了自己打算将EVM过渡到Wasm的想法,但已经上线的庞大合约体量无法支持深层次的变革,生态也在这一临时方案上越走越远。选用Wasm作为智能合约的虚拟机的优势有以下几点:

1.完胜EVM虚拟机。相比EVM需要开发者预编译,较高的编程成本,Wasm虚拟机的结构、指令完备性及执行效率远胜于EVM虚拟机,将成为合约开发的新引擎。

2.执行速度快。Wasm有一套完整的语义,且具有紧凑的二进制格式,体积很小,这使得Wasm字节码运行时的效率可以接近于本地机器码的效率,比EVM的性能高1到2个数量级,后期还会升级为更快JIT虚拟机。

3.交易费用低。更快的Wasm虚拟机,致使交易吞吐量大幅提升,那么合约部署和交易成本也能大幅降低。可以说Wasm合约很好的解决了现在以太坊上交易费用高和交易拥堵的问题。

4.合约语言广。Wasm扩展了智能合同开发者可用的语言系列,支持使用任何Wasm的高级语言(如Rust、C++、JavaScript等)开发编写复杂业务逻辑,这意味着你可以用你熟悉的任何语言编写智能合约,包括最成熟的基于Rust的ink!,或基于AssemblyScript的Ask!等。

集成WASM也可以让那些熟悉Rust和Go之类的主流语言的人更容易进行智能合约的开发,而不是需要学习solidity的各种细节才能在以太坊上开发有用的应用程序。

虚拟机之战:WASM 与 EVM

虚拟机之战:WASM 与 EVM
参考URL: https://m.bimama.com/news/10600.html
英文原文:https://medium.com/momentum6/the-war-on-virtual-machines-wasm-vs-evm-8e68f9d53ef4

WebAssembly(WASM) 和云原生 | wasm和区块链相关推荐

  1. KubeCon + 欧洲云原生大会 2022,看看云原生Wasm日的演讲

    2022 KubeCon + CloudNativeCon Europe 还有三天的时间就要正式开始啦.作为 CNCF 的年度旗舰会议,届时将有上百位来自全球的资深云原生技术专家汇聚一堂,与大家分享云 ...

  2. 阿里云BaaS下蚂蚁区块链开发实践(二)

    本文将继续介绍我在阿里云下基于蚂蚁区块链开发的产品溯源Demo客户端部分.蚂蚁链提供了两个平台的客户端SDK:Java与Node.js,我使用的是JS SDK. 开发前准备 安装SDK 从node.j ...

  3. 华为云首批通过可信区块链评测

    华为云首批通过可信区块链评测 来源 :互联网 近年来,区块链技术正在被各行各业所认可,具有"降成本.提效率.优化产业诚信环境"的作用.基于区块链系统,数据可以被有效地确权,通过&q ...

  4. 链X云英雄城市峰会|区块链技术落地数字化社区提升区域养老幸福指数

    链X云英雄城市峰会|区块链技术落地数字化社区提升区域养老幸福指数 民生频道网12月4日讯(张明剑 王翔宇 报道)昨天,由蚂蚁链主办,链X云--"英雄城市"峰会暨湖北省区块链产业生态 ...

  5. 迅雷向链享云售让部分区块链业务:包括链克与链克商城

    雷帝网 乐天 9月17日报道 迅雷集团今日宣布,将向链享云售让部分区块链业务,包括链克.链克商城和链克口袋. 同时迅雷仍保留迅雷链.迅雷链开放平台.迅雷链文件系统(TCFS)等底层技术业务,以及玩客云 ...

  6. 飞链云元宇宙、区块链、3D数字艺术品、AI绘画共创数字新生态

    2022 飞链云生态 飞链云元宇宙.区块链.3D数字艺术品. AI绘画共创数字新生态 本文地址: https://feilianyun.yuque.com/books/share/c2d90a1b-6 ...

  7. WebAssembly + Dapr = 下一代云原生运行时?

    作者 | 易立 来源 | 阿里巴巴云原生公众号 云计算已经成为了支撑数字经济发展的关键基础设施.云计算基础设施也在持续进化,从 IaaS,到容器即服务(CaaS),再到 Serverless 容器和函 ...

  8. 阿里云BaaS下蚂蚁区块链开发实践(一)

    蚂蚁链与阿里云   蚂蚁区块链是蚂蚁金服自主开发联盟区块链底层引擎,在阿里的强力宣传下,一直保持很高的曝光度.特别是今年的双十一,给4亿件天猫海淘商品在区块链上获得了"身份证",实 ...

  9. 2018杭州云栖大会 - 容器区块链分享预告

    Clouder lab容器专场-Kubernetes on 容器服务-助力企业提升生产力 [ 会议时间:2018.09.20 AM会议地点:E2-5 ] 阿里云作为CNCF的白金会员,阿里云容器服务也 ...

最新文章

  1. 【通俗理解线性代数】 -- 矩阵的等价与相似
  2. 文件上传(上传至独立的文件服务器)
  3. 简述Java内存模型的由来、概念及语义
  4. spring项目使用redis分布式锁解决重复提交问题
  5. ViewPager+TabLayout+Fragment刷新Fragment中的数据
  6. python如何爬取网站所有目录_[python] 爬取网站所有的URL
  7. Java表示0到200的质因数_java记——循环 求一个数的所有质因数
  8. 火狐浏览器中打开java_将Firefox浏览器嵌入Java Swing中
  9. ES6新语法--对象成员简写、对象展开、数组展开
  10. PostgreSQL判断一个表是否存在
  11. nhibernate配置教程
  12. oracle 正则表达式2
  13. ubuntu20.04安装simhei字体--jupyter中文显示框框的解决方案
  14. 【bat命令-在for循环中赋值给局部变量后再输出变量时提示“ECHO 处于关闭状态。”或者“ECHO 处于打开状态。”】
  15. 图解大数据 | Spark机器学习(下)—建模与超参调优
  16. 使用五数概括法来确定数据集中的孤立点
  17. 软件工程改错题例题:请将下面的非结构化程序改成结构化程序
  18. 西门子1200PLC模板通讯程序,包含多种通讯Modbus-RTU(485),S7通讯
  19. JDK8 stream流的骚操作
  20. php免费利用飞信发送验证码,php通过飞信发送短信

热门文章

  1. cocos2dx moveTo
  2. vs2019键盘钩子_键盘钩子WH_KEYBOARD和WH_KEYBOARD_LL
  3. 《初级会计电算化实用教程(金蝶KIS专业版)》一1.3 电算化会计信息系统
  4. 惠普台式笔记本一体机电脑BIOS中文版对照图解介绍
  5. Ubuntu下安装Matlab并破解
  6. nagios报警信息,发送到微信端
  7. 【django学习】——Django介绍和实战(开发简易版博客网页)
  8. XXL-JOB调度中心HA及高可用方案
  9. 02 Spring标签解析-BeanDefinitionParser
  10. firefox中febe恢复的方法