基于智能合约的事务请求处理方法、装置、设备和介质制造方法及图纸

技术编号:21485026 阅读:27 留言:0更新日期:2019-06-29 06:35
本发明专利技术实施例公开了一种基于智能合约的事务请求处理方法、装置、设备和介质。其中,该方法应用于区块链节点,该方法包括:产生基于目标智能合约的事务请求;根据本地数据对所述事务请求进行预执行操作,确定输入依赖数据集合和输出变更数据集合;将所述事务请求、输入依赖数据集合和输出变更数据集合绑定,并传输至区块链网络,以请求区块链网络中的其他节点执行所述事务请求。采用本发明专利技术实施例的技术方案,能够有效防止智能合约调用请求的延时执行,避免因延时执行导致的结果不确定性。

【技术实现步骤摘要】
基于智能合约的事务请求处理方法、装置、设备和介质
本专利技术实施例涉及区块链
,尤其涉及一种基于智能合约的事务请求处理方法、装置、设备和介质。
技术介绍
目前,区块链部署的智能合约,采用由区块链节点接收到发起的事务请求后,执行事务请求中的智能合约,并将执行结果存储到区块中的链上执行方式。在上述执行方式中,发起事务请求的节点只需要发起对智能合约进行调用的事务请求,操作简单。但是在不同时间执行智能合约的结果不同,上述执行方式中,智能合约的调用请求被打包到事务请求之后,区块链节点可以随时发送或延迟发送,对应的,其他区块链节点收到后也可立即执行或延迟执行,因此,存在执行结果不确定的缺陷。
技术实现思路
本专利技术实施例提供了一种智能合约的事务请求处理方法、装置、设备和介质,能够有效防止智能合约调用请求的延时执行,避免因延时执行导致的结果不确定性。第一方面,本专利技术实施例提供了一种基于智能合约的事务请求处理方法,应用于区块链节点,该方法包括:产生基于目标智能合约的事务请求;根据本地数据对所述事务请求进行预执行操作,确定输入依赖数据集合和输出变更数据集合;将所述事务请求、输入依赖数据集合和输出变更数据集合绑定,并传输至区块链网络,以请求区块链网络中的其他节点执行所述事务请求。第二方面,本专利技术实施例还提供了一种基于智能合约的事务请求处理方法,应用于区块链节点,该方法包括:获取在区块链网络中传输的事务请求、输入依赖数据集合和输出变更数据集合;在执行所述事务请求过程中,确定所述事务请求所涉及的输入数据和输出数据;将所述输入数据和输出数据,与获取的输入依赖数据集合和输出变更数据集合进行一致性比对;依据比对结果,确定所述事务请求执行的有效性。第三方面,本专利技术实施例还提供了一种基于智能合约的事务请求处理装置,配置于区块链节点,该装置包括:事务请求产生模块,用于产生基于目标智能合约的事务请求;数据集合确定模块,用于根据本地数据对所述事务请求进行预执行操作,确定输入依赖数据集合和输出变更数据集合;传输模块,用于将所述事务请求、输入依赖数据集合和输出变更数据集合绑定,并传输至区块链网络,以请求区块链网络中的其他节点执行所述事务请求。第四方面,本专利技术实施例还提供了一种基于智能合约的事务请求处理装置,配置于区块链节点,该装置包括:获取模块,用于获取在区块链网络中传输的事务请求、输入依赖数据集合和输出变更数据集合;数据确定模块,用于在执行所述事务请求过程中,确定所述事务请求所涉及的输入数据和输出数据;数据比对模块,用于将所述输入数据和输出数据,与获取的输入依赖数据集合和输出变更数据集合进行一致性比对;有效性确定模块,用于依据比对结果,确定所述事务请求执行的有效性。第五方面,本专利技术实施例提供了一种设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现第一方面中任意所述的基于智能合约的事务请求处理方法,或者实现第二方面中任意所述的基于智能合约的事务请求处理方法。第六方面,本专利技术实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面中任意所述的基于智能合约的事务请求处理方法,或者实现第二方面中任意所述的基于智能合约的事务请求处理方法。本专利技术实施例提供的基于智能合约的事务请求处理方法、装置、设备和介质,区块链节点在产生基于目标智能合约的事务请求后,将会根据本地数据对该事务请求进行预执行操作,确定输入依赖数据集合和输出变更数据集合,而后将所确定的输入依赖数据集合和输出变更数据集合,与该事务请求绑定并传输至区块链网络,以使区块链网络中的其他节点执行该事务请求。由于在不同时间执行智能合约的结果不同,本方案,事务请求的发起节点在向区块链网络传输事务请求时,一并将本地确定的该事务请求的输入依赖数据集合和输出变更数据集合一起传输,相当于提前构建了该事务请求有效的约束条件,便于后续其他节点依据该约束条件确定自身所执行的结果的有效性,进而能够有效防止智能合约调用请求的延时执行,避免因延时执行导致的结果不确定性。附图说明图1是本专利技术实施例一中提供的一种基于智能合约的事务请求处理方法的流程图;图2是本专利技术实施例二中提供的一种基于智能合约的事务请求处理方法的流程图;图3是本专利技术实施例三中提供的一种基于智能合约的事务请求处理方法的流程图;图4是本专利技术实施例四中提供的一种基于智能合约的事务请求处理方法的流程图;图5是本专利技术实施例五中提供的一种基于智能合约的事务请求处理方法的流程图;图6是本专利技术实施例六中提供的一种基于智能合约的事务请求处理方法的流程图;图7是本专利技术实施例七中提供的一种基于智能合约的事务请求处理装置的结构示意图;图8是本专利技术实施八中提供的一种基于智能合约的事务请求处理装置的结构示意图;图9是本专利技术实施例九中提供的一种设备的结构示意图。具体实施方式下面结合附图和实施例对本专利技术实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术实施例,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术实施例相关的部分而非全部结构。实施例一图1为本专利技术实施例一提供的一种基于智能合约的事务请求处理方法的流程图,本实施例可适用于对于基于智能合约的事务请求,如何避免因延迟执行事务请求导致执行结果不确定的情况。整套基于智能合约的事务请求处理方法可以由事务请求的发起节点和执行该事务请求的其他节点配合执行。本专利技术实施例的方案由区块链网络中的区块链节点来执行,具体为区块链网络中事务请求的发起节点来执行,该节点可以是普通区块链节点,也可以是轻量级节点。其中,轻量级节点是指部署有区块链的部署数据,如智能合约、共识机制等,但是未存储或存储部分区块数据和事务数据的区块链网络节点,可以参与区块链的事务请求交互过程,轻量级节点一般可部署于终端设备中。本专利技术实施例的方案可以由基于智能合约的事务请求处理装置来执行,该装置可采用硬件和/或软件的方式实现,并可集成于承载区块链节点的计算设备中。参见图1,该方法具体可以包括:S110,产生基于目标智能合约的事务请求。本实施例中,智能合约是指基于插件机制所编写的可供区块链网络中的节点调用并执行的代码段,一个智能合约的执行可实现至少一种功能或处理一类事务请求;可以是区块链创建时预先约定的,存储于创世区块中;还可以是在区块链的创建过程动态添加的,存储于某一区块内;也可以独立于区块链存储在区块链节点本地。可选的,区块链节点可部署多个智能合约,不同的智能合约可对应不同的功能。目标智能合约是指本机节点所部署的智能合约中的一个。事务请求可以是本机节点本地产生事务处理需求,或者接收到某一触发机制如第三方设备(如客户端、终端设备或服务器等)发送的事务处理需求时,根据该事务处理需求确定目标智能合约,而后基于该目标智能合约所产生的用于请求区块链网络中的其他节点,如当前区块链生成节点处理某种事务的请求。例如,本机节点在检测到用户在本机节点上点击事务按钮事件,则确定产生事务处理需求;之后可将事务处理需求界面展示给用户,并根据所获取的用户的输入和/或选择操作,确定目标智能合约;进而产生基于该目标智能合约的事务请求。本文档来自技高网...

【技术保护点】
1.一种基于智能合约的事务请求处理方法,其特征在于,应用于区块链节点,所述方法包括:产生基于目标智能合约的事务请求;根据本地数据对所述事务请求进行预执行操作,确定输入依赖数据集合和输出变更数据集合;将所述事务请求、输入依赖数据集合和输出变更数据集合绑定,并传输至区块链网络,以请求区块链网络中的其他节点执行所述事务请求。

【技术特征摘要】
1.一种基于智能合约的事务请求处理方法,其特征在于,应用于区块链节点,所述方法包括:产生基于目标智能合约的事务请求;根据本地数据对所述事务请求进行预执行操作,确定输入依赖数据集合和输出变更数据集合;将所述事务请求、输入依赖数据集合和输出变更数据集合绑定,并传输至区块链网络,以请求区块链网络中的其他节点执行所述事务请求。2.根据权利要求1所述的方法,其特征在于,根据本地数据对所述事务请求进行预执行操作,确定输入依赖数据集合和输出变更数据集合,包括:根据所述事务请求,在本地运行所述目标智能合约,确定所述目标智能合约执行过程中从本地数据中读取的数据,作为输入依赖数据,且向本地数据中进行写入的数据,作为输出变更数据,从而形成输入依赖数据集合和输出变更数据集合。3.根据权利要求1所述的方法,其特征在于,所述输入依赖数据集合包括预执行所述事务请求过程中所需要读取的参数名称和参数值;所述输出变更数据集合包括预执行所述事务请求后所要更新的参数名称和参数值。4.根据权利要求1所述的方法,其特征在于,根据本地数据对所述事务请求进行预执行操作,确定输入依赖数据集合和输出变更数据集合,包括:根据本地数据对所述事务请求进行预执行操作,以确定输入依赖数据和输出变更数据;对所述输入依赖数据进行加密处理或哈希处理,以形成输入依赖数据集合;对所述输出变更数据进行加密处理或哈希处理,以形成输出变更数据集合。5.根据权利要求1所述的方法,其特征在于,所述输入依赖数据集合和输出变更数据集合,用于接收到事务请求的区块链节点在执行所述事务请求时进行依赖数据验证,以确定所述事务请求执行的有效性。6.根据权利要求5所述的方法,其特征在于,将所述事务请求、输入依赖数据集合和输出变更数据集合绑定,并传输至区块链网络之后,还包括:在等待预设时长后,轮询区块链,以确定区块链中是否存储有所述事务请求关联的事务数据;在确定区块链中未存储有所述事务请求关联的事务数据后,重新预执行所述事务请求以确定输入依赖数据集合和输出变更数据集合,并向区块链网络发送所述事务请求、以及重新确定的输入依赖数据集合和输出变更数据集合。7.一种基于智能合约的事务请求处理方法,其特征在于,应用于区块链节点,所述方法包括:获取在区块链网络中传输的事务请求、输入依赖数据集合和输出变更数据集合;在执行所述事务请求过程中,确定所述事务请求所涉及的输入数据和输出数据;将所述输入数据和输出数据,与获取的输入依赖数据集合和输出变更数据集合进行一致性比对;依据比对结果,确定所述事务请求执行的有效性。8.根据权利要求7所述的方法,其特征在于,所述输入依赖数据集合包括预执行所述事务请求过程中所需要读取的参...

【专利技术属性】
技术研发人员:肖伟
申请(专利权)人:百度在线网络技术北京有限公司
类型:发明
国别省市:北京,11

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

1