CN110490734A - 交易组构建、广播方法和系统、设备及存储介质 - Google Patents
交易组构建、广播方法和系统、设备及存储介质 Download PDFInfo
- Publication number
- CN110490734A CN110490734A CN201910633135.4A CN201910633135A CN110490734A CN 110490734 A CN110490734 A CN 110490734A CN 201910633135 A CN201910633135 A CN 201910633135A CN 110490734 A CN110490734 A CN 110490734A
- Authority
- CN
- China
- Prior art keywords
- block chain
- trading group
- chain node
- transaction
- group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1854—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with non-centralised forwarding system, e.g. chaincast
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Technology Law (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Development Economics (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了交易组构建、广播方法和系统、设备及存储介质,属于区块链技术领域。包括:至少一个第二区块链节点收到交易组及轮次i,验证交易组是否通过?若否,则不作处理;若是,则判断i<Turn是否为真;若是,则i=i+1,广播交易组及轮次i到与第二区块链节点相连接的至少一个第三区块链节点上;若否,则广播交易组哈希列表到与第二区块链节点相连接的至少一个第三区块链节点上。针对交易组被广播内容较大,占用过多的区块链网络带宽资源的技术问题,本发明广播交易组哈希值列表,减少广播内容大小,减少对区块链网络带宽资源占用,有助于提高区块链网络的稳定性。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及交易组构建、广播方法和系统、设备及存储介质。
背景技术
现有区块链项目如复杂美chain33架构的底层区块链中加入了交易组(详见申请号为201810695527.9的中国发明专利申请)的概念。交易组是将多笔交易组装成一笔特殊的交易缓存在Mempool模块中,因一笔交易的大小至少有250字节,所以对于包含了多笔交易的交易组而言,其大小达500字节以上。
区块链底层P2P网络信息随着整个网络节点数量的增多,交易会在网络重复传输多次,这些重复传输的冗余交易信息会占用大量的CPU以及带宽资源。现有的区块链网络中,共识节点接收到用户发来的交易后,为使交易不在本地长时间缓存,共识节点会立即将收到的交易向区块链网络的全节点进行广播;若同一时间,有较多的共识节点将收到的交易向区块链网络的全节点进行广播,且交易信息较大,则会造成带宽占用大、网络拥堵等问题。现有方案的缺陷是交易被重复广播,且广播的是交易的整个内容,一个节点多次收到同一笔完整的交易,占用不必要的网络带宽。那么这一技术问题反应在交易组的广播上时,会更加严重。
发明内容
1.发明要解决的技术问题
为了克服上述技术问题,本发明提供了交易组构建、广播方法和系统、设备及存储介质。交易组被广播到那些没有广播的节点,减少了交易组的重复广播,不需要对交易组进行重复验证,从而减少了对节点计算资源的占用,减少对区块链网络带宽资源占用,有助于提高区块链网络的稳定性。通过减少广播交易组的大小,从而减少对区块链网络带宽的占用。
2.技术方案
为解决上述问题,本发明提供的技术方案为:
第一方面,本发明提供了一种交易组构建方法,包括:将至少一笔交易排序成T1、T2、T3、、、Tm、、、Tn,其中n为整数;计算每个交易哈希值Hash-T1、Hash-T2、Hash-T3、、、Hash-Tm、、、Hash-Tn;S1、交易内容Ti、交易哈希值Hash-Ti、交易组中交易总数n、下一交易哈希值Hash-Ti+1和交易组头部交易哈希值Hash-T1组合起来,并签名形成交易组中的子交易Txi;i=1、2、3、、、m、、、n-1时,分别重复步骤S1,对应分别形成交易组的子交易Tx1、Tx2、Tx3、、、Txm、、、Txn-1;交易内容Tn、交易哈希值Hash-Tn、交易组中交易总数n和交易组头部交易哈希值Hash-T1组合起来,并签名形成交易组中的子交易Txn;子交易Tx1、Tx2、Tx3、、、Txm、、、Txn组合在一起形成交易组。
第二方面,本发明提供了一种交易组广播方法,包括:广播第一区块链节点根据以上所述的一种交易组构建方法形成的交易组及被设置为零的轮次i到与第一区块链节点相连接的至少一个第二区块链节点上。
第三方面,本发明又提供了一种交易组广播方法,包括:至少一个第二区块链节点收到交易组及轮次i,验证交易组是否通过?若否,则不作处理;若是,则判断i<Turn是否为真;若是,则i=i+1,广播交易组及轮次i到与第二区块链节点相连接的至少一个第三区块链节点上;若否,则广播足以唯一识别交易组的标识到与第二区块链节点相连接的至少一个第三区块链节点上;其中,交易组至少被广播的轮次数Turn由公式
∑QTurn=Number
确定,轮次i为大于等于零的整数,Number为区块链网络中的区块链节点总数;Q为在区块链网络中,任一区块链节点连接的区块链节点个数。
优选地,至少一个第三区块链节点收到所述足以唯一识别交易组的标识;判断是否存在交易组?若是,则广播足以唯一识别交易组的标识到与第三区块链节点相连接的至少一个第四区块链节点上;若否,则向发送交易组到第三区块链节点的节点请求获取交易组,第三区块链节点接收交易组,验证交易组是否通过?若否,则不作处理;若是,则广播足以唯一识别交易组的标识到与第三区块链节点相连接的至少一个第四区块链节点上。
优选地,所述交易组包括以上所述的子交易Tx1、Tx2、Tx3、、、Txm、、、Txn。
优选地,所述交易组中每个交易哈希值Hash-T1、Hash-T2、Hash-T3、、、Hash-Tm、、、Hash-Tn。
优选地,在所述验证交易组之前,记录足以唯一识别交易组的标识及发送交易组给第二区块链节点的节点名称;所述广播交易组及轮次i到与第二区块链节点相连接的至少一个第三区块链节点上,进一步地改进是:广播交易组及轮次i到与第二区块链节点相连接的,除向第二区块链节点发送交易组的节点以外,至少一个第三区块链节点上;所述广播足以唯一识别交易组的标识到与第二区块链节点相连接的至少一个第三区块链节点上,进一步地改进是:广播足以唯一识别交易组的标识到与第二区块链节点相连接的,除向第二区块链节点发送交易组的节点以外,至少一个第三区块链节点上。
优选地,所述足以唯一识别交易组的标识包括:交易组中所有交易哈希值或其部分字节,或交易组中任一交易哈希值或其部分字节,或交易组中各交易的ID号或名称,或交易组中任一交易的ID号或名称,或交易组ID号,或交易组名称。
优选地,至少一个第三区块链节点收到所述足以唯一识别交易组的标识,记录足以唯一识别交易组的标识及发送交易组给第三区块链节点的节点名称;判断是否存在交易组?若是,则广播足以唯一识别交易组的标识到与第三区块链节点相连接的,除向第二区块链节点发送交易组的节点以外,至少一个第四区块链节点上;若否,则向发送交易组到第三区块链节点的节点请求获取交易组,第三区块链节点接收交易组,验证交易组是否通过?若否,则不作处理;若是,则广播足以唯一识别交易组的标识到与第三区块链节点相连接的,除向第二区块链节点发送交易组的节点以外,至少一个第四区块链节点上。
第四方面,本发明提供了一种交易组广播系统,适用于区块链节点,根据以上所述的一种交易组广播方法,包括:交易接收模块,用于接收交易组及轮次i;验证模块,用于验证交易接收模块接收的交易组;广播轮次模块,用于设置轮次i为零;或,在验证模块验证交易组通过后,用于判断i<Turn是否为真;若是,还用于设置i=i+1;交易广播模块,用于广播交易组及广播轮次模块设置后的轮次i到与第一区块链节点相连接的至少一个第二区块链节点上;或,广播交易组及广播轮次模块设置后的轮次i到与第二区块链节点相连接的至少一个第三区块链节点上;或,广播足以唯一识别交易组的标识到与第二区块链节点相连接的至少一个第三区块链节点上。
优选地,还包括交易存储模块,用于存储交易组及足以唯一识别交易组的标识。
优选地,还包括交易接收记录模块,用于记录足以唯一识别交易组的标识,及发送交易组给第二区块链节点的节点名称;或,用于记录发送交易组给第三区块链节点的节点名称。
优选地,还包括交易判断模块,用于判断区块链节点是否存在交易组。
优选地,还包括交易组构建模块,用于根据以上所述的一种交易组构建方法形成交易组。
优选地,还包括交易请求模块,用于向发送交易组到第三区块链节点的节点请求获取交易组;所述交易接收模块,还用于接收足以唯一识别交易组的标识。
第五方面,本发明提供了一种设备,所述设备包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如以上所述的方法。
第六方面,本发明提供了一种存储有计算机程序的存储介质,该程序被处理器执行时实现如以上任一项所述的方法。
3.有益效果
采用本发明提供的技术方案,与现有技术相比,具有如下有益效果:
足以唯一识别交易组的标识被广播,减少广播内容大小,减少对区块链网络带宽资源占用,有助于提高区块链网络的稳定性。
附图说明
图1为本发明实施例2提供的一种交易组广播方法流程图。
图2为本发明实施例1提供的一种交易组构建方法所构建的交易组结构示意图。
图3为图1的第一优选实施例提供的一种交易组广播方法流程图。
图4为图1的第二优选实施例提供的一种交易组广播方法流程图。
图5为图1的第三优选实施例提供的一种交易组广播方法流程图。
图6为实施例3提供的一种交易组广播系统结构示意图。
图7为图3一优选实施例提供的一种交易组广播系统结构示意图。
图8为本发明的一种设备结构示意图。
具体实施方式
为进一步了解本发明的内容,结合附图及实施例对本发明作详细描述。
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
本发明中所述的第一、第二等词语,是为了描述本发明的技术方案方便而设置,并没有特定的限定作用,均为泛指,对本发明的技术方案不构成限定作用。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
实施例1
本实施例提出一种交易组构建方法,包括:将至少一笔交易排序成T1、T2、T3、、、Tm、、、Tn,其中n为整数;计算每个交易哈希值Hash-T1、Hash-T2、Hash-T3、、、Hash-Tm、、、Hash-Tn;
其中,将至少一笔交易排序成T1、T2、T3、、、Tm、、、Tn,其中n为整数;比如原料供应商、制造商、零售商将互相之间约定的合约记录到区块链上,希望在消费者向零售商回款(交易C)后,零售商可以向制造商回款(交易D),制造商可以向供应商回款(交易E);即排序成交易C、D和E,用以形成交易组,实现这组交易的原子性,要么交易全部执行成功,要么全部失败。所以交易C、D和E排序对交易最终执行的成功与否,或执行成功的先后顺序均无关系。
现有技术中中国发明专利申请,申请号为2017101355993,公开了一种基于区块链技术的担保授信融资方案,在步骤S4中,当资金需求方将融资比发送给资金供给方公钥地址(交易A1),资金供给方即将数字货币或人民币打入资金需求方相应账户(交易B1),这两笔交易在现实情况中仍然存在一定风险:没有措施能够确保资金供给方一定会在资金需求方将融资币发送给资金供给方后,资金供给方能够将数字货币或人民币打入资金需求方相应账户。
而本实施例在区块链上创建的交易组创造性地解决了这一技术问题,排序成交易A1和B1,用以形成交易组,实现这组交易的原子性;交易A1和交易B1构成的交易组为:交易A1作为头部交易,交易B1作为尾部交易;或者,交易B1作为头部交易,交易A1作为尾部交易。
交易内容Tm、交易哈希值Hash-Tm、交易组中交易总数n、下一交易哈希值Hash-Tm+1和交易组头部交易哈希值Hash-T1组合起来,并签名形成交易组中的子交易Txm;类似地,分别形成交易组中的子交易Tx1、Tx2、Tx3、、、Txm、、、Txn-1;
交易内容Tn、交易哈希值Hash-Tn、交易组中交易总数n和交易组头部交易哈希值Hash-T1组合起来,并签名形成交易组中的子交易Txn;
子交易Tx1、Tx2、Tx3、、、Txm、、、Txn组合在一起形成交易组,如图2所示。
实施例2
本实施例提出一种交易组广播方法,适用于区块链节点,包括:
当交易组由第一区块链节点按照实施例1中所述的一种交易组构建方法形成交易组后,设置轮次i为零后,广播交易组及轮次i到与第一区块链节点连接的至少一个第二区块链节点上。
广播第一区块链节点形成的交易组及被设置为零的轮次i到与第一区块链节点连接的至少一个第二区块链节点上。
当其他一个及以上的区块链节点收到交易组及轮次n后,进行如下流程,如图1所示,包括:
S101、至少一个第二区块链节点收到交易组及轮次i;
S102、验证交易组是否通过?若否,则
S103、不作处理,或向发送交易组给第二区块链节点的节点发送交易组验证没通过的消息;若是,则
S104、判断i<Turn是否为真?若是,则
S105、i=i+1,广播交易组及轮次i到与第二区块链节点相连接的至少一个第三区块链节点上;若否,则
S106、广播足以唯一识别交易组的标识到与第二区块链节点相连接的至少一个第三区块链节点上;
其中,交易组至少被广播的轮次数Turn由公式
∑QTurn=Number
确定,轮次i为大于等于零的整数,Number为区块链网络中的区块链节点总数;Q为在区块链网络中,任一区块链节点连接的区块链节点个数。
其中,在一特定的区块链网络中,每个区块链节点连接的区块链节点个数各不相同,为确保被广播到覆盖到尽可能多的节点,Q可以取最大值,即,对于某一区块链节点而言,连接区块链节点个数最多的值Qmax。Q也可以取最小值,即,对于某一区块链节点而言,连接区块链节点个数最少的值Qmin。也就是Qmin≤Q≤Qmax;但不论Q取什么值,是否在上述取值范围内,采用本实施例的技术方案均可确保交易组被广播到区块链网络中的所有区块链节点。
区块链网络中的区块链节点总数Number是动态变化的,所以,Turn值也会随之动态变化,根据以上公式进行动态调整,但这不影响一个交易组在区块链网络中的广播过程。
通过以上公式来确定Turn,一个交易组在区块链网络中被广播Turn轮次后,基本可以确定该笔交易已经被广播到区块链网络中的大多数区块链节点上了。
图1所示广播方法广播出去的交易组,被同一区块链网络中的任一区块链节点收到后,假如i<Turn仍成立,均按照图1所示方法继续广播交易组到其他与之连接的区块链节点。
假如i≥Turn,但对于那些接收到交易组哈希列表的区块链节点处理方法需作调整,具体方法,如图3所示,包括:
S301、至少一个第三区块链节点收到所述足以唯一识别交易组的标识;
S302、判断是否存在交易组?若是,则
S303、广播足以唯一识别交易组的标识到与第三区块链节点相连接的至少一个第四区块链节点上;若否,则
S304、向发送交易组到第三区块链节点的节点请求获取交易组;
S305、第三区块链节点接收交易组;
S306、验证交易组是否通过?若否,则
S307、不作处理;若是,则执行步骤S303。
第二、三、四区块链节点是除了创建交易组节点的任何一个区块链节点,即此处所描述的第二、三、四区块链节点,仅是为了表示本技术方案内容描述的方便而设置的,对发明内容不作限定。
进一步地改进在于,在所述验证交易组之前,
记录足以唯一识别交易组的标识及发送交易组给第二区块链节点的节点名称;以便识别发送交易组给第二区块链节点的节点,从而使第二区块链节点在广播交易组时,将该节点过滤掉,防止交易组重复广播,占用区块链带宽资源。
所述广播交易组及轮次i到与第二区块链节点相连接的至少一个第三区块链节点上,进一步地改进是:
广播交易组及轮次i到与第二区块链节点相连接的,除向第二区块链节点发送交易组的节点以外,至少一个第三区块链节点上;
所述广播足以唯一识别交易组的标识到与第二区块链节点相连接的至少一个第三区块链节点上,进一步地改进是:
广播足以唯一识别交易组的标识到与第二区块链节点相连接的,除向第二区块链节点发送交易组的节点以外,至少一个第三区块链节点上。
经过上述改进后,本实施例提出了一种优选的交易组广播方法,如图4所示,包括:
S201、至少一个第二区块链节点收到交易组及轮次i;
S202、记录足以唯一识别交易组的标识及发送交易组给第二区块链节点的节点名称;
S203、验证交易组是否通过?若否,则
S204、不作处理,或向发送交易组给第二区块链节点的节点发送交易组验证没通过的消息;若是,则
S205、判断i<Turn是否为真?若是,则
S206、i=i+1,广播交易组及轮次i到与第二区块链节点相连接的,除向第二区块链节点发送交易组的节点以外,至少一个第三区块链节点上;若否,则
S207、广播足以唯一识别交易组的标识到与第二区块链节点相连接的,除向第二区块链节点发送交易组的节点以外,至少一个第三区块链节点上;
其中,交易组至少被广播的轮次数Turn由公式
∑25Turn=Number
确定,轮次i为大于等于零的整数,Number为区块链网络中的区块链节点总数。
其中,所述足以唯一识别交易组的标识包括:交易组中所有交易哈希值或其部分字节,或交易组中任一交易哈希值或其部分字节,或交易组中各交易的ID号或名称,或交易组中任一交易的ID号或名称,或交易组ID号,或交易组名称。
鉴于一个交易组的原子性,及整体性,在任一个区块链节点上,要么收到交易组中所有交易的内容,要么收不到;因交易组是作为一个整体被广播的,因此只要记录交易组中任一笔交易哈希值,即可唯一识别出该交易组。
在一个确定的区块链项目中,因每个交易的收发地址,及交易内容等各不相同,所以交易哈希值具有唯一识别交易的特性。交易ID号类比于中国公民使用的身份证号码,在一个确定的区块链项目中,交易名称也可以唯一识别一笔交易,但并不代表所有区块链项目都是,在本方法实际应用过程中,应根据具体应用场景而定。
交易哈希值的部分字节:假设F(x)是对交易哈希值取部分字节的函数,那么函数F(x),以F(Hash-Tm)为例,实现的效果是,对交易Tm的哈希值Hash-Tm,取其前第1-5个字节,后第1-5个字节,或者中间位置第1-5个字节,也可以是中间9个字节,或者,末尾9个字节,或者,前9个字节,但无论怎么取值,均可以保证足以唯一识别出所述交易Tm的哈希值Hash-Tm,进而足以识别出交易组,从而进一步减小交易组广播的大小。
图4所示广播方法广播出去的交易组,被同一区块链网络中的任一区块链节点收到后,假如i<Turn仍成立,均按照图4所示方法继续广播交易组到其他与之连接的区块链节点。
假如i≥Turn,但对于那些接收到足以唯一识别交易组的标识的区块链节点处理方法需作调整,具体方法,如图5所示,包括:
S601、至少一个第三区块链节点收到足以唯一识别交易组的标识;
S602、记录足以唯一识别交易组的标识及发送交易组给第二区块链节点的节点名称;
S603、判断是否存在交易组?若是,则
S604、广播足以唯一识别交易组的标识到与第三区块链节点相连接的,除向第二区块链节点发送交易组的节点以外,至少一个第四区块链节点上;若否,则
S605、向发送交易组到第三区块链节点的节点请求获取交易组;
S606、第三区块链节点接收交易组;
S607、验证交易组是否通过?若否,则
S608、不作处理;若是,则执行步骤S604。
第二、三、四区块链节点是除创建交易组的节点外的任何一个区块链节点,即此处所描述的第二、三、四区块链节点,仅是为了表示本技术方案内容描述的方便而设置的,对发明内容不作限定。
进一步的改进是,所述交易组包括实施例1中所述的子交易Tx1、Tx2、Tx3、、、Txm、、、Txn。所述交易组哈希列表包括交易组中每个交易T1、T2、T3、、、Tm、、、Tn,其中n为整数;对应的交易哈希值Hash-T1、Hash-T2、Hash-T3、、、Hash-Tm、、、Hash-Tn;或,足以唯一识别出交易组中每个交易的交易哈希值Hash-T1、Hash-T2、Hash-T3、、、Hash-Tm、、、Hash-Tn的部分字节。假设F(x)是对交易组中每个交易哈希值取部分字节的函数,那么函数F(x),以F(Hash-Tm)为例,实现的效果是,对交易Tm的哈希值Hash-Tm,取其前第1-5个字节,后第1-5个字节,或者中间位置第1-5个字节,也可以是中间9个字节,或者,末尾9个字节,或者,前9个字节,但无论怎么取值,均可以保证足以唯一识别出所述交易Tm的哈希值Hash-Tm,从而进一步减小交易组广播的大小。
图3和5中对于步骤S302、S603中判断是否存在交易组?包括以下两种情况:
第一种情况,当收到的足以唯一识别交易组的标识是交易组中每个交易的交易哈希值时,因交易组作为整体被广播,交易组中的交易要么被全部广播,要么全不管广播,因此,只需取足以唯一识别出交易组中任一交易的标识,如其中任一交易哈希值与第三区块链节点本地缓存的交易对应的交易哈希值进行比对判断,如果存在相同的交易哈希值,则说明交易组存在于该节点,否则,该节点上不存在交易组。
第二种情况,当收到的足以唯一识别交易组的标识是足以识别出交易组中每个交易的交易哈希值的部分字节时,则根据交易组被第一次广播时,预先设置的对交易组中每个交易哈希值取部分字节的函数F(x),对第三区块链节点本地缓存的交易取部分字节,然后与交易组中任一交易的哈希值部分字节进行比对判断,如果存在相同的交易哈希值,则说明交易组存在于该节点,否则,该节点上不存在交易组。
实施例3
本实施例提出一种交易组广播系统,适用于区块链节点,根据实施例2中任一技术方案所述的一种交易组广播方法,如图6所示,包括:
交易接收模块,用于接收交易组及轮次i;
验证模块,用于验证交易接收模块接收的交易组;
广播轮次模块,用于设置轮次i为零;
或,在验证模块验证交易组通过后,用于判断i<Turn是否为真;若是,还用于设置i=i+1;
交易广播模块,用于广播交易组及广播轮次模块设置后的轮次i到与第一区块链节点相连接的至少一个第二区块链节点上;
或,广播交易组及广播轮次模块设置后的轮次i到与第二区块链节点相连接的至少一个第三区块链节点上;
或,广播足以唯一识别交易组的标识到与第二区块链节点相连接的至少一个第三区块链节点上。
如图7所示,还包括交易存储模块,用于存储交易组及足以唯一识别交易组的标识;还包括交易接收记录模块,用于记录足以唯一识别交易组的标识,及发送交易组给第二区块链节点的节点名称;或,用于记录发送交易组给第三区块链节点的节点名称;还包括交易判断模块,用于判断区块链节点是否存在交易组;还包括交易组构建模块,用于实施例1所述的一种交易组构建方法形成交易组;还包括交易请求模块,用于向发送交易组到第三区块链节点的节点请求获取交易组;所述交易接收模块,还用于接收足以唯一识别交易组的标识。
实施例4
一种设备,所述设备包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如以上所述的方法。
一种存储有计算机程序的存储介质,该程序被处理器执行时实现如以上实施例1所述的方法。
图8为本发明一实施例提供的一种设备的结构示意图。
如图8所示,作为另一方面,本申请还提供了一种设备500,包括一个或多个中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM503中,还存储有设备500操作所需的各种程序和数据。CPU501、ROM502以及RAM503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本申请公开的实施例,上述任一实施例描述的方法可以被实现为计算机软件程序。例如,本申请公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行上述任一实施例描述的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。
作为又一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例的装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,该程序被一个或者一个以上的处理器用来执行描述于本申请的方法。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以通过执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以通过专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,各所述单元可以是设置在计算机或移动智能设备中的软件程序,也可以是单独配置的硬件装置。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离本申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (17)
1.一种交易组构建方法,其特征在于,包括:将至少一笔交易排序成T1、T2、T3、、、Tm、、、Tn,其中n为整数;计算每个交易哈希值Hash-T1、Hash-T2、Hash-T3、、、Hash-Tm、、、Hash-Tn;
S1、交易内容Ti、交易哈希值Hash-Ti、交易组中交易总数n、下一交易哈希值Hash-Ti+1和交易组头部交易哈希值Hash-T1组合起来,并签名形成交易组中的子交易Txi;i=1、2、3、、、m、、、n-1时,分别重复步骤S1,对应分别形成交易组的子交易Tx1、Tx2、Tx3、、、Txm、、、Txn-1;
交易内容Tn、交易哈希值Hash-Tn、交易组中交易总数n和交易组头部交易哈希值Hash-T1组合起来,并签名形成交易组中的子交易Txn;
子交易Tx1、Tx2、Tx3、、、Txm、、、Txn组合在一起形成交易组。
2.一种交易组广播方法,其特征在于,包括:
广播第一区块链节点根据权利要求1所述的一种交易组构建方法形成的交易组及被设置为零的轮次i到与第一区块链节点相连接的至少一个第二区块链节点上。
3.一种交易组广播方法,其特征在于,包括:
至少一个第二区块链节点收到交易组及轮次i,验证交易组是否通过?若否,则不作处理;若是,则
判断i<Turn是否为真;若是,则
i=i+1,广播交易组及轮次i到与第二区块链节点相连接的至少一个第三区块链节点上;若否,则
广播足以唯一识别交易组的标识到与第二区块链节点相连接的至少一个第三区块链节点上;其中,交易组至少被广播的轮次数Turn由公式
∑QTurn=Number
确定,轮次i为大于等于零的整数,Number为区块链网络中的区块链节点总数;Q为在区块链网络中,任一区块链节点连接的区块链节点个数。
4.根据权利要求3所述的方法,其特征在于,所述足以唯一识别交易组的标识包括:交易组中所有交易哈希值或其部分字节,或交易组中任一交易哈希值或其部分字节,或交易组中各交易的ID号或名称,或交易组中任一交易的ID号或名称,或交易组ID号,或交易组名称。
5.根据权利要求3所述的方法,其特征在于,至少一个第三区块链节点收到所述足以唯一识别交易组的标识;
判断是否存在交易组?
若是,则广播足以唯一识别交易组的标识到与第三区块链节点相连接的至少一个第四区块链节点上;
若否,则向发送交易组到第三区块链节点的节点请求获取交易组,第三区块链节点接收交易组,验证交易组是否通过?
若否,则不作处理;
若是,则广播足以唯一识别交易组的标识到与第三区块链节点相连接的至少一个第四区块链节点上。
6.根据权利要求3所述的方法,其特征在于,所述交易组包括权利要求1所述的子交易Tx1、Tx2、Tx3、、、Txm、、、Txn。
7.根据权利要求3所述的方法,其特征在于,所述交易组中每个交易哈希值Hash-T1、Hash-T2、Hash-T3、、、Hash-Tm、、、Hash-Tn。
8.根据权利要求3所述的方法,其特征在于,在所述验证交易组之前,
记录足以唯一识别交易组的标识及发送交易组给第二区块链节点的节点名称;
所述广播交易组及轮次i到与第二区块链节点相连接的至少一个第三区块链节点上,进一步地改进是:
广播交易组及轮次i到与第二区块链节点相连接的,除向第二区块链节点发送交易组的节点以外,至少一个第三区块链节点上;
所述广播足以唯一识别交易组的标识到与第二区块链节点相连接的至少一个第三区块链节点上,进一步地改进是:
广播足以唯一识别交易组的标识到与第二区块链节点相连接的,除向第二区块链节点发送交易组的节点以外,至少一个第三区块链节点上。
9.根据权利要求7所述的方法,其特征在于,
至少一个第三区块链节点收到所述足以唯一识别交易组的标识,记录足以唯一识别交易组的标识及发送交易组给第三区块链节点的节点名称;
判断是否存在交易组?
若是,则广播足以唯一识别交易组的标识到与第三区块链节点相连接的,除向第二区块链节点发送交易组的节点以外,至少一个第四区块链节点上;
若否,则向发送交易组到第三区块链节点的节点请求获取交易组,第三区块链节点接收交易组,验证交易组是否通过?
若否,则不作处理;
若是,则广播足以唯一识别交易组的标识到与第三区块链节点相连接的,除向第二区块链节点发送交易组的节点以外,至少一个第四区块链节点上。
10.一种交易组广播系统,其特征在于,适用于区块链节点,根据权利要求2所述的一种交易组广播方法,包括:
交易接收模块,用于接收交易组及轮次i;
验证模块,用于验证交易接收模块接收的交易组;
广播轮次模块,用于设置轮次i为零;
或,在验证模块验证交易组通过后,用于判断i<Turn是否为真;若是,还用于设置i=i+1;
交易广播模块,用于广播交易组及广播轮次模块设置后的轮次i到与第一区块链节点相连接的至少一个第二区块链节点上;
或,广播交易组及广播轮次模块设置后的轮次i到与第二区块链节点相连接的至少一个第三区块链节点上;
或,广播足以唯一识别交易组的标识到与第二区块链节点相连接的至少一个第三区块链节点上。
11.根据权利要求10所述的系统,其特征在于,还包括交易存储模块,用于存储交易组及足以唯一识别交易组的标识。
12.根据权利要求10所述的系统,其特征在于,还包括交易接收记录模块,用于记录足以唯一识别交易组的标识,及发送交易组给第二区块链节点的节点名称;或,用于记录发送交易组给第三区块链节点的节点名称。
13.根据权利要求10所述的系统,其特征在于,还包括交易判断模块,用于判断区块链节点是否存在交易组。
14.根据权利要求10所述的系统,其特征在于,还包括交易组构建模块,用于根据权利要求1所述的一种交易组构建方法形成交易组。
15.根据权利要求13所述的系统,其特征在于,还包括交易请求模块,用于向发送交易组到第三区块链节点的节点请求获取交易组;
所述交易接收模块,还用于接收足以唯一识别交易组的标识。
16.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1-9中任一项所述的方法。
17.一种存储有计算机程序的存储介质,其特征在于,该程序被处理器执行时实现如权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910633135.4A CN110490734B (zh) | 2019-07-15 | 2019-07-15 | 交易组构建、广播方法和系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910633135.4A CN110490734B (zh) | 2019-07-15 | 2019-07-15 | 交易组构建、广播方法和系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110490734A true CN110490734A (zh) | 2019-11-22 |
CN110490734B CN110490734B (zh) | 2022-05-24 |
Family
ID=68547073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910633135.4A Active CN110490734B (zh) | 2019-07-15 | 2019-07-15 | 交易组构建、广播方法和系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110490734B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111934825A (zh) * | 2020-09-23 | 2020-11-13 | 南京金宁汇科技有限公司 | 一种基于区块链的信息传输方法、系统以及存储介质 |
CN112712366A (zh) * | 2021-01-11 | 2021-04-27 | 杭州复杂美科技有限公司 | 区块执行方法、计算机设备和存储介质 |
CN113973064A (zh) * | 2021-12-24 | 2022-01-25 | 南京金宁汇科技有限公司 | 一种基于区块链的稳定性测试方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108876377A (zh) * | 2018-07-06 | 2018-11-23 | 杭州复杂美科技有限公司 | 一种防止重复支付的方法和系统 |
CN109377364A (zh) * | 2018-09-27 | 2019-02-22 | 中国联合网络通信集团有限公司 | 一种建组方法和装置、交易方法和系统 |
WO2019080933A1 (zh) * | 2017-10-26 | 2019-05-02 | 云图有限公司 | 一种区块链交易隐私保护方法及系统 |
CN109978546A (zh) * | 2019-04-08 | 2019-07-05 | 北京邮电大学 | 一种联盟区块链架构及其分级存储和交易穿孔方法 |
-
2019
- 2019-07-15 CN CN201910633135.4A patent/CN110490734B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019080933A1 (zh) * | 2017-10-26 | 2019-05-02 | 云图有限公司 | 一种区块链交易隐私保护方法及系统 |
CN108876377A (zh) * | 2018-07-06 | 2018-11-23 | 杭州复杂美科技有限公司 | 一种防止重复支付的方法和系统 |
CN109377364A (zh) * | 2018-09-27 | 2019-02-22 | 中国联合网络通信集团有限公司 | 一种建组方法和装置、交易方法和系统 |
CN109978546A (zh) * | 2019-04-08 | 2019-07-05 | 北京邮电大学 | 一种联盟区块链架构及其分级存储和交易穿孔方法 |
Non-Patent Citations (1)
Title |
---|
阿南萨拉姆.斯瓦米: ""广播路由"", 《无线传感器网络:信号处理与通信》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111934825A (zh) * | 2020-09-23 | 2020-11-13 | 南京金宁汇科技有限公司 | 一种基于区块链的信息传输方法、系统以及存储介质 |
CN112712366A (zh) * | 2021-01-11 | 2021-04-27 | 杭州复杂美科技有限公司 | 区块执行方法、计算机设备和存储介质 |
CN113973064A (zh) * | 2021-12-24 | 2022-01-25 | 南京金宁汇科技有限公司 | 一种基于区块链的稳定性测试方法及系统 |
CN113973064B (zh) * | 2021-12-24 | 2022-02-25 | 南京金宁汇科技有限公司 | 一种基于区块链的稳定性测试方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110490734B (zh) | 2022-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110443610A (zh) | 用于减少交易组重复广播的方法和系统、设备及存储介质 | |
CN109741181B (zh) | 一种基于智能合约的交易撮合方法、系统、服务器及介质 | |
CN110490734A (zh) | 交易组构建、广播方法和系统、设备及存储介质 | |
CN110430066A (zh) | 用于减少区块链交易重复广播的方法、设备及存储介质 | |
CN109522362A (zh) | 基于区块链数据的非完全数据同步方法、系统及设备 | |
CN108335129A (zh) | 基于区块链技术的积分处理系统 | |
CN110336676A (zh) | 一种区块链交易广播方法和系统、设备及存储介质 | |
CN109816362A (zh) | 红包处理方法、设备和存储介质 | |
CN110430067A (zh) | 用于减少区块重复广播的方法和系统、设备及存储介质 | |
CN109784888A (zh) | 红包处理方法、设备和存储介质 | |
CN110445616A (zh) | 一种区块打包节点的打包顺序确定方法、设备及存储介质 | |
CN109344987A (zh) | 外币预约取现方法、客户端、服务器、外币预约柜及系统 | |
CN113935507A (zh) | 基于区块链的外币现钞兑换预约方法及装置 | |
CN110110269A (zh) | 一种基于区块链的事件订阅方法及装置 | |
CN108320173A (zh) | 基于区块链技术的积分处理方法及装置 | |
CN110278264A (zh) | 一种基于区块链的跨链通信的方法、装置及交易系统 | |
CN109345166A (zh) | 用于生成信息的方法和装置 | |
CN110428240A (zh) | 一种可疑交易自动识别和处理方法、终端和服务器 | |
CN110336677A (zh) | 区块打包、广播方法和系统、设备及存储介质 | |
CN107301519A (zh) | 一种众包快递系统中的任务重定价方法 | |
CN109741052A (zh) | 红包处理方法、设备和存储介质 | |
CN109767333A (zh) | 选基方法、装置、电子设备及计算机可读存储介质 | |
CN101364997A (zh) | 基于网络的分布式事务处理方法和系统 | |
CN110428122A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN106780019A (zh) | 一种分类交易系统的交易指数编制方法、装置和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |