区块链DAPP虚拟机、数据处理方法和计算设备技术

技术编号:21453645 阅读:15 留言:0更新日期:2019-06-26 04:41
本申请公开了一种区块链DAPP虚拟机、数据处理方法和计算设备。其中,该虚拟机包括:控制模块,与区块链节点主机中的DAPP代码存储单元连接,用于接收DAPP的代码,基于DAPP的代码和用户配置生成引擎实例;引擎模块,与控制模块连接,用于接收引擎实例并执行引擎实例;桥接模块,分别与引擎模块和节点主机的API模块连接,用于接收引擎模块发送的访问请求并将访问请求发送给API模块,接收API模块返回的访问结果并发送给引擎模块。该方案能够使开发人员使用统一语言就DAPP进行开发,降低了技术人员对DAPP的开发门槛,该语言层面上的一致性能够使DAPP跨不同区块链平台解释并执行。

【技术实现步骤摘要】
区块链DAPP虚拟机、数据处理方法和计算设备
本申请涉及计算机
,特别是涉及一种区块链DAPP(DecentralizedApplication,去中心化应用)虚拟机、数据处理方法和计算设备。
技术介绍
区块链是一个运行在P2P网络里用于解决信任问题的系统。其通过去中心化,使数据脱离了所属者,保护了用户隐私,脱离了原有中心化服务依权威机构的信任机制。区块链通过利用一系列的技术,比如密码学和共识算法,通过创新应用,解决了在去中心化网络上的信任问题。目前,区块链的主流平台包括Ethereum和EOS。Ethereum目前广泛采用的是智能合约高级语言solidity。EOS采用的智能合约语言是WebAssembly(wasm)该语言通常采用C/C++编程实现。其中,Solidity是一种新的语言,对开发者有学习门槛,而C/C++相对Javascript对开发者友好性低。目前,两个平台之间兼容性差,在Ethereum上编写的合约是不能在EOS上运行,需重新编写,反之亦然。随着区块链技术的发展,越来越多的功能开始在区块链的体系下开始发展,其中,DAPP就是建立在区块链体系上的应用,越多的技术人员投入到DAPP的开发中,从而实现更多的基于区块链的应用功能。由于区块链DAPP编程技术门槛高,并且各主流平台之间兼容性差,大大制约了DAPP的开发和普及,阻碍了基于DAPP的各种服务的推广。
技术实现思路
本申请的目的在于克服上述问题或者至少部分地解决或缓减解决上述问题。根据本申请的第一个方面,提供了一种区块链DAPP虚拟机(VirtualMachine,VM),包括:控制模块,与区块链节点主机(Host)中的DAPP代码存储单元连接,用于接收DAPP的代码,基于所述DAPP的代码和用户配置生成所述引擎实例;引擎模块,与所述控制模块连接,用于接收所述引擎实例并执行所述引擎实例;桥接模块,分别与所述引擎模块和所述节点主机的应用程序编程接口(ApplicationProgrammingInterface,API)模块连接,用于接收所述引擎模块发送的访问请求并将所述访问请求发送给所述API模块,接收所述API模块返回的访问结果并发送给所述引擎模块。该方案能够降低DAPP的开发门槛,例如,仅采用统一的脚本语言如Javascript就可以实现开发,用该脚本语言开发的DAPP在语言层面上一致,该语言层面上的一致性能够使DAPP跨不同区块链平台解释并执行。该虚拟机能够通过内嵌引擎模块为DAPP提供解释和运行环境,使得DAPP运行环境与区块链节点运行环境隔离,既保证了区块链节点的安全,也降低了DAPP跨平台开发的难度。可选地,所述控制模块用于接收两个以上的DAPP的代码,对于每一个DAPP的代码,分别生成相应的引擎实例,将所有引擎实例发送给所述引擎模块并行执行。可选地,所述控制模块还用于:调用所述区块链节点主机中的DAPP代码的内部方法。可选地,所述控制模块还用于:监控所述DAPP对资源的使用,在所使用的资源大于或等于上限的情况下,终止所述DAPP的运行。可选地,所述桥接模块还用于,在接收所述引擎模块发送的访问请求后,对所述访问请求进行安全检查,在检查通过的情况下,将所述访问请求发送给所述API模块。根据本申请的第二个方面,提供了一种数据处理方法,基于区块链DAPP虚拟机,所述区块链DAPP虚拟机该包括:控制模块,与区块链节点主机中的DAPP代码存储单元连接;引擎模块,与所述控制模块连接;桥接模块,分别与所述引擎模块和所述节点主机的API模块连接;该方法包括:S100所述控制模块接收所述区块链节点主机中的DAPP代码存储单元发送的DAPP的代码,基于所述DAPP的代码和用户配置生成所述引擎实例;S300所述引擎模块接收所述控制模块发送的所述引擎实例并执行所述引擎实例;S500所述引擎模块响应于用户的访问请求,将所述访问请求发送给所述桥接模块;S700所述桥接模块将所述访问请求发送给所述API模块,接收所述API模块返回的访问结果并发送给所述引擎模块。该方法能够使开发人员使用统一语言就DAPP进行开发,降低了技术人员对DAPP的开发门槛,该语言层面上的一致性能够使DAPP跨不同区块链平台解释并执行。可选地,在S100中,所述控制模块用于接收两个以上的DAPP的代码,对于每一个DAPP的代码,分别生成相应的引擎实例,将所有引擎实例发送给所述引擎模块。可选地,该方法还包括:所述控制模块监控所述DAPP对资源的使用,在所使用的资源大于或等于上限的情况下,终止所述DAPP的运行。可选地,在S700中,所述桥接模块在接收所述引擎模块发送的访问请求后,对所述访问请求进行安全检查,在检查通过的情况下,将所述访问请求发送给所述API模块。根据本申请的第三个方面,提供了一种计算设备,包括存储器、处理器和存储在所述存储器内并能由所述处理器运行的区块链DAPP虚拟机,所述区块链DAPP虚拟机该包括:控制模块,与区块链节点主机中的DAPP代码存储单元连接,用于接收DAPP的代码,基于所述DAPP的代码和用户配置生成所述引擎实例;引擎模块,与所述控制模块连接,用于接收所述引擎实例并执行所述引擎实例;桥接模块,分别与所述引擎模块和所述节点主机的API模块连接,用于接收所述引擎模块发送的访问请求并将所述访问请求发送给所述API模块,接收所述API模块返回的访问结果并发送给所述引擎模块。根据下文结合附图对本申请的具体实施例的详细描述,本领域技术人员将会更加明了本申请的上述以及其他目的、优点和特征。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。后文将参照附图以示例性而非限制性的方式详细描述本申请的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解的是,这些附图未必是按比例绘制的。在附图中:图1是根据本申请的一个实施例的区块链DAPP虚拟机的示意性框图;图2是根据本申请的一个实施例的跨平台的区块链DAPP虚拟机的示意性框图;图3是根据本申请的一个实施例的数据处理方法的示意性流程图。具体实施方式为了使本
的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请的实施例提供了一种区块链D本文档来自技高网
...

【技术保护点】
1.一种区块链DAPP虚拟机,包括:控制模块,与区块链节点主机中的DAPP代码存储单元连接,用于接收DAPP的代码,基于所述DAPP的代码和用户配置生成所述引擎实例;引擎模块,与所述控制模块连接,用于接收所述引擎实例并执行所述引擎实例;和桥接模块,分别与所述引擎模块和所述节点主机的API模块连接,用于接收所述引擎模块发送的访问请求并将所述访问请求发送给所述API模块,接收所述API模块返回的访问结果并发送给所述引擎模块。

【技术特征摘要】
1.一种区块链DAPP虚拟机,包括:控制模块,与区块链节点主机中的DAPP代码存储单元连接,用于接收DAPP的代码,基于所述DAPP的代码和用户配置生成所述引擎实例;引擎模块,与所述控制模块连接,用于接收所述引擎实例并执行所述引擎实例;和桥接模块,分别与所述引擎模块和所述节点主机的API模块连接,用于接收所述引擎模块发送的访问请求并将所述访问请求发送给所述API模块,接收所述API模块返回的访问结果并发送给所述引擎模块。2.根据权利要求1所述的区块链DAPP虚拟机,其特征在于,所述控制模块用于接收两个以上的DAPP的代码,对于每一个DAPP的代码,分别生成相应的引擎实例,将所有引擎实例发送给所述引擎模块并行执行。3.根据权利要求1所述的区块链DAPP虚拟机,其特征在于,所述控制模块还用于:调用所述区块链节点主机中的DAPP代码的内部方法。4.根据权利要求1所述的区块链DAPP虚拟机,其特征在于,所述控制模块还用于:监控所述DAPP对资源的使用,在所使用的资源大于或等于上限的情况下,终止所述DAPP的运行。5.根据权利要求1至4中的任一项所述的区块链DAPP虚拟机,其特征在于,所述桥接模块还用于,在接收所述引擎模块发送的访问请求后,对所述访问请求进行安全检查,在检查通过的情况下,将所述访问请求发送给所述API模块。6.一种数据处理方法,基于区块链DAPP虚拟机,所述区块链DAPP虚拟机该包括:控制模块,与区块链节点主机中的DAPP代码存储单元连接;引擎模块,与所述控制模块连接;以及桥接模块,分别与所述引擎模块和所述节点主机的API模块连接;该方法包括:S100所述控制模块接收所述区块链节点主机中的D...

【专利技术属性】
技术研发人员:杨杰聂和勇孙金虎孙玉辰杨志伟
申请(专利权)人:上海南潮信息科技有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1