CN115208898A - 区块广播方法、装置、计算机设备和存储介质 - Google Patents
区块广播方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN115208898A CN115208898A CN202210318977.2A CN202210318977A CN115208898A CN 115208898 A CN115208898 A CN 115208898A CN 202210318977 A CN202210318977 A CN 202210318977A CN 115208898 A CN115208898 A CN 115208898A
- Authority
- CN
- China
- Prior art keywords
- block
- transaction
- expected
- broadcasted
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000012795 verification Methods 0.000 claims abstract description 104
- 238000012216 screening Methods 0.000 claims abstract description 60
- 238000004590 computer program Methods 0.000 claims description 16
- 238000004519 manufacturing process Methods 0.000 claims description 14
- 230000003111 delayed effect Effects 0.000 claims description 11
- 238000012856 packing Methods 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 10
- 238000001914 filtration Methods 0.000 claims description 4
- 238000004806 packaging method and process Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 abstract description 8
- 238000004904 shortening Methods 0.000 abstract 3
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000001360 synchronised effect Effects 0.000 description 7
- 230000000644 propagated effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000010200 validation analysis 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/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1065—Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT]
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- 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
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- 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/3247—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 involving digital signatures
-
- 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/3297—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 involving time stamps, e.g. generation of time stamps
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Physics & Mathematics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Development Economics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种区块广播方法、装置、计算机设备和存储介质。所述方法包括:在接收待广播区块的区块头之前,提前按照生产者节点生产待广播区块的事务筛选条件生成预测的预期区块,并对预期区块进行提前验证处理,得到相应的第一验证信息,在接收到待广播区块的区块头、且第一验证信息与区块头中的第二验证信息相匹配时转发该区块头至相邻节点,仅传播待广播区块的区块头,不对待广播区块的区块体进行传播,减少了节点之间的传播带宽,缩短了区块传播时长,且目标节点在接收到区块头时无需对完整的待广播区块进行完整验证,缩短了待广播区块在目标节点的验证时长,从而从整体上缩短了区块传播时延。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种区块广播方法、装置、计算机设备和存储介质。
背景技术
现阶段,区块链系统面临的主要问题是:事务确认时延、网络规模较小、每秒事务量(TPS)较少等。在公有区块链系统中,节点规模大,但TPS较少,无法满足大规模的用户需求。而在联盟链系统中,其TPS能达到上千级别,但节点规模较小,同样限制了联盟链被大规模应用。提升区块的事务容量、降低区块传播时延,可以从基础上提升区块链系统的性能。
区块传播时间主要由网络上的区块验证(Block Validation)时间和区块传输(Block Transmission)时间组成。区块验证时间和区块传输时间均与区块的事务容量成正比,简单提升区块的事务容量会导致区块传播时间的上升,从而影响区块链系统的安全性。因此,在保证系统安全性的前提下,典型的区块传播协议无法提升区块链的性能。
发明内容
为了解决上述技术问题,本申请提供了一种区块广播方法、装置、计算机设备和存储介质。
第一方面,本申请提供了一种区块广播方法,包括:
获取生产者节点广播的事务筛选条件,其中,所述事务筛选条件用于所述生产者节点生产生成相应的待广播区块;
根据目标节点中符合所述事务筛选条件的存储事务,生成预期区块,其中,所述目标节点为任意一个所述非生产者节点;
对所述预期区块进行预验证处理,得到所述预期区块对应的第一验证信息;
在接收到所述待广播区块的区块头、且所述第一验证信息与所述区块头中的第二验证信息相匹配时,转发所述区块头至所述目标节点的相邻节点。
第二方面,本申请提供了一种区块广播方法,包括:
确定并广播待广播区块的事务筛选条件;
根据所述生产者节点中符合所述事务筛选条件的存储事务,组成待广播序列;
根据所述待广播序列中各个所述存储事务,生成所述待广播区块,其中,所述待广播区块包括第二区块哈希;
在接收到所述生产者节点的相邻节点发送的第一区块哈希、且所述第二区块哈希与所述第一区块哈希相匹配时,发送所述待广播区块的区块头至所述相邻节点。
第三方面,本申请提供了一种区块广播装置,包括:
获取模块,用于获取生产者节点广播的事务筛选条件,其中,所述事务筛选条件用于所述生产者节点生产生成相应的待广播区块;
第一预打包模块,用于根据目标节点中符合所述事务筛选条件的存储事务,生成所述目标节点对应的预期区块,其中,所述目标节点为任意一个所述非生产者节点;
预验证模块,用于对所述预期区块进行预验证处理,得到所述预期区块对应的第一验证信息;
转发模块,用于在接收到所述待广播区块的区块头、且所述第一验证信息与所述区块头中的第二验证信息相匹配时,转发所述区块头至所述目标节点的相邻节点。
第四方面,本申请提供了一种区块广播装置,包括:
确定模块,用于确定并广播待广播区块的事务筛选条件;
第二预打包模块,用于根据所述生产者节点中符合所述事务筛选条件的存储事务,组成待广播序列;
生产模块,用于根据所述待广播序列中各个所述存储事务,生成所述待广播区块,其中,所述待广播区块包括第二区块哈希;
发送模块,用于在接收到所述生产者节点的相邻节点发送的第一区块哈希、且所述第二区块哈希与所述第一区块哈希相匹配时,发送所述待广播区块的区块头至所述相邻节点。
第五方面,本申请提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取生产者节点广播的事务筛选条件,其中,所述事务筛选条件用于所述生产者节点生产生成相应的待广播区块;
根据目标节点中符合所述事务筛选条件的存储事务,生成预期区块,其中,所述目标节点为任意一个所述非生产者节点;
对所述预期区块进行预验证处理,得到所述预期区块对应的第一验证信息;
在接收到所述待广播区块的区块头、且所述第一验证信息与所述区块头中的第二验证信息相匹配时,转发所述区块头至所述目标节点的相邻节点。
第六方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取生产者节点广播的事务筛选条件,其中,所述事务筛选条件用于所述生产者节点生产生成相应的待广播区块;
根据目标节点中符合所述事务筛选条件的存储事务,生成预期区块,其中,所述目标节点为任意一个所述非生产者节点;
对所述预期区块进行预验证处理,得到所述预期区块对应的第一验证信息;
在接收到所述待广播区块的区块头、且所述第一验证信息与所述区块头中的第二验证信息相匹配时,转发所述区块头至所述目标节点的相邻节点。
基于上述区块广播方法,目标节点在接收待广播区块的区块头之前,提前按照生产者节点生产待广播区块的事务筛选条件预测即将到来的待广播区块,即生成预测的预期区块,并对预期区块进行提前验证处理,得到相应的第一验证信息,在接收到待广播区块的区块头时利用提前验证得到第一验证信息与区块头中的第二验证信息进行简单比对,在第一验证信息与第二验证信息相匹配时则转发该待广播区块至相邻节点,区块传播过程仅传播待广播区块的区块头,不对待广播区块的区块体进行传播,减少了节点之间的传播带宽,从而缩短了区块传播时长,并且目标节点在接收到区块头时利用提前验证得到的第一验证信息对区块头进行简单验证,无需对完整的待广播区块进行验证,缩短了待广播区块在目标节点的验证时长,从而从整体上缩短了区块传播时延,提升了区块链系统的性能。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中区块链系统结构示意图;
图2为本申请实施例中共识节点之间的结构示意图;
图3为一个实施例中区块广播方法的流程示意图;
图4为一个实施例中全局状态的树状结构示意图;
图5为一个实施例中区块广播方法的流程示意图;
图6为一个实施例中区块广播装置的结构框图;
图7为一个实施例中区块广播装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
在一个实施例中,图1为一个实施例中区块生成方法的应用环境图。参照图1,该区块验证方法应用于区块广播系统。该区块广播系统包括多个共识节点,即Node 0至Node N分别指示一个共识节点,其中Node 0用于指示生产者节点,Node 1至Node N用于指示非生产者节点,即100用于指示生产者节点生产生成的待广播区块,101用于指示待广播区块的区块头(Block Header),即区块广播是通过各个节点传播无区块体的区块头来实现的。参照图2,各个共识节点通过P2P 网络进行通信连接,每个共识节点包括本地事务池(TxPool)、预打包模块(Pre-Packed Blockbody,PPB)、预验证模块(PPB Pre-Validation) 和生产模块(Block Generating),本地事务池用于接收广播的事务,预打包模块用于拉取本地事务池中事务并打包生成预期区块,预验证模块用于在共识节点接收到待广播区块的区块头之前对预期区块进行提前校验处理,得到相应的第一校验信息,以便在接收到待广播区块的区块头时利用该第一校验信息进行校验处理,生产模块用于在共识节点作为生产者节点时基于预期区块生产生成待广播区块。
在校验成功后转发该待广播区块的区块头,以此形成区块的传播,无需传播完整的待广播区块,仅通过对待广播区块的区块头进行简单校验以确定预期区块与待广播区块是否一致,减少了完整区块在共识节点的验证时长,并在确认一致后仅转发待广播区块的区块头,以减少了区块的传播带宽,节约了区块的传播时长,从而从整体上缩短了区块传播时延。
在一个实施例中,图3为一个实施例中一种区块广播方法的流程示意图,参照图3,提供了一种区块广播方法。本实施例主要以该方法应用于非生产者节点来举例说明,该区块广播方法具体包括如下步骤:
步骤S210,获取生产者节点广播的事务筛选条件。
其中,所述事务筛选条件用于所述生产者节点生产生成相应的待广播区块。
具体的,生产者节点为生产生成待广播区块的共识节点,并将待广播区块传播至其相邻的共识节点,各个共识节点依次传播待广播区块以完成共识过程。事务筛选条件用于指示生产者节点生成待广播区块时筛选事务的标准,生产者节点将自己生成待广播区块的标准广播至各个共识节点,以供各个共识节点掌握待广播区块中的组成事务。
步骤S220,根据目标节点中符合所述事务筛选条件的存储事务,生成预期区块。
其中,所述目标节点为任意一个所述非生产者节点,即所述目标节点为任意一个等待接收并传播所述待广播区块的区块头的共识节点,每个共识节点在生产生成待广播区块时作为生产者节点,在等待接收待广播区块时可作为目标节点。所述预期区块中的第一预期事务与所述待广播区块中的待执行事务相同。
具体的,目标节点按照事务筛选条件筛选相应的存储事务组成预期区块,由于目标节点与生产者节点是基于相同的事务筛选条件筛选事务,因此,目标节点生成的预期区块与待广播区块中的事务数量以及事务类型均相同。目标节点在接收到待广播区块之前按照事务筛选条件提前预测待广播区块中的待执行事务,确保预期区块包括的第一预期事务与待广播区块中的待执行事务相同,用于实现后续待广播区块在广播时无需传播待广播区块的区块体,仅传播区块头以降低区块传播时延。
步骤S230,对所述预期区块进行预验证处理,得到所述预期区块对应的第一验证信息。
具体的,对于提前预测的预期区块进行提前验证,得到预期区块对应的第一验证信息,在接收到待广播区块的区块头时,仅利用第一验证信息对区块头进行简单验证处理,无需再对待广播区块进行完整的校验,可减少待广播区块在目标节点的验证时长,以节约区块的验证时长。
步骤S240,在接收到所述待广播区块的区块头、且所述第一验证信息与所述区块头中的第二验证信息相匹配时,转发所述区块头至所述目标节点的相邻节点。
具体的,利用提前验证得到的第一验证信息与区块头中的第二验证信息进行比对,从而确定待广播区块的验证结果,在验证结果指示验证成功时,确定继续传播该待广播区块的区块头至相邻的共识节点,在验证结果指示验证失败时,无法传播该待广播区块的区块头,需要获取完整的待广播区块进行整体验证以重新得到验证结果,再根据验证结果判断是否继续传播该待广播区块。相较于直接对完整的待广播区块进行整体验证,通过对预期区块进行提前验证,利用提前验证结果对接收到的区块头进行简单验证,缩短了待广播区块在目标节点的验证时长,结合仅对待广播区块的区块头进行传播,减少了传播带宽,以缩短传播时长,从而实现从整体上缩短了区块传播时延,提升了区块链系统的性能。
在一个实施例中,所述根据目标节点中符合所述事务筛选条件的存储事务,生成预期区块,包括:接收来自所述相邻节点的事务池中的存储事务,并存储至所述目标节点的目标事务池中;根据所述目标事务池中符合所述事务筛选条件的存储事务,生成所述目标节点对应的预期区块。
具体的,目标节点在生成预期区块之前,根据来自相邻节点本地事务池中的存储事务来更新自身本地事务池,以确保相邻的各个共识节点本地事务池中的事务保持一致,即确保生成预期区块的事务池与生成待广播区块的事务池保持一致,以避免事务池中的事务不一致,导致目标节点按照事务筛选条件会遗漏部分事务,使得生成的预期区块与待广播区块无法保持一致。
在各个共识节点的本地事务池中的事务保持统一后,生产者节点根据事务筛选条件生成的待广播区块中的待执行事务,与目标节点按照事务筛选条件生成的预期区块中的第一预期事务保持一致。
在一个实施例中,所述事务筛选条件包括预设时间戳以及事务排序要求,所述根据所述目标事务池中符合所述事务筛选条件的存储事务,生成所述目标节点对应的预期区块,包括:根据所述目标事务池中时间戳早于所述预设时间戳的存储事务,组成事务子集,其中,所述事务子集包括多个第一预期事务;将所述事务子集中多个第一预期事务按照各个所述第一预期事务的事务价格降序排列,得到第一事务序列;基于所述第一事务序列,生成所述目标节点对应的预期区块。
具体的,预设时间戳记为T,T值的设置需要考虑所有共识节点可以很容易地面对不同区块时达成一致,并且T值越小,表示T值相应时刻越早,距离当前时刻越远,有助于保证待广播区块所需的组成事务已经被广播到达所有共识节点,确保各个共识节点的本地事务池中都有待广播区块所需的组成事务,但将会延长时间戳在T值之后的事务等待执行时长,即导致时间戳在T值之后的事务确认延迟,因此需要综合考虑上述因素来设置T值。
在本实施例中,选择在待广播区块之前上一次进行广播的区块所携带的生产时间戳,也就是目标节点上一次接收到的广播区块所携带的生产时间戳作为预设时间戳,生产时间戳用于指示该广播区块的生产生成时刻。由于各个共识节点接收到相同的广播区块,所有接收到该广播区块的共识节点都知道该广播区块的生产时间戳,因此利用该广播区块的生产时间戳作为预设时间戳,可以令各个共识节点在接收到下一广播区块时达成一致。并且上一个广播区块的生产时间戳距离当前时刻不算太远,基于该生产时间戳所产生的事务确认延迟是可以接受的。
目标节点在接收到事务时根据接收到该事务的时刻为该事务标记上时间戳,即每个事务的时间戳用于指示进入事务池的时刻,在目标事务池中筛选时间戳早于T的存储事务作为第一预期事务,并组成事务子集,由于事务的执行顺序也将影响区块的全局状态,因此,需要对事务子集中各个第一预期事务进行排序。
在公有区块链中,即使不同共识节点将同一组事务选择到一个区块中,事务顺序也可能不同,因为不同的网络延迟可能会导致不同共识节点接收到同一事务的时间戳不同。因此为了统一各个共识节点中的事务以及事务顺序,将各个共识节点中的事务按照各个事务的事务价格降序排列,由于各个事务的事务价格为属性参数,同一事务即使到达不同共识节点的时间戳不同,但其事务价格是固定不变的,事务价格用于指示执行该事务所需要的成本,因此,在各个共识节点的事务子集中的事务相同的情况下,按照事务价格对各个事务进行排序,将会得到相同排序的事务序列,以解决网络延时导致事务排序不同的问题,在共识节点为目标节点时,基于该事务序列生成预期区块;在共识节点为生产者节点时,基于该事务序列生成待广播区块。
在一个实施例中,所述基于所述第一事务序列,生成所述目标节点对应的预期区块,包括:在所述第一事务序列中存在所述事务价格相同的多个所述第一预期事务时,将所述第一事务序列中所述事务价格相同的多个所述预设事务按照事务哈希降序排列,得到第二事务序列;基于所述第二事务序列生成所述目标节点对应的预期区块。
具体的,在对事务进行排序的过程中存在事务价格相同的两个事务时,再将事务价格相同的多个事务按照事务哈希降序排列,每个事务携带有各自唯一的事务哈希,即各个事务的事务哈希不同,可依据事务哈希对事务价格相同的事务进行排序。
在第一事务序列中各个第一预期事务排序的基础上,将事务价格相同的两个或多个第一预期事务按照各个第一预期事务的事务哈希进行排序,得到所有第一预期事务排序后的第二事务序列,基于第二事务序列生成预期区块。
在一个实施例中,所述基于所述第二事务序列生成所述目标节点对应的预期区块,包括:基于所述第二事务序列中全部所述第一预期事务,生成区块哈希;发送所述区块哈希至所述相邻节点;在接收到来自所述相邻节点相应预期区块中的多个第二预期事务时,根据所述多个第一预期事务与所述多个第二预期事务,生成同步区块。
其中,所述同步区块用于作为所述目标节点和所述相邻节点的预期区块。
具体的,将第二事务序列中全部第一预期事务作为输入参数代入哈希函数,输出用于指示预期区块的区块哈希,并将区块哈希发送至相邻节点,以此方式各个共识节点相互传递自己的区块哈希,用于校验各个共识节点生成的预期区块是否一致,并用于同步各个共识节点相应预期区块中的预期事务。每当预期区块发生变化后都将重新生成一个对应的区块哈希,并自动将新生成的区块哈希发送至相邻节点,即实时告知相邻节点目标节点的预期区块的变化,便于统一各个共识节点所生成的预期区块。
即相邻节点在接收到目标节点发送的区块哈希时,将自己的区块哈希与目标节点发送的区块哈希进行比对校验,用于校验自己生成的预期区块与目标节点生成的预期区块是否一致,在区块哈希校验失败时,即发现自己生成的预期区块与目标节点生成的预期区块不一致,可能是目标节点遗漏了部分事务,则将自己预期区块中的所有第二预期事务发送至目标节点进行事务同步。
目标节点在接收到相邻节点相应预期区块中的多个第二预期事务时,根据多个第一预期事务结合多个第二预期事务,生成同步区块,并将同步区块作为目标节点和相邻节点更新后的预期区块,避免目标节点或相邻节点遗漏互相存在的预期事务,结合两个节点的事务后生成统一的同步区块。
在一个实施例中,所述在接收到来自所述相邻节点相应预期区块中的多个第二预期事务时,根据所述多个第一预期事务与所述多个第二预期事务,生成同步区块,包括:在接收到来自所述相邻节点相应预期区块中的多个第二预期事务时,根据所述多个第一预期事务与所述多个第二预期事务,确定差异事务集合和相同事务集合;对所述差异事务集合中的差异事务进行合法校验,确定合法事务,其中,所述差异事务为所述第一预期事务或所述第二预期事务;根据所述差异集合中的所述合法事务与所述相同事务集合,生成同步区块。
具体的,差异事务集合包括多个差异事务,差异事务为仅存在于目标节点相应预期区块中的第一预期事务或仅存在于相邻节点相应预期区块中的第二预期事务,相同事务集合包括同时存在于目标节点相应预期区块中和相邻节点相应预期区块中的多个预期事务。
差异事务有可能是由于网络延时导致的,即差异事务的时间戳靠近预设时间戳T,目标节点接收到该事务的时间戳晚于预设时间戳T,但相邻节点接收到该事务的时间戳早于预设时间戳T,因此在进行事务筛选时相邻节点将该事务筛选至事务子集中,而目标节点并未将该事务筛选至事务子集中,从而导致目标节点相应预期区块中的多个第一预期事务与相邻相应预期区块中的多个第二预期事务存在差异。
但也可能是相邻节点故意修改了差异事务的时间戳,即该事务的真实时间戳远远晚于预设时间戳,但经过故意修改后从而使得该事务的时间戳早于预设时间戳,将该事务筛选至事务子集中并用于生成相邻节点对应的预期区块,但在目标节点中基于该事务的真实时间戳并未将该事务筛选至事务子集中,从而导致在相邻节点将其预期区块中的所有事务发送至目标节点后,目标节点相应预期区块中的多个第一预期事务与相邻相应预期区块中的多个第二预期事务存在差异。
因此目标节点需要对差异事务进行合法校验,以确定差异事务是由于网络延迟所遗漏的事务还是被恶意修改后的无效事务,以排除经过恶意修改的差异事务,在确定差异事务为合法事务后,根据差异事务中的合法事务以及相同事务集合中的多个预期事务生成同步区块。
在一个实施例中,所述对所述差异事务集合中的预期事务进行合法校验,确定合法事务,包括:确定所述差异事务集合中的预期事务到达所述目标节点的时间戳与到达所述相邻节点的时间戳之差,得到相应的延迟时长;将所述延时时长小于预设时长的所述差异事务作为合法事务。
具体的,在对差异事务进行合法验证时,先确定差异事务到达目标节点的时间戳与达到相邻节点的时间戳之差,得到延迟时长,延迟时长记为δ,预设时长通常设定为广播刷新间隔,通常广播刷新间隔为1秒,即事务将花费不超过1秒的时间传播到大多数节点,通常网络延迟不会超过广播刷新间隔。在延迟时长小于预设时长时,表示该差异事务是由于网络延迟所导致的,将该差异事务判定为合法事务;在延迟时长大于预设时长时,表示该差异事务并非是由于网络延迟所导致的,而是经过时间戳的恶意修改后所产生的事务,将该差异事务判定为无效事务,将被丢弃,无法用于生成预期区块。
在一个实施例中,所述第一验证信息包括第一区块哈希、延迟执行序列和第一预期事务状态,所述对所述预期区块进行预验证处理,得到所述预期区块对应的第一验证信息,包括:根据所述预期区块中所有所述第一预期事务生成第一区块哈希,并发送所述第一区块哈希至所述相邻节点;对所述预期区块中的各个所述第一预期事务进行分类,得到延迟执行序列和待执行序列;执行所述待执行序列中的所述第一预期事务,生成所述第一预期事务状态。
具体的,将多个第一预期事务作为输入参数输入至哈希函数中,输出相应的第一区块哈希,目标节点将得到的第一区块哈希发送至相邻的共识节点,相邻的共识节点根据接收到的第一区块哈希来判断目标节点生成的预期区块与自己生成的预期区块是否一致,即各个共识节点之间相互传递各自生成的第一区块哈希,以确定各个共识节点的预期区块是否一致。
将多个第一预期事务按照执行时限进行分类,得到延迟执行序列和待执行序列,执行时限包括提前执行和延迟执行,相应的待执行序列包括在接收到待广播区块之前可以执行的多个第一预期事务,延迟执行序列包括在接收到待广播区块之前无法执行的多个第一预期事务,由于延迟执行序列中的第一预期事务无法被提前执行,因此执行待执行序列中可以提前执行的多个第一预期序列,执行后得到第一预期事务状态,第一预期事务状态用于指示待执行序列中各个第一预期事务执行后的状态。
在一个实施例中,所述对所述预期区块中的各个所述第一预期事务进行分类,得到延迟执行序列和待执行序列,包括:根据所述预期区块中事务地址与所述待广播区块相关的多个所述第一预期事务组成延迟序列;将与所述延迟序列中任意一个事务相交的所述第一预期事务依次追加至所述延迟序列中,得到延迟执行序列;将所述预期区块中事务地址与所述待广播区块无关、且与所述延迟执行事务无关的所述第一预期事务,组成待执行序列。
具体的,在公有区块链中,一些事务可能涉及生产者地址(Coinbase 地址),而生产者地址包含于生产者节点生产生成的待广播区块中,导致这类事务在接收到生产者节点生产生成的待广播区块之前无法提前执行,因此将预期区块中事务地址与待广播区块相关的第一预期事务,组成延迟序列,虽然有些第一预期事务与待广播区块无关,但其与延迟执行事务相交,也需要将其排进延迟执行序列中,相交是指第一预期事务与延迟执行事务涉及相同的账户,如图4所示,例如,事务1 (Tx1)涉及的账户为{A,B},事务内容为:将2个持有物从账户A转移到账户B,事务2(Tx2)涉及的账户为{B,C},事务3(Tx3)涉及的账户为{C,D}。Tx1和Tx2由于具有相同的账户{B}而相交,而 Tx1和Tx3不相交,则先执行Tx1对应的全局状态树1与先执行Tx3 所对应的全局状态树2无实质性差别。如果两笔事务相交,这两笔事务的执行顺序将会影响区块的全局状态,如果两笔事务不相交,它们可以按任意顺序执行而不影响最终的全局状态。
例如,参照图4,Tx1和Tx2互为相交,Tx1的事务内容是将2 个持有物从账户A转移到账户B,Tx2的事务内容是将3个持有物从账户B转移至账户C,若先执行Tx1,则执行后的全局状态中账户A 的持有物由3个变化为1个,账户B的持有物由1个变化为3个,再执行Tx2,此时账户B的持有物满足Tx2的执行条件,即账户B的剩余持有物可以支持转移出3个持有物的条件,执行后的全局状态中账户B的持有物由3个变化为0个,相应Tx2对应的全局状态为执行成功。
若先执行Tx2后执行Tx1,在执行Tx2时,由于账户B的持有物为1个,不足以支持Tx2的执行条件,无法转移出3个持有物至账户 C,因此Tx2对应的全局状态为执行失败。由此可知,各个相交事务的执行顺序会影响区块的全局状态。
根据预期区块中涉及生产者地址的第一预期事务得到延迟序列,再将与延迟执行序列中事务相交的第一预期事务依次追加至延迟执行序列中,追加至剩余的第一预期事务既不涉及生产者地址也不与延迟执行序列中任意一个事务相交,将剩余又不涉及生产者地址、也不与延迟执行序列中事务相交的第一预期事务组成待执行序列。
在一个实施例中,所述执行所述待执行序列中的所述第一预期事务,生成所述第一预期事务状态,包括:在所述待执行序列中各个所述第一预期事务互不相交时,按照默认顺序依次执行所述待执行序列中各个所述第一预期事务,生成所述第一预期事务状态。
具体的,待执行序列中各个第一预期事务互不相交,则各个第一预期事务之间的执行顺序对于预期区块的全局状态没有影响,因此可按照任意执行顺序执行待执行序列中的第一预期事务,在本实施例中按照默认顺序依次执行待执行序列中各个第一预期事务,默认顺序具体可以为按照各个第一预期事务的时间戳排序顺序,也可以为按照各个第一预期事务的事务价格排序顺序,还可以为按照各个第一预期事务的事务哈希排序顺序。
在一个实施例中,所述执行所述待执行序列中的所述第一预期事务,生成所述第一预期事务状态,包括:在所述待执行序列中各个所述第一预期事务互为相交时,确定所述待执行序列中各个所述第一预期事务之间的第一执行顺序;按照所述第一执行顺序依次执行所述多个第一预期事务,生成所述第一预期事务状态。
具体的,待执行序列中各个第一预期事务互为相交,此时各个第一预期事务的执行顺序将会影响预期区块的全局状态,则需要确定各个第一预期事务之间的第一执行顺序,第一执行顺序具体可以为根据各个第一预期事务涉及账户的账户信息所确定的执行顺序,账户信息包括账户标签以及该账户标签对应的剩余持有物数目,以预期的全局状态为前提来确定各个第一预期事务的执行顺序,预期的全局状态用于指示待广播区块的全局状态,以此确保预期区块的全局状态与待广播区块的全局状态保持一致,预期的全局状态通常以事务执行成功为前提来确定各个第一预期事务的执行顺序。
在一个实施例中,所述执行所述待执行序列中的所述第一预期事务,生成所述第一预期事务状态,包括:按照所述预期区块中各个所述第一预期事务的排列顺序,依次执行所述待执行序列中的各个所述第一预期事务,生成所述第一预期事务状态。
具体的,将待执行序列中各个第一预期事务按照预期区块中各个第一预期事务的排列顺序进行排序,按照此顺序进行事务执行,预期区块中各个第一预期事务的排列顺序是,先将各个第一预期事务按照各个第一预期事务的事务价格降序排列,在存在相同事务价格的两个或多个第一预期事务时,再将事务价格相同的两个或多个第一预期事务按照各个第一预期事务的事务哈希降序排列,以此得到预期区块中各个第一预期事务的排列顺序。
在一个实施例中,所述执行所述待执行序列中的所述第一预期事务,生成所述第一预期事务状态,包括:在所述待执行序列中存在互为相交的所述第一预期事务时,确定互为相交的所述第一预期事务之间的第二执行顺序;基于所述第二执行顺序以及所述预期区块中各个所述第一预期事务的排列顺序,确定第三执行顺序;按照所述第三执行顺序依次执行所述待执行序列中所述多个第一预期事务,生成所述第一预期事务状态。
具体的,在待执行序列中同时存在互为相交的第一预期事务以及互不相交各自独立的第一预期事务时,由于互为相交的多个第一预期事务之间的执行顺序会影响区块的全局状态,因此先确定互为相交的多个第一预期事务之间的执行顺序,得到第二执行顺序,再将第二执行顺序结合预期区块中各个第一预期事务的排列顺序,也就是将待执行序列中各个第一预期事务按照预期区块中各个第一预期事务的排列顺序进行排序后,再将待执行序列中互为相交的第一预期事务之间的排列顺序按照第二执行顺序进行调整,最终得到第三执行顺序,按照第三执行顺序执行待执行序列中各个第一预期事务得到第一预期事务状态。
上述仅示例性的说明了待执行序列中各个第一预期事务的执行顺序,延迟执行序列中各个第一预期事务之间的执行顺序按照上述实施例同理进行排序,在此不再赘述。
第一验证信息中的第一区块哈希用于与区块头中第二验证信息中的区块哈希进行简单比对,以判断预期区块与待广播区块是否一致,若比对结果一致,则确定预期区块与待广播区块的区块体一致,可继续验证预期区块的全局状态与待广播区块的全局状态是否一致,进而确定待广播区块的验证结果;若比对结果不一致,表示预期区块与待广播区块的区块体不一致,则判定待广播区块的验证结果为验证失败,无法转发该待广播区块。即通过目标节点对预期区块的提前验证,仅利用提前验证结果对区块头进行简单验证即可验证得到待广播区块的验证结果,以节约待广播区块在目标节点的验证时长,验证成功则可继续转发待广播区块的区块头至相邻的共识节点,验证失败则无法转发该待广播区块。
在确定预期区块与待广播区块的区块体一致后,获取区块头中的生产者地址,再在第一预期事务状态的基础上结合生产者地址,执行延迟执行序列中各个第一预期事务,得到最终的第一全局状态,将第一全局状态与区块头中的第二全局状态进行比对,在第一全局状态与区块头中的第二全局状态一致时,判定该区块头验证成功,则将该区块头保存至本地数据库中,并转发该区块头至相邻的共识节点,目标节点通过提前验证预测的预期区块,在接收到生产者节点生产的待广播区块的区块头时,利用提前验证的第一验证信息对区块头进行简单验证,无需对待广播区块进行整体验证,以缩短了待广播区块在目标节点的验证时长,有助于提升区块链系统的性能。
在目标节点基于第一验证信息确定待广播区块的区块头验证失败时,目标节点保持持续等待接收区块头的状态,用于接收不同生产者节点生产生成的、与第一验证信息相匹配的待广播区块的区块头,直至目标节点根据自身的第一验证信息对接收到的区块头验证成功并转发该区块头之后,才重新根据生产者节点广播的事务筛选条件对下一个即将到来的区块进行预测。
在一个实施例中,参照图5,提供了一种区块广播方法,该方法应用于生产者节点,所述方法还包括:
步骤S310,确定并广播待广播区块的事务筛选条件。
具体的,生产者节点按照自己本地事务池中的事务情况确定事务筛选条件,并将事务筛选条件广播至各个共识节点,用于令各个共识节点按照相同的事务筛选条件提前预测生成包含相同事务的预期区块。
步骤S320,根据所述生产者节点中符合所述事务筛选条件的存储事务,组成待广播序列。
步骤S330,根据所述待广播序列中各个所述存储事务,生成所述待广播区块。
其中,所述待广播区块包括第二区块哈希。
具体的,在生产者节点的本地事务池中按照事务筛选条件筛选事务,并根据筛选出的事务生成待广播序列,根据待广播序列中的事务生成待广播区块以及待广播区块相应的第二区块哈希。
步骤S340,在接收到所述生产者节点的相邻节点发送的第一区块哈希、且所述第二区块哈希与所述第一区块哈希相匹配时,发送所述待广播区块的区块头至所述相邻节点。
具体的,每个共识节点在产生区块哈希时都将发送区块哈希至相邻节点,以令各个共识节点确定自己生成的区块与相邻节点的区块是否一致。
生产者节点在接收到相邻节点发送的第一区块哈希时,将第一区块哈希与本地的第二区块哈希进行比对,在第一区块哈希与第二区块哈希相匹配时,则确定第一区块哈希对应的预期区块与待广播区块保持一致,则无需传播完整的待广播区块仅将待广播区块的区块头传播至相邻节点进行验证即可,以减少区块传播带宽,缩短了区块传播时长。
在第一区块哈希与第二区块哈希匹配失败,则表示相邻节点生成的预期区块与待广播区块不一致,无法对待广播区块的区块头进行验证,需要发送完整的待广播区块至相邻节点进行验证,直至完整待广播区块在相邻节点验证成功后,相邻节点将继续依据与该相邻节点相邻的共识节点所发送的区块哈希,来确定继续向后传播该待广播区块还是待广播区块的区块头,即每个共识节点都将依据相邻节点发送的区块哈希来确定继续传播的是完整的待广播区块还是待广播区块的区块头。
图3和图5为一个实施例中区块广播方法的流程示意图。应该理解的是,虽然图3和图5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3和图5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种区块广播装置,应用于非生产者节点,所述装置包括:
获取模块410,用于获取生产者节点广播的事务筛选条件,其中,所述事务筛选条件用于所述生产者节点生产生成相应的待广播区块;
第一预打包模块420,用于根据目标节点中符合所述事务筛选条件的存储事务,生成所述目标节点对应的预期区块,其中,所述目标节点为任意一个所述非生产者节点;
预验证模块430,用于对所述预期区块进行预验证处理,得到所述预期区块对应的第一验证信息;
转发模块440,用于在接收到所述待广播区块的区块头、且所述第一验证信息与所述区块头中的第二验证信息相匹配时,转发所述区块头至所述目标节点的相邻节点。
在一个实施例中,所述第一预打包模块420具体用于:
接收来自所述相邻节点的事务池中的存储事务,并存储至所述目标节点的目标事务池中;
根据所述目标事务池中符合所述事务筛选条件的存储事务,生成所述目标节点对应的预期区块。
在一个实施例中,所述事务筛选条件包括预设时间戳以及事务排序要求,所述第一预打包模块420具体用于:
根据所述目标事务池中时间戳早于所述预设时间戳的存储事务,组成事务子集,其中,所述事务子集包括多个第一预期事务;
将所述事务子集中多个第一预期事务按照各个所述第一预期事务的事务价格降序排列,得到第一事务序列;
基于所述第一事务序列,生成所述目标节点对应的预期区块。
在一个实施例中,所述第一预打包模块420具体用于:
在所述第一事务序列中存在所述事务价格相同的多个所述第一预期事务时,将所述第一事务序列中所述事务价格相同的多个所述预设事务按照事务哈希降序排列,得到第二事务序列;
基于所述第二事务序列生成所述目标节点对应的预期区块。
在一个实施例中,所述第一验证信息包括第一区块哈希、延迟执行序列和第一预期事务状态,所述预验证模块430具体用于:
根据所述预期区块中所有所述第一预期事务生成第一区块哈希,并发送所述第一区块哈希至所述相邻节点;
对所述预期区块中的各个所述第一预期事务进行分类,得到延迟执行序列和待执行序列;
执行所述待执行序列中的所述第一预期事务,生成所述第一预期事务状态。
在一个实施例中,参照图7,提供了一种区块广播装置,应用于生产者节点,所述装置包括:
确定模块510,用于确定并广播待广播区块的事务筛选条件;
第二预打包模块520,用于根据所述生产者节点中符合所述事务筛选条件的存储事务,组成待广播序列;
生产模块530,用于根据所述待广播序列中各个所述存储事务,生成所述待广播区块,其中,所述待广播区块包括第二区块哈希;
发送模块540,用于在接收到所述生产者节点的相邻节点发送的第一区块哈希、且所述第二区块哈希与所述第一区块哈希相匹配时,发送所述待广播区块的区块头至所述相邻节点。
图8示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是服务器。如图8所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现区块广播方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行区块广播方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的区块广播装置可以实现为一种计算机程序的形式,计算机程序可在如图8所示的计算机设备上运行。计算机设备的存储器中可存储组成该区块广播装置的各个程序模块,比如,图6所示的获取模块410、第一预打包模块420、预验证模块430 和转发模块440。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的区块广播方法中的步骤。
图8所示的计算机设备可以通过如图6所示的区块广播装置中的获取模块410执行获取生产者节点广播的事务筛选条件,其中,所述事务筛选条件用于所述生产者节点生产生成相应的待广播区块。计算机设备可通过第一预打包模块420执行根据目标节点中符合所述事务筛选条件的存储事务,生成所述目标节点对应的预期区块,其中,所述目标节点为任意一个所述非生产者节点。计算机设备可通过预验证模块430执行对所述预期区块进行预验证处理,得到所述预期区块对应的第一验证信息。计算机设备可通过转发模块440执行在接收到所述待广播区块的区块头、且所述第一验证信息与所述区块头中的第二验证信息相匹配时,转发所述区块头至所述目标节点的相邻节点。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一项实施例所述的方法。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一项实施例所述的方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指示相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器 (ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM 以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双倍速率SDRAM(DDRSDRAM)、增强型 SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态 RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种区块广播方法,其特征在于,应用于非生产者节点,所述方法包括:
获取生产者节点广播的事务筛选条件,其中,所述事务筛选条件用于所述生产者节点生产生成相应的待广播区块;
根据目标节点中符合所述事务筛选条件的存储事务,生成预期区块,其中,所述目标节点为任意一个所述非生产者节点;
对所述预期区块进行预验证处理,得到所述预期区块对应的第一验证信息;
在接收到所述待广播区块的区块头、且所述第一验证信息与所述区块头中的第二验证信息相匹配时,转发所述区块头至所述目标节点的相邻节点。
2.根据权利要求1所述的方法,其特征在于,所述根据目标节点中符合所述事务筛选条件的存储事务,生成预期区块,包括:
接收来自所述相邻节点的事务池中的存储事务,并存储至所述目标节点的目标事务池中;
根据所述目标事务池中符合所述事务筛选条件的存储事务,生成所述目标节点对应的预期区块。
3.根据权利要求2所述的方法,其特征在于,所述事务筛选条件包括预设时间戳以及事务排序要求,所述根据所述目标事务池中符合所述事务筛选条件的存储事务,生成所述目标节点对应的预期区块,包括:
根据所述目标事务池中时间戳早于所述预设时间戳的存储事务,组成事务子集,其中,所述事务子集包括多个第一预期事务;
将所述事务子集中多个第一预期事务按照各个所述第一预期事务的事务价格降序排列,得到第一事务序列;
基于所述第一事务序列,生成所述目标节点对应的预期区块。
4.根据权利要求3所述的方法,其特征在于,所述基于所述第一事务序列,生成所述目标节点对应的预期区块,包括:
在所述第一事务序列中存在所述事务价格相同的多个所述第一预期事务时,将所述第一事务序列中所述事务价格相同的多个所述预设事务按照事务哈希降序排列,得到第二事务序列;
基于所述第二事务序列生成所述目标节点对应的预期区块。
5.根据权利要求1所述的方法,其特征在于,所述第一验证信息包括第一区块哈希、延迟执行序列和第一预期事务状态,所述对所述预期区块进行预验证处理,得到所述预期区块对应的第一验证信息,包括:
根据所述预期区块中所有所述第一预期事务生成第一区块哈希,并发送所述第一区块哈希至所述相邻节点;
对所述预期区块中的各个所述第一预期事务进行分类,得到延迟执行序列和待执行序列;
执行所述待执行序列中的所述第一预期事务,生成所述第一预期事务状态。
6.一种区块广播方法,其特征在于,应用于生产者节点,所述方法还包括:
确定并广播待广播区块的事务筛选条件;
根据所述生产者节点中符合所述事务筛选条件的存储事务,组成待广播序列;
根据所述待广播序列中各个所述存储事务,生成所述待广播区块,其中,所述待广播区块包括第二区块哈希;
在接收到所述生产者节点的相邻节点发送的第一区块哈希、且所述第二区块哈希与所述第一区块哈希相匹配时,发送所述待广播区块的区块头至所述相邻节点。
7.一种区块广播装置,其特征在于,应用于非生产者节点,所述装置包括:
获取模块,用于获取生产者节点广播的事务筛选条件,其中,所述事务筛选条件用于所述生产者节点生产生成相应的待广播区块;
第一预打包模块,用于根据目标节点中符合所述事务筛选条件的存储事务,生成所述目标节点对应的预期区块,其中,所述目标节点为任意一个所述非生产者节点;
预验证模块,用于对所述预期区块进行预验证处理,得到所述预期区块对应的第一验证信息;
转发模块,用于在接收到所述待广播区块的区块头、且所述第一验证信息与所述区块头中的第二验证信息相匹配时,转发所述区块头至所述目标节点的相邻节点。
8.一种区块广播装置,其特征在于,应用于生产者节点,所述装置包括:
确定模块,用于确定并广播待广播区块的事务筛选条件;
第二预打包模块,用于根据所述生产者节点中符合所述事务筛选条件的存储事务,组成待广播序列;
生产模块,用于根据所述待广播序列中各个所述存储事务,生成所述待广播区块,其中,所述待广播区块包括第二区块哈希;
发送模块,用于在接收到所述生产者节点的相邻节点发送的第一区块哈希、且所述第二区块哈希与所述第一区块哈希相匹配时,发送所述待广播区块的区块头至所述相邻节点。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210318977.2A CN115208898B (zh) | 2022-03-29 | 2022-03-29 | 区块广播方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210318977.2A CN115208898B (zh) | 2022-03-29 | 2022-03-29 | 区块广播方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115208898A true CN115208898A (zh) | 2022-10-18 |
CN115208898B CN115208898B (zh) | 2023-12-08 |
Family
ID=83574579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210318977.2A Active CN115208898B (zh) | 2022-03-29 | 2022-03-29 | 区块广播方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115208898B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109324757A (zh) * | 2018-08-22 | 2019-02-12 | 深圳前海微众银行股份有限公司 | 区块链数据缩容方法、装置及存储介质 |
CN109669789A (zh) * | 2018-12-10 | 2019-04-23 | 杭州复杂美科技有限公司 | 交易排队方法、交易池存储方法、设备和存储介质 |
US20190199515A1 (en) * | 2017-12-26 | 2019-06-27 | Akamai Technologies, Inc. | Concurrent transaction processing in a high performance distributed system of record |
WO2019160128A1 (ja) * | 2018-02-16 | 2019-08-22 | 株式会社bitFlyer Blockchain | ブロックチェーン・ネットワークにおいてトランザクションを検証するための方法及び当該ネットワークを構成するためのノード |
CN110336676A (zh) * | 2019-07-15 | 2019-10-15 | 杭州复杂美科技有限公司 | 一种区块链交易广播方法和系统、设备及存储介质 |
US20210042744A1 (en) * | 2018-03-14 | 2021-02-11 | Jieqian Zheng | Block chain data processing method, management terminal, user terminal, conversion device, and medium |
CN112749232A (zh) * | 2020-12-30 | 2021-05-04 | 北京佳华智联科技有限公司 | 一种生产数据监控方法、装置、区块链节点及存储介质 |
CN114219650A (zh) * | 2022-02-21 | 2022-03-22 | 浙江数秦科技有限公司 | 一种低交易延迟的区块链共识方法 |
-
2022
- 2022-03-29 CN CN202210318977.2A patent/CN115208898B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190199515A1 (en) * | 2017-12-26 | 2019-06-27 | Akamai Technologies, Inc. | Concurrent transaction processing in a high performance distributed system of record |
WO2019160128A1 (ja) * | 2018-02-16 | 2019-08-22 | 株式会社bitFlyer Blockchain | ブロックチェーン・ネットワークにおいてトランザクションを検証するための方法及び当該ネットワークを構成するためのノード |
US20210042744A1 (en) * | 2018-03-14 | 2021-02-11 | Jieqian Zheng | Block chain data processing method, management terminal, user terminal, conversion device, and medium |
CN109324757A (zh) * | 2018-08-22 | 2019-02-12 | 深圳前海微众银行股份有限公司 | 区块链数据缩容方法、装置及存储介质 |
CN109669789A (zh) * | 2018-12-10 | 2019-04-23 | 杭州复杂美科技有限公司 | 交易排队方法、交易池存储方法、设备和存储介质 |
CN110336676A (zh) * | 2019-07-15 | 2019-10-15 | 杭州复杂美科技有限公司 | 一种区块链交易广播方法和系统、设备及存储介质 |
CN112749232A (zh) * | 2020-12-30 | 2021-05-04 | 北京佳华智联科技有限公司 | 一种生产数据监控方法、装置、区块链节点及存储介质 |
CN114219650A (zh) * | 2022-02-21 | 2022-03-22 | 浙江数秦科技有限公司 | 一种低交易延迟的区块链共识方法 |
Non-Patent Citations (1)
Title |
---|
CHONGHE ZHAO等: "LightBlock: Reducing Bandwidth Required to Synchronize Blocks in Ethereum Network", 2021 INTERNATIONAL CONFERENCE ON COMMUNICATIONS, INFORMATION SYSTEM AND COMPUTER ENGINEERING (CISCE) * |
Also Published As
Publication number | Publication date |
---|---|
CN115208898B (zh) | 2023-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110543788B (zh) | 数据存储方法、装置、计算机可读存储介质和计算机设备 | |
CN108683539B (zh) | 区块链网络的管理方法、装置、介质及电子设备 | |
US11973869B2 (en) | Maintaining blocks of a blockchain in a partitioned blockchain network | |
CN110378694B (zh) | 区块链数据处理方法、装置、计算机设备和存储介质 | |
CN111343277B (zh) | 分布式数据存储方法、系统、计算机设备和存储介质 | |
RU2473112C2 (ru) | Создание и развертывание распределенных расширяемых приложений | |
CN110866825A (zh) | 基于公链的区块链信息存储方法及系统 | |
CN111291000B (zh) | 基于区块链的文件获取方法、设备及存储介质 | |
CN109981279B (zh) | 一种区块链系统、通信方法、装置、设备及介质 | |
CN111628886B (zh) | 私有云环境下组建区块链网络的方法、装置、计算机设备 | |
WO2022134797A1 (zh) | 一种数据分片存储方法、装置、计算机设备和存储介质 | |
CN106878382B (zh) | 一种分布式仲裁集群中动态改变集群规模的方法及装置 | |
CN110597918A (zh) | 一种账户管理方法、装置及计算机可读存储介质 | |
KR101574871B1 (ko) | 키 값 스토리지에 또는 그로부터 데이터를 저장하고 읽기 위한 방법 및 시스템 | |
US12063292B2 (en) | Proprietor terminal, user terminal, and new proprietor terminal | |
CN112910965B (zh) | 一种提交分片型区块链下跨分片事务的方法及系统 | |
CN109857810B (zh) | 基于区块链的数据同步装置及方法 | |
CN113204530B (zh) | 分布式文件系统的数据写入方法、装置、设备以及介质 | |
CN112184436B (zh) | 数据同步方法、电子设备及可读存储介质 | |
CN110933022A (zh) | 区块处理方法、装置、计算机设备及存储介质 | |
CN111064785B (zh) | 资源包下载方法、装置和系统 | |
CN117714464A (zh) | 一种引入第二领导者与信誉模型的共识算法及其改进方法和应用 | |
CN115208898B (zh) | 区块广播方法、装置、计算机设备和存储介质 | |
CN115208880B (zh) | 预期区块生成方法、装置、计算机设备和存储介质 | |
CN110598477A (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 |