CN110430067A - 用于减少区块重复广播的方法和系统、设备及存储介质 - Google Patents
用于减少区块重复广播的方法和系统、设备及存储介质 Download PDFInfo
- Publication number
- CN110430067A CN110430067A CN201910633153.2A CN201910633153A CN110430067A CN 110430067 A CN110430067 A CN 110430067A CN 201910633153 A CN201910633153 A CN 201910633153A CN 110430067 A CN110430067 A CN 110430067A
- Authority
- CN
- China
- Prior art keywords
- block
- transaction
- block chain
- chain node
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了用于减少区块重复广播的方法和系统、设备及存储介质,属于区块链技术领域。当第二区块链节点产生第一区块后,广播第一区块到与第二区块链节点连接的区块链节点上;当第二区块链节点收到第一区块链节点发来的第二区块后,第二区块链节点记录第二区块和第一区块链节点;广播第二区块到除第一区块链节点之外,与第二区块链节点连接的区块链节点上。针对现有技术中区块被重复广播,会影响区块链网络的带宽的技术问题,该技术方案可以有效减少区块链在节点之间的重复广播次数,降低对区块链网络带宽的占用,使得区块链网络稳定工作。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及用于减少区块重复广播的方法和系统、设备及存储介质。
背景技术
现有的区块链项目中涉及多种共识算法,如Pow工作量证明,Pos权益证明,DPos股份授权证明机制,PBFT实用拜占庭容错算法等,不论采用哪种共识算法的区块链项目,在交易被打包形成区块后,均需要向区块链网络上的其他区块链节点广播。以现有的某区块链项目为例,一个区块包含元数据的区块头和紧跟其后的构成区块主体的一长串交易组成。区块中包含区块头、区块大小、交易计数器和交易,其中,区块头大小是80字节,而平均每个交易至少是250字节,而且评价每个区块至少包含超过500个交易,因此,一个包含所有交易的完整区块比区块头的1000倍还要大。
目前区块链项目中区块的广播处理如下:
1)区块链挖矿节点把Mempool缓存池中存储的交易,以及挖矿交易一起打包形成区块;
2)将区块广播给其他区块链节点,收到区块的区块链节点,对区块验证。
现有的区块链项目方案中的一个区块链节点最多可以配置连接25个区块链节点,在区块广播时,广播的是区块的整个内容,每个区块链节点可能会收到25个从不同的区块链节点广播来的相同区块,因此区块被重复广播,会影响区块链网络的带宽。
发明内容
1.发明要解决的技术问题
为了克服上述技术问题,本发明提供了一种用于减少区块重复广播的方法和系统、设备及存储介质。可以有效减少区块链在节点之间的重复广播次数,降低对区块链网络带宽的占用,使得区块链网络稳定工作。
2.技术方案
为解决上述问题,本发明提供的技术方案为:
第一方面,本发明提供了用于减少区块重复广播的方法,包括:
当第二区块链节点收到第一区块链节点发来的第一区块后,第二区块链节点记录足以唯一识别第一区块的标识和第一区块链节点;判断是否存在第一区块,若是,则S1、则广播第一区块到除第一区块链节点之外,与第二区块链节点连接的区块链节点上;若否,则验证第一区块是否通过,若验证通过,则执行S1。
进一步地,所述足以唯一识别第一区块的标识为第一区块的区块高度、或区块哈希值、或区块哈希值的部分字节、或第一区块的挖矿交易哈希值、或挖矿交易哈希值的部分字节、或挖矿交易ID、或挖矿交易名称。
进一步地,所述若验证通过还包括:第二区块链节点存储第一区块。
进一步地,当第一区块大小SI≤区块大小阈值TH时,将区块头、交易、第一区块大小打包形成第一区块;当第一区块大小SI>区块大小阈值TH时,将区块头、交易标识列表、第一区块大小打包形成第一区块;其中,交易标识列表除包括挖矿交易外,还包括足以唯一识别交易的标识。
进一步地,所述足以唯一识别交易的标识为交易哈希值,或交易哈希值的部分字节,或交易ID号,或交易名称。
进一步地,当第一区块大小SI>区块大小阈值TH时,第二区块链节点收到第一区块链节点发来的第一区块后,第二区块链节点记录足以唯一识别第一区块的标识和第一区块链节点;判断是否存在第一区块,若是,则S1、则广播第一区块到除第一区块链节点之外,与第二区块链节点连接的区块链节点上;若否,则判断第二区块链节点是否缺少第一区块交易标识列表中所列的交易,若否,则验证第一区块是否通过,若验证通过,则执行S1;若第二区块链节点缺少第一区块交易标识列表中所列的交易,则向第一区块链节点获取包含有缺少的交易标识列表中的交易信息,缓存到第二区块链节点,与已有的交易信息一起,验证第一区块是否通过,若验证通过,则执行S1。
进一步地,所述向第一区块链节点请求获取包含有缺少的交易标识列表中的交易信息进一步改进为:判断交易信息缺失数量是否超过交易缺失占比阈值TR-TH;若是,则向第一区块链节点请求获取整个第一区块的交易信息,缓存到第二区块链节点,验证第一区块,若验证通过,则执行S1;若否,则向第一区块链节点请求获取缺失部分的第一区块的交易信息,缓存到第二区块链节点,与已有的交易信息一起,验证第一区块,若验证通过,则执行S1。
第二方面,本发明提供了用于减少区块重复广播的系统,适用于区块链节点,包括:
区块接收记录模块,用于当第二区块链节点收到第一区块链节点发来的第二区块后,第二区块链节点记录足以唯一识别第一区块的标识和第一区块链节点;区块判断模块,用于判断是否存在第一区块;区块广播模块,用于广播第一区块到除第一区块链节点之外,与第二区块链节点连接的区块链节点上;验证模块,用于验证第一区块是否通过。
进一步地,还包括缓存模块,用于存储第一区块。
进一步地,还包括区块打包模块,用于:当第一区块大小SI≤区块大小阈值TH时,将区块头、交易、第一区块大小打包形成第一区块;当第一区块大小SI>区块大小阈值TH时,将区块头、交易标识列表、第一区块大小打包形成第一区块;其中,交易标识列表除包括挖矿交易外,还包括足以唯一识别交易的标识;区块判断模块,还用于判断第一区块大小SI≤区块大小阈值TH是否为真。
进一步地,区块判断模块,还用于判断第二区块链节点是否缺少第一区块交易标识列表中所列的交易;进一步地,还用于判断交易信息缺失数量是否超过交易缺失占比阈值TR-TH。
第三方面,本发明提供了一种设备,所述设备包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如以上所述的方法。
第四方面,本发明提供了一种存储有计算机程序的存储介质,该程序被处理器执行时实现如以上任一项所述的方法。
3.有益效果
采用本发明提供的技术方案,与现有技术相比,具有如下有益效果:
本发明的技术方案过滤掉已经收到区块的节点,只广播给还没有收到区块的节点,这样可以减少区块的重复广播从而降低带宽的占用。
附图说明
图1为本发明用于减少区块重复广播的方法的流程图。
图2为区块链节点之间区块广播的示意图。
图3为图1优选实施例的流程图。
图4为本发明用于减少区块重复广播的系统结构示意图。
图5为图4优选实施例的系统结构示意图。
图6为本发明设备的结构示意图。
具体实施方式
为进一步了解本发明的内容,结合附图及实施例对本发明作详细描述。
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
本发明中所述的第一、第二等词语,是为了描述本发明的技术方案方便而设置,并没有特定的限定作用,均为泛指,对本发明的技术方案不构成限定作用。
本申请的技术方案描述了区块的广播方法,可在现有的区块链网络上推广应用,比如以太坊、Chain33、EOS等,不受各种区块链网络共识算法,以及挖矿机制的限制,均可推广使用;另外,关于区块,每个区块链网络中对于区块格式内容的定义,以及区块的验证均存在一些差异,当本申请的技术方案在不同的区块链网络中推广应用时,所述的区块与该区块链网络所规定的区块格式及内容相一致,即本申请所述的区块根据不同区块链网络关于区块的定义不同而不同,在不同的区块链网络上应用时,适应它们关于区块自身的格式及内容定义和验证,本申请中的区块作相应的变化。
本申请所述的区块中包含的交易包括含有资产交换的交易,也包括含有外带数据的交易。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
实施例1
本实施例提出用于减少区块重复广播的方法,对于挖矿节点,打包形成第一区块后,广播第一区块到与挖矿节点连接的区块链节点上。
对于非挖矿节点,如图1所示,
S101、当第二区块链节点收到第一区块链节点发来的第一区块后,第二区块链节点记录足以唯一识别第一区块的标识和第一区块链节点;
S102、判断是否存在第一区块,若是,则
S103、则广播第一区块到除第一区块链节点之外,与第二区块链节点连接的区块链节点上;若否,则
S104、验证第一区块是否通过,若验证通过,则执行S103;
若验证不通过,则不作处理,或向第一区块链节点发送第一区块验证不通过的消息。
所述足以唯一识别第一区块的标识为第一区块的区块高度、或区块哈希值、或区块哈希值的部分字节、或第一区块的挖矿交易哈希值、或挖矿交易哈希值的部分字节、或挖矿交易ID、或挖矿交易名称。
对于POW共识算法,第一区块的区块高度作为足以唯一识别第一区块的标识时,并不可靠,因POW的特性,所有挖矿节点均参与挖矿,打包区块,同一区块高度可能会有多个区块存在,而最终保留下来作为该区块高度的区块的是计算难度最大的。但那些没有被保留的区块也会在区块链网络中广播,那么此时区块高度并不能将它们区分开来。但对于POS、DPOS等共识算法则不存在此问题,可以使用第一区块的区块高度作为足以唯一识别第一区块的标识。
区块哈希值是唯一的,区块哈希值的部分字节则是比如对区块BLOCK256的哈希值Hash-BLOCK256,取其前第1-5个字节,后第1-5个字节,或者中间位置第1-5个字节,也可以是中间9个字节,或者,末尾9个字节,或者,前9个字节,以函数F(x)来表示,则F(Hash-BLOCK256)为区块哈希值的部分字节,但无论怎么取值,均可以保证足以唯一识别出所述区块BLOCK256的哈希值Hash-BLOCK256。
第一区块的挖矿交易哈希值、或挖矿交易哈希值的部分字节、或挖矿交易ID、或挖矿交易名称。挖矿交易在一个区块中必然存在且仅有一笔,以挖矿交易哈希值作为足以唯一识别第一区块的标识,毋庸置疑,挖矿交易哈希值的部分字节类比于区块哈希值的部分字节,也是可行的,当挖矿交易ID,挖矿交易名称在一个确定的区块链网络中是唯一的时,即一笔交易对应一个交易名称,一个ID,一一对应关系时,挖矿交易ID,挖矿交易名称也均可作为足以唯一识别出所述区块BLOCK256的标识。
判断第二区块链节点是否存在第一区块包括:查询第一区块是否存在的方式有很多种,本实施例通过足以唯一识别第一区块的标识,包括进行查询比对判断,如区块哈希值,或根据函数F(x)倒推,经区块哈希值的部分字节判别,或区块对应的挖矿交易哈希值,或挖矿交易哈希值的部分字节,或挖矿交易ID,挖矿交易名称。实际应用中还可以采用其他方式判断。
验证第一区块:按顺序组装整个第一区块,计算默克尔树根节点哈希值;判断默克尔树根节点哈希值是否与第一区块的区块头中的一致;若一致,则验证通过;所述若验证通过还包括:第二区块链节点存储第一区块。
对于一个区块链挖矿节点(当所述第二区块链节点为区块链挖矿节点)而言,一个区块要么是其他区块链节点(包括区块链挖矿节点和区块链非挖矿节点)发来的,要么是该区块链挖矿节点自身产生的,而区块链挖矿节点自身可以并发处理,因此挖矿节点既打包区块,也接收区块。
对于一个区块链非挖矿节点(当所述第二区块链节点为区块链非挖矿节点)而言,因为自身不能产生区块,接收到的一个区块一定是从其他区块链节点(包括区块链挖矿节点和区块链非挖矿节点)发来的。
对于第一区块的打包/构造方法为:
当第一区块大小SI≤区块大小阈值TH时,将区块头、交易、第一区块大小打包形成第一区块;
当第一区块大小SI>区块大小阈值TH时,将区块头、交易标识列表、第一区块大小打包形成第一区块;其中,交易标识列表除包括挖矿交易外,还包括足以唯一识别交易的标识。
所述足以唯一识别交易的标识为交易哈希值,或交易哈希值的部分字节,或交易ID号,或交易名称。
在一个确定的区块链项目中,因每个交易的收发地址,及交易内容等各不相同,所以交易哈希值具有唯一识别交易的特性。交易ID号类比于中国公民使用的身份证号码,在一个确定的区块链项目中,交易名称也可以唯一识别一笔交易,但并不代表所有区块链项目都是,在本方法实际应用过程中,应根据具体应用场景而定。
交易哈希值的部分字节:假设F(x)是对交易哈希值取部分字节的函数,那么函数F(x),以F(Hash-Tm)为例,实现的效果是,对交易Tm的哈希值Hash-Tm,取其前第1-5个字节,后第1-5个字节,或者中间位置第1-5个字节,也可以是中间9个字节,或者,末尾9个字节,或者,前9个字节,但无论怎么取值,均可以保证足以唯一识别出所述交易Tm的哈希值Hash-Tm,从而进一步减小交易广播的大小。
在比特币的区块链中,区块头包含区块高度(版本号)、默克尔状态树根节点哈希值、前一区块哈希值、时间戳、难度目标、用于工作量证明算法的计数器;交易哈希列表包含区块中所有交易的哈希值;其他区块链上,区块头的内容根据各个区块链各自的区块头内容而定。区块大小阈值TH可以设置成1M,需要根据网络情况来配置。
如图2所示,为区块链节点之间区块广播的示意图。所述交易标识列表包括所述挖矿节点产生的挖矿交易。因为在区块被打包形成之前,区块链非挖矿节点中没有挖矿交易,挖矿交易是在区块链挖矿节点打包区块时产生的,所以在区块链挖矿节点打包所述第一区块时,在交易标识列表中放入完整的挖矿交易内容,而除挖矿交易之外的交易,仅在交易标识列表中存储足以唯一识别交易的标识。
如图3所示,当第一区块大小SI>区块阈值TH(TR-TH可以设置成2/3,需要根据网络情况来配置)时,广播方法包括:
S301、第二区块链节点收到第一区块后,第二区块链节点记录足以唯一识别第一区块的标识和第一区块链节点;
S302、判断是否存在第一区块,若是,则
S303、广播第一区块到除第一区块链节点之外,与第二区块链节点连接的区块链节点上;若否,则
S304、判断第二区块链节点是否缺少第一区块交易标识列表中所列的交易,若否,则
S305、验证第一区块是否通过,若验证通过,则执行S303;若验证不通过,则S306、不作处理,或向第一区块链节点发送第一区块验证不通过的消息。
若第二区块链节点缺少第一区块交易标识列表中所列的交易,则
S307、判断交易信息缺失数量是否超过交易缺失占比阈值TR-TH;若是,则
S308、向第一区块链节点请求获取整个第一区块的交易信息,缓存到第二区块链节点,则执行S305、S306和S303;若否,则
S309、向第一区块链节点请求获取缺失部分的第一区块的交易信息,缓存到第二区块链节点,与已有的交易信息一起;
S310、验证第一区块是否通过,若验证通过,则执行S303;若验证不通过,则执行S308、S305、S306和S303。
判断第二区块链节点是否存在第一区块;查询第一区块是否存在的方式有很多种,本实施例通过足以唯一识别第一区块的标识,包括进行查询比对判断,如第一区块哈希值,或根据函数F(x)倒推,经第一区块哈希值的部分字节判别,或第一区块区块高度,或挖矿交易哈希值、挖矿交易哈希值的部分字节、挖矿交易ID、挖矿交易名称。实际应用中还可以采用其他方式判断。
判断第二区块链节点是否存在交易标识列表所列的交易方法为:查询交易是否存在的方式有很多种,本实施例通过足以唯一识别交易的标识,包括进行查询比对判断,如交易哈希值,或根据函数F(x)倒推,经交易哈希值的部分字节判别,或交易ID号,或交易名称。实际应用中还可以采用其他方式判断。
上述内容详细讲述了第一区块大小SI>区块大小阈值TH时,广播的过程。一方面通过广播包含有交易标识列表的区块,减少所广播区块的大小,从而降低对网络带宽和节点算力的占用量;另一方面减少区块在节点之间被重复广播的次数,从而降低对网络带宽的占用,从而实现区块链网络稳定运行。
挖矿节点打包第一区块,当第一区块大小SI≤区块大小阈值TH;挖矿节点将区块头、交易、第一区块大小打包形成第一区块广播给与挖矿节点连接的区块链节点;假设第四区块链节点收到了第二区块链节点发来的第一区块,那么:
对于采用Pow共识算法的区块链项目,采用本实施例所述方法广播区块,直到所有区块链节点都收到该区块高度的区块后,共识完成为止;对于采用Pos、DPos共识算法的区块链项目,受限于其自身的特点,在区块共识达成后,仍存在部分节点(非共识节点)没有收到区块的情况,那么以区块共识完成为时间节点,在该时间节点之前,可以采用本实施例所述区块广播方法,或采用现有技术中的区块广播方法对区块进行广播,在该时间节点之后,即区块共识完成之后,可以继续采用本实施例所述区块广播方法对区块进行广播,以减少对区块链网络带宽的占用,提高区块链网络运行的稳定性。
实施例2
用于减少区块重复广播的系统,如图4所示,适用于区块链节点,包括:
区块接收记录模块,用于当第二区块链节点收到第一区块链节点发来的第二区块后,第二区块链节点记录足以唯一识别第一区块的标识和第一区块链节点;区块判断模块,用于判断是否存在第一区块;区块广播模块,用于广播第一区块到除第一区块链节点之外,与第二区块链节点连接的区块链节点上;验证模块,用于验证第一区块是否通过。
如图5所示,进一步还包括缓存模块,用于存储第一区块;还包括区块打包模块,用于:当第一区块大小SI≤区块大小阈值TH时,将区块头、交易、第一区块大小打包形成第一区块;当第一区块大小SI>区块大小阈值TH时,将区块头、交易标识列表、第一区块大小打包形成第一区块;其中,交易标识列表除包括挖矿交易外,还包括足以唯一识别交易的标识;区块判断模块,还用于判断第一区块大小SI≤区块大小阈值TH是否为真。区块判断模块,还用于判断第二区块链节点是否缺少第一区块交易标识列表中所列的交易;进一步地,还用于判断交易信息缺失数量是否超过交易缺失占比阈值TR-TH。
实施例3
本实施例提出用于减少区块重复广播的方法,涉及一种区块广播方法,用于减少区块的重复广播,降低区块链网络带宽的占用。
为进一步降低带宽的占用,本实施例还提出了一种区块广播方法,用于减少区块广播的信息内容,只广播交易哈希值,来降低区块链网络带宽的占用。
从本实施例提出的用于减少区块重复广播的一种区块广播方法可以看出,不用再对已经收到的区块进行验证和存储了,即减少了对区块链节点的CPU计算和存储资源的占用;这些区块占用一定的空间大小,在重复广播时占用了区块链网络的带宽资源。当无法避免这种重复广播区块的情况时,可以控制重复广播区块的大小,从而降低区块链网络带宽的占用。
假设以Chain33上的挖矿节点Chain33-D广播区块高度为336的区块Block-336为例,进一步阐述本实施例的区块广播方法,区块Block-336内包含挖矿交易的完整内容,广播的流程为:
挖矿节点Chain33-D判断区块Block-336的区块大小SI-336≤区块大小阈值TH-Chain33;
若是,挖矿节点Chain33-D将区块头、交易、区块大小形成的区块Block-336广播给与挖矿节点Chain33-D连接的区块链节点;假设节点Chain33-E收到了挖矿节点Chain33-D发来的区块Block-336,那么:
节点Chain33-E记录区块Block-336哈希值和挖矿节点Chain33-D后,验证区块Block-336,验证通过后,广播区块Block-336到与节点Chain33-E连接的除挖矿节点Chain33-D以外的区块链节点上;若验证不通过,则不作处理,同时向挖矿节点Chain33-D发送区块Block-336验证不通过的消息。
若否,挖矿节点Chain33-D将区块头、交易标识列表、区块大小形成的区块Block-336广播给与挖矿节点Chain33-D连接的区块链节点。假设此时节点Chain33-F收到了挖矿节点Chain33-D发来的区块Block-336,处理流程如下:
S901、节点Chain33-F记录区块Block-336哈希值和挖矿节点Chain33-D后,获取区块Block-336的交易标识列表与节点Chain33-F本地数据库中的交易信息进行比对;
S903、判断节点Chain33-F是否缺少交易标识列表中的交易信息;
S905、若是,则判断缺失数量是否超过交易缺失占比阈值TR-TH;
S9051、若是,则向挖矿节点Chain33-D请求获取整个区块
Block-336的交易
信息,缓存在节点Chain33-F上;
S90511、验证区块Block-336,按顺序组装整个区块
Block-336,计算默克尔树根节点哈希值;
S90513、判断默克尔树根节点哈希值是否与区块Block-336的区块头中的一致,
若一致,则广播区块Block-336到与节点
Chain33-F连接的除挖矿节点Chain33-D以外的区块链节点上;
若不一致,则不作处理,同时向挖矿节点
Chain33-D发送区块Block-336验证不通过的消息。
S9053、若否,则向挖矿节点Chain33-D请求获取缺失部分的区块
Block-336的交易信息,缓存在节点Chain33-F;
重复步骤S907、S9071、S9051、S90511和S90513。
S907、若否,则验证区块Block-336,按顺序组装整个区块Block-336,计算默克尔树根节点哈希值;
S9071、判断默克尔树根节点哈希值是否与区块Block-336的区块
头中的一致;
若一致,则广播区块Block-336到与节点Chain33-F连接的除挖矿节点Chain33-D以外的区块链节点上;
若不一致,则重复步骤S9051、S90511和S90513。
实施例4
一种设备,所述设备包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如以上所述的方法。
一种存储有计算机程序的存储介质,该程序被处理器执行时实现如以上实施例1-3任一技术方案所述的方法。
图6为本发明一实施例提供的一种设备的结构示意图。
如图6所示,作为另一方面,本申请还提供了一种设备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 (13)
1.用于减少区块重复广播的方法,其特征在于,包括:
当第二区块链节点收到第一区块链节点发来的第一区块后,第二区块链节点记录足以唯一识别第一区块的标识和第一区块链节点;判断是否存在第一区块,若是,则S1、则广播第一区块到除第一区块链节点之外,与第二区块链节点连接的区块链节点上;若否,则验证第一区块是否通过,若验证通过,则执行S1。
2.根据权利要求1所述的方法,其特征在于,所述足以唯一识别第一区块的标识为第一区块的区块高度、或区块哈希值、或区块哈希值的部分字节、或第一区块的挖矿交易哈希值、或挖矿交易哈希值的部分字节、或挖矿交易ID、或挖矿交易名称。
3.根据权利要求2所述的方法,其特征在于,所述若验证通过还包括:第二区块链节点存储第一区块。
4.根据权利要求1-3任一项所述的方法,其特征在于:
当第一区块大小SI≤区块大小阈值TH时,将区块头、交易、第一区块大小打包形成第一区块;
当第一区块大小SI>区块大小阈值TH时,将区块头、交易标识列表、第一区块大小打包形成第一区块;
其中,交易标识列表除包括挖矿交易外,还包括足以唯一识别交易的标识。
5.根据权利要求4所述的方法,其特征在于,所述足以唯一识别交易的标识为交易哈希值,或交易哈希值的部分字节,或交易ID号,或交易名称。
6.根据权利要求4所述的方法,其特征在于:
当第一区块大小SI>区块大小阈值TH时,第二区块链节点收到第一区块链节点发来的第一区块后,第二区块链节点记录足以唯一识别第一区块的标识和第一区块链节点;
判断是否存在第一区块,若是,则S1、则广播第一区块到除第一区块链节点之外,与第二区块链节点连接的区块链节点上;若否,则
判断第二区块链节点是否缺少第一区块交易标识列表中所列的交易,若否,则验证第一区块是否通过,若验证通过,则执行S1;
若第二区块链节点缺少第一区块交易标识列表中所列的交易,则向第一区块链节点获取包含有缺少的交易标识列表中的交易信息,缓存到第二区块链节点,与已有的交易信息一起,验证第一区块是否通过,若验证通过,则执行S1。
7.根据权利要求6所述的方法,其特征在于:
所述向第一区块链节点请求获取包含有缺少的交易标识列表中的交易信息进一步改进为:
判断交易信息缺失数量是否超过交易缺失占比阈值TR-TH;
若是,则向第一区块链节点请求获取整个第一区块的交易信息,缓存到第二区块链节点,验证第一区块,若验证通过,则执行S1;
若否,则向第一区块链节点请求获取缺失部分的第一区块的交易信息,缓存到第二区块链节点,与已有的交易信息一起,验证第一区块,若验证通过,则执行S1。
8.用于减少区块重复广播的系统,其特征在于,适用于区块链节点,包括:
区块接收记录模块,用于当第二区块链节点收到第一区块链节点发来的第二区块后,第二区块链节点记录足以唯一识别第一区块的标识和第一区块链节点;
区块判断模块,用于判断是否存在第一区块;
区块广播模块,用于广播第一区块到除第一区块链节点之外,与第二区块链节点连接的区块链节点上;
验证模块,用于验证第一区块是否通过。
9.根据权利要求8所述的系统,其特征在于,还包括缓存模块,用于存储第一区块。
10.根据权利要求8所述的系统,其特征在于,还包括区块打包模块,用于:当第一区块大小SI≤区块大小阈值TH时,将区块头、交易、第一区块大小打包形成第一区块;
当第一区块大小SI>区块大小阈值TH时,将区块头、交易标识列表、第一区块大小打包形成第一区块;其中,交易标识列表除包括挖矿交易外,还包括足以唯一识别交易的标识;
区块判断模块,还用于判断第一区块大小SI≤区块大小阈值TH是否为真。
11.根据权利要求8所述的系统,其特征在于,区块判断模块,还用于判断第二区块链节点是否缺少第一区块交易标识列表中所列的交易;进一步地,还用于判断交易信息缺失数量是否超过交易缺失占比阈值TR-TH。
12.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1-7中任一项所述的方法。
13.一种存储有计算机程序的存储介质,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910633153.2A CN110430067A (zh) | 2019-07-15 | 2019-07-15 | 用于减少区块重复广播的方法和系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910633153.2A CN110430067A (zh) | 2019-07-15 | 2019-07-15 | 用于减少区块重复广播的方法和系统、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110430067A true CN110430067A (zh) | 2019-11-08 |
Family
ID=68409427
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910633153.2A Pending CN110430067A (zh) | 2019-07-15 | 2019-07-15 | 用于减少区块重复广播的方法和系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110430067A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111404701A (zh) * | 2019-12-16 | 2020-07-10 | 杭州复杂美科技有限公司 | 一种信息广播方法、设备及存储介质 |
CN111401904A (zh) * | 2020-06-05 | 2020-07-10 | 支付宝(杭州)信息技术有限公司 | 联盟链中的共识方法和系统 |
CN111523896A (zh) * | 2020-05-06 | 2020-08-11 | 杭州复杂美科技有限公司 | 防攻击方法、设备和存储介质 |
CN111524010A (zh) * | 2020-05-06 | 2020-08-11 | 杭州复杂美科技有限公司 | 平行链共识方法、设备和存储介质 |
CN112929432A (zh) * | 2021-02-01 | 2021-06-08 | 杭州复杂美科技有限公司 | 一种基于重复广播历史的广播方法、设备及储存介质 |
CN116545608A (zh) * | 2023-05-15 | 2023-08-04 | 合肥工业大学 | 基于熟人免疫策略的区块传播方法和系统 |
CN116545608B (zh) * | 2023-05-15 | 2024-06-04 | 合肥工业大学 | 基于熟人免疫策略的区块传播方法和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050094658A1 (en) * | 2003-10-08 | 2005-05-05 | Jen-Kai Chen | Method and apparatus for multicast packet transmission |
CN108595538A (zh) * | 2018-04-04 | 2018-09-28 | 中国地质大学(武汉) | 一种基于区块链的键值数据组织方法及系统 |
CN109525983A (zh) * | 2019-01-04 | 2019-03-26 | 中国联合网络通信集团有限公司 | 信息处理方法及装置、存储介质 |
CN109767220A (zh) * | 2019-01-15 | 2019-05-17 | 中国联合网络通信集团有限公司 | 基于区块链的交易方法及基于区块链的交易系统 |
CN109819016A (zh) * | 2018-12-17 | 2019-05-28 | 维沃移动通信有限公司 | 基于区块链的信息发布方法、信息接收方法和移动终端 |
-
2019
- 2019-07-15 CN CN201910633153.2A patent/CN110430067A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050094658A1 (en) * | 2003-10-08 | 2005-05-05 | Jen-Kai Chen | Method and apparatus for multicast packet transmission |
CN108595538A (zh) * | 2018-04-04 | 2018-09-28 | 中国地质大学(武汉) | 一种基于区块链的键值数据组织方法及系统 |
CN109819016A (zh) * | 2018-12-17 | 2019-05-28 | 维沃移动通信有限公司 | 基于区块链的信息发布方法、信息接收方法和移动终端 |
CN109525983A (zh) * | 2019-01-04 | 2019-03-26 | 中国联合网络通信集团有限公司 | 信息处理方法及装置、存储介质 |
CN109767220A (zh) * | 2019-01-15 | 2019-05-17 | 中国联合网络通信集团有限公司 | 基于区块链的交易方法及基于区块链的交易系统 |
Non-Patent Citations (1)
Title |
---|
(美)阿南萨拉姆.斯瓦米等: "《无线传感器网络:信号处理与通信》", 31 December 2015 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111404701A (zh) * | 2019-12-16 | 2020-07-10 | 杭州复杂美科技有限公司 | 一种信息广播方法、设备及存储介质 |
CN111404701B (zh) * | 2019-12-16 | 2022-04-05 | 杭州复杂美科技有限公司 | 一种信息广播方法、设备及存储介质 |
CN111523896A (zh) * | 2020-05-06 | 2020-08-11 | 杭州复杂美科技有限公司 | 防攻击方法、设备和存储介质 |
CN111524010A (zh) * | 2020-05-06 | 2020-08-11 | 杭州复杂美科技有限公司 | 平行链共识方法、设备和存储介质 |
CN111401904A (zh) * | 2020-06-05 | 2020-07-10 | 支付宝(杭州)信息技术有限公司 | 联盟链中的共识方法和系统 |
CN113657898A (zh) * | 2020-06-05 | 2021-11-16 | 支付宝(杭州)信息技术有限公司 | 联盟链中的共识方法和系统 |
WO2021244581A1 (zh) * | 2020-06-05 | 2021-12-09 | 支付宝(杭州)信息技术有限公司 | 联盟链中的共识方法和系统 |
CN112929432A (zh) * | 2021-02-01 | 2021-06-08 | 杭州复杂美科技有限公司 | 一种基于重复广播历史的广播方法、设备及储存介质 |
CN112929432B (zh) * | 2021-02-01 | 2022-07-15 | 杭州复杂美科技有限公司 | 一种基于重复广播历史的广播方法、设备及储存介质 |
CN116545608A (zh) * | 2023-05-15 | 2023-08-04 | 合肥工业大学 | 基于熟人免疫策略的区块传播方法和系统 |
CN116545608B (zh) * | 2023-05-15 | 2024-06-04 | 合肥工业大学 | 基于熟人免疫策略的区块传播方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110430067A (zh) | 用于减少区块重复广播的方法和系统、设备及存储介质 | |
Chai et al. | Proof-of-reputation based-consortium blockchain for trust resource sharing in internet of vehicles | |
CN110445626A (zh) | 区块打包、广播方法和系统、设备及存储介质 | |
CN109325762A (zh) | 平行链跨链交易方法、设备和存储介质 | |
CN110336676A (zh) | 一种区块链交易广播方法和系统、设备及存储介质 | |
CN110430066A (zh) | 用于减少区块链交易重复广播的方法、设备及存储介质 | |
CN110442652A (zh) | 一种基于区块链的跨链数据处理方法及装置 | |
CN109885264A (zh) | 一种区块链节点的逻辑分片方法及其系统 | |
CN109522362A (zh) | 基于区块链数据的非完全数据同步方法、系统及设备 | |
CN108694575A (zh) | 基于区块链的转账验证方法、装置及存储介质 | |
CN110443610A (zh) | 用于减少交易组重复广播的方法和系统、设备及存储介质 | |
CN112965985B (zh) | 一种实现跨链互操作的数据一致性维护方法 | |
CN108984662A (zh) | 一种区块链数据同步方法 | |
CN106875165A (zh) | 一种利用软件定义网络优化的共识算法 | |
CN109218348A (zh) | 一种区块链中区块的确定方法及节点设备 | |
CN110349004A (zh) | 基于用户节点关系网络的欺诈风险侦测方法及装置 | |
CN108876538B (zh) | 一种订单信息处理方法 | |
CN110336677A (zh) | 区块打包、广播方法和系统、设备及存储介质 | |
CN109508973A (zh) | 基于区块链的价格管理方法、装置和区块链系统 | |
CN109784888A (zh) | 红包处理方法、设备和存储介质 | |
CN111694837A (zh) | 基于业务数据区块链的共享数据存储方法及装置 | |
CN110490734A (zh) | 交易组构建、广播方法和系统、设备及存储介质 | |
CN110784501A (zh) | 含交易组区块的打包和广播方法及系统、设备和存储介质 | |
CN110445843A (zh) | 平行链区块推送方法、设备和存储介质 | |
CN112184454B (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: 20191108 |
|
RJ01 | Rejection of invention patent application after publication |