http://www.admarmetal.com

最强易用性?趣链科技智能合约引擎是怎样炼成

ChainMind是趣链科技产品团队打造的新栏目,由大发3d行业最前线的产品经理,持续为你带来前沿的行业洞察、产品思考。本文是ChainMind的第三篇文章。”

今天和大家分享下趣链科技的智能合约引擎,它已在中国信通院可信大发3d评测中表现出了优异的易用性。

智能合约是大发3d应用业务逻辑的载体。要实现企业级应用的落地,则需要智能合约引擎,而其必备的特质有:完备的业务功能、可确定性、可终止性、完备的升级方案等。

最早是以太坊将支持Solidity语言的EVM执行引擎引入大发3d中,拉开了大发3d2.0的序幕,但因其合约语言本身在语言成熟度、生态工具、复杂合约编写性能等方面具有一定局限性,导致无法满足很多大规模商业应用场景。

因此趣链大发3d平台首创了支持Java语言的智能合约执行引擎HVM(HyperVM),在保证智能合约执行的安全性、确定性、可终止性的前提下,提供了一系列灵活应用模式、工具方法集,以满足复杂多样的业务场景需求,面向广泛的大发3d开发人员提供更便捷、灵活、安全的大发3d应用开发模式。

下面展开讲讲我们的智能合约执行引擎HVM的设计模式。

符合Java编写范式的账本数据结构

基于账户模型的大发3d平台,智能合约通常作为操作账本数据的载体,底层账本数据其实是一系列的KV(Key-Value)键值对集合。为了符合Java软件开发者习惯,使其无需感知大发3d底层KV结构即可编写相应业务逻辑代码,HVM设计了符合Java编写范式的数据结构:HyperMap和HyperList。

HyperMap和HyperList的使用类似于开发者所熟知的HashMap和ArrayList,但做了原创性地优化,在减少内存使用的同时也提高了更新账本的插入效率。实测表明在持续增长的大数据量场景中HVM性能表现良好。

最强易用性?趣链科技智能合约引擎是怎样炼成

内置数据表结构HyperTable

为了满足复杂业务场景下数据类型多样化、业务数据可视化与可分析的需求,智能合约需要支持复杂的表结构数据组织形式。HVM提供了内置数据结构HyperTable,支持在合约内部按照表的形式组织业务数据,便于业务数据可视化以及后续的数据分析与价值挖掘。HyperTable是一种类似Hbase的多层级列簇表结构,这种结构可以让原Solidity语言中复杂嵌套的数据操作简单化,同时在性能方面,能有效解决序列化、反序列化造成的性能瓶颈,整体维护成本更低、使用更高效。

最强易用性?趣链科技智能合约引擎是怎样炼成

丰富的工具方法集

工欲善其事,必先利其器。一个好的工具方法集可以让应用开发更高效。HVM内置了完备的工具方法集,支持编码格式转换、基于TEE的数据加解密、日志等功能,为开发者提供了更友好的开发体验。

日志工具类:日志在应用开发过程中的作用至关重要,能帮助开发者快速定位和发现问题。由于EVM未对出现的异常进行详细定位,给编译调试造成极大的难度。而HVM通过内置日志工具类,可以为每种常见的错误进行合理的提示,并支持不同日志级别的输出,方便开发和运维快速定位问题。

加解密工具:有些业务场景可能需要在智能合约中进行签名验签逻辑处理,从而进行身份认证,便于进行权限判断或者后续业务的开展。因此HVM设计了基于TEE[1]的加解密工具,支持在合约中调用存储于TEE的公私钥完成签名、验签操作,并支持ECDSA、SM国密等多种算法,具有方便、友好、安全的特性。

分层调用模式

鉴于智能合约升级代价极高,HVM提供了更为灵活的分层合约调用方式:业务调用层可以灵活的定义丰富的业务逻辑,可以在不更新合约的情况下更新业务逻辑,合约层只实现最核心、最基本的原子操作。以转账场景为例,合约层只有增加余额和减少余额的方法,在调用层定义转账的逻辑:如余额是否充足、减少转让方余额和增加接收方余额。同时,HVM保证了调用层逻辑的原子性,从而保证了业务应用的可用性和可靠性。

最强易用性?趣链科技智能合约引擎是怎样炼成

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。