CN110336676A - 一种区块链交易广播方法和系统、设备及存储介质 - Google Patents
一种区块链交易广播方法和系统、设备及存储介质 Download PDFInfo
- Publication number
- CN110336676A CN110336676A CN201910633115.7A CN201910633115A CN110336676A CN 110336676 A CN110336676 A CN 110336676A CN 201910633115 A CN201910633115 A CN 201910633115A CN 110336676 A CN110336676 A CN 110336676A
- Authority
- CN
- China
- Prior art keywords
- transaction
- block chain
- chain node
- broadcast
- node
- 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.)
- Pending
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/1804—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for stock exchange and similar applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Technology Law (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Marketing (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种区块链交易广播方法和系统、设备及存储介质,属于区块链技术领域。当第二区块链节点产生第一交易,设置轮次i为零后,广播第一交易及轮次i到与第二区块链节点相连接的区块链节点上;当第二区块链节点收到第一区块链节点发来的第二交易及轮次i后,判断i<Turn是否为真;若是,则i=i+1,广播第二交易及轮次i到与第二区块链节点相连接的区块链节点上;若否,广播第二交易哈希值,或广播第二交易哈希值的部分字节到与第二区块链节点相连接的区块链节点上。针对现有技术中交易一个节点多次收到同一笔完整的交易内容,占用网络带宽的技术问题。该方案在广播一定轮次后,可以减小广播交易的文件大小,使得区块链网络稳定工作,降低区块链网络带宽占用。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种区块链交易广播方法和系统、设备及存储介质。
背景技术
区块链底层P2P网络信息随着整个网络节点数量的增多,交易会在网络重复传输多次,这些重复传输的冗余交易信息会占用大量的CPU以及带宽资源。现有的区块链网络中,共识节点接收到用户发来的交易后,为使交易不在本地长时间缓存,共识节点会立即将收到的交易向区块链网络的全节点进行广播;若同一时间,有较多的共识节点将收到的交易向区块链网络的全节点进行广播,且交易信息较大,则会造成带宽占用大、网络拥堵等问题。
现有方案的缺陷是交易被重复广播,且广播的是交易的整个内容,一个节点多次收到同一笔完整的交易,占用不必要的网络带宽。
中国发明专利申请,公开号:CN109586934A,公开日:2019.04.05,公开了一种区块链底层网络交易同步优化方法,涉及区块链底层P2P网络数据传输技术领域,用户通过客户端发送交易给交易池中的区块链节点1。该区块链底层网络交易同步优化方法,能够通过将交易缓冲池进行存储接收到但还还未广播的交易,通过历史缓冲池能够存储已经广播的交易信息以及批量的哈希值,通过接收到的历史交易哈希值能够记录已经同步完成的批量交易哈希值,能够将批量交易通过默克尔树计算哈希值,交易进行二次广播时仅仅发送一条哈希值消息,大大减少了底层P2P网络的带宽占用,并通过在区块链每个节点上都建立一个缓冲池,并通过默克尔树对交易池进行哈希值计算,从而达到去除冗余交易信息的效果。该方案的不足之处在于:1)该方案是通过一个定时器来定时广播交易的,交易不能及时被广播,存在时差;2)该方案先广播一个交易默克尔hash值,然后通过接收节点是否有这些交易哈希值来重新请求交易内容的;但实际的应用场景中交易在前几轮广播时,其他节点中都是不存在此交易的。所以只广播交易hash的话,增加了节点之间的通信。
中国发明专利申请,公开号:CN108984662A,公开日:2018.12.11,公开了一种区块链数据同步方法,通过接收若干用户端发送的若干交易信息,将各交易信息的哈希值映射至第一位图中,向区块链网络的所有节点广播第一位图,并接收区块链网络中所有节点广播的位图,比对第一位图和接收的各位图,判断是否缺失交易信息:是,则向持有所缺失交易信息的节点获取所缺失的交易信息,并根据获取结果更新第一位图;以及,循环当前步骤,直至判断结果为否的方法,有效减小了区块链网络中广播数据的大小和各节点之间广播的次数,降低了带宽占用。该方案再实际的应用场景中交易在前几轮广播时,此交易在其他节点上都是不存在的,所以只广播hash映射的位图的话,增加了节点之间通信的次数。
发明内容
1.发明要解决的技术问题
为了克服上述技术问题,本发明提供了一种区块链交易广播方法和系统、设备及存储介质。可以减小广播交易的文件大小,使得区块链网络稳定工作,降低区块链网络带宽占用。
2.技术方案
为解决上述问题,本发明提供的技术方案为:
第一方面,本发明提供了一种区块链交易广播方法,适用于区块链节点,包括:当第二区块链节点产生第一交易,设置轮次i为零后,广播第一交易及轮次i到与第二区块链节点相连接的区块链节点上;或,当第二区块链节点收到第一区块链节点发来的第二交易及轮次i后,判断i<Turn是否为真;若是,则i=i+1,广播第二交易及轮次i到与第二区块链节点相连接的区块链节点上;若否,广播足以唯一识别第二交易的标识到与第二区块链节点相连接的区块链节点上;其中,第一交易或第二交易至少被广播的轮次数Turn由公式
∑QTurn=Number
确定,轮次i为大于等于零的整数,Number为区块链网络中的区块链节点总数;Q为在区块链网络中,任一区块链节点连接的区块链节点个数。
进一步地,所述广播第一交易包括广播第一交易原始信息及其哈希值,所述广播第二交易包括广播第二交易原始信息及其哈希值。
进一步地,所述当第二区块链节点产生第一交易后包括:验证第一交易;若验证通过,则广播第一交易及轮次i到与第二区块链节点相连接的区块链节点上;若验证不通过,则不作处理。
进一步地,所述若验证通过还包括:第二区块链节点存储第一交易。
进一步地,所述当第二区块链节点收到第一区块链节点发来的第二交易及轮次i后,在判断i<Turn是否为真之前,还包括,验证第二交易;若验证通过,则判断i<Turn是否为真;若验证不通过,则不作处理。
进一步地,所述若验证通过还包括:第二区块链节点存储第二交易。
进一步地,所述当第二区块链节点收到第一区块链节点发来的第二交易及轮次i后,在验证第二交易之前还包括:记录足以唯一识别第二交易的标识、轮次i和第一区块链节点。
进一步地,所述记录足以唯一识别第二交易的标识、轮次i和第一区块链节点后,在验证第二交易之前,还包括:判断第二区块链节点是否存在第二交易;若存在,则不验证第二交易,则判断i<Turn是否为真;若是,则i=i+1,广播第二交易及轮次i到除第一区块链节点以外,与第二区块链节点相连接的其他区块链节点上;若否,广播足以唯一识别第二交易的标识到除第一区块链节点以外,与第二区块链节点相连接的其他区块链节点上;若不存在,则验证第二交易。
进一步地,若第二区块链节点不存在第二交易,则验证第二交易;若验证不通过,则不作处理;若验证通过,则判断i<Turn是否为真;若是,则i=i+1,广播第二交易及轮次i到除第一区块链节点以外,与第二区块链节点相连接的其他区块链节点上;若否,广播足以唯一识别第二交易的标识到除第一区块链节点以外,与第二区块链节点相连接的其他区块链节点上。
进一步地,所述足以唯一识别第二交易的标识到与第二区块链节点相连接的其他区块链节点上,若接收到第二区块链节点发来的足以唯一识别第二交易的标识的区块链节点上不存在第二交易原始信息,则向第二区块链节点请求获取第二交易原始信息,第二区块链节点接收到所述请求后,将第二交易原始信息发送给对应的区块链节点,并设置轮次i=i+1。
进一步地,所述对应的区块链节点接收并保存第二交易原始信息,则验证第二交易是否通过?若验证不通过,则不作处理;若验证通过,则广播足以唯一识别第二交易的标识到除第二区块链节点以外,与对应的区块链节点相连接的其他区块链节点上。
进一步地,所述足以唯一识别第二交易的标识为交易哈希值,或交易哈希值部分字节或交易ID号,或交易名称。
第二方面,本发明提供了一种区块链交易广播系统,适用于区块链节点,包括:广播轮次模块,用于当第二区块链节点产生第一交易,设置轮次i为零;或用于判断i<Turn是否为真;若是,还用于设置i=i+1;交易广播模块,用于轮次设置模板设置轮次i为零后,广播第一交易及轮次i到与第二区块链节点相连接的其他区块链节点上;或,当第二区块链节点收到第一区块链节点发来的第二交易及轮次i后,广播轮次模块判断i<Turn是否为真;若是,轮次设置模板设置i=i+1,交易广播模块用于广播第二交易及轮次i到与第二区块链节点相连接的其他区块链节点上;若否,交易广播模块用于广播足以唯一识别第二交易的标识到与第二区块链节点相连接的其他区块链节点上。
进一步地,所述交易广播模块用于广播第二交易包括广播第二交易原始信息及其哈希值。
进一步地,还包括验证模块,用于第二区块链节点验证第一交易或第二交易。
进一步地,还包括交易存储模块,第二区块链节点存储第一交易或第二交易。
进一步地,还包括交易接收记录模块,用于记录足以唯一识别第一交易,或第二交易的标识、轮次i和第一区块链节点。
进一步地,还包括交易判断模块,用于在交易接收记录记录足以唯一识别第二交易的标识、轮次i和第一区块链节点后,判断第二区块链节点是否存在第二交易。
进一步地,所述交易广播模块,用于广播第二交易及轮次i到除第一区块链节点以外,与第二区块链节点相连接的其他区块链节点上;或,用于足以唯一识别第二交易的标识到除第一区块链节点以外,与第二区块链节点相连接的其他区块链节点上。交易构建模块,用于构建交易。
第三方面,本发明提供了一种设备,所述设备包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如以上所述的方法。
第四方面,本发明提供了一种存储有计算机程序的存储介质,该程序被处理器执行时实现如以上任一项所述的方法。
3.有益效果
采用本发明提供的技术方案,与现有技术相比,具有如下有益效果:
本申请的技术方案在广播一定轮次后,可以减小广播交易的文件大小,使得区块链网络稳定工作,降低区块链网络带宽占用。
附图说明
图1为本发明的方法流程图。
图2为图1提供的一优选实施例的方法流程图。
图3为图1提供的另一优选实施例的方法流程图。
图4为实施例2提供的系统结构示意图。
图5为图4提供的第一个优选实施例系统结构示意图。
图6为图4提供的第二个优选实施例系统结构示意图。
图7为图4提供的第三个优选实施例系统结构示意图。
图8为实施例3提供的方法流程图一。
图9为实施例3提供的方法流程图二。
图10为本发明的一种设备结构示意图。
图11为实施例3中节点B-5广播交易原始信息及轮次i的示意图。
图12为实施例3中节点B-5广播交易哈希值的示意图。
具体实施方式
为进一步了解本发明的内容,结合附图及实施例对本发明作详细描述。
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
本发明中所述的第一、第二等词语,是为了描述本发明的技术方案方便而设置,并没有特定的限定作用,均为泛指,对本发明的技术方案不构成限定作用。
本申请的技术方案描述了交易的广播方法,可在现有的区块链网络上推广应用,比如比特币,以太坊、Chain33、EOS等,不受各种区块链网络共识算法,以及挖矿机制的限制,均可推广使用;另外,关于交易的原始信息,每个区块链网络中对于交易格式内容的定义均存在一些差异,当本申请的技术方案在不同的区块链网络中推广应用时,所述的交易原始信息与该区块链网络所规定的交易格式及内容相一致,即本申请所述的交易原始信息根据不同区块链网络关于交易的定义不同而不同,在不同的区块链网络上应用时,适应它们关于交易自身的格式及内容定义,本申请中的交易原始信息作相应的变化。本申请所述的交易包括含有资产交换的交易,也包括含有外带数据的交易。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
实施例1
本实施例的一种区块链交易广播方法,适用于区块链节点,如图1所示,第一种情况,S101、当第二区块链节点产生第一交易,设置轮次i为零后,广播第一交易及轮次i到与第二区块链节点相连接的区块链节点上;
另外还包括第二种情况,
S103、当第二区块链节点收到第一区块链节点发来的第二交易及轮次i后;
S105、判断i<Turn是否为真;
若是,则i=i+1,广播第二交易及轮次i到与第二区块链节点相连接的其他区块链节点上;
若否,则广播足以唯一识别第二交易的标识到与第二区块链节点相连接的其他区块链节点上;
其中,第一交易或第二交易至少被广播的轮次数Turn由公式
∑QTurn=Number
确定,轮次i为大于等于零的整数,Number为区块链网络中的区块链节点总数;Q为在区块链网络中,任一区块链节点连接的区块链节点个数。
在一个区块链网络中,其中,轮次数Turn用于决定第一交易广播到该区块链网络的大多数节点,因在一个确定的区块链网络中,任一区块链节点连接的区块链节点个数不尽相同,所以Q的取值也是灵活的,可以是所有区块链节点连接的区块链节点个数的众数、平均数、或者是一个估值——估计一笔交易被广播,经过上述公式确定的轮次i后,可以被广播到大多数节点的数值,其余没有被广播到的节点,可以由本方案中的其余内容确定。
通过以上公式来确定Turn,一笔交易在区块链网络中被广播Turn轮次后,基本可以确定该笔交易已经被广播到区块链网络中的大多数区块链节点上了。
其中,区块链网络中的区块链节点总数Number是动态变化的,所以,Turn值也会随之动态变化,根据以上公式进行动态调整,但这不影响一笔交易在区块链网络中的广播过程。
其中,所述广播第一交易包括广播第一交易原始信息及其哈希值,所述广播第二交易包括广播第二交易原始信息及其哈希值。
如图2所示,对于第一种情况而言,进一步地改进是,S1101、当第二区块链节点产生第一交易后包括:验证第一交易;
S1103、验证是否通过;若验证通过,则广播第一交易及轮次i到与第二区块链节点相连接的区块链节点上;进一步地,若验证通过还包括:第二区块链节点存储第一交易;
若验证不通过,则不作处理。
如图3所示,对于第二种情况而言,进一步地改进是,
S1031、第二区块链节点收到第一区块链节点发来的第二交易及轮次i,记录足以唯一识别第二交易的标识、轮次i和第一区块链节点;
S1033、判断第二区块链节点是否存在第二交易;
若存在,则不验证第二交易;
S1035、判断i<Turn是否为真;
若是,则i=i+1,广播第二交易及轮次i到除第一区块链节点以外,与第二区块链节点相连接的其他区块链节点上;
若否,广播足以唯一识别第二交易的标识到除第一区块链节点以外,与第二区块链节点相连接的其他区块链节点上;
若不存在,则
S1037、验证第二交易是否通过;
若验证通过,则第二区块链节点存储第二交易,
重复步骤S1035,判断i<Turn是否为真;
若是,则i=i+1,广播第二交易及轮次i到除第一区块链节点以外,与第二区块链节点相连接的其他区块链节点上;
若否,广播足以唯一识别第二交易的标识到除第一区块链节点以外,与第二区块链节点相连接的其他区块链节点上。
若验证不通过,则不作处理。
所述足以唯一识别第二交易的标识到与第二区块链节点相连接的其他区块链节点上,若接收到第二区块链节点发来的足以唯一识别第二交易的标识的区块链节点上不存在第二交易原始信息,则向第二区块链节点请求获取第二交易原始信息,第二区块链节点接收到所述请求后,将第二交易原始信息发送给对应的区块链节点,并设置轮次i=i+1。
所述对应的区块链节点接收并保存第二交易原始信息,则验证第二交易是否通过?若验证不通过,则不作处理;若验证通过,则广播足以唯一识别第二交易的标识到除第二区块链节点以外,与对应的区块链节点相连接的其他区块链节点上。
所述足以唯一识别第二交易的标识为交易哈希值,或交易哈希值的部分字节,或交易哈希值的部分字节,或交易ID号,或交易名称。
在一个确定的区块链项目中,因每个交易的收发地址,及交易内容等各不相同,所以交易哈希值具有唯一识别交易的特性。交易ID号类比于中国公民使用的身份证号码,在一个确定的区块链项目中,交易名称也可以唯一识别一笔交易,但并不代表所有区块链项目都是,在本方法实际应用过程中,应根据具体应用场景而定。
交易组哈希值的部分字节:假设F(x)是对交易哈希值取部分字节的函数,那么函数F(x),以F(Hash-Tm)为例,实现的效果是,对交易Tm的哈希值Hash-Tm,取其前第1-5个字节,后第1-5个字节,或者中间位置第1-5个字节,也可以是中间9个字节,或者,末尾9个字节,或者,前9个字节,但无论怎么取值,均可以保证足以唯一识别出所述交易Tm的哈希值Hash-Tm,从而进一步减小交易广播的大小。
步骤S1033、判断第二区块链节点是否存在第二交易;查询交易是否存在的方式有很多种,本实施例通过足以唯一识别第二交易的标识,包括进行查询比对判断,如交易哈希值,或根据函数F(x)倒推,经交易哈希值的部分字节判别,或交易ID号,或交易名称。实际应用中还可以采用其他方式判断。
实施例2
本实施例提出一种区块链交易广播系统,适用于区块链节点,如图4所示,包括:
广播轮次模块,用于当第二区块链节点产生第一交易,设置轮次i为零;或用于判断i<Turn是否为真;若是,还用于设置i=i+1;
交易广播模块,用于轮次设置模板设置轮次i为零后,广播第一交易及轮次i到与第二区块链节点相连接的其他区块链节点上;
或,当第二区块链节点收到第一区块链节点发来的第二交易及轮次i后,广播轮次模块判断i<Turn是否为真;
若是,轮次设置模板设置i=i+1,交易广播模块用于广播第二交易及轮次i到与第二区块链节点相连接的其他区块链节点上;
若否,交易广播模块用于广播足以唯一识别第二交易的标识到与第二区块链节点相连接的其他区块链节点上。
其中,所述交易广播模块用于广播第二交易包括广播第二交易原始信息及其哈希值。
进一步地改进是,如图5所示,还包括验证模块,用于第二区块链节点验证第一交易或第二交易。
进一步地改进是,如图6所示,还包括交易存储模块,第二区块链节点用来存储第一交易或第二交易,等待被打包进区块中共识。
进一步地改进是,如图7所示,还包括交易接收记录模块,用于记录足以唯一识别第二交易的标识、轮次i和第一区块链节点;还包括交易判断模块,用于在交易接收记录记录足以唯一识别第二交易的标识、轮次i和第一区块链节点后,判断第二区块链节点是否存在第二交易。还包括交易构建模块,用于构建交易,包括但不限用于构建第一交易,或第二交易。
现有区块链网络中均设有P2p模块,用于广播交易,本实施例中的交易广播模块也具有广播交易的功能,但又区别于现有区块链网络中的P2p模块,本实施例的交易广播模块,用于广播第二交易及轮次i到除第一区块链节点以外,与第二区块链节点相连接的其他区块链节点上;或,用于广播足以唯一识别第二交易的标识到除第一区块链节点以外,与第二区块链节点相连接的其他区块链节点上。
实施例3
区块链交易广播方案基本原理是区块链节点A广播交易给相连接的其他25个节点B1-B25,而这些节点再广播给各自相连接的其他25个节点,这样就可以推算出第一轮广播之后有25个节点收到了交易。
第二轮广播由这收到交易的25个节点广播给各自相连接的另外25个节点,第二轮广播之后会有25*25个节点收到此交易。
第三轮广播由这25*25个节点给各自相连接的另外25个节点广播,第三轮广播之后会有25*25*25个节点收到此交易。
这样推算广播三轮之后整个网络中会有1+25+25*25+25*25*25这么多节点收到此交易。
由此可以得出,可以通过监控区块链网络中的区块链节点数量及其之间的连接情况,以及交易被广播的轮次来判断一笔交易是否已经被广播到大多数区块链节点上了,但会存在很多节点被重复广播同一笔交易的情况,极大的占用了区块链网络的带宽,加之广播的是交易的全部内容,更会给区块链网络带来负担。
假定区块链网络中的区块链节点总数为Number,一笔交易至少被广播的轮次设为Turn,Turn为整数;
∑25Turn=Number,
通过以上公式来确定Turn,一笔交易在区块链网络中被广播Turn轮次后,基本可以确定该笔交易已经被广播到区块链网络中的大多数区块链节点上了,此处认为Q为25,取值方案与实施例1相同。
其中,区块链网络中的区块链节点总数Number是动态变化的,所以,Turn值也会随之动态变化,根据以上公式进行动态调整,但这不影响一笔交易在区块链网络中的广播过程。
为降低带宽的占用,本实施例提出了一种区块链交易广播方法及其系统,可以大量减少区块链节点重复收到交易的情况发生,用于减少交易广播的信息内容,当交易被广播Turn轮次之后,只广播足以唯一识别第二交易的标识(其取值参考实施例1的方法),来降低区块链网络带宽的占用,减轻区块链网络负担。
从本实施例提出的用于减少交易重复广播的一种区块链交易广播方法可以看出,实际上在交易广播到第二轮的时候,有些区块链节点可能会收到从不同区块链节点发来的交易信息及其哈希值的重复广播;采用本实施例提出的用于减少交易重复广播的一种区块链交易广播方法后,不用再对这些已经收到的交易进行验证和存储了,即减少了对区块链节点的CPU计算和存储资源的占用;但这些交易信息及其哈希值占用一定的空间大小,在重复广播时占用了区块链网络的带宽资源。当无法避免这种重复广播交易的情况时,可以控制重复广播交易的大小,从而降低区块链网络带宽的占用。
若区块链节点B-3的钱包产生了一笔交易Tx-B3,类似如图2所示,如图8所示:
S801、区块链节点B-3产生交易Tx-B3,广播轮次模块设定i=0;
S803、验证模块验证验证交易Tx-B3是否通过;
若验证通过,则节点B-3存储Tx-B3,交易广播模块广播交易Tx-B3及轮次i到与节点B-3相连接的区块链节点上;
若验证不通过,则不作处理。
若区块链节点B-5收到了区块链节点B-3广播的交易Tx-B3,类似图3,如图9所示:
S901、节点B-5收到节点B-3发来的交易Tx-B3及轮次i,记录Tx-B3-hash-i>B-3;
S903、判断节点B-5是否存在交易Tx-B3;
若存在,则不验证交易Tx-B3;
S905、判断i<Turn是否为真;
若是,则i=i+1,广播交易Tx-B3及轮次i到除节点B-3以外,与节点B-5相连接的其他区块链节点上,如图11所示;
若否,广播交易Tx-B3哈希值Tx-B3-hash到除节点B-3以外,与节点B-5相连接的其他区块链节点上,如图12所示;
若不存在,则
S907、验证交易Tx-B3是否通过;
若验证通过,则节点B-5存储交易Tx-B3,
重复步骤S905,判断i<Turn是否为真;
若是,则i=i+1,广播交易Tx-B3及轮次i,Tx-B3-i到除节点B-3以外,与节点B-5相连接的其他区块链节点上,如图11所示;
若否,广播交易Tx-B3哈希值Tx-B3-hash到除节点B-3以外,与节点B-5相连接的其他区块链节点上,如图12所示。
若验证不通过,则不作处理。
所述广播交易Tx-B3哈希值Tx-B3-hash到与节点B-5相连接的其他区块链节点上,若接收到节点B-5发来的交易Tx-B3哈希值Tx-B3-hash的节点(比如节点B-11)上不存在交易Tx-B3原始信息,则向节点B-5请求获取交易Tx-B3原始信息,节点B-5接收到所述请求后,将交易Tx-B3原始信息发送给节点B-11,并在节点B-5的广播轮次模块设置轮次i=i+1。
实施例4
一种设备,所述设备包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如以上所述的方法。
一种存储有计算机程序的存储介质,该程序被处理器执行时实现如以上实施例1所述的方法。
图10为本发明一实施例提供的一种设备的结构示意图。
如图10所示,作为另一方面,本申请还提供了一种设备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 (21)
1.一种区块链交易广播方法,其特征在于,包括:
当第二区块链节点产生第一交易,设置轮次i为零后,广播第一交易及轮次i到与第二区块链节点相连接的区块链节点上;
或,当第二区块链节点收到第一区块链节点发来的第二交易及轮次i后,判断i<Turn是否为真;
若是,则i=i+1,广播第二交易及轮次i到与第二区块链节点相连接的区块链节点上;
若否,则广播足以唯一识别第二交易的标识到与第二区块链节点相连接的区块链节点上;
其中,第一交易或第二交易至少被广播的轮次数Turn由公式
∑QTurn=Number
确定,轮次i为大于等于零的整数,Number为区块链网络中的区块链节点总数;Q为在区块链网络中,任一区块链节点连接的区块链节点个数。
2.根据权利要求1所述的方法,其特征在于,所述广播第一交易包括广播第一交易原始信息及其哈希值,所述广播第二交易包括广播第二交易原始信息及其哈希值。
3.根据权利要求1所述的方法,其特征在于,所述当第二区块链节点产生第一交易后包括:验证第一交易;
若验证通过,则广播第一交易及轮次i到与第二区块链节点相连接的区块链节点上;
若验证不通过,则不作处理。
4.根据权利要求3所述的方法,其特征在于,所述若验证通过还包括:第二区块链节点存储第一交易。
5.根据权利要求1所述的方法,其特征在于,所述当第二区块链节点收到第一区块链节点发来的第二交易及轮次i后,在判断i<Turn是否为真之前,还包括,验证第二交易;
若验证通过,则判断i<Turn是否为真;
若验证不通过,则不作处理。
6.根据权利要求5所述的方法,其特征在于,所述若验证通过还包括:第二区块链节点存储第二交易。
7.根据权利要求5所述的方法,其特征在于,所述当第二区块链节点收到第一区块链节点发来的第二交易及轮次i后,在验证第二交易之前还包括:
记录足以唯一识别第二交易的标识、轮次i和第一区块链节点。
8.根据权利要求7所述的方法,其特征在于,所述记录足以唯一识别第二交易的标识、轮次i和第一区块链节点后,在验证第二交易之前,还包括:判断第二区块链节点是否存在第二交易;
若存在,则不验证第二交易,则判断i<Turn是否为真;
若是,则i=i+1,广播第二交易及轮次i到除第一区块链节点以外,与第二区块链节点相连接的其他区块链节点上;
若否,则广播足以唯一识别第二交易的标识到除第一区块链节点以外,与第二区块链节点相连接的其他区块链节点上;
若不存在,则验证第二交易。
9.根据权利要求8所述的方法,其特征在于,若第二区块链节点不存在第二交易,则验证第二交易;
若验证不通过,则不作处理;
若验证通过,则判断i<Turn是否为真;
若是,则i=i+1,广播第二交易及轮次i到除第一区块链节点以外,与第二区块链节点相连接的其他区块链节点上;
若否,则广播足以唯一识别第二交易的标识到除第一区块链节点以外,与第二区块链节点相连接的其他区块链节点上。
10.根据权利要求1或7所述的方法,其特征在于,所述广播足以唯一识别第二交易的标识到与第二区块链节点相连接的其他区块链节点上,若接收到第二区块链节点发来的足以唯一识别第二交易的标识的区块链节点上不存在第二交易原始信息,则向第二区块链节点请求获取第二交易原始信息,第二区块链节点接收到所述请求后,将第二交易原始信息发送给对应的区块链节点,并设置轮次i=i+1。
11.根据权利要求10所述的方法,其特征在于,所述对应的区块链节点接收并保存第二交易原始信息,则验证第二交易是否通过?若验证不通过,则不作处理;若验证通过,则广播足以唯一识别第二交易的标识到除第二区块链节点以外,与对应的区块链节点相连接的其他区块链节点上。
12.根据权利要求7所述的方法,其特征在于,所述足以唯一识别第二交易的标识为交易哈希值,或交易哈希值的部分字节,或交易ID号,或交易名称。
13.一种区块链交易广播系统,其特征在于,适用于区块链节点,包括:
广播轮次模块,用于当第二区块链节点产生第一交易,设置轮次i为零;或用于判断i<Turn是否为真;若是,还用于设置i=i+1;
交易广播模块,用于轮次设置模板设置轮次i为零后,广播第一交易及轮次i到与第二区块链节点相连接的其他区块链节点上;
或,当第二区块链节点收到第一区块链节点发来的第二交易及轮次i后,广播轮次模块判断i<Turn是否为真;
若是,轮次设置模板设置i=i+1,交易广播模块用于广播第二交易及轮次i到与第二区块链节点相连接的其他区块链节点上;
若否,交易广播模块用于广播足以唯一识别第二交易的标识到与第二区块链节点相连接的其他区块链节点上。
还包括交易判断模块,用于检测是否存在第二交易。
14.根据权利要求13所述的系统,其特征在于,所述交易广播模块用于广播第二交易包括广播第二交易原始信息及其哈希值,或,用于广播第一交易包括广播第一交易原始信息及其哈希值。
15.根据权利要求13所述的系统,其特征在于,还包括验证模块,用于验证第一交易或第二交易。
16.根据权利要求13所述的系统,其特征在于,还包括交易存储模块,用于第二区块链节点存储第一交易或第二交易。
17.根据权利要求15所述的系统,其特征在于,还包括交易接收记录模块,用于记录足以唯一识别第一交易,或第二交易的标识、轮次i和第一区块链节点。
18.根据权利要求13所述的系统,其特征在于,所述交易广播模块,用于广播第一交易,或第二交易及轮次i到除第一区块链节点以外,与第二区块链节点相连接的其他区块链节点上;或,用于广播足以唯一识别第一交易,或第二交易的标识到除第一区块链节点以外,与第二区块链节点相连接的其他区块链节点上。
19.根据权利要求13所述的系统,其特征在于,还包括交易构建模块,用于构建交易。
20.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1-12中任一项所述的方法。
21.一种存储有计算机程序的存储介质,其特征在于,该程序被处理器执行时实现如权利要求1-12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910633115.7A CN110336676A (zh) | 2019-07-15 | 2019-07-15 | 一种区块链交易广播方法和系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910633115.7A CN110336676A (zh) | 2019-07-15 | 2019-07-15 | 一种区块链交易广播方法和系统、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110336676A true CN110336676A (zh) | 2019-10-15 |
Family
ID=68146790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910633115.7A Pending CN110336676A (zh) | 2019-07-15 | 2019-07-15 | 一种区块链交易广播方法和系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110336676A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111523897A (zh) * | 2020-05-06 | 2020-08-11 | 杭州复杂美科技有限公司 | 防攻击方法、设备和存储介质 |
CN111724148A (zh) * | 2020-06-22 | 2020-09-29 | 深圳前海微众银行股份有限公司 | 一种基于区块链系统的交易广播方法及节点 |
CN112052250A (zh) * | 2020-09-02 | 2020-12-08 | 杭州复杂美科技有限公司 | 性能度量方法、广播性能调节方法、设备和存储介质 |
CN112346825A (zh) * | 2020-11-11 | 2021-02-09 | 湖南智慧政务区块链科技有限公司 | 一种基于位图算法的区块链事务防重机制 |
CN112769583A (zh) * | 2021-02-07 | 2021-05-07 | 杭州复杂美科技有限公司 | 区块链广播方法、计算机设备和存储介质 |
CN112929432A (zh) * | 2021-02-01 | 2021-06-08 | 杭州复杂美科技有限公司 | 一种基于重复广播历史的广播方法、设备及储存介质 |
CN113507524A (zh) * | 2021-07-09 | 2021-10-15 | 杭州复杂美科技有限公司 | 交易广播方法、计算机设备和存储介质 |
CN115208898A (zh) * | 2022-03-29 | 2022-10-18 | 深圳大学 | 区块广播方法、装置、计算机设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108876377A (zh) * | 2018-07-06 | 2018-11-23 | 杭州复杂美科技有限公司 | 一种防止重复支付的方法和系统 |
CN109034807A (zh) * | 2018-08-15 | 2018-12-18 | 杭州复杂美科技有限公司 | 一种区块链数据同步方法 |
CN109150598A (zh) * | 2018-08-10 | 2019-01-04 | 上交所技术有限责任公司 | 一种基于块片的bft共识算法带宽使用率改进方法 |
US20190149325A1 (en) * | 2017-11-16 | 2019-05-16 | International Business Machines Corporation | Blockchain transaction privacy enhancement through broadcast encryption |
-
2019
- 2019-07-15 CN CN201910633115.7A patent/CN110336676A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190149325A1 (en) * | 2017-11-16 | 2019-05-16 | International Business Machines Corporation | Blockchain transaction privacy enhancement through broadcast encryption |
CN108876377A (zh) * | 2018-07-06 | 2018-11-23 | 杭州复杂美科技有限公司 | 一种防止重复支付的方法和系统 |
CN109150598A (zh) * | 2018-08-10 | 2019-01-04 | 上交所技术有限责任公司 | 一种基于块片的bft共识算法带宽使用率改进方法 |
CN109034807A (zh) * | 2018-08-15 | 2018-12-18 | 杭州复杂美科技有限公司 | 一种区块链数据同步方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111523897A (zh) * | 2020-05-06 | 2020-08-11 | 杭州复杂美科技有限公司 | 防攻击方法、设备和存储介质 |
CN111724148A (zh) * | 2020-06-22 | 2020-09-29 | 深圳前海微众银行股份有限公司 | 一种基于区块链系统的交易广播方法及节点 |
CN111724148B (zh) * | 2020-06-22 | 2024-03-22 | 深圳前海微众银行股份有限公司 | 一种基于区块链系统的交易广播方法及节点 |
CN112052250A (zh) * | 2020-09-02 | 2020-12-08 | 杭州复杂美科技有限公司 | 性能度量方法、广播性能调节方法、设备和存储介质 |
WO2022048409A1 (zh) * | 2020-09-02 | 2022-03-10 | 杭州复杂美科技有限公司 | 性能度量方法、广播性能调节方法、设备和存储介质 |
CN112346825A (zh) * | 2020-11-11 | 2021-02-09 | 湖南智慧政务区块链科技有限公司 | 一种基于位图算法的区块链事务防重机制 |
CN112929432A (zh) * | 2021-02-01 | 2021-06-08 | 杭州复杂美科技有限公司 | 一种基于重复广播历史的广播方法、设备及储存介质 |
CN112929432B (zh) * | 2021-02-01 | 2022-07-15 | 杭州复杂美科技有限公司 | 一种基于重复广播历史的广播方法、设备及储存介质 |
CN112769583A (zh) * | 2021-02-07 | 2021-05-07 | 杭州复杂美科技有限公司 | 区块链广播方法、计算机设备和存储介质 |
CN113507524A (zh) * | 2021-07-09 | 2021-10-15 | 杭州复杂美科技有限公司 | 交易广播方法、计算机设备和存储介质 |
CN115208898A (zh) * | 2022-03-29 | 2022-10-18 | 深圳大学 | 区块广播方法、装置、计算机设备和存储介质 |
CN115208898B (zh) * | 2022-03-29 | 2023-12-08 | 深圳大学 | 区块广播方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110336676A (zh) | 一种区块链交易广播方法和系统、设备及存储介质 | |
CN110084377B (zh) | 用于构建决策树的方法和装置 | |
CN110430066A (zh) | 用于减少区块链交易重复广播的方法、设备及存储介质 | |
CN110070445A (zh) | 一种基于区块链系统的交易处理方法及装置 | |
CN110443610A (zh) | 用于减少交易组重复广播的方法和系统、设备及存储介质 | |
CN109816362A (zh) | 红包处理方法、设备和存储介质 | |
CN111984383B (zh) | 基于云网融合和人工智能的业务数据处理方法及云端平台 | |
CN112070216A (zh) | 一种基于图计算系统训练图神经网络模型的方法及系统 | |
CN111626311B (zh) | 一种异构图数据处理方法和装置 | |
CN110336677A (zh) | 区块打包、广播方法和系统、设备及存储介质 | |
CN111738474A (zh) | 交通状态预测方法和装置 | |
CN114610475A (zh) | 一种智能资源编排模型的训练方法 | |
CN110490734B (zh) | 交易组构建、广播方法和系统、设备及存储介质 | |
CN112667753B (zh) | 一种挖掘实体节点路径的方法及计算机设备 | |
CN111368060B (zh) | 对话机器人的自学习方法、装置、系统、电子设备及介质 | |
CN111292171B (zh) | 金融理财产品推送方法及装置 | |
CN109493015A (zh) | 一种资产转移方法、设备和存储介质 | |
CN112541556A (zh) | 模型构建优化方法、设备、介质及计算机程序产品 | |
CN111951112A (zh) | 基于区块链的智能合约执行方法、终端设备和存储介质 | |
CN113630476B (zh) | 应用于计算机集群的通信方法及通信装置 | |
CN114338398B (zh) | 数据传输方法、装置、电子设备及存储介质 | |
CN110765350A (zh) | 一种会员积分的数据融合方法和装置 | |
CN110322350A (zh) | 裁剪共识网络中空区块的方法、装置、设备和存储介质 | |
CN117216736A (zh) | 异常账号的识别方法、数据调度平台及图计算平台 | |
CN108021597B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191015 |
|
RJ01 | Rejection of invention patent application after publication |