CN111600965B - 区块链中的共识方法和*** - Google Patents
区块链中的共识方法和*** Download PDFInfo
- Publication number
- CN111600965B CN111600965B CN202010506075.2A CN202010506075A CN111600965B CN 111600965 B CN111600965 B CN 111600965B CN 202010506075 A CN202010506075 A CN 202010506075A CN 111600965 B CN111600965 B CN 111600965B
- Authority
- CN
- China
- Prior art keywords
- consensus
- data
- node
- broadcast network
- target
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000000977 initiatory effect Effects 0.000 claims description 8
- 238000012795 verification Methods 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 description 18
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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
-
- 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
-
- 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/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书公开了一种区块链中的共识方法和***,该方法包括:共识主节点在区块链中发起针对待共识数据的目标提议,所述目标提议中包含待共识数据构成的根哈希;所述共识主节点调用本节点的广播网络客户端,将所述待共识数据广播至区块链中的共识备份节点;接收到所述目标提议的共识备份节点,确定本节点的广播网络客户端是否存在与所述目标提议中的根哈希相匹配的数据;接收到所述目标提议的共识备份节点,若确定本节点的广播网络客户端存在与所述目标提议中的根哈希相匹配的数据,则对所述目标提议进行共识操作。
Description
技术领域
本文件涉及计算机技术领域,尤其涉及一种区块链中的共识方法和***。
背景技术
目前,在区块链网络中,区块链中的节点之间一般采用P2P直连的方式进行通信。当区块链中的某个节点需要广播数据到其他节点时,这种直连通信方式会使得整个区块链网络对时延和带宽的需求都比较大。
发明内容
本说明书实施例提供了一种区块链中的共识方法和***,以解决现有的区块链中的节点之间通过P2P直连的方式进行通信使得整个区块链网络对时延和带宽的需求较大的问题。
为解决上述技术问题,本说明书实施例是这样实现的:
第一方面,提出了一种区块链中的共识方法,包括:
共识主节点在区块链中发起针对待共识数据的目标提议,所述目标提议中包含待共识数据构成的根哈希;
所述共识主节点调用本节点的广播网络客户端,将所述待共识数据广播至区块链中的共识备份节点;
接收到所述目标提议的共识备份节点,确定本节点的广播网络客户端是否存在与所述目标提议中的根哈希相匹配的数据;
接收到所述目标提议的共识备份节点,若确定本节点的广播网络客户端存在与所述目标提议中的根哈希相匹配的数据,则对所述目标提议进行共识操作。
第二方面,提出了一种区块链***,包括:
共识主节点,在区块链中发起针对待共识数据的目标提议,所述目标提议中包含待共识数据构成的根哈希;以及调用本节点的广播网络客户端将所述待共识数据广播至区块链中的共识备份节点;
接收到所述目标提议的共识备份节点,确定本节点的广播网络客户端是否存在与所述目标提议中的根哈希相匹配的数据;以及若确定本节点的广播网络客户端存在与所述目标提议中的根哈希相匹配的数据,则对所述目标提议进行共识操作。
本说明书实施例采用上述技术方案至少可以达到下述技术效果:
采用本说明书实施例提供的共识方法,共识主节点在区块链中发起针对待共识数据的目标提议,并调用本节点的广播网络客户端将待共识数据广播至区块链中的共识备份节点,目标提议中包含待共识数据构成的根哈希;接收到目标提议的共识备份节点,确定本节点的广播网络客户端是否存在与目标提议中的根哈希相匹配的数据,以及若确定本节点的广播网络客户端存在与目标提议中的根哈希相匹配的数据,则对目标提议进行共识操作。
也就是说,在共识主节点发起共识操作时,向共识备份节点传输的是目标提议的待共识数据的根哈希,而不是待共识数据的原始数据,以及通过共识主节点中的广播网络客户端将待共识数据的原始数据广播至区块链中的共识备份节点。这一方面由于节点之间直接进行传输的是待共识数据的根哈希,在节点之间传输根哈希相对原始数据而言极大地节省了数据传输时占用的带宽;另一方面通过广播网络传输待共识数据的原始数据也减少了数据传输的时延。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书一个实施例提供的一种区块链中的共识方法的实现流程示意图;
图2为本说明书一个实施例提供的区块链中的共识方法应用于实际场景中的示意图;
图3为本说明书一个实施例提供的一种区块链***的结构示意图。
具体实施方式
为使本文件的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本文件一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本文件保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
如背景技术中所述,在传统区块链网络中,区块链中的不同节点之间一般采用P2P直连的方式进行通信,即进行节点之间的数据传输。在需要对某个提议进行共识操作时,区块链中参与对该提议进行共识操作的节点需要广播数据到其他节点。然而,这种P2P直连通信方式一般是单播,这对整个区块链网络的时延和带宽需求都比较大。针对这种场景,业界发展出了0层区块链扩容技术,包括中继网络(如比特币FIBRE),或组播网络(如BDN)。然而现有的0层区块链网络都是针对区块的传输进行优化,而对共识协议本身并没有帮助。
本说明书实施例为了解决这一问题,提出一种区块链中的共识方法,采用本说明书实施例提供的共识方法,共识主节点在区块链中发起针对待共识数据的目标提议,并调用本节点的广播网络客户端将待共识数据广播至区块链中的共识备份节点,目标提议中包含待共识数据构成的根哈希;接收到目标提议的共识备份节点,确定本节点的广播网络客户端是否存在与目标提议中的根哈希相匹配的数据,以及若确定本节点的广播网络客户端存在与目标提议中的根哈希相匹配的数据,则对目标提议进行共识操作。
在共识主节点发起共识操作时,向共识备份节点传输的是目标提议的待共识数据的根哈希,而不是待共识数据的原始数据,以及通过共识主节点中的广播网络客户端将待共识数据的原始数据广播至区块链中的共识备份节点。这一方面由于节点之间直接进行传输的是待共识数据的根哈希,在节点之间传输根哈希相对原始数据而言极大地节省了数据传输时占用的带宽;另一方面通过广播网络传输待共识数据的原始数据也减少了数据传输的时延。
具体地,本说明书一个或多个实施例提供的一种区块链中的共识方法的实现流程示意图如图1所示,包括:
步骤110,共识主节点在区块链中发起针对待共识数据的目标提议,目标提议中包含待共识数据构成的根哈希。
应理解,区块链中的共识主节点和共识备份节点之间如果传输的数据量越大,则会对网络带宽的消耗越大,且时延越大。本说明书实施例为了解决这一问题,在共识主节点在区块链中发起针对待共识数据的目标提议时,共识主节点向区块链中的共识备份节点发送待共识数据构成的根哈希,由于该根哈希通常是一个32字节的数据,这将极大地减少节点之间直接进行数据传输所占用的网络带宽,同时降低了数据传输的时延。
应理解,为确保共识主节点从交易池中捞取收集到的来自客户端的交易的集合达到发起共识的条件,本说明书实施例中的共识主节点在发起针对待共识数据的目标提议之前,还可以确定收集到的交易集合是否满足预设的交易收集条件。
可选地,共识主节点在区块链中发起针对待共识数据的目标提议,包括:
共识主节点获取待共识数据,并基于待共识数据,生成包含有待共识数据构成的根哈希的目标提议;
共识主节点若确定待共识数据满足预设的交易收集条件,则基于待共识数据,生成包含有待共识数据构成的根哈希的目标提议。
其中,该预设的交易收集条件包括下述至少一种:
待共识数据中的交易数量大于或等于预设数量;
收集待共识数据中的交易的周期大于或等于指定的收集周期;
待共识数据的大小大于或等于指定容量。
其中,待共识数据可包括一个或多个交易集合,一个交易集合中包括一个或多个交易数据,该待共识数据也可为空。应理解,当待共识数据为空时,由待共识数据打包得到的目标提议也为空。共识主节点获取待共识数据具体可以由共识主节点在交易池中捞取一个或多个交易集合,并基于该一个或多个交易集合打包得到目标提议。具体地,为减少节点之间的数据传输量,基于一个或多个交易集合打包得到目标提议,打包得到的目标提议中可以只包含由一个或多个交易集合构成的根哈希。
可选地,共识主节点在区块链中发起针对待共识数据的目标提议对应的共识算法包括下述至少一种:
实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)共识算法;
Hotstuff共识算法;
LibraBFT共识算法;
Tendermint共识算法。
下面以区块链中的共识算法为PBFT共识算法为例,详细描述共识主节点在区块链中发起针对待共识数据的目标提议的过程。
共识主节点向区块链中的共识备份节点发送针对目标提议的PRE-PREPARE消息、以及对该PRE-PREPARE消息的签名,该PRE-PREPARE消息的格式为<PRE-PREPARE, v, n, d>,其中v为目标提议所处的视图view编号,d为目标提议对应的一个或多个交易集合构成的根哈希,n是要在某一个范围区间内的[h, H]。
步骤120,共识主节点调用本节点的广播网络客户端,将待共识数据广播至区块链中的共识备份节点。
其中,广播网络客户端为本说明书实施例基于节点之间P2P的传输方式的缺陷额外设置在节点内的,该广播网络客户端用于传输待共识数据的原始数据给区块链中的其他节点。该广播网络客户端在进行数据传输时,不占用节点之间的网络传输带宽,具体是经由区块链中的广播网络进行数据传输的。
应理解,为了避免待共识数据的原始数据在节点之间直接进行传输过多地占用共识主节点的网络传输带宽,本说明书实施例中的待共识数据的原始数据,即目标提议中的根哈希对应的待共识数据中一个或多个交易集合的原始数据,可以由共识主节点中的广播网络客户端将待共识数据中的一个或多个交易集合、发送给区块链中的共识备份节点的广播网络客户端。具体地,共识主节点可调用本节点的广播网络客户端,将待共识数据广播至区块链中的共识备份节点的广播网络客户端。
可选地,为了减少待共识数据的传输时延,本说明书实施例可预先在区块链中部署广播网络,该广播网络用于传输节点之间的大容量数据,各个节点中的广播网络客户端用于发送和接收广播网络中传输的数据。具体地,共识主节点调用本节点的广播网络客户端,将待共识数据广播至区块链中的共识备份节点,包括:
共识主节点将待共识数据发送给本节点的广播网络客户端;
共识主节点的广播网络客户端将待共识数据经由区块链的广播网络,广播至区块链中的共识备份节点。
由于通过广播网络传输待共识数据没有额外占用节点间的网络传输带宽,因此,采用本说明书一个或多个实施例提供的方法可大幅降低节点间的直接进行通信的数据量,从而降低节点间的网络传输带宽需求。
步骤130,接收到目标提议的共识备份节点,确定本节点的广播网络客户端是否存在与目标提议中的根哈希相匹配的数据。
由于目标提议中还包括用于指示目标提议对应的待共识数据将要写入的区块号,即目标提议的当前视图,且经由广告网络客户端发送的待共识数据中还包括当前视图的标识。因此,可接收到目标提议的共识备份节点基于目标提议中的视图标识,确定本节点的广播网络客户端是否存在与目标提议中的根哈希相匹配的数据。具体地,接收到目标提议的共识备份节点,确定本节点的广播网络客户端是否存在与目标提议中的根哈希相匹配的数据,包括:
接收到目标提议的共识备份节点,基于目标提议对应的目标视图,从本节点的广播网络客户端中获取对应于目标视图的交易数据;
接收到目标提议的共识备份节点,基于对应于目标视图的交易数据,确定本节点的广播网络客户端是否存在与目标提议中的根哈希相匹配的数据。
具体地,接收到目标提议的共识备份节点,基于对应于目标视图的交易数据,确定本节点的广播网络客户端是否存在与目标提议中的根哈希相匹配的数据,首先可以基于对应于目标视图的交易数据,得到对应于目标视图的交易数据构成的根哈希,再确定该对应于目标视图的交易数据构成的根哈希是否与目标提议中携带的根哈希一致。
若该对应于目标视图的交易数据构成的根哈希与目标提议中携带的根哈希一致,则表明本节点的广播网络客户端存在与目标提议中的根哈希相匹配的数据;而若该对应于目标视图的交易数据构成的根哈希与目标提议中携带的根哈希不一致,则表明本节点的广播网络客户端不存在与目标提议中的根哈希相匹配的数据。
可选地,接收到目标提议的共识备份节点,确定本节点的广播网络客户端是否存在与目标提议中的根哈希相匹配的数据,包括:
接收到目标提议的共识备份节点的广播网络客户端经由广播网络,接收来自共识主节点的待共识数据;
接收到目标提议的共识备份节点,确定本节点的广播网络客户端接收到的待共识数据是否与目标提议中的根哈希相匹配。
可选地,接收到目标提议的共识备份节点,确定本节点的广播网络客户端是否存在与目标提议中的根哈希相匹配的数据之后,所述方法还包括:
接收到目标提议的共识备份节点,若确定本节点的广播网络客户端不存在与目标提议中的根哈希相匹配的数据,则在接收到目标提议的待预设时间段之后,确定本节点的广播网络客户端是否接收到与目标提议中的根哈希相匹配的数据。
其中,预设时间段为预先设定的超时时间的上限。接收到目标提议的共识备份节点,若确定本节点的广播网络客户端不存在与目标提议中的根哈希相匹配的数据,通常会等待一个超时时间,当超时时间后,仍然从本节点的广播网络客户端查询不到与目标提议中的根哈希相匹配的数据,则可以发起视图切换操作,即开始对目标提议的下一个提议的共识操作。
可选地,为了不影响目标提议之后的提议的共识操作,接收到目标提议的共识备份节点,确定本节点的广播网络客户端是否存在与目标提议中的根哈希相匹配的数据之后,所述方法还包括:
接收到目标提议的共识备份节点,若在接收到目标提议的预设时间段之后,确定本节点的广播网络客户端不存在与目标提议中的根哈希相匹配的数据,则发起视图切换操作。
继续沿用区块链中的共识算法为PBFT共识算法为例,详细描述接收到目标提议的共识备份节点,确定本节点的广播网络客户端是否存在与目标提议中的根哈希相匹配的数据的过程。
共识备份节点接收到针对目标提议的PRE-PREPARE消息之后,对该PRE-PREPARE消息进行验证,主要验证以下内容:共识主节点对PRE-PREPARE消息的签名是否正确,其本节点的广播网络客户端中是否存在与d相匹配的一个或多个交易集合,n是否在区间[h, H]内,以及该共识备份节点是否已经收到了一条在同一v下并且编号也是n,但是签名不同的PRE-PREPARE信息。
步骤140,接收到目标提议的共识备份节点,若确定本节点的广播网络客户端存在与目标提议中的根哈希相匹配的数据,则对目标提议进行共识操作。
可选地,为了对目标提议对应的待共识数据进行写块操作,在接收到目标提议的共识备份节点对目标提议进行共识操作之后,所述方法还包括:
若区块链中的节点接收到来自不少于3f+1个节点针对目标提议的有效验证消息,则生成记录有待共识数据的区块;其中,f为区块链中允许的最大异常节点数量。
继续沿用区块链中的共识算法为PBFT共识算法为例,详细描述接收到目标提议的共识备份节点,若确定本节点的广播网络客户端存在与目标提议中的根哈希相匹配的数据,则对目标提议进行共识操作的过程。
共识备份节点对接收到的PRE-PREPARE消息验证通过后,向区块链中的其他节点包括共识主节点发送一条PREPARE消息,格式为<PREPARE, v, n, d, i>消息,v, n, d, m与上述PRE-PREPARE消息内容相同,i是当前共识备份节点的编号,同时对<PREPARE, v, n,d, i>进行签名;
区块链中的共识主节点和其他共识备份节点接收到该PREPARE消息之后,主要进行以下校验:该PREPARE消息的签名是否正确,接收到该PREPARE消息的节点是否已收到了同一视图view下的n,n是否在区间[h, H]内,以及d是否和已收到的PRE-PREPARE消息中的d相同。如果有至少一项验证不通过,则丢弃该消息;
如果区块链中的共识主节点和其他共识备份节点接收不少于3f+1个节点的PREPARE消息,且验证通过,则向区块链中的其他节点发送COMMIT消息以及消息签名,格式为<COMMIT, v, n, d, i>,其中,v, n, d,i与上述PREPARE消息内容相同;
区块链中的节点接收到该COMMIT消息之后,对该COMMIT消息进行验证,主要校验以下几项:COMMIT消息的签名是否正确,是否已接收到同一视图view下的n,其管理的交易内存池中是否存在与d相匹配的一个或多个交易集合,n是否在区间[h, H]内。
下面以图2所示的区块链中的共识方法应用于实际场景中的示意图为例,对本说明书实施例提供的方法进行详细介绍,如图2所示,该区块链网络包括一个共识主节点和多个共识备份节点,为便于描述,共识备份节点以其中一个共识备份节点为例,应理解,在实际场景中,共识备份节点的数量通常为多个。该区块链中的共识方法的实施流程包括:
S1,共识主节点在确定本节点收集的至少一个交易集合是否满足预设的交易收集条件之后,在发起针对该至少一个交易集合的共识提议时,向本节点的广播网络客户端发送该至少一个交易集合。其中预设的交易收集条件包括比如该至少一个交易集合中的交易数量是否大于或等于预设数量、该至少一个交易集合的收集周期是否大于或等于指定的收集周期、和/或该至少一个交易集合的大小是否大于或等于指定容量,等等。
S2,共识主节点向共识备份节点发送pre-prepare消息,该pre-prepare消息中包含至少一个交易集合构成的根哈希以及区块元数据(用于指示所发起的共识提议对应的视图和区块号)。
S3,共识主节点中的广播网络客户端将该至少一个交易集合发送给广播网络,使得该广播网络将该至少一个交易集合发送给共识备份节点的广播网络客户端。
S4,广播网络将该至少一个交易集合发送给共识备份节点的广播网络客户端。
S5,共识备份节点从本节点的广播网络客户端中获取与pre-prepare消息中的区块元数据一致的交易数据,并确定获取的交易数据对应的根哈希是否与pre-prepare消息中的根哈希一致,若一致,则继续对共识提议的共识操作,否则等待预设时间段。
如果在预设时间段之后,共识备份节点仍然从本节点的广播网络客户端未查找到与pre-prepare消息中的根哈希相匹配的交易数据,则发起视图切换操作,对共识提议的下一个提议进行共识操作。
若共识备份节点在指定时间段内查询到与目标提议中的待写入的区块号对应且不在管理的交易内存池中的交易集合,则执行S7,并在通过验证后继续执行对目标提议的共识操作;而若共识备份节点在指定时间段内没有查询到与目标提议中的待写入的区块号对应且不在管理的交易内存池中的交易集合,则执行视图切换操作。
采用本说明书实施例提供的共识方法,共识主节点在区块链中发起针对待共识数据的目标提议,并调用本节点的广播网络客户端将待共识数据广播至区块链中的共识备份节点,目标提议中包含待共识数据构成的根哈希;接收到目标提议的共识备份节点,确定本节点的广播网络客户端是否存在与目标提议中的根哈希相匹配的数据,以及若确定本节点的广播网络客户端存在与目标提议中的根哈希相匹配的数据,则对目标提议进行共识操作。
也就是说,在共识主节点发起共识操作时,向共识备份节点传输的是目标提议的待共识数据的根哈希,而不是待共识数据的原始数据,以及通过共识主节点中的广播网络客户端将待共识数据的原始数据广播至区块链中的共识备份节点。这一方面由于节点之间直接进行传输的是待共识数据的根哈希,在节点之间传输根哈希相对原始数据而言极大地节省了数据传输时占用的带宽;另一方面通过广播网络传输待共识数据的原始数据也减少了数据传输的时延。
图3是本说明书实施例提供的区块链***300的结构示意图。请参考图3,在一种软件实施方式中,区块链***300可包括共识主节点310和多个共识备份节点320,其中:
共识主节点310,在区块链中发起针对待共识数据的目标提议,所述目标提议中包含待共识数据构成的根哈希;以及调用本节点的广播网络客户端将所述待共识数据广播至区块链中的共识备份节点;
接收到所述目标提议的共识备份节点320,确定本节点的广播网络客户端是否存在与所述目标提议中的根哈希相匹配的数据;以及若确定本节点的广播网络客户端存在与所述目标提议中的根哈希相匹配的数据,则对所述目标提议进行共识操作。
基于本说明书实施例提供的区块链***可以知道:
在共识主节点发起共识操作时,向共识备份节点传输的是目标提议的待共识数据的根哈希,而不是待共识数据的原始数据,以及通过共识主节点中的广播网络客户端将待共识数据的原始数据广播至区块链中的共识备份节点。这一方面由于节点之间直接进行传输的是待共识数据的根哈希,在节点之间传输根哈希相对原始数据而言极大地节省了数据传输时占用的带宽;另一方面通过广播网络传输待共识数据的原始数据也减少了数据传输的时延。
可选地,在一种实施方式中,接收到所述目标提议的共识备份节点320,用于:
基于所述目标提议对应的目标视图,从本节点的广播网络客户端中获取对应于所述目标视图的交易数据;
基于对应于所述目标视图的交易数据,确定本节点的广播网络客户端是否存在与所述目标提议中的根哈希相匹配的数据。
可选地,在一种实施方式中,所述共识主节点310,用于:
获取所述待共识数据,并基于所述待共识数据,生成包含有所述待共识数据构成的根哈希的所述目标提议;
若确定所述待共识数据满足预设的交易收集条件,则基于所述待共识数据,生成包含有所述待共识数据构成的根哈希的所述目标提议。
可选地,在一种实施方式中,所述共识主节点310,用于:
将所述待共识数据发送给本节点的广播网络客户端;
所述共识主节点的广播网络客户端将所述待共识数据经由所述区块链的广播网络,广播至所述区块链中的共识备份节点。
可选地,在一种实施方式中,在接收到所述目标提议的共识备份节点320对所述目标提议进行共识操作之后,
若所述区块链中的共识主节点310或共识备份节点320接收到来自不少于3f+1个节点针对所述目标提议的有效验证消息,则生成记录有所述待共识数据的区块;其中,f为所述区块链中允许的最大异常节点数量。
可选地,在一种实施方式中,接收到所述目标提议的共识备份节点320,确定本节点的广播网络客户端是否存在与所述目标提议中的根哈希相匹配的数据之后,接收到所述目标提议的共识备份节点320,还用于:
若确定本节点的广播网络客户端不存在与所述目标提议中的根哈希相匹配的数据,则在接收到所述目标提议的待预设时间段之后,确定本节点的广播网络客户端是否接收到与所述目标提议中的根哈希相匹配的数据。
可选地,在一种实施方式中,接收到所述目标提议的共识备份节点320,确定本节点的广播网络客户端是否存在与所述目标提议中的根哈希相匹配的数据之后,接收到所述目标提议的共识备份节点320,还用于:
若在接收到所述目标提议的预设时间段之后,确定本节点的广播网络客户端不存在与所述目标提议中的根哈希相匹配的数据,则发起视图切换操作。
可选地,在一种实施方式中,共识主节点在区块链中发起针对待共识数据的目标提议采用的共识算法包括下述至少一种:
实用拜占庭容错PBFT共识算法;
Hotstuff共识算法;
LibraBFT共识算法;
Tendermint共识算法。
区块链***300能够实现图1~图2的方法实施例的方法,具体可参考图1~图2所示实施例的区块链中的共识方法,不再赘述。
总之,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书一个或多个实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例的保护范围之内。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
Claims (8)
1.一种区块链中的共识方法,区块链中部署了用于传输节点之间的大容量数据的广播网络;各个节点上部署了用于在所述广播网络中发送和接收数据的广播网络客户端;所述方法包括:
共识主节点在区块链中通过P2P发起针对待共识数据的目标提议,所述目标提议中包含待共识数据的根哈希;
所述共识主节点将所述待共识数据发送给本节点的广播网络客户端,以由本节点的广播网络客户端将所述待共识数据经由所述广播网络发送给共识备份节点的广播网络客户端;
所述共识备份节点响应于接收到所述目标提议,从本节点的广播网络客户端中获取所述共识主节点的广播网络客户端经由所述广播网络发送的待共识数据,并计算出获取到的待共识数据的根哈希,以确定计算得到的根哈希与所述目标提议中包含的根哈希是否一致;
所述共识备份节点若确定计算得到的根哈希与所述目标提议中包含的根哈希一致,则对所述目标提议进行共识操作。
2.如权利要求1所述的方法,所述目标提议中还包含目标视图的视图标识;所述待共识数据包括与所述目标视图对应的交易数据;
所述共识备份节点响应于接收到所述目标提议,从本节点的广播网络客户端中获取所述共识主节点的广播网络客户端经由所述广播网络发送的待共识数据,并计算出获取到的待共识数据的根哈希,包括:
所述共识备份节点响应于接收到所述目标提议,基于所述目标提议中包含的目标视图的视图标识,从本节点的广播网络客户端中获取与所述目标视图对应的交易数据,并计算出获取到的交易数据的根哈希。
3.如权利要求1所述的方法,共识主节点在区块链中通过P2P发起针对待共识数据的目标提议,包括:
所述共识主节点获取所述待共识数据,并基于所述待共识数据,生成包含有所述待共识数据的根哈希的所述目标提议;
所述共识主节点若确定所述待共识数据满足预设的交易收集条件,则在区块链中通过P2P发起针对所述待共识数据的所述目标提议。
4.如权利要求1所述的方法,在接收到所述目标提议的共识备份节点对所述目标提议进行共识操作之后,所述方法还包括:
若所述区块链中的节点接收到来自不少于3f+1个节点针对所述目标提议的有效验证消息,则生成记录有所述待共识数据的区块;其中,f为所述区块链中允许的最大异常节点数量。
5.如权利要求1所述的方法,所述方法还包括:
所述共识备份节点响应于接收到所述目标提议,若从本节点的广播网络客户端中未获取到所述共识主节点的广播网络客户端经由所述广播网络发送的待共识数据,则在接收到所述目标提议的预设时间段之后,确定本节点的广播网络客户端是否接收到所述共识主节点的广播网络客户端经由所述广播网络发送的待共识数据。
6.如权利要求5所述的方法,所述方法还包括:
所述共识备份节点若在接收到所述目标提议的预设时间段之后,确定本节点的广播网络客户端未接收到所述共识主节点的广播网络客户端经由所述广播网络发送的待共识数据,则发起视图切换操作。
7.如权利要求1-6中任一所述的方法,所述共识主节点发起针对待共识数据的目标提议所采用的共识算法包括下述至少一种:
实用拜占庭容错PBFT共识算法;
Hotstuff共识算法;
LibraBFT共识算法;
Tendermint共识算法。
8.一种区块链中的共识***,区块链中部署了用于传输节点之间的大容量数据的广播网络;各个节点上部署了用于在所述广播网络中发送和接收数据的广播网络客户端;
所述共识***包括共识主节点和共识备份节点;所述共识***用于执行权利要求1-7任一所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010506075.2A CN111600965B (zh) | 2020-06-05 | 2020-06-05 | 区块链中的共识方法和*** |
PCT/CN2021/097897 WO2021244568A1 (zh) | 2020-06-05 | 2021-06-02 | 区块链中的共识方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010506075.2A CN111600965B (zh) | 2020-06-05 | 2020-06-05 | 区块链中的共识方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111600965A CN111600965A (zh) | 2020-08-28 |
CN111600965B true CN111600965B (zh) | 2023-10-27 |
Family
ID=72190106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010506075.2A Active CN111600965B (zh) | 2020-06-05 | 2020-06-05 | 区块链中的共识方法和*** |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111600965B (zh) |
WO (1) | WO2021244568A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111600965B (zh) * | 2020-06-05 | 2023-10-27 | 支付宝(杭州)信息技术有限公司 | 区块链中的共识方法和*** |
CN112801794B (zh) * | 2021-02-08 | 2022-04-15 | 网易(杭州)网络有限公司 | 交易执行方法、装置、电子设备、存储介质 |
CN113365229B (zh) * | 2021-05-28 | 2022-03-25 | 电子科技大学 | 一种多联盟链共识算法的网络时延优化方法 |
CN113254272B (zh) * | 2021-06-09 | 2022-09-13 | 腾讯科技(深圳)有限公司 | 区块链网络的数据处理方法、装置、计算机设备和介质 |
CN113573255A (zh) * | 2021-07-26 | 2021-10-29 | 上海点融信息科技有限责任公司 | 基于区块链进行共识的方法、装置及存储介质 |
CN113821569B (zh) * | 2021-09-30 | 2024-02-06 | 广州智链未来科技有限公司 | 一种区块链的共识方法及区块链 |
CN114338673A (zh) * | 2021-12-30 | 2022-04-12 | 马上消费金融股份有限公司 | 一种交易数据处理方法、装置、设备、***及存储介质 |
CN114401271A (zh) * | 2022-01-13 | 2022-04-26 | 中国人民解放军国防科技大学 | 一种试验数据防篡改方法、区块链***及介质 |
CN114598475B (zh) * | 2022-01-24 | 2022-11-01 | 浙江甲骨文超级码科技股份有限公司 | 基于fabric的拜占庭容错共识方法及*** |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101656618A (zh) * | 2009-09-11 | 2010-02-24 | 中兴通讯股份有限公司 | 一种基于结构化对等网络的多媒体消息广播方法及*** |
WO2014168428A1 (ko) * | 2013-04-11 | 2014-10-16 | 엘지전자 주식회사 | 복수의 경유지를 포함한 최적 경로 전달 방법 및 이를 위한 장치 |
CN106878000A (zh) * | 2017-03-06 | 2017-06-20 | 中钞***产业发展有限公司北京智能卡技术研究院 | 一种联盟链共识方法及*** |
CN107220130A (zh) * | 2017-05-12 | 2017-09-29 | 北京众享比特科技有限公司 | 一种在区块链的节点处实现的信息共识方法、装置及*** |
CN109327548A (zh) * | 2018-11-27 | 2019-02-12 | 北京瑞卓喜投科技发展有限公司 | 一种区块链更新方法及区块链更新*** |
WO2020011284A2 (en) * | 2019-09-05 | 2020-01-16 | Alibaba Group Holding Limited | System and method for adding node in blockchain network |
KR102079786B1 (ko) * | 2018-10-25 | 2020-02-21 | 주식회사 팀그릿 | 블록체인을 이용한 방송 판매 방법 및 그 시스템 |
GB202003658D0 (en) * | 2020-03-13 | 2020-04-29 | Nchain Holdings Ltd | Blockchain transaction double spend proof |
CN111212126A (zh) * | 2019-12-27 | 2020-05-29 | 百度在线网络技术(北京)有限公司 | 一种区块链网络的数据传输方法、装置、设备和介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180253702A1 (en) * | 2015-11-24 | 2018-09-06 | Gartland & Mellina Group | Blockchain solutions for financial services and other transactions-based industries |
US10204341B2 (en) * | 2016-05-24 | 2019-02-12 | Mastercard International Incorporated | Method and system for an efficient consensus mechanism for permissioned blockchains using bloom filters and audit guarantees |
US10826987B2 (en) * | 2018-04-06 | 2020-11-03 | Datalogic Ip Tech S.R.L. | Systems and methods for consensus-based data security for networked devices |
CN108550038A (zh) * | 2018-04-18 | 2018-09-18 | 杭州秘猿科技有限公司 | 一种应用于区块链的数据传播***及方法 |
US20200026699A1 (en) * | 2018-07-20 | 2020-01-23 | True Blockchain Technology Ltd. | Highly Performant Decentralized Public Ledger with Hybrid Consensus |
CN109150598B (zh) * | 2018-08-10 | 2021-09-03 | 上交所技术有限责任公司 | 一种基于块片的bft共识算法带宽使用率改进方法 |
CN109379397B (zh) * | 2018-08-31 | 2019-12-06 | 阿里巴巴集团控股有限公司 | 基于区块链的交易共识处理方法及装置、电子设备 |
CN110798308A (zh) * | 2019-10-31 | 2020-02-14 | 支付宝(杭州)信息技术有限公司 | 一种区块链的签名方法和*** |
CN111600965B (zh) * | 2020-06-05 | 2023-10-27 | 支付宝(杭州)信息技术有限公司 | 区块链中的共识方法和*** |
-
2020
- 2020-06-05 CN CN202010506075.2A patent/CN111600965B/zh active Active
-
2021
- 2021-06-02 WO PCT/CN2021/097897 patent/WO2021244568A1/zh active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101656618A (zh) * | 2009-09-11 | 2010-02-24 | 中兴通讯股份有限公司 | 一种基于结构化对等网络的多媒体消息广播方法及*** |
WO2014168428A1 (ko) * | 2013-04-11 | 2014-10-16 | 엘지전자 주식회사 | 복수의 경유지를 포함한 최적 경로 전달 방법 및 이를 위한 장치 |
CN106878000A (zh) * | 2017-03-06 | 2017-06-20 | 中钞***产业发展有限公司北京智能卡技术研究院 | 一种联盟链共识方法及*** |
CN107220130A (zh) * | 2017-05-12 | 2017-09-29 | 北京众享比特科技有限公司 | 一种在区块链的节点处实现的信息共识方法、装置及*** |
KR102079786B1 (ko) * | 2018-10-25 | 2020-02-21 | 주식회사 팀그릿 | 블록체인을 이용한 방송 판매 방법 및 그 시스템 |
CN109327548A (zh) * | 2018-11-27 | 2019-02-12 | 北京瑞卓喜投科技发展有限公司 | 一种区块链更新方法及区块链更新*** |
WO2020011284A2 (en) * | 2019-09-05 | 2020-01-16 | Alibaba Group Holding Limited | System and method for adding node in blockchain network |
CN111212126A (zh) * | 2019-12-27 | 2020-05-29 | 百度在线网络技术(北京)有限公司 | 一种区块链网络的数据传输方法、装置、设备和介质 |
GB202003658D0 (en) * | 2020-03-13 | 2020-04-29 | Nchain Holdings Ltd | Blockchain transaction double spend proof |
Also Published As
Publication number | Publication date |
---|---|
WO2021244568A1 (zh) | 2021-12-09 |
CN111600965A (zh) | 2020-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111600965B (zh) | 区块链中的共识方法和*** | |
JP6745884B2 (ja) | データ同期方法、装置及びシステム | |
US20230109969A1 (en) | Data processing method and apparatus based on node internal memory, device and medium | |
CN111935315A (zh) | 区块同步方法及装置 | |
CN107153644B (zh) | 一种数据同步方法及装置 | |
EP2710477B1 (en) | Distributed caching and cache analysis | |
US8903972B2 (en) | Method and apparatus for sharing contents using information of group change in content oriented network environment | |
US20230098190A1 (en) | Data processing method, apparatus, device and medium based on distributed storage | |
CN111478829B (zh) | 区块链网络的压力测试方法及装置、*** | |
US20210328831A1 (en) | Message transmission methods and apparatuses | |
US9380127B2 (en) | Distributed caching and cache analysis | |
CN111401904B (zh) | 联盟链中的共识方法和*** | |
CN113179327A (zh) | 基于大容量内存的高并发协议栈卸载方法、设备、介质 | |
CN107493309B (zh) | 一种分布式***中的文件写入方法及装置 | |
EP3813335A1 (en) | Service processing method and system based on alliance chain network | |
CN111526165B (zh) | 联盟链中的共识方法和*** | |
US8250140B2 (en) | Enabling connections for use with a network | |
CN103227840A (zh) | 面向物联网的高并发高可用数据采集*** | |
CN107404511B (zh) | 集群中服务器的替换方法及设备 | |
WO2022257587A1 (zh) | 数据处理方法、toe硬件及计算机可读存储介质 | |
CN114157669B (zh) | 消息传输方法及装置 | |
CN114157670A (zh) | 消息传输方法及装置 | |
CN114422526A (zh) | 一种区块同步方法、装置、电子设备和存储介质 | |
JP7133037B2 (ja) | メッセージ処理方法、装置およびシステム | |
CN113391759A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40035942 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |