本篇文章2959字,读完约7分钟
波场创团队于2018年5月25日(北京时间今天)正式发布了虚拟机创虚拟机(tvm)的测试版。tvm的发布将为波场管生态学的发展奠定坚实的基础。本文将通过介绍、设计原理、操作流程和发展方向等几个模块,为全世界波场管的支持者和信徒展示一个相对完整的tvm。
Tron虚拟机
Tron virtual machine (tvm)是Tron团队为满足自身生态发展的需要而开发的一款轻量级虚拟机。它旨在为全球数百万开发人员提供一个高效、简单、稳定、安全且易于优化的区块链专用系统。
Tvm可以与现有的开发者生态系统无缝对接,并满足dpos一致性机制的要求。Tvm与早期的以太网虚拟机环境兼容。开发人员可以使用solidity和其他编程语言在熟悉的混音环境中开发、调试和编译智能合同,而无需学习新的编程语言。tron智能契约写好后,上传到tron主网络,在超级代表节点的tvm虚拟机中执行,同时保持虚拟机外系统环境的隔离。
此外,tvm引入了带宽的概念。与Ethereum evm的气体消耗模式不同,tron系统中的转移和智能合同操作是免费的,不消耗任何令牌,因此原则上,tvm中可执行的计算总量不受令牌总量的限制。
1.tvm设计原则
1.1重量轻
Tvm采用轻量级虚拟机架构,旨在节省运行时间、降低资源消耗和保证系统性能。
1.2稳定性和安全性
Tvm采用严格的设计规范和低粒度低级操作码,保证了每个计算步骤的准确性,最大限度地消除了模糊空。同时,为了安全起见,tvm的传输和操作合同不需要消耗令牌,而只消耗带宽,从而避免了对类似以太网气体消耗模式的攻击。在保证每个运算计算步骤的确定性的同时,也保证了带宽消耗的稳定性。
1.3兼容性
目前,tvm与Ethereum evm完全兼容,并将在未来与更多主流虚拟机兼容。因此,以太网上的智能契约可以直接运行到tvm,与现有的开发者生态无缝连接,提高开发者的开发效率。开发人员无需学习新的编程语言,就可以在熟悉的混音环境中使用solidity等主流编程语言开发、调试和编译智能契约,这将大大降低开发成本。
1.4开发者友好性
tvm的带宽消耗模式降低了合同开发成本。让开发人员更加关注合同代码本身的逻辑。同时,tvm为部署、触发和查看智能合同提供了一个开发者友好的一站式界面。
以下扩展接口被添加到tron wallet-cli,
部署合同(密码、合同地址、abi、代码、数据、值)
triggercontract(密码、合同地址、选择器、数据、值)
getcontract(合同地址)
开发人员可以直接调用来完成智能合同的部署、触发和查看。
2.TVM的操作流程
图1。创虚拟机的工作流程
该图从整体上描述了tron虚拟机的工作流程:
tron智能契约编译-虚拟机执行、计算引擎-虚拟机外部互操作层
简单地说,上述过程是:
1.目前,tron虚拟机主要兼容实性。编译器将实体智能契约翻译成tvm可以识别和执行的字节码。
2.在虚拟机中,虚拟机堆栈中的数据可以通过操作指令代码来处理,这相当于基于堆栈的有限状态机的逻辑处理。
3.虚拟机访问区块链数据,并通过互操作性模块调用外部数据的接口层。
3.电视媒体的发展方向
3.1构建更友好的调试工具
Tron团队将努力构建完善的调试工具,并为调试建立标准的符号格式或数据格式。提高开发人员在tvm中的开发和调试效率。
3.2 .满足更加多样化的任务处理需求
与以太网中每个操作消耗的气体不同,tron虚拟机不收取业务处理费用,每个操作只先占用带宽,然后在一段时间的事务后释放带宽。开发人员可以以相对较低的成本设计具有更复杂逻辑的智能合同。我们相信,除了数字现金交易的应用场景之外,未来智能合同还可以在游戏开发、金融市场风险建模、科学计算等领域发挥重要作用。Tron虚拟机设计具有满足不同任务场景的内在能力,并进一步优化了处理速度、响应时间和浮点数支持。
3.3 .提高实时编译的速度并集成webassembly。
提高即时编译的速度可以更好地编译本地代码,更快地解释运行的代码。
同时,tron将考虑进一步优化基于webassembly (wasm)的tvm虚拟机。目前,webassembly由苹果、谷歌、微软和mozilla领导。它旨在突破web浏览器性能的瓶颈,可以用c/c++和其他语言编译。webassembly在区块链场景中的应用可以提高基于web的dapp的性能。与wasm集成的tvm的实现将满足未来复杂业务场景下对接区块链应用的高性能和高吞吐量要求。
以下是tvm虚拟机参考教程(智能合同部署方案)
1.编辑合同
合同编制地址:remix.ethereum
2.获取abi和字节码
以下列合同为例:
普拉格马·solidity^0.4.11;
合同tron
uint256 tron
构造函数()公共{ }
函数集(uint256 number)公共返回(bool){
tron =数字;
返回真;
{}
{}
abi:
[{ "常量":false,"输入":[{"name":"number "," type":"uint256"}]," name":"set "," outputs":[{"name ":"," type":"bool"}]," payable ":" false "," state mutatability ":" non partable "," type":"function"},{ " inputs ":" payable ":false," state mutatability ":" non partable "," type":"constructor"}]
字节码:60806040523480156100105760080 FD 5b 5060 c 48061001 f 6000396000 f 300608060405260043610603 f 576000357 c 010000000000000000000000000000000000000000000000000000000000000000000000000000000000
3.部署合同
钱包的一个分支:github/tron protocol/wallet-CLI/tree/wallet-CLI-VM
java-tron-vm的一个分支:github/tron protocol/Java-tron/tree/developer _ VM
密码:钱包客户端密码
合同地址:用户自定义的合同地址(需要满足波场地址格式的要求)
界面描述
代码:字节码
数据:初始化函数参数相关性
值:保留
部署合同(密码、合同地址、abi、代码、数据、值)
4.调用合同
选择器:功能选择器
数据:参数相关性
triggercontract(密码、合同地址、选择器、数据、值)
5.检查合同
getcontract(合同地址)
以上是在wave field中介绍和部署tron虚拟机的教程。欢迎您尝试体验tvm并提出宝贵意见。我们将继续改进和更新创虚拟机,以确保创虚拟机能够在阿波罗领域创主网络上以最佳状态运行。
来源:央视线
标题:波场TRON虚拟机测试版正式发布—Tron Virtual Machine
地址:http://www.yangshinews.com/ysxw/26538.html