本文收集整理并罗列了常见区块链的虚拟机和合约开发语言,不断收集更新中。不足之处请大家留言反馈。
项目平台 | 虚拟机 | 合约语言 | 描述 |
---|---|---|---|
BTC | 简易脚本。(基于堆栈的。它特意设计成非图灵完整,没有LOOP语句。) | 一种逆波兰表达式的基于堆栈的执行语言 | 与FORTH(一种编译语言)一样,脚本是简单的、 |
ETH | EVM (基于栈的图灵完备虚拟机) | solidity (一种融合了c/c++/go语言风格的智能合约高级语言) | |
EOS | WASM (内置了WebAssembly的一个基于堆栈的虚拟机) | c/c++ 。目前仅支持C和C++语言的合约代码。未来应该也会支持Go或其他语言。 | 使用WebAssembly指令集,通过允许以近原生速度来执行预编译合约可以提供性能优势。 |
IBM HyperLedger fabric | Hyperledger Burrow (是一个包含了“built-to-specification”的以太坊虚拟机.Burrow发布于2014年12月,首次提供了一个模块化的、带经过许可的智能合约解释器的区块链客户端,它采用了部分以太坊虚拟机(EVM)的技术规范。Burrow是唯一获得Apache许可的Ethereum虚拟机实施。) | java | "Burrow是一种从以太坊衍生出来的代码库,灵感来自于Monax在2014年开发和开源的一种叫做eris-db的技术。该项目由英特尔和Monax提出,为商业公司和组织提供了一个智能合约平台。其主要由Monax贡献,并由Monax 和英特尔赞助。" |
比原链 | BVM | Ivy | bytom基于[Chain]公司的能用[Ivy]高级语言编程的CVM去做自己的扩展,灵活易用。 |
qtum 量子链 | x86虚拟机 | C/C++/Rust | "能够支持更多种主流的开发语言。x86 虚拟机的基本原理是,你可以使用任何现有的编译器或编程语言,并进行一些简单修改,就可以在Qtum量子链的操作系统上运行。目前几乎所有的编译器都支持x86架构指令集,所以实际的字节码和架构支持已经非常完备。" |
小蚁 | antshares NeoVM(C#实现的一种基于操作码和堆栈的轻量级通用区块链虚拟机) | Java/C/C++/GO/Python/Java"首批支持的语言是 C#、VB.Net、F#等 | 编译器会针对 MSIL(微软中间语言)来进行编译,所以理论上任何.Net 中的语言或者可被转译成 MSIL 的语言都可以直接被直接支持。Github源代码地址:https://github.com/AntShares/AntShares.VM 白皮书地址: www.antshares.org/files/4007D7.pdf |
秘猿CKB | CKB-VM | RUST | 采用RISC-V指令集 ,使用真实的 CPU 指令集来构造自己的虚拟机 CKB-VM。 |
博晨L0 | js/lura | Lura /javascript | |
Algoround | 目前没有 | - | go实现的主链 |
Definity | webassembly | - | 以太坊网络上的现有应用将在Dfinity上高度兼容。 https://github/dfinity |
facebook Libra | Move VM(rust实现的具有静态类型系统的堆栈虚拟机 ) | move 一种类似rust的主打安全性的语言 | |
filecoin | go语言实现的使用带gas消耗的VM,类似以太坊的简单实现。 | - | 为最终用户提供了两个基本命令:Get和Put,允许在Get和Put之上设计更复杂的操作 |
恒星网络Stellar | - | C++ | 通过windowsAPI启动进程执行cmd命令来处理交易。C++开发。代码https://github.com/stellar 网址https://www.stellar.org/ |
zcash | 参考btc | 参考btc | Zcash是bitcoin的分支,保留了bitcoin原有的模式,基于比特币0.11.2版代码修改的。c++实现的主链。代码:https://github.com/zcash/zcash |
波场TRON | TVM,基于WebAssembly(WASM)进一步优化TVM虚拟机。 | Java,后续支持其他语言 | 最终实现的虚拟机中间层,将依次兼容EVM和EOS的虚拟机.TVM 引进了带宽的概念,不同于以太坊EVM的gas消耗模式,TVM系统中的转账和智能合约的操作是免费的,不需要消耗任何代币,所以原则上在TVM中可执行的计算总量不受代币总量限制。 |
CyberMiles | CVM (是基于以太坊的虚拟机改的) | lity,从solidity 语言演化而来,Lity由动态可扩展语言、编译器和虚拟机runtime组成。提供以太坊原生接口(libENI),LibENI 是 Lity 的扩展,是用 C++语言。 | CVM虚拟机在加法、乘法、冒泡排序、scrypt各种算法速度上都大大超过以太坊 |
fcoin FT公链 | EVM | solidity | https://www.fractalproject.com/ |
本体 | neovm和wasmvm,neovm是go语言实现的翻版以太坊虚拟机。wasm是用的wagon(a WebAssembly-based interpreter in Go) | Ontology智能合约现包含2种类型的合约:Native合约和NeoVm合约。Native合约是在Ontology底层直接编写的合约,不需要像部署普通合约那样编写合约代码,具有很高的执行效率,是对普通合约的极大优化,通用的服务包括:Oracle,DID,权限管理,数据交易所都将采用Native合约实现。NeoVm合约是采用NeoVm虚拟机运行的合约,需要编写相应的合约代码,现支持的语言包含:Java,C#,Python,NeoVm本身具有轻量级、可扩展、高性能的特性,通过结合Interop Service层能很好的打通虚拟机与账本层间的交互。 | 官网源码: https://github.com/ontio |
铂链(bottos) | wasm | c++,javascript,goland | 源码:https://github.com/bottos-project/bottos |