智能合约运行方法、装置、系统和计算机可读存储介质制造方法及图纸

技术编号:19481909 阅读:19 留言:0更新日期:2018-11-17 10:45
本发明专利技术公开了一种智能合约运行方法、装置、系统和计算机可读存储介质,涉及计算机技术领域。智能合约运行方法包括:从区块链中读取智能合约的数据,其中,智能合约的数据包括智能合约代码;从智能合约的数据中获取智能合约代码的参数信息;根据参数信息构建智能合约的脚本;运行脚本以采用智能合约代码构建和启动智能合约模块,以便区块链核心模块与启动的智能合约模块通过区块链节点的通信代理层交换智能合约的执行数据。本发明专利技术的实施例可以根据智能合约的代码构建智能合约的脚本,并通过启动脚本来运行智能合约,使得在区块链节点部署在弹性云的环境中时,也能够执行和启动智能合约,提高了智能合约的通用性。

【技术实现步骤摘要】
智能合约运行方法、装置、系统和计算机可读存储介质
本专利技术涉及计算机
,特别涉及一种智能合约运行方法、装置、系统和计算机可读存储介质。
技术介绍
区块链应用是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用。智能合约是运行在区块链之上的、和业务逻辑紧密相关的业务逻辑程序。在相关技术中,一般使用容器(Docker)实现智能合约,以为智能合约提供一个完整、成熟的运行环境,方便区块链节点调用和执行智能合约。Docker是一个开源的应用容器引擎。开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux操作系统的机器上,也可以实现虚拟化。区块链节点可以部署在物理机上。但是,如果为了将智能合约的业务使用Docker来支撑,将区块链节点都部署在单个的物理机上,成本太高,使得运营、迁移、维护的工作量太大。随着公有云或者私有云等弹性云业务的发展,很多区块链的业务系统都部署在弹性云上。弹性云主要使用Docker技术来实现。
技术实现思路
专利技术人对相关技术进行分析后发现,按目前Docker的设计理念,Docker上是无法运行Docker的。因此,将智能合约和区块链节点均使用Docker的技术来实现,即,将采用Docker实现的智能合约运行在Docker上的方案是无法实现的。本专利技术实施例所要解决的一个技术问题是:如何在基于弹性云的区块链系统中支持智能合约。根据本专利技术一些实施例的第一个方面,提供一种智能合约运行方法,包括:从区块链中读取智能合约的数据,其中,智能合约的数据包括智能合约代码;从智能合约的数据中获取智能合约代码的参数信息;根据参数信息构建智能合约的脚本;运行脚本以采用智能合约代码构建和启动智能合约模块,以便区块链核心模块与启动的智能合约模块通过区块链节点的通信代理层交换智能合约的执行数据。在一些实施例中,智能合约运行方法还包括:启动的智能合约模块与区块链核心模块通过区块链节点的通信代理层建立连接;启动的智能合约模块通过建立的连接接收区块链核心模块发送的基于网络协议的数据。在一些实施例中,智能合约运行方法还包括:启动的智能合约模块通过建立的连接向区块链节点发送心跳通知,以便区块链核心模块响应于在预设时间内未收到智能合约模块发送的心跳通知,再次运行智能合约的脚本。在一些实施例中,智能合约运行方法还包括:启动的智能合约模块与区块链核心模块通过区块链节点的通信代理层交换智能合约的执行数据,执行数据包括智能合约的执行标识,以便区块链核心模块保存智能合约的执行标识以及相应的执行数据。在一些实施例中,根据参数信息和智能合约的语言类型,构建语言类型对应的智能合约的脚本。在一些实施例中,从智能合约的数据中获取智能合约代码的编译参数和启动参数;根据编译参数构建智能合约的编译脚本,以及根据启动参数构建智能合约的启动脚本。在一些实施例中,启动的智能合约模块位于区块链节点的宿主机或者区块链智能合约集群。根据本专利技术一些实施例的第二个方面,提供一种智能合约运行装置,包括:智能合约数据读取模块,被配置为从区块链中读取智能合约的数据,其中,智能合约的数据包括智能合约代码;参数信息获取模块,被配置为从智能合约的数据中获取智能合约代码的参数信息;脚本构建模块,被配置为根据参数信息构建智能合约的脚本;脚本运行模块,被配置为运行脚本以采用智能合约代码构建和启动智能合约模块,以便启动的智能合约模块与区块链核心模块通过区块链节点的通信代理层交换智能合约的执行数据。在一些实施例中,智能合约运行装置还包括启动的智能合约模块,被配置为与区块链核心模块通过区块链节点的通信代理层建立连接,以及通过建立的连接接收区块链核心模块发送的基于网络协议的数据。在一些实施例中,启动的智能合约模块进一步被配置为通过建立的连接向区块链节点发送心跳通知,以便区块链核心模块响应于在预设时间内未收到智能合约模块发送的心跳通知,再次运行智能合约的脚本。在一些实施例中,启动的智能合约模块进一步被配置为与区块链核心模块通过区块链节点的通信代理层交换智能合约的执行数据,执行数据包括智能合约的执行标识,以便区块链核心模块保存智能合约的执行标识以及相应的执行数据。在一些实施例中,脚本构建模块进一步被配置为根据参数信息和智能合约的语言类型,构建语言类型对应的智能合约的脚本。在一些实施例中,参数信息获取模块进一步被配置为从智能合约的数据中获取智能合约代码的编译参数和启动参数;脚本构建模块进一步被配置为根据编译参数构建智能合约的编译脚本,以及根据启动参数构建智能合约的启动脚本。在一些实施例中,智能合约运行装置位于区块链节点的宿主机或者区块链智能合约集群。根据本专利技术一些实施例的第三个方面,提供一种智能合约运行系统,包括:前述任意一种智能合约运行装置,以及区块链节点的宿主机,宿主机包括区块链核心模块和通信代理层,区块链核心模块被配置为与启动的智能合约模块通过区块链节点的通信代理层交换智能合约的执行数据。根据本专利技术一些实施例的第四个方面,提供一种智能合约运行装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行前述任意一种智能合约运行方法。根据本专利技术一些实施例的第五个方面,提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现前述任意一种智能合约运行方法。上述专利技术中的一些实施例具有如下优点或有益效果:本专利技术的实施例可以根据智能合约的代码构建智能合约的脚本,并通过启动脚本来运行智能合约,使得在区块链节点部署在弹性云的环境中时,也能够执行和启动智能合约,提高了智能合约的通用性。通过以下参照附图对本专利技术的示例性实施例的详细描述,本专利技术的其它特征及其优点将会变得清楚。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为根据本专利技术一些实施例的智能合约运行方法的示例性流程图。图2为根据本专利技术一些实施例的脚本生成方法的示例性流程图。图3为根据本专利技术另一些实施例的智能合约运行方法的示例性流程图。图4为根据本专利技术一些实施例的智能合约和区块链核心模块通信方法的示例性流程图。图5为根据本专利技术一些实施例的智能合约和区块链核心模块数据交互方法的示例性流程图。图6为根据本专利技术又一些实施例的智能合约执行方法的示例性流程图。图7A和7B为根据本专利技术一些实施例的智能合约运行系统的示例性结构图。图8为根据本专利技术一些实施例的智能合约运行装置的示例性结构图。图9为根据本专利技术另一些实施例的智能合约运行装置的示例性结构图。图10为根据本专利技术又一些实施例的智能合约运行装置的示例性结构图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本专利技术及其应用或使用的任何限制。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所本文档来自技高网...

【技术保护点】
1.一种智能合约运行方法,包括:从区块链中读取智能合约的数据,其中,所述智能合约的数据包括智能合约代码;从所述智能合约的数据中获取智能合约代码的参数信息;根据所述参数信息构建智能合约的脚本;运行所述脚本以采用智能合约代码构建和启动智能合约模块,以便区块链核心模块与启动的智能合约模块通过区块链节点的通信代理层交换智能合约的执行数据。

【技术特征摘要】
1.一种智能合约运行方法,包括:从区块链中读取智能合约的数据,其中,所述智能合约的数据包括智能合约代码;从所述智能合约的数据中获取智能合约代码的参数信息;根据所述参数信息构建智能合约的脚本;运行所述脚本以采用智能合约代码构建和启动智能合约模块,以便区块链核心模块与启动的智能合约模块通过区块链节点的通信代理层交换智能合约的执行数据。2.根据权利要求1所述的智能合约运行方法,还包括:启动的智能合约模块与区块链核心模块通过区块链节点的通信代理层建立连接;启动的智能合约模块通过建立的连接接收区块链核心模块发送的基于网络协议的数据。3.根据权利要求2所述的智能合约运行方法,还包括:启动的智能合约模块通过建立的连接向区块链节点发送心跳通知,以便区块链核心模块响应于在预设时间内未收到智能合约模块发送的心跳通知,再次运行所述智能合约的脚本。4.根据权利要求1所述的智能合约运行方法,还包括:启动的智能合约模块与区块链核心模块通过区块链节点的通信代理层交换智能合约的执行数据,所述执行数据包括智能合约的执行标识,以便区块链核心模块保存所述智能合约的执行标识以及相应的执行数据。5.根据权利要求1~4中任一项所述的智能合约运行方法,其中,根据所述参数信息和智能合约的语言类型,构建所述语言类型对应的智能合约的脚本。6.根据权利要求1~4中任一项所述的智能合约运行方法,其中,从所述智能合约的数据中获取智能合约代码的编译参数和启动参数;根据所述编译参数构建智能合约的编译脚本,以及根据启动参数构建智能合约的启动脚本。7.根据权利要求1~4中任一项所述的智能合约运行方法,其中,所述启动的智能合约模块位于区块链节点的宿主机或者区块链智能合约集群。8.一种智能合约运行装置,包括:智能合约数据读取模块,被配置为从区块链中读取智能合约的数据,其中,所述智能合约的数据包括智能合约代码;参数信息获取模块,被配置为从所述智能合约的数据中获取智能合约代码的参数信息;脚本构建模块,被配置为根据所述参数信息构建智能合约的脚本;脚本运行模块,被配置为运行所述脚本以采用智能合约代码构建和启动智能合约模块,以便启动的智能合约模块与区块链核心模块通过...

【专利技术属性】
技术研发人员:徐开廷孙海波宋德伟
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

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

1