一种基于区块链的交易一致性的处理方法、设备以及系统技术方案

技术编号:22331269 阅读:38 留言:0更新日期:2019-10-19 12:29
本发明专利技术提供一种基于区块链的交易一致性的处理方法、系统、计算机设备以及计算机可读存储介质,涉及数据处理技术领域。所述方法包括:节点接收区块链应用发送的交易请求,所述交易请求包含交易对应的交易序号,所述节点为区块链中的一个节点;在所述交易请求中添加与所述交易序号对应的交互序号,将添加后的交易请求发送至区块链网络以进行交易执行和网络共识确认;接收所述区块链网络返回的交易结果;将所述交易结果发送至所述区块链应用。本发明专利技术引入交易序号以及交互序号,可以保证区块链系统在运行时应用、节点以及网络间的交易一致性。

【技术实现步骤摘要】
一种基于区块链的交易一致性的处理方法、设备以及系统
本专利技术关于数据处理
,特别是关于区块链系统中交易数据的处理技术,具体的讲是一种基于区块链的交易一致性的处理方法、基于区块链的交易一致性的处理系统、计算机设备以及计算机可读存储介质。
技术介绍
本部分旨在为权利要求书中陈述的本专利技术的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。对于传统的非区块链系统,保证系统间的一致性有许多种方案,最常见的如“尝试-确认-取消”的模型,通过各系统同时尝试交易可以正常执行后再提交确认交易,并在出现异常后取消交易的方式来保证系统的一致性,但由于区块链的特性,并无法实现“尝试”的动作,交易的执行情况基于网络,一旦交易提交后共识生效则即确认,故此种方法无法应用在区块链系统中。由于区块链底层技术多种多样,对于应用与节点不一致的问题的讨论也基于不同的技术底层。目前主要的解决方案是在交易上增加最大可确认区块数,从底层上限制在交易发送到网络后,如果当前区块已经超过某个交易规定的最大可确认区块数,交易还未被网络共识确认,则认定交易失败,同时整个网络在进行共识时也不会确认超过最大可确认区块数的交易。具体来说,即交易中规定到第n个块后,当前交易还未被整个网络共识确认,则该交易被置为失败,其他节点在第n个块后收到该交易也认定为失败。在使用这种方法的系统中,区块链中的节点在发送交易后不断的扫描读取当前区块链网络的最新区块中的已确认交易,如果到原交易指定的块数的区块生成后仍然未找到在之前的区块中找到该交易的确认信息,则认为该交易失败,并返回应用层交易失败信息。在交易上增加最大可确认区块数的方式只限于区块会不断生成的区块链技术,如比特币,以太坊等,即没有区块也会生成空区块。但是对于商业领域常用的联盟链技术如fabric等区块链底层技术,在没有交易时不会生成新的区块,所以区块的产生不是均匀的,这使的交易中规定的最大可确认区块产生的时间不可控,使得使用最大可确认区块数来保证底层和应用的一致的方法可用性极大降低。因此,如何提供一种新的方案,其能够解决上述技术问题是本领域亟待解决的技术难题。
技术实现思路
有鉴于此,本专利技术提供了一种基于区块链的交易一致性的处理方法、基于区块链的交易一致性的处理系统、计算机设备以及计算机可读存储介质,通过设置特殊的交易重发机制,在保证不出现交易重放的情况下减少交易未明带来的影响,引入交易序号以及交互序号,可以保证区块链系统在运行时应用、节点以及网络间的交易一致性。为了实现上述目的,本专利技术提供了一种基于区块链的交易一致性的处理方法,所述方法包括:节点接收区块链应用发送的交易请求,所述交易请求包含交易对应的交易序号,所述节点为区块链中的一个节点;在所述交易请求中添加与所述交易序号对应的交互序号,将添加后的交易请求发送至区块链网络以进行交易执行和网络共识确认;接收所述区块链网络返回的交易结果;将所述交易结果发送至所述区块链应用。本专利技术的目的之一是,提供了一种基于区块链的交易一致性的处理系统,所述系统包括区块链应用、区块链网络以及多个节点;其中,所述区块链应用,用于发送交易请求,所述交易请求包含交易对应的交易序号;所述节点包括:交易请求接收模块,用于接收所述交易请求;交易请求添加模块,用于在所述交易请求中添加与所述交易序号对应的交互序号;交易请求发送模块,用于将添加后的交易请求发送至所述区块链网络以进行交易执行和网络共识确认;交易结果接收模块,用于接收所述区块链网络返回的交易结果;交易结果发送模块,用于将所述交易结果发送至所述区块链应用。本专利技术的目的之一是,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现一种基于区块链的交易一致性的处理方法。本专利技术的目的之一是,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行一种基于区块链的交易一致性的处理方法。本专利技术的有益效果在于,提供了一种基于区块链的交易一致性的处理方法、基于区块链的交易一致性的处理系统、计算机设备以及计算机可读存储介质,通过设置特殊的交易重发机制,在保证不出现交易重放的情况下减少交易未明带来的影响,引入交易序号以及交互序号,分别用来保证交易在多次重试情况下的唯一性和在交易序号冲突情况下的异常情况排查,增加交易取消交易,在多次交易执行失败的情形下主动申明失败防止交易未明,可以保证区块链系统在运行时应用、节点以及网络间的交易一致性。为让本专利技术的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种基于区块链的交易一致性的处理方法的实施方式一的流程图;图2为本专利技术实施例提供的一种基于区块链的交易一致性的处理方法的实施方式二的流程图;图3为本专利技术实施例提供的一种基于区块链的交易一致性的处理方法的实施方式三的流程图;图4为本专利技术实施例提供的一种基于区块链的交易一致性的处理方法的实施方式四的流程图;图5为本专利技术实施例提供的一种基于区块链的交易一致性的处理方法的实施方式五的流程图;图6为本专利技术实施例提供的一种基于区块链的交易一致性的处理方法的实施方式六的流程图;图7为本专利技术实施例提供的一种基于区块链的交易一致性的处理系统的结构示意图;图8为本专利技术实施例提供的一种基于区块链的交易一致性的处理系统中节点的实施方式一的结构示意图;图9为本专利技术实施例提供的一种基于区块链的交易一致性的处理系统中节点的实施方式二的结构示意图;图10为本专利技术实施例提供的一种基于区块链的交易一致性的处理系统中节点的实施方式三的结构示意图;图11为本专利技术实施例提供的一种基于区块链的交易一致性的处理系统中节点的实施方式四的结构示意图;图12为本专利技术实施例提供的一种基于区块链的交易一致性的处理系统中节点的实施方式五的结构示意图;图13为本专利技术实施例提供的一种基于区块链的交易一致性的处理系统中节点的实施方式六的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本领域技术技术人员知道,本专利技术的实施方式可以实现为一种系统、装置、方法或计算机程序产品。因此,本专利技术公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。下面首先介绍本专利技术涉及的术语。区块链系统:一种基于分布式账本的去中心化交易系统。区块链节点:实现了区块链协议的设施,负责智能合约运行,分布式账本更新,共识确认等区块链功能,在下文中简称节点。区块链网络:由若干个区块链节点通过约定的区块链通信协议组成的分布式网络,实现整个区块链功能的本文档来自技高网
...

【技术保护点】
1.一种基于区块链的交易一致性的处理方法,其特征在于,所述方法包括:节点接收区块链应用发送的交易请求,所述交易请求包含交易对应的交易序号,所述节点为区块链中的一个节点;在所述交易请求中添加与所述交易序号对应的交互序号,将添加后的交易请求发送至区块链网络以进行交易执行和网络共识确认;接收所述区块链网络返回的交易结果;将所述交易结果发送至所述区块链应用。

【技术特征摘要】
1.一种基于区块链的交易一致性的处理方法,其特征在于,所述方法包括:节点接收区块链应用发送的交易请求,所述交易请求包含交易对应的交易序号,所述节点为区块链中的一个节点;在所述交易请求中添加与所述交易序号对应的交互序号,将添加后的交易请求发送至区块链网络以进行交易执行和网络共识确认;接收所述区块链网络返回的交易结果;将所述交易结果发送至所述区块链应用。2.根据权利要求1所述的方法,其特征在于,所述方法还包括保存所述交易请求对应的交易序号以及交互序号,所述交易序号以及交互序号通过节点标识或时间戳或哈希算法生成。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:当所述节点未收到所述区块链网络返回的与所述交易请求对应的交易结果时,将添加后的交易请求重新发送至所述区块链网络以进行交易执行和网络共识确认。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:当所述节点接收到所述区块链网络返回的交易序号重复信息时,通过所述区块链网络查询获得所述交易序号的已生效交易对应的交互序号值;判断所述交互序号值与添加后的交易请求中的交互序号是否一致;当判断为否时,所述节点向所述区块链应用发送错误信息;否则,所述节点向所述区块链应用发送交易成功信息。5.根据权利要求3所述的方法,其特征在于,所述方法还包括:当所述节点将添加后的交易请求重新发送n次至所述区块链网络且未收到所述区块链网络返回的交易结果时,发送所述交易序号至所述区块链网络以申明所述交易序号作废,所述n为预先设定的次数阈值;接收所述区块链网络返回的取消交易成功信息;向所述区块链应用发送交易失败信息。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:当所述节点发送所述交易序号至所述区块链网络且接收到所述区块链网络返回的交易序号重复信息时,通过所述区块链网络查询获得所述交易序号的已生效交易对应的交互序号值;判断所述交互序号值与添加后的交易请求中的交互序号是否一致;当判断为否时,所述节点向所述区块链应用发送错误信息;否则,所述节点向所述区块链应用发送交易成功信息。7.根据权利要求5所述的方法,其特征在于,所述方法还包括:当所述节点发送所述交易序号至所述区块链网络且未接收到所述区块链网络返回的取消交易成功信息时,向所述区块链应用发送特殊报错信息。8.一种基于区块链的交易一致性的处理系统,其特征在于,所述系统包括区块链应用、区块链网络以及多个节点;其中,所述区块链应用,用于发送交易请求,所述交易请求包含交易对应的交易序号;所述节点包括:交易请求接收模块,用于接收所述交易请求;交易请求添加模块,用于在所述交易请求中添加与所述交易序号对应的交互序号;交易请求发送模块,...

【专利技术属性】
技术研发人员:冯冠杰张国华赵书祥宋海曦王楠胡运韬祝赫
申请(专利权)人:中国银行股份有限公司
类型:发明
国别省市:北京,11

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

1