随着进一步深入了解区块链技术,一定绕不开虚拟机这个概念,但是区块链虚拟机对于大多数小伙伴都过于抽象,或者难以理解其作用和价值。
虚拟机定义
虚拟机这个概念,顾名思义是相对于物理机(常规的电脑)而存在的。其官方定义为:通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
这样的定义对于我们大多数小伙伴依旧是难以理解的,我这边在举个通俗的类比:人类通过程序编程的方式,给操作系统或应用程序造了一个梦,让它自以为自己在一个有完整硬件支持的计算机系统,但实际上只是软件模拟的环境。
虚拟机的类型
虚拟机根据其应用方向分为系统虚拟机和进程虚拟机。
系统虚拟机可以模拟替代硬件机器,在系统虚拟机上可以运行Linux和windos这样的操作系统。
进程虚拟机则可以模拟出程序运行环境,让程序可以独立于平台本身的环境运行。区块链虚拟机就是进程虚拟机的一种。
虚拟机的应用价值
1、让自己一台电脑变成多台电脑,可以在电脑上同时安装使用Linx和windos操作系统,且二者相互独立。
2、让一个应用可实现跨架构运行,比如A应用只能在A架构系统运行,现在我在我的B架构系统上模拟出一个A应用可执行的环境。
3、实现应用程序执行的一致性,不同电脑在硬件属性上存在差异,如32位、64位等等差异,同一个应用在不同平台运行可能会产生不同的结果,现在可以构建一个针对该应用程序的虚拟机,通过虚拟机磨平平台间差异,实现应用程序在不同平台运行的一致性。
因为第三点涉及区块链虚拟机的理解,我这边在做个通俗的例子介绍。
如果我们把程序个人,那不同类型的程序就是来自不同国家的人,每个人在自己的国家有一套生活的习惯、文化风俗,那不同的系统平台比喻成不同的国家。如果将一个日本人放置在印度那么这个人将难以适应和发展。而区块链虚拟机的作用就类似于打造一个全新国家,执行全新的规则,所有程序遵循这套规则,都可以保障相同程序在不同平台运行出一致的结果,有效保障了程序结果的一致性。
区块链虚拟机
区块链为什么需要虚拟机?
有人曾这样定义区块链2.0网络,说区块链2.0就是全世界人共用的一台计算机,在这台共用的计算机上,我们可以实现存储相同的数据,执行相同的程序,输出相同的结果。
但真实情况是,这台宏观意义的一台计算机,实际上是这台计算机是由成千上万个计算机共同联合实现的,要实现化零为整,必然要实现众多节点步调一致,在程序执行时不能存在结果差异。一旦执行结果存在差异,则会存在共识差异,打破区块链网络的一致性。
我上文提到过,在真实网络的运行环境下平台差异性是必然的。所以我们此时就需要利用上文提到的区块链的第三点价值,实现应用程序执行的一致性。为每个区块链网络不同的节点平台虚拟构建一个相同的执行环境,实现应用程序执行的一致性。
构建一个区块链虚拟机
构建一个区块链虚拟机就是构建一个全新的世界和规则,在编程领域这个规则就是语言,这个语言决定了虚拟机如何去执行,不同的规则代表了不同的虚拟机,如大家比较熟知的EVM虚拟机,就采用了solidity编程语言。
比特元虚拟机兼容能力
一条公链网络,虚拟机兼容支持的能力,代表这个生态的包容性与兼容性,越包容的生态将更容易促进生态繁荣。
目前比特元公链网络,兼容支持多个虚拟机,分别是EVM 以太坊智能合约虚拟机;WASM EOS智能合约虚拟机;JSVM Javascript 智能合约虚拟机。
比特元网络的兼容性,意味着当下比特元可支持无碍移植以太坊和EOS生态应用,并可借助Javascript 开发者众多的生态优势,大幅降低区块链应用开发者门槛,快速打造开发者生态。
比特元多项虚拟机兼容支持的能力,为比特元公链生态应用爆发奠定了技术基础。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。