CN112511616A - 一种区块传播的方法及装置 - Google Patents
一种区块传播的方法及装置 Download PDFInfo
- Publication number
- CN112511616A CN112511616A CN202011334923.2A CN202011334923A CN112511616A CN 112511616 A CN112511616 A CN 112511616A CN 202011334923 A CN202011334923 A CN 202011334923A CN 112511616 A CN112511616 A CN 112511616A
- Authority
- CN
- China
- Prior art keywords
- node
- transaction
- block
- lookup table
- transmitted
- 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
- 238000000034 method Methods 0.000 title claims abstract description 64
- 230000002441 reversible effect Effects 0.000 claims abstract description 175
- 238000005070 sampling Methods 0.000 claims abstract description 103
- 238000011156 evaluation Methods 0.000 claims abstract description 41
- 238000004364 calculation method Methods 0.000 claims abstract description 20
- 230000006870 function Effects 0.000 claims description 91
- 238000012545 processing Methods 0.000 claims description 26
- 239000012634 fragment Substances 0.000 claims description 24
- 230000000644 propagated effect Effects 0.000 claims description 23
- 238000004422 calculation algorithm Methods 0.000 claims description 18
- 238000000605 extraction Methods 0.000 claims description 14
- 238000013507 mapping Methods 0.000 claims description 14
- 230000007480 spreading Effects 0.000 claims description 13
- 238000003892 spreading Methods 0.000 claims description 13
- 238000003860 storage Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 abstract description 13
- 230000003993 interaction Effects 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 31
- 230000005540 biological transmission Effects 0.000 description 21
- 238000004590 computer program Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000002452 interceptive effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012216 screening Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000011410 subtraction method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Technology Law (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Power Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种区块传播的方法及装置,包括:第一节点发送邀请信息至第二节点其中,邀请信息包括布隆过滤器,再对待传播区块中的各交易进行抽样计算得到第一抽样估值,并接收第二节点发送的第二抽样估值,然后根据第一抽样估值和所述第二抽样估值,确定出第一可逆布隆查找表的桶的数量,再基于待传播区块中的各交易作为键值,按照桶的数量生成第一可逆布隆查找表,将待传播区块的区块头和第一可逆布隆查找表发送给第二节点,其中,第一可逆布隆查找表用于第二节点查找出所述待传播区块中的各交易,从而得到待传播区块,减少了数据交互的过程,降低了传播区块的时间,增加了传播区块的效率。
Description
技术领域
本发明涉及金融科技(Fintech)领域,尤其涉及一种区块传播的方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术(例如:区块链、云计算或大数据)应用在金融领域,传统金融业正在逐步向金融科技转变,大数据技术也不例外,但由于金融、支付行业的安全性、实时性要求,也对大数据技术提出的更高的要求。
在区块链系统中,在节点产生新的区块之后,该节点需要将产生的新的区块传播至其他节点,由于每个节点各自的交易池中可能会存储有新的区块中的交易,即新的区块中的交易与其他节点各自的交易池中存在相同的交易。因而,若广播整个区块,会存在浪费带宽的问题。
目前,为了减少在传播过程中的数据传输量,通过布隆过滤器遍历交易ID等方法筛选出其他节点与新的区块中不相同的交易,产生新的区块的节点只需将不相同的交易发送至其他节点即可,以减少数据量的传输。但因为布隆过滤器存在假阳性概率,即筛选不相同的交易的误差概率,导致仍需要传输交易ID方法作进一步筛选,增加了传输过程中的交互步骤,影响了区块传播的效率。
因此,现需要一种区块传播的方法,用于减少交易传输过程中的交互步骤,增加区块传播的效率。
发明内容
本发明实施例提供一种区块传播的方法及装置,用于减少区块传播过程中的交互步骤,增加区块传播的效率。
第一方面,本发明实施例提供一种区块传播的方法,包括:
第一节点发送邀请信息至第二节点;所述邀请信息中包括所述第一节点基于待传播区块中各交易生成的布隆过滤器;
所述第一节点对所述待传播区块中的各交易进行抽样计算得到第一抽样估值,并接收所述第二节点发送的第二抽样估值;所述第二抽样估值是所述第二节点从所述布隆过滤器确定的呈阳性交易中进行抽样计算得到的;
所述第一节点根据所述第一抽样估值和所述第二抽样估值,确定出第一可逆布隆查找表的桶的数量;
所述第一节点基于所述待传播区块中的各交易作为键值,按照所述桶的数量生成第一可逆布隆查找表;
所述第一节点将所述待传播区块的区块头和所述第一可逆布隆查找表发送给所述第二节点;所述第一可逆布隆查找表用于所述第二节点查找出所述待传播区块中的各交易,从而得到所述待传播区块。
上述技术方案中,通过第一节点将基于待传播区块中的各交易作为键值,按照桶的数量生成第一可逆布隆查找表发送至第二节点,以使第二节点可以得到待传播区块中的交易,无需再向第一节点发送获取交易内容的请求,减少了数据交互的过程,降低了传播区块的时间,增加了传播区块的效率。且根据第一抽样估值和第二抽样估值,确定出桶的数量,提升了根据所述桶的数量确定的可逆布隆查找表反解出待传播区块中的交易的成功率。
可选的,所述第一节点根据所述第一抽样估值和所述第二抽样估值,确定出第一可逆布隆查找表的桶的数量,包括:
所述第一节点根据所述第一抽样估值和所述第二抽样估值,通过差异估计算法确定出交易差异估计值;
所述第一节点根据所述交易差异估计值确定出第一可逆布隆查找表的桶的数量。
可选的,所述第一节点对所述待传播区块中的各交易进行抽样计算得到第一抽样估值,包括:
针对预设抽样规则中的每个第一哈希函数,所述第一节点确定出所述待传播区块中每个交易在所述第一哈希函数下的第一哈希值;并根据所述预设抽样规则中的抽取原则,从各第一哈希值中确定第一数量的第一哈希值作为所述第一抽样估值。
可选的,所述第一节点根据所述第一抽样估值和所述第二抽样估值,通过差异估计算法确定出交易差异估计值,包括:
针对每个第一哈希函数,所述第一节点确定所述第一哈希函数的第一抽样估值与所述第一哈希函数的第二抽样估值的相似度;
所述第一节点将各第一哈希函数的相似度,确定平均相似度;
所述第一节点根据所述平均相似度和所述差异估计算法确定出交易差异估计值。
可选的,所述差异估计算法为公式(1);
D=(1-S)/(1+S)*(L1+L2)…………………………………(1);
其中,D为所述差异估计值,S为所述平均相似度,L1为所述待传播区块中交易的数量,L2为所述第二节点从布隆过滤器确定的呈阳性交易的数量。
可选的,所述第一节点基于所述待传播区块中的各交易作为键值,按照所述桶的数量生成可逆布隆查找表,包括:
所述第一节点通过第二哈希函数,确定所述待传播区块中的每个交易的第三哈希值;
针对每个交易,所述第一节点将所述交易的第三哈希值分片,每个分片作为所述第一可逆布隆查找表的键进行桶的映射,将所述交易的交易内容作为所述第一可逆布隆查找表的值,从而生成所述第一可逆布隆查找表。
第二方面,本发明实施例提供一种区块传播的方法,包括:
第二节点接收第一节点发送邀请信息;所述邀请信息包括所述第一节点基于待传播区块中各交易生成的布隆过滤器;
所述第二节点根据所述布隆过滤器确定出自身中呈阳性交易;
所述第二节点对每个所述呈阳性交易进行抽样计算得到第二抽样估值,并发送至所述第一节点;所述第二抽样估值用于所述第一节点确定出可逆布隆查找表的桶的数量;
所述第二节点接收第一可逆布隆查找表和所述待传播区块的区块头;所述第一可逆布隆查找表是所述第一节点基于所述待传播区块中的各交易作为键值,按照所述桶的数量生成的;
所述第二节点根据所述第一可逆布隆查找表和第二可逆布隆查找表查找出所述待传播区块中的各交易,并根据所述区块头得到所述待传播区块;所述第二可逆布隆查找表是所述第二节点基于所述呈阳性交易作为键值,按照所述桶的数量生成的。
上述技术方案中,通过第二节点第一可逆布隆查找表和第二可逆布隆查找表查找出待传播区块中的各交易,以使第二节点可以得到待传播区块中的交易,无需再向第一节点发送获取交易内容的请求,减少了数据交互的过程,降低了传播区块的时间,增加了传播区块的效率。
可选的,所述第二节点对每个所述呈阳性交易进行抽样计算得到第二抽样估值,包括:
针对预设抽样规则中的每个第一哈希函数,所述第二节点确定出每个所述呈阳性交易在所述第一哈希函数下的第二哈希值;并根据所述预设抽样规则中的抽取原则,从各第二哈希值中确定第二数量的第二哈希值作为所述第二抽样估值。
可选的,所述第二可逆布隆查找表是所述第二节点基于所述呈阳性交易作为键值,按照所述桶的数量生成的,包括:
所述第二节点通过第二哈希函数,确定每个所述呈阳性交易的第四哈希值;
所述第二节点基于所述第一可逆布隆查找表的桶的数量作为所述第二可逆布隆查找表的桶的数量;
针对每个所述呈阳性交易,所述第二节点将所述呈阳性交易的第四哈希值分片,每个分片作为所述第二可逆布隆查找表的键进行桶的映射,将所述呈阳性交易的交易内容作为所述第二可逆布隆查找表的值,从而生成所述第二可逆布隆查找表。
可选的,所述第二节点根据所述第一可逆布隆查找表和所述第二可逆布隆查找表查找出所述待传播区块中的交易,包括:
所述第二节点将所述第一可逆布隆查找表和所述第二可逆布隆查找表的差确定为差异查找表;
所述第二节点根据所述差异查找表中进行反解,得到所述第一节点的待传播区块的独有的第一交易集和所述第二节点在所述呈阳性交易中独有的第二交易集;
所述第二节点根据所述呈阳性交易和所述第二交易集,确定出共有交易;
所述第二节点将所述共有交易和所述第一交易集确定为所述待传播区块中的各交易。
可选的,所述第二节点根据所述差异查找表中进行反解,得到所述第一节点的待传播区块的独有的第一交易集和所述第二节点在所述呈阳性交易中独有的第二交易集,包括:
所述第二节点针对所述差异查找表中任一存有单一交易的桶,根据第二哈希函数得到所述单一交易的交易内容的第五哈希值;
所述第二节点将所述第五哈希值分片,并将分片映射的桶中所述单一交易删除;
所述第二节点更新所述差异查找表,直至得到所述差异查找表中所述第一节点的待传播区块的独有的第一交易集和所述第二节点在所述呈阳性交易中独有的第二交易集。
本发明实施例中,差异查找表的桶的数量是根据第一抽样估值和第二抽样估值确定的,其中,差异查找表的反解出各交易的成功率与桶的数量和差异查找表中的交易数量相关,根据差异估计出差异查找表中的交易数量确定桶的数量,提升了差异查找表反解出交易的成功率。在此基础上,通过将待传播区块的交易映射至第一可逆布隆查找表中,以使第二节点根据第一可逆布隆查找表和第二可逆布隆查找表得到差异查找表,再根据差异查找表反解得到待传播区块的交易,以此无需再向第一节点发送获取交易内容的请求也可以得到待传播区块中的交易,减少了数据交互的过程,降低了传播区块的时间,增加了传播区块的效率,因为待传播区块中的各交易映射至了第一可逆布隆查找表,因此并未增加传播待传播区块的数据量。
第三方面,发明实施例提供一种区块传播的装置,包括:
发送单元,用于发送邀请信息至第二节点;所述邀请信息中包括所述第一节点基于待传播区块中各交易生成的布隆过滤器;
处理单元,用于对所述待传播区块中的各交易进行抽样计算得到第一抽样估值,并接收所述第二节点发送的第二抽样估值;所述第二抽样估值是所述第二节点从所述布隆过滤器确定的呈阳性交易中进行抽样计算得到的;
根据所述第一抽样估值和所述第二抽样估值,确定出第一可逆布隆查找表的桶的数量;
基于所述待传播区块中的各交易作为键值,按照所述桶的数量生成第一可逆布隆查找表;
将所述待传播区块的区块头和所述第一可逆布隆查找表发送给所述第二节点;所述第一可逆布隆查找表用于所述第二节点查找出所述待传播区块中的各交易,从而得到所述待传播区块。
可选的,所述处理单元具体用于:
根据所述第一抽样估值和所述第二抽样估值,通过差异估计算法确定出交易差异估计值;
根据所述交易差异估计值确定出第一可逆布隆查找表的桶的数量。
可选的,所述处理单元具体用于:
针对预设抽样规则中的每个第一哈希函数,确定出所述待传播区块中每个交易在所述第一哈希函数下的第一哈希值;并根据所述预设抽样规则中的抽取原则,从各第一哈希值中确定第一数量的第一哈希值作为所述第一抽样估值。
可选的,所述处理单元具体用于:
针对每个第一哈希函数,确定所述第一哈希函数的第一抽样估值与所述第一哈希函数的第二抽样估值的相似度;
将各第一哈希函数的相似度,确定平均相似度;
根据所述平均相似度和所述差异估计算法确定出交易差异估计值。
可选的,所述差异估计算法为公式(1);
D=(1-S)/(1+S)*(L1+L2)…………………………………(1);
其中,D为所述差异估计值,S为所述平均相似度,L1为所述待传播区块中交易的数量,L2为所述第二节点从布隆过滤器确定的呈阳性交易的数量。
可选的,所述处理单元具体用于:
通过第二哈希函数,确定所述待传播区块中的每个交易的第三哈希值;
针对每个交易,将所述交易的第三哈希值分片,每个分片作为所述第一可逆布隆查找表的键进行桶的映射,将所述交易的交易内容作为所述第一可逆布隆查找表的值,从而生成所述第一可逆布隆查找表。
第四方面,发明实施例提供一种区块传播的装置,包括:
接收模块,用于接收第一节点发送邀请信息;所述邀请信息包括所述第一节点基于待传播区块中各交易生成的布隆过滤器;
处理模块,用于根据所述布隆过滤器确定出自身中呈阳性交易;
对每个所述呈阳性交易进行抽样计算得到第二抽样估值,并发送至所述第一节点;所述第二抽样估值用于所述第一节点确定出可逆布隆查找表的桶的数量;
接收第一可逆布隆查找表和所述待传播区块的区块头;所述第一可逆布隆查找表是所述第一节点基于所述待传播区块中的各交易作为键值,按照所述桶的数量生成的;
根据所述第一可逆布隆查找表和第二可逆布隆查找表查找出所述待传播区块中的各交易,并根据所述区块头得到所述待传播区块;所述第二可逆布隆查找表是所述第二节点基于所述呈阳性交易作为键值,按照所述桶的数量生成的。
可选的,所述处理模块具体用于:
针对预设抽样规则中的每个第一哈希函数,确定出每个所述呈阳性交易在所述第一哈希函数下的第二哈希值;并根据所述预设抽样规则中的抽取原则,从各第二哈希值中确定第二数量的第二哈希值作为所述第二抽样估值。
可选的,所述处理模块具体用于:
通过第二哈希函数,确定每个所述呈阳性交易的第四哈希值;
基于所述第一可逆布隆查找表的桶的数量作为所述第二可逆布隆查找表的桶的数量;
针对每个所述呈阳性交易,将所述呈阳性交易的第四哈希值分片,每个分片作为所述第二可逆布隆查找表的键进行桶的映射,将所述呈阳性交易的交易内容作为所述第二可逆布隆查找表的值,从而生成所述第二可逆布隆查找表。
可选的,所述处理模块具体用于:
将所述第一可逆布隆查找表和所述第二可逆布隆查找表的差确定为差异查找表;
根据所述差异查找表中进行反解,得到所述第一节点的待传播区块的独有的第一交易集和所述第二节点在所述呈阳性交易中独有的第二交易集;
根据所述呈阳性交易和所述第二交易集,确定出共有交易;
将所述共有交易和所述第一交易集确定为所述待传播区块中的各交易。
可选的,所述处理模块具体用于:
所述第二节点针对所述差异查找表中任一存有单一交易的桶,根据第二哈希函数得到所述单一交易的交易内容的第五哈希值;
将所述第五哈希值分片,并将分片映射的桶中所述单一交易删除;
更新所述差异查找表,直至得到所述差异查找表中所述第一节点的待传播区块的独有的第一交易集和所述第二节点在所述呈阳性交易中独有的第二交易集。
第五方面,本发明实施例还提供一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述区块传播的方法。
第六方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行上述区块传播的方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种区块传播的示意图;
图2为本发明实施例提供的一种区块传播的示意图;
图3为本发明实施例提供的一种区块传播的示意图;
图4为本发明实施例提供的一种区块传播的示意图;
图5为本发明实施例提供的一种系统架构的示意图;
图6为本发明实施例提供的一种区块传播的方法的流程的示意图;
图7为本发明实施例提供的一种生成布隆过滤器的示意图;
图8a为本发明实施例提供的一种第一抽样估值的示意图;
图8b为本发明实施例提供的一种第二抽样估值的示意图;
图9为本发明实施例提供的一种第一可逆布隆查找表的示意图;
图10为本发明实施例提供的一种第一可逆布隆查找表的桶的示意图;
图11为本发明实施例提供的一种区块传播的方法的流程的示意图;
图12为本发明实施例提供的一种差异查找表的示意图;
图13为本发明实施例提供的一种区块传播的方法的结构的示意图;
图14为本发明实施例提供的一种区块传播的方法的结构的示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在区块链系统中,在节点产生新的区块之后,该节点会将产生的新的区块传播至其他节点,图1示例性的示出了一种区块传播的示意图,如图1所示,第一节点向第二节点发起邀请信息,邀请信息包括待传播区块的哈希值、高度和区块头等信息。第二节点向第一节点发送请求信息。第一节点将区块中各交易发送至第二节点。
但由于每个节点各自的交易池中可能会存储有新的区块中的交易,即新的区块中的交易与其他节点各自的交易池中存在相同的交易。因而,若广播整个区块,会存在浪费带宽的问题。
目前,为了减少区块传播的传输量,提供了一下三种方法。
方法一,图2示例性的示出了一种区块传播的示意图,如图2所示,具体步骤如下:
步骤210、第一节点向第二节点发送邀请信息,邀请信息包括待传播区块的哈希值和高度等信息。
步骤220、第二节点向第一节点发送请求信息。
步骤230、第一节点将待传播区块的区块头和各交易的哈希值发送至第二节点。
步骤240、第二节点根据待传播区块中各交易的哈希值遍历自身交易池中的交易,查找出缺少的交易。
步骤250、第二节点将缺少的交易的哈希值发送至第一节点。
步骤260、第一节点根据缺少的交易的哈希值,向第二节点发送缺少的交易。
步骤270、第二节点根据自身拥有的交易和第一节点发送的交易组装出待传播区块,完成区块传播。
但是方法一虽然减少了区块传播的数据量,但是增加了区块传播的交互过程,影响了区块传播的效率。
方法二,图3示例性的示出了一种区块传播的示意图,如图3所示,具体步骤如下:
步骤310、第一节点向第二节点发送邀请信息,邀请信息包括待传播区块的哈希值和高度等信息。
步骤320、第二节点向第一节点发送第二节点的交易池的布隆过滤器。
步骤330、第一节点根据布隆过滤器确定出第二节点缺少的交易,然后将缺少的交易和待传播区块中各交易的哈希值和区块头发送至第二节点。
步骤340、第二节点根据待传播区块中各交易的哈希值遍历自身交易池中的交易,查找出缺少的交易,因布隆过滤器存在假阳性的结果,因此若确定第一节点发送的缺少的交易与自身查找出来的交易不相同,则仍需确定出缺少的交易。其中假阳性的结果为第一节点确定交易存在待传播区块中,实际上不存在。
步骤350、第二节点将缺少的交易的哈希值发送至第一节点。
步骤360、第一节点根据缺少的交易的哈希值,向第二节点发送缺少的交易。
步骤370、第二节点根据自身拥有的交易和第一节点发送的交易组装出待传播区块,完成区块传播。
但是方法二虽然减少了区块传播的数据量,但是因为布隆过滤器存在假阳性问题,因此存在增加区块传播的交互过程的问题,影响了区块传播的效率。
方法三,图4示例性的示出了一种区块传播的示意图,如图4所示,具体步骤如下:
步骤410、第一节点向第二节点发送邀请信息,邀请信息包括待传播区块的哈希值和高度等信息。
步骤420、第二节点向第一节点发送请求信息,请求信息包括第二节点中交易池的交易数量。
步骤430、第一节点根据第二节点中交易池的交易数量确定出第一节点与第二节点之间存在的差异交易的数量,并建立待传播区块的可逆布隆查找表,然后将待传播区块的区块头、待传播区块的可逆布隆查找表和待传播区块的布隆过滤器发送至第二节点。
步骤440、第二节点根据待传播区块的布隆过滤器遍历自身的交易,得到自身交易中呈阳性交易,并建立呈阳性交易的可逆布隆查找表,然后通过与待传播区块的可逆布隆查找表之间差异,确定出差异查找表,根据差异查找表返解出第二节点中缺少的交易的哈希值,然后向第一节点请求缺少的交易的哈希值。
步骤450、第二节点将缺少的交易的哈希值发送至第一节点。
步骤460、第一节点根据缺少的交易的哈希值,向第二节点发送缺少的交易。
步骤470、第二节点根据自身拥有的交易和第一节点发送的交易组装出待传播区块,完成区块传播。
但是方法三虽然减少了区块传播的数据量,但增加区块传播的交互过程的问题,影响了区块传播的效率。
因此现需要一种区块传播的方法,减少区块传播的交互过程,且不增加区块传播的数据量,可以在低带宽的情况下完成区块传播。
图5示例性的示出了本发明实施例所适用的一种系统架构,该系统架构包括第一节点510和第二结点520。
其中,第一节点510为区块链系统中获得了工作量证明,且产生了新区块的节点,由第一节点510将产生的新区块进行传播。第一节点510用于向第二节点520发送待传播区块中各交易生成的布隆过滤器,并根据第二节点520发送的第二抽样估值和自身确定出的第一抽样估值得到第一可逆布隆查找表的桶的数量,然后将待传播区块中的各交易映射至可逆布隆查找表中发送至第二节点520。
第二节点520区块链系统中待更新本地区块链的其他节点,第二节点520可以为多个,图5中仅示例性的示出了第二节点520,在此不做第二节点520数量的限定。第二节点520用于根据第一节点510发送的布隆过滤器确定出自身呈阳性交易,并建立第二可逆布隆查找表,然后根据第一可逆布隆查找表和第二可逆布隆查找表得到差异查找表,最后根据差异查找表得到待传播区块中的各交易,并根据区块头得到待传播区块,更新至自身本地的区块链中。
需要说明的是,上述图5所示的结构仅是一种示例,本发明实施例对此不做限定。
基于上述描述,图6示例性的示出了本发明实施例提供的一种区块传播的方法的流程,该流程可由区块传播的装置执行。
如图6所示,该流程具体包括:
步骤610,第一节点发送邀请信息至第二节点。
本发明实施例中,邀请信息中包括第一节点基于待传播区块中各交易生成的布隆过滤器,其中,布隆过滤器是一串二进制位数组,用于检索一个元素是否在一个集合(即布隆过滤器)中,具体的,利用多个不同的哈希函数,将一条交易映射至多个不同的位置,然后将对应位置设置为数值1,若对于一条待测交易,根据上述的哈希函数进行计算,确定出的待映射位置的数值为1,则认为该待测交易可能存在于布隆过滤器中,然而,随着交易数量的增加,布隆过滤器存在假阳性问题。
例如,图7示例性的示出了一种生成布隆过滤器的示意图,如图7所示,待传播区块中拥有60条交易,根据预设的4个哈希函数(哈希函数1、哈希函数2、哈希函数3和哈希函数4)确定出4个交易的哈希值,将4个交易的哈希值取23(可以是用户根据进行预设的值,也可以是布隆过滤器的位置的数量)的模数,根据模数确定出各交易映射于布隆过滤器的位置,并将位置设置为1,得到待传播区块中各交易生成的布隆过滤器。
示例性的,邀请信息中还包括待传播区块的高度等信息。
步骤620,所述第一节点对所述待传播区块中的各交易进行抽样计算得到第一抽样估值,并接收所述第二节点发送的第二抽样估值。
本发明实施例中,第一节点对待传播区块中的各交易根据预设抽样规则中的第一哈希函数,确定出第一抽样估值。其中,第二抽样估值是第二节点从布隆过滤器确定的呈阳性交易中进行抽样计算得到的。
进一步地,针对预设抽样规则中的每个第一哈希函数,第一节点确定出待传播区块中每个交易在第一哈希函数下的第一哈希值;并根据预设抽样规则中的抽取原则,从各第一哈希值中确定第一数量的第一哈希值作为第一抽样估值。
本发明实施例中,抽取原则中的第一哈希函数可以为多个,如2个或3个等,在此不做限定。抽取原则包括抽取数量,如可以是根据待传播区块中的交易数量和权重值确定抽取数量。抽取原则基于抽取数量,可以针对任一第一哈希函数确定的第一哈希值,抽取哈希值最小的第一哈希值,或抽取哈希值最大的第一哈希值,或指定抽取数量,具体抽取规则在此不做限定。
例如,第一哈希函数的数量为2个,分别为第一哈希函数A和第一哈希函数B,针对任一第一哈希函数得到待传播区块中和交易的哈希值,抽取10%待传播区块的交易数量(如待传播区块中交易数量为60,则抽取数量为60的10%,抽取6个交易的哈希值)的哈希值最小的第一哈希值,从而得到第一抽样估值。
图8a示例性的示出了一种第一抽样估值的示意图,如图8a所示,待传播区块的交易数量为60,根据第一哈希函数A得到60个第一哈希值,然后根据抽样原则,抽取最小的第一哈希值,得到6个第一哈希值,同理,针对第一哈希函数B,也得到6个第一哈希值。
需要说明的是,第二抽样估值的抽样原则与第一抽样估值的抽样原则相同,例如,图8b示例性的示出了一种第二抽样估值的示意图,如图8b所示,呈阳性交易的交易数量为55,根据第一哈希函数A得到50个第一哈希值,然后根据抽样原则,抽取最小的且呈阳性交易的交易数量的10%为第一哈希值,即得到5个第一哈希值,同理,针对第一哈希函数B,也得到5个第一哈希值。
步骤630,所述第一节点根据所述第一抽样估值和所述第二抽样估值,确定出第一可逆布隆查找表的桶的数量。
本发明实施例中,在得到第一抽样估值和第二抽样估值之后,根据差异估计算法,确定出差异估算值,进而确定出第一可逆布隆查找表的桶的数量。
进一步地,第一节点根据第一抽样估值和第二抽样估值,通过差异估计算法确定出交易差异估计值,再根据交易差异估计值确定出第一可逆布隆查找表的桶的数量。
本发明实施例中,差异估计值是根据第一抽样估值和第二抽样估值的相似度确定的,具体的,针对每个第一哈希函数,第一节点确定第一哈希函数的第一抽样估值与第一哈希函数的第二抽样估值的相似度,再将各第一哈希函数的相似度,确定平均相似度,最后根据平均相似度和差异估计算法确定出交易差异估计值。
例如,如上述图8a和图8b所示,对比第一抽样估值和第二抽样估值,针对任一第一哈希函数,确定出相同第一哈希值的数量,如在第一哈希函数A下,第一抽样估值和第二抽样估值中相同第一哈希值的数量为3个,在第一哈希函数B下,第一抽样估值和第二抽样估值中相同第一哈希值的数量为5个,则针对第一哈希函数A:相似度A=相同第一哈希值的数量/第一抽样估值的样本数量=3/6。
针对第一哈希函数B:相似度B=相同第一哈希值的数量/第一抽样估值的样本数量=5/6。
根据相似度A和相似度B得到平均相似度为:(相似度A+相似度B)/2=2/3。
再根据平均相似度及公式(1)得到差异估计值。
D=(1-S)/(1+S)*(L1+L2)……………………………………(1);
其中,D为差异估计值,S为平均相似度,L1为待传播区块中交易的数量,L2为第二节点从布隆过滤器确定的呈阳性交易的数量。
如L2为55,则差异估计值D=(1-2/3)/(1+2/3)*(55+60)=22。
在确定出差异估计值之后,可以根据预设的差异权重,确定出第一可逆布隆查找表的桶的数量,例如,桶的数量=差异估计值*差异权重=22*1.5(差异权重)=33。
步骤640,所述第一节点基于所述待传播区块中的各交易作为键值,按照所述桶的数量生成第一可逆布隆查找表。
本发明实施例中,在得到桶的数量之后,再根据第二哈希函数,将交易映射至第一可逆布隆查找表中。
进一步地,第一节点通过第二哈希函数,确定待传播区块中的每个交易的第三哈希值,针对每个交易,将交易的第三哈希值分片,每个分片作为第一可逆布隆查找表的键进行桶的映射,将交易的交易内容作为第一可逆布隆查找表的键值,从而生成第一可逆布隆查找表。
本发明实施例中,不使用多个哈希函数得到第一可逆布隆查找表的键,而是使用单一第二函数得到每个交易的第三哈希值,针对每个交易,将交易的第三哈希值分片,每个分片作为第一可逆布隆查找表的键进行桶的映射,以减小数据量。
例如,图9示例性的示出了一种第一可逆布隆查找表的示意图,如图9所示,通过使用第三哈希函数,得到该交易的第三哈希值,然后将第三哈希值分为4片,对每个分片进行求模计算,得到映射桶的序号,并将分片作为第一可逆布隆查找表的键进行桶的映射。其中每个桶中包括交易数量、哈希分片和交易内容,图示10示例性的示出了一种第一可逆布隆查找表的桶的示意图,如图10所示,桶序号12中存储有分片哈希对应的交易的交易内容。需要说明的是,第一可逆布隆查找表的桶中,同一交易的分片哈希不同,交易内容相同,如若桶序号12、桶序号25和桶序号28仅存储有同一交易的分片哈希,则桶序号12、桶序号25和桶序号28中的交易内容相同。其中交易内容是由数值序列表示的,并非是哈希值。
步骤650,所述第一节点将所述待传播区块的区块头和所述第一可逆布隆查找表发送给所述第二节点。
本发明实施例中,第一可逆布隆查找表用于第二节点查找出待传播区块中的各交易,从而得到待传播区块,无需再向第一节点发送获取交易内容的请求,减少了数据交互的过程,降低了传播区块的时间,增加了传播区块的效率。
图11示例性的示出了本发明实施例提供的一种区块传播的方法的流程,该流程可由区块传播的装置执行。
如图11所示,具体流程包括:
步骤1110,第二节点接收第一节点发送邀请信息。
本发明实施例中,邀请信息包括第一节点基于待传播区块中各交易生成的布隆过滤器,其中,生成布隆过滤器的方法已经在上述步骤610中进行描述,在此不做赘述。
步骤1120,所述第二节点根据所述布隆过滤器确定出自身中呈阳性交易。
本发明实施例中,呈阳性交易是第二节点的交易池中,针对任一交易,根据步骤1110的方法得到布隆过滤器中对应位置,若对应位置的值均为1,则认为该交易有可能存在于待传播区块中,因此,该交易基于待传播区块中各交易生成的布隆过滤器为呈阳性交易。
步骤1130,所述第二节点对每个所述呈阳性交易进行抽样计算得到第二抽样估值,并发送至所述第一节点。
本发明实施例中,第二节点运用上述步骤630中的抽样规则,进行计算,得到第二抽样估值,需要说明的,第一节点和第二节点运用的抽样规则以及第一哈希函数是相同的。
进一步地,针对预设抽样规则中的每个第一哈希函数,第二节点确定出每个呈阳性交易在第一哈希函数下的第二哈希值,并根据预设抽样规则中的抽取原则,从各第二哈希值中确定第二数量的第二哈希值作为第二抽样估值。
本发明实施例中,具体的方法与上述步骤620所述的方法相同,在此不做赘述。
步骤1140,所述第二节点接收第一可逆布隆查找表和所述待传播区块的区块头。
本发明实施例中,第一可逆布隆查找表是第一节点基于待传播区块中的各交易作为键值,按照桶的数量生成的,用于第二节点得到待传播区块中的各交易。
步骤1150,所述第二节点根据所述第一可逆布隆查找表和第二可逆布隆查找表查找出所述待传播区块中的各交易,并根据所述区块头得到所述待传播区块。
本发明实施例中,第二可逆布隆查找表是第二节点基于呈阳性交易作为键值,按照桶的数量生成的,具体的,第二节点通过第二哈希函数,确定每个呈阳性交易的第四哈希值,第二节点基于第一可逆布隆查找表的桶的数量作为第二可逆布隆查找表的桶的数量,针对每个呈阳性交易,将呈阳性交易的第四哈希值分片,每个分片作为第二可逆布隆查找表的键进行桶的映射,将呈阳性交易的交易内容作为第二可逆布隆查找表的值,从而生成第二可逆布隆查找表。
需要说明的是,第一节点生成第一可逆布隆查找表所用的第二哈希函数与第二节点生成第二可逆布隆查找表所用的第二哈希函数是相同的,具体根据第二哈希函数生成第二可逆布隆查找表与上述步骤640相同,在此不做赘述。
第二节点在得到第一可逆布隆查找表和第二可逆布隆查找表之后,确定出差异查找表,进而得到待传播区块中的交易。
进一步地,第二节点将第一可逆布隆查找表和第二可逆布隆查找表的差确定为差异查找表,再根据差异查找表中进行反解,得到第一节点独有的第一交易集和第二节点在呈阳性交易中独有的第二交易集,然后根据呈阳性交易和第二交易集,确定出共有交易,最后将共有交易和第一交易集确定为待传播区块中的各交易。
本发明实施例中,图12示例性的示出了一种差异查找表的示意图,如图12所示,通过第一可逆布隆查找表减去第二可逆布隆查找表,得到差异查找表,在差异查找表中,会存在不同交易数量的桶,如桶序号12的桶中的交易数量为1,桶序号25的桶中的交易数量为3,桶序号32的桶中的交易数量为0。
需要说明的,交易数量为0的桶,即在第一可逆布隆查找表和第二可逆布隆查找表中,该桶中的交易相同,以为是第一可逆布隆查找表减去第二可逆布隆查找表得到差异查找表,所以交易数量为正数的桶,为第一可逆布隆查找表中独有的交易,即待传播区块中与第二节点中每个呈阳性交易不重复的交易。交易数量为负数的桶,为第二可逆布隆查找表中独有的交易,即与第二节点呈阳性交易中与待传播区块中各交易不重复的交易。其中,分片哈希和交易内容之间的加减方法可以为逻辑异或运算,在此不做限定。
在得到差异查找表之后,第二节点对差异查找表进行反解,得到第一节点独有的第一交易集和所述第二节点在所述呈阳性交易中独有的第二交易集。
进一步地,第二节点针对差异查找表中任一存有单一交易的桶,根据第二哈希函数得到单一交易的交易内容的第五哈希值,再将第五哈希值分片,并将分片映射的桶中单一交易删除,然后更新差异查找表,直至得到差异查找表中第一节点独有的第一交易集和第二节点在呈阳性交易中独有的第二交易集。
本发明实施例中,根据单一交易的桶中的交易,返解出交易数量大于1的桶中的交易,例如,如图12所示,桶序号为12的桶中仅有一笔交易,桶序号为25的桶中存有三笔交易,其中包括序号为12的桶中的交易。根据序号为12的桶的交易内容,通过上述第二哈希函数,得到序号为12的桶的交易的哈希值,然后根据上述方法进行分片,确定出序号为12的桶的交易映射的桶的序号(其中包括桶序号25),然后分片映射的桶中序号为12的桶的交易删除,并更新差异查找表,即更新后的差异查找表桶序号为12的桶中的交易数量为0,桶序号为25的桶中的交易数量为2,然后再根据单一交易的桶中的交易进行反解,如更新后的差异查找表桶序号为17的桶中的交易数量为1,且该交易存储于桶序号为25的桶中,即桶序号为17的桶中仅有一笔交易,该交易的某一分片存储于桶序号为25的桶中,通过上述反解方法,根据桶序号为17的桶中的交易,将桶序号为25的桶中的交易数量更新为1,以此,再根据单一交易的桶中的交易(如更新后交易数量为1的桶序号为25的桶中的交易)进行反解,直至确定出差异查找表中的各交易(即将桶中的交易数量更新至1或0)。
需要说明的是,序号为正数的桶中返解出的为第一节点独有的第一交易集,序号为负数的桶中返解出的为第二节点独有的第二交易集,其方法相同,在此不做赘述。
然后第二节点根据自身呈阳性交易与第二交易集之间的差,确定出第一节点和第二节点之间共有交易,再结合共有交易和待传播区块中独有的第一交易集,得到待传播区块中的各交易,最后根据待传播区块的区块头,打包区块,并更新至本地区块链中。
本发明实施例中,通过差异估计算法,确定出交易的差异估计值,进而确定出差异查找表的桶的数量,以增加差异查找表的反解成功率,增加确定出第一节点与第二节点之间不重复的交易。又根据将待传播区块中交易的交易内容映射至第一可逆布隆查找表中,以使第二节点根据第一可逆布隆查找表和第二可逆布隆查找表得到差异查找表,从而在差异查找表返解出待传播区块中独有的第一交易集,再结合共有交易以得到待传播区块中的各交易,完成区块传播。
基于相同的技术构思,图13示例性的示出了本发明实施例提供的一种区块传播的装置,该装置可以执行区块传播的方法的流程。
如图13所示,该装置具体包括:
发送单元1310,用于发送邀请信息至第二节点;所述邀请信息中包括所述第一节点基于待传播区块中各交易生成的布隆过滤器;
处理单元1320,用于对所述待传播区块中的各交易进行抽样计算得到第一抽样估值,并接收所述第二节点发送的第二抽样估值;所述第二抽样估值是所述第二节点从所述布隆过滤器确定的呈阳性交易中进行抽样计算得到的;
根据所述第一抽样估值和所述第二抽样估值,确定出第一可逆布隆查找表的桶的数量;
基于所述待传播区块中的各交易作为键值,按照所述桶的数量生成第一可逆布隆查找表;
将所述待传播区块的区块头和所述第一可逆布隆查找表发送给所述第二节点;所述第一可逆布隆查找表用于所述第二节点查找出所述待传播区块中的各交易,从而得到所述待传播区块。
可选的,所述处理单元具体1320用于:
根据所述第一抽样估值和所述第二抽样估值,通过差异估计算法确定出交易差异估计值;
根据所述交易差异估计值确定出第一可逆布隆查找表的桶的数量。
可选的,所述处理单元1320具体用于:
针对预设抽样规则中的每个第一哈希函数,确定出所述待传播区块中每个交易在所述第一哈希函数下的第一哈希值;并根据所述预设抽样规则中的抽取原则,从各第一哈希值中确定第一数量的第一哈希值作为所述第一抽样估值。
可选的,所述处理单元1320具体用于:
针对每个第一哈希函数,确定所述第一哈希函数的第一抽样估值与所述第一哈希函数的第二抽样估值的相似度;
将各第一哈希函数的相似度,确定平均相似度;
根据所述平均相似度和所述差异估计算法确定出交易差异估计值。
可选的,所述差异估计算法为公式(1);
D=(1-S)/(1+S)*(L1+L2)…………………………………(1);
其中,D为所述差异估计值,S为所述平均相似度,L1为所述待传播区块中交易的数量,L2为所述第二节点从布隆过滤器确定的呈阳性交易的数量。
可选的,所述处理单元1320具体用于:
通过第二哈希函数,确定所述待传播区块中的每个交易的第三哈希值;
针对每个交易,将所述交易的第三哈希值分片,每个分片作为所述第一可逆布隆查找表的键进行桶的映射,将所述交易的交易内容作为所述第一可逆布隆查找表的值,从而生成所述第一可逆布隆查找表。
基于相同的技术构思,图14示例性的示出了本发明实施例提供的一种区块传播的装置,该装置可以执行区块传播的方法的流程。
如图14所示,该装置具体包括:
接收模块1410,用于接收第一节点发送邀请信息;所述邀请信息包括所述第一节点基于待传播区块中各交易生成的布隆过滤器;
处理模块1420,用于根据所述布隆过滤器确定出自身中呈阳性交易;
对每个所述呈阳性交易进行抽样计算得到第二抽样估值,并发送至所述第一节点;所述第二抽样估值用于所述第一节点确定出可逆布隆查找表的桶的数量;
接收第一可逆布隆查找表和所述待传播区块的区块头;所述第一可逆布隆查找表是所述第一节点基于所述待传播区块中的各交易作为键值,按照所述桶的数量生成的;
根据所述第一可逆布隆查找表和第二可逆布隆查找表查找出所述待传播区块中的各交易,并根据所述区块头得到所述待传播区块;所述第二可逆布隆查找表是所述第二节点基于所述呈阳性交易作为键值,按照所述桶的数量生成的。
可选的,所述处理模块1420具体用于:
针对预设抽样规则中的每个第一哈希函数,确定出每个所述呈阳性交易在所述第一哈希函数下的第二哈希值;并根据所述预设抽样规则中的抽取原则,从各第二哈希值中确定第二数量的第二哈希值作为所述第二抽样估值。
可选的,所述处理模块1420具体用于:
通过第二哈希函数,确定每个所述呈阳性交易的第四哈希值;
基于所述第一可逆布隆查找表的桶的数量作为所述第二可逆布隆查找表的桶的数量;
针对每个所述呈阳性交易,将所述呈阳性交易的第四哈希值分片,每个分片作为所述第二可逆布隆查找表的键进行桶的映射,将所述呈阳性交易的交易内容作为所述第二可逆布隆查找表的值,从而生成所述第二可逆布隆查找表。
可选的,所述处理模块1420具体用于:
将所述第一可逆布隆查找表和所述第二可逆布隆查找表的差确定为差异查找表;
根据所述差异查找表中进行反解,得到所述第一节点的待传播区块的独有的第一交易集和所述第二节点在所述呈阳性交易中独有的第二交易集;
根据所述呈阳性交易和所述第二交易集,确定出共有交易;
将所述共有交易和所述第一交易集确定为所述待传播区块中的各交易。
可选的,所述处理模块1420具体用于:
所述第二节点针对所述差异查找表中任一存有单一交易的桶,根据第二哈希函数得到所述单一交易的交易内容的第五哈希值;
将所述第五哈希值分片,并将分片映射的桶中所述单一交易删除;
更新所述差异查找表,直至得到所述差异查找表中所述第一节点的待传播区块的独有的第一交易集和所述第二节点在所述呈阳性交易中独有的第二交易集。
基于相同的技术构思,本发明实施例还提供一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述传播区块的方法。
基于相同的技术构思,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行上述传播区块的方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (15)
1.一种区块传播的方法,其特征在于,包括:
第一节点发送邀请信息至第二节点;所述邀请信息中包括所述第一节点基于待传播区块中各交易生成的布隆过滤器;
所述第一节点对所述待传播区块中的各交易进行抽样计算得到第一抽样估值,并接收所述第二节点发送的第二抽样估值;所述第二抽样估值是所述第二节点从所述布隆过滤器确定的呈阳性交易中进行抽样计算得到的;
所述第一节点根据所述第一抽样估值和所述第二抽样估值,确定出第一可逆布隆查找表的桶的数量;
所述第一节点基于所述待传播区块中的各交易作为键值,按照所述桶的数量生成第一可逆布隆查找表;
所述第一节点将所述待传播区块的区块头和所述第一可逆布隆查找表发送给所述第二节点;所述第一可逆布隆查找表用于所述第二节点查找出所述待传播区块中的各交易,从而得到所述待传播区块。
2.如权利要求1所述的方法,其特征在于,所述第一节点根据所述第一抽样估值和所述第二抽样估值,确定出第一可逆布隆查找表的桶的数量,包括:
所述第一节点根据所述第一抽样估值和所述第二抽样估值,通过差异估计算法确定出交易差异估计值;
所述第一节点根据所述交易差异估计值确定出第一可逆布隆查找表的桶的数量。
3.如权利要求2所述的方法,其特征在于,所述第一节点对所述待传播区块中的各交易进行抽样计算得到第一抽样估值,包括:
针对预设抽样规则中的每个第一哈希函数,所述第一节点确定出所述待传播区块中每个交易在所述第一哈希函数下的第一哈希值;并根据所述预设抽样规则中的抽取原则,从各第一哈希值中确定第一数量的第一哈希值作为所述第一抽样估值。
4.如权利要求3所述的方法,其特征在于,所述第一节点根据所述第一抽样估值和所述第二抽样估值,通过差异估计算法确定出交易差异估计值,包括:
针对每个第一哈希函数,所述第一节点确定所述第一哈希函数的第一抽样估值与所述第一哈希函数的第二抽样估值的相似度;
所述第一节点将各第一哈希函数的相似度,确定平均相似度;
所述第一节点根据所述平均相似度和所述差异估计算法确定出交易差异估计值。
5.如权利要求4所述的方法,其特征在于,所述差异估计算法为公式(1);
D=(1-S)/(1+S)*(L1+L2)…………………………………(1);
其中,D为所述差异估计值,S为所述平均相似度,L1为所述待传播区块中交易的数量,L2为所述第二节点从布隆过滤器确定的呈阳性交易的数量。
6.如权利要求1至5任一项所述的方法,其特征在于,所述第一节点基于所述待传播区块中的各交易作为键值,按照所述桶的数量生成可逆布隆查找表,包括:
所述第一节点通过第二哈希函数,确定所述待传播区块中的每个交易的第三哈希值;
针对每个交易,所述第一节点将所述交易的第三哈希值分片,每个分片作为所述第一可逆布隆查找表的键进行桶的映射,将所述交易的交易内容作为所述第一可逆布隆查找表的值,从而生成所述第一可逆布隆查找表。
7.一种区块传播的方法,其特征在于,包括:
第二节点接收第一节点发送邀请信息;所述邀请信息包括所述第一节点基于待传播区块中各交易生成的布隆过滤器;
所述第二节点根据所述布隆过滤器确定出自身中呈阳性交易;
所述第二节点对每个所述呈阳性交易进行抽样计算得到第二抽样估值,并发送至所述第一节点;所述第二抽样估值用于所述第一节点确定出可逆布隆查找表的桶的数量;
所述第二节点接收第一可逆布隆查找表和所述待传播区块的区块头;所述第一可逆布隆查找表是所述第一节点基于所述待传播区块中的各交易作为键值,按照所述桶的数量生成的;
所述第二节点根据所述第一可逆布隆查找表和第二可逆布隆查找表查找出所述待传播区块中的各交易,并根据所述区块头得到所述待传播区块;所述第二可逆布隆查找表是所述第二节点基于所述呈阳性交易作为键值,按照所述桶的数量生成的。
8.如权利要求7所述的方法,其特征在于,所述第二节点对每个所述呈阳性交易进行抽样计算得到第二抽样估值,包括:
针对预设抽样规则中的每个第一哈希函数,所述第二节点确定出每个所述呈阳性交易在所述第一哈希函数下的第二哈希值;并根据所述预设抽样规则中的抽取原则,从各第二哈希值中确定第二数量的第二哈希值作为所述第二抽样估值。
9.如权利要求7所述的方法,其特征在于,所述第二可逆布隆查找表是所述第二节点基于所述呈阳性交易作为键值,按照所述桶的数量生成的,包括:
所述第二节点通过第二哈希函数,确定每个所述呈阳性交易的第四哈希值;
所述第二节点基于所述第一可逆布隆查找表的桶的数量作为所述第二可逆布隆查找表的桶的数量;
针对每个所述呈阳性交易,所述第二节点将所述呈阳性交易的第四哈希值分片,每个分片作为所述第二可逆布隆查找表的键进行桶的映射,将所述呈阳性交易的交易内容作为所述第二可逆布隆查找表的值,从而生成所述第二可逆布隆查找表。
10.如权利要求7所述的方法,其特征在于,所述第二节点根据所述第一可逆布隆查找表和所述第二可逆布隆查找表查找出所述待传播区块中的交易,包括:
所述第二节点将所述第一可逆布隆查找表和所述第二可逆布隆查找表的差确定为差异查找表;
所述第二节点根据所述差异查找表中进行反解,得到所述第一节点的待传播区块的独有的第一交易集和所述第二节点在所述呈阳性交易中独有的第二交易集;
所述第二节点根据所述呈阳性交易和所述第二交易集,确定出共有交易;
所述第二节点将所述共有交易和所述第一交易集确定为所述待传播区块中的各交易。
11.如权利要求10所述的方法,其特征在于,所述第二节点根据所述差异查找表中进行反解,得到所述第一节点的待传播区块的独有的第一交易集和所述第二节点在所述呈阳性交易中独有的第二交易集,包括:
所述第二节点针对所述差异查找表中任一存有单一交易的桶,根据第二哈希函数得到所述单一交易的交易内容的第五哈希值;
所述第二节点将所述第五哈希值分片,并将分片映射的桶中所述单一交易删除;
所述第二节点更新所述差异查找表,直至得到所述差异查找表中所述第一节点的待传播区块的独有的第一交易集和所述第二节点在所述呈阳性交易中独有的第二交易集。
12.一种区块传播的装置,其特征在于,包括:
发送单元,用于发送邀请信息至第二节点;所述邀请信息中包括所述第一节点基于待传播区块中各交易生成的布隆过滤器;
处理单元,用于对所述待传播区块中的各交易进行抽样计算得到第一抽样估值,并接收所述第二节点发送的第二抽样估值;所述第二抽样估值是所述第二节点从所述布隆过滤器确定的呈阳性交易中进行抽样计算得到的;
根据所述第一抽样估值和所述第二抽样估值,确定出第一可逆布隆查找表的桶的数量;
基于所述待传播区块中的各交易作为键值,按照所述桶的数量生成第一可逆布隆查找表;
将所述待传播区块的区块头和所述第一可逆布隆查找表发送给所述第二节点;所述第一可逆布隆查找表用于所述第二节点查找出所述待传播区块中的各交易,从而得到所述待传播区块。
13.一种区块传播的装置,其特征在于,包括:
接收模块,用于接收第一节点发送邀请信息;所述邀请信息包括所述第一节点基于待传播区块中各交易生成的布隆过滤器;
处理模块,用于根据所述布隆过滤器确定出自身中呈阳性交易;
对每个所述呈阳性交易进行抽样计算得到第二抽样估值,并发送至所述第一节点;所述第二抽样估值用于所述第一节点确定出可逆布隆查找表的桶的数量;
接收第一可逆布隆查找表和所述待传播区块的区块头;所述第一可逆布隆查找表是所述第一节点基于所述待传播区块中的各交易作为键值,按照所述桶的数量生成的;
根据所述第一可逆布隆查找表和第二可逆布隆查找表查找出所述待传播区块中的各交易,并根据所述区块头得到所述待传播区块;所述第二可逆布隆查找表是所述第二节点基于所述呈阳性交易作为键值,按照所述桶的数量生成的。
14.一种计算设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行权利要求1至6或7至11任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行权利要求1至5或6至10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011334923.2A CN112511616B (zh) | 2020-11-25 | 2020-11-25 | 一种区块传播的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011334923.2A CN112511616B (zh) | 2020-11-25 | 2020-11-25 | 一种区块传播的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112511616A true CN112511616A (zh) | 2021-03-16 |
CN112511616B CN112511616B (zh) | 2024-09-03 |
Family
ID=74958442
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011334923.2A Active CN112511616B (zh) | 2020-11-25 | 2020-11-25 | 一种区块传播的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112511616B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110493148A (zh) * | 2019-08-12 | 2019-11-22 | 深圳前海微众银行股份有限公司 | 一种区块处理、区块共识和区块同步方法及装置 |
CN111667264A (zh) * | 2020-05-08 | 2020-09-15 | 深圳市路云区链网络科技有限公司 | 区块数据的传输方法、装置、电子设备及非易失性计算机存储介质 |
CN111814065A (zh) * | 2020-06-24 | 2020-10-23 | 平安科技(深圳)有限公司 | 信息传播路径分析方法、装置、计算机设备及存储介质 |
KR20200126061A (ko) * | 2019-04-29 | 2020-11-06 | 현대페이(주) | 블록체인 네트워크에서의 트랜잭션의 삭제를 가능하게 하는 노드 장치 및 그 동작 방법 |
-
2020
- 2020-11-25 CN CN202011334923.2A patent/CN112511616B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200126061A (ko) * | 2019-04-29 | 2020-11-06 | 현대페이(주) | 블록체인 네트워크에서의 트랜잭션의 삭제를 가능하게 하는 노드 장치 및 그 동작 방법 |
CN110493148A (zh) * | 2019-08-12 | 2019-11-22 | 深圳前海微众银行股份有限公司 | 一种区块处理、区块共识和区块同步方法及装置 |
CN111667264A (zh) * | 2020-05-08 | 2020-09-15 | 深圳市路云区链网络科技有限公司 | 区块数据的传输方法、装置、电子设备及非易失性计算机存储介质 |
CN111814065A (zh) * | 2020-06-24 | 2020-10-23 | 平安科技(深圳)有限公司 | 信息传播路径分析方法、装置、计算机设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
蒋宇娜;葛晓虎;杨旸;王承祥;李颉;: "面向6G的区块链物联网数据共享和存储机制", 通信学报, no. 10 * |
Also Published As
Publication number | Publication date |
---|---|
CN112511616B (zh) | 2024-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102485652B1 (ko) | 그래프 데이터 처리 방법, 그래프 데이터 계산 태스크들을 공개하는 방법 및 디바이스, 저장 매체 및 컴퓨터 장치 | |
CN110602148A (zh) | 一种区块的状态树的生成和链上数据验证的方法及装置 | |
US10860457B1 (en) | Globally ordered event stream logging | |
CN110442579B (zh) | 一种状态树数据存储方法、同步方法及设备和存储介质 | |
US9405748B2 (en) | Probabilistically finding the connected components of an undirected graph | |
CN109508326B (zh) | 用于处理数据的方法、装置和系统 | |
US9244983B2 (en) | Platform for continuous graph update and computation | |
CN110689349A (zh) | 一种区块链中的交易哈希值存储和搜索方法及装置 | |
CN110599169A (zh) | 数据处理方法、装置、终端及介质 | |
US20240111782A1 (en) | Methods and apparatus for a distributed database within a network | |
CN112583811B (zh) | 钱包找回方法、设备和存储介质 | |
CN113094396A (zh) | 基于节点内存的数据处理方法、装置、设备以及介质 | |
GB2529403A (en) | A Method of operating a shared nothing cluster system | |
JP2015169654A (ja) | コンピュータ実装されるk最短経路発見法 | |
CN111209341B (zh) | 区块链的数据存储方法、装置、设备及介质 | |
CN109685657B (zh) | 在区块链网络中处理交易的方法和节点设备以及存储介质 | |
CN109614411B (zh) | 数据存储方法、设备和存储介质 | |
CN109410063B (zh) | 基于区块链的交易处理方法、装置和存储介质 | |
CN109872139B (zh) | 交易替换方法、设备和存储介质 | |
CN114610764A (zh) | 一种报文传输方法及装置 | |
CN114003775A (zh) | 图数据处理、查询方法及其系统 | |
CN112433757A (zh) | 一种确定接口调用关系的方法和装置 | |
CN112511616A (zh) | 一种区块传播的方法及装置 | |
CN116756245A (zh) | 基于区块链全生命周期的成果保护方法、装置设备及介质 | |
CN110322350B (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 |