CN113225191A - 共识节点的生成方法、装置、存储介质及处理器 - Google Patents
共识节点的生成方法、装置、存储介质及处理器 Download PDFInfo
- Publication number
- CN113225191A CN113225191A CN202110311934.7A CN202110311934A CN113225191A CN 113225191 A CN113225191 A CN 113225191A CN 202110311934 A CN202110311934 A CN 202110311934A CN 113225191 A CN113225191 A CN 113225191A
- Authority
- CN
- China
- Prior art keywords
- node
- data
- added
- consensus
- verification
- 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 55
- 238000003860 storage Methods 0.000 title claims abstract description 17
- 238000007726 management method Methods 0.000 claims abstract description 141
- 238000012795 verification Methods 0.000 claims abstract description 96
- 238000012550 audit Methods 0.000 claims abstract description 12
- 238000004422 calculation algorithm Methods 0.000 claims description 15
- 238000005304 joining Methods 0.000 claims description 13
- 230000000977 initiatory effect Effects 0.000 claims description 7
- 238000012790 confirmation Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 description 17
- 230000007246 mechanism Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000008278 dynamic mechanism Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 230000002747 voluntary effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/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
- 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
-
- 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
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供一种共识节点的生成方法、装置、处理器及存储介质。方法包括:获取待加入节点发出的新共识节点加入请求;根据加入请求将种子节点的第一数据返回至待加入节点;在待加入节点对第一数据验证通过后,获取待加入节点发送的第二数据,以对待加入节点的能力进行验证;在对待加入节点的能力验证通过后,将第二数据发送至管理节点,以通过管理节点对第二数据进行审核;在对第二数据审核通过后,确认待加入节点成为共识节点。通过管理节点对Hashgraph区块链共识节点和退出情况的可信记录节点,极大地提高了Hashgraph共识节点的动态管理的安全性。
Description
技术领域
本发明涉及计算机技术领域,具体地涉及一种共识节点的生成方法、装置、存储介质及处理器。
背景技术
区块链是近年来兴起的新的技术范式,本质上,区块链是去中心化的分布式数据库(帐本)技术。它是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全,利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。正在军事作战、贸易金融、供应链、社会公共服务、选举、司法存证、税务、物流、医疗健康、农业、能源等多个垂直行业探索应用。但目前尚未发现无人机集群节点认证的区块链应用。
按照开放程度不同,区块链可分为三种类型:公有链、联盟链和私有链。其中,公有链为最为开放,任何人都可以加入区块链网络,私有链最为封闭,记账权归私人或私人机构所有,不对外开放,联盟链是某个群体或组织内部使用的区块链,预先竞争选举出部分节点作为记账角色,区块的生成由所有预选记账人共同决定,其他非预选出的节点可以交易,但是没有记账权。
现有技术中,针对Hashgraph区块链公开的共识节点动态机制比较缺乏,如果单纯的依靠分片选举机制来运行共识节点动态机制,那么许多新的节点将很难加入到Hashgraph区块链中,已经存在的共识节点也不能有序稳定的退出区块链,这将会对应用造成较大的不便。
发明内容
本发明实施例的目的是提供一种共识节点的生成方法、装置、存储介质及处理器。
为了实现上述目的,本发明第一方面提供一种共识节点的生成方法,包括:
获取待加入节点发出的新共识节点加入请求;
根据加入请求将种子节点的第一数据返回至待加入节点;
在待加入节点对第一数据验证通过后,获取待加入节点发送的第二数据,以对待加入节点的能力进行验证;
在对待加入节点的能力验证通过后,将第二数据发送至管理节点,以通过管理节点对第二数据进行审核;
在对第二数据审核通过后,确认待加入节点成为共识节点。
在本发明的实施例中,在待加入节点对第一数据验证通过后,获取待加入节点的第二数据对待加入节点的能力进行验证包括:
在待加入节点对第一数据验证通过后,将第一数据进行拼接得到对应的第一拼接数据;
获取待加入节点对应的公钥数据;
根据公钥数据确定待加入节点的带宽;
将公钥数据、带宽与对应的时间戳合并后进行签名,发送至待加入节点;
将当前时间戳、第一拼接数据、公钥数据以及待加入节点的第二数据进行拼接,得到对应的第二拼接数据;
采用预设算法确定第二拼接数据对应的哈希值;
根据哈希值对待加入节点的能力进行验证。
在本发明的实施例中,根据哈希值对待加入节点的能力进行验证包括:
将哈希值与预设数值进行比较;
在哈希值小于预设数值的情况下,确定待加入节点的能力验证通过;
在哈希值大于或等于预设数值的情况下,确定待加入节点的能力验证未通过。
在本发明的实施例中,第二数据至少包括第一拼接数据、带宽验证签名、带宽验证时间戳、待加入节点的带宽和待加入节点对应的哈希值中的至少一者。
在本发明的实施例中,在对待加入节点的能力验证通过后,将第二数据发送至管理节点,以通过管理节点对第二数据进行审核包括:
在第二数据满足以下条件的情况下,确定第二数据审核通过:
管理节点通过种子节点的公钥数据对第一数据进行验证且验证通过;
管理节点通过带宽服务对应的公钥数据对带宽验证签名进行验证且验证通过;
管理节点确定带宽验证时间戳未超过预设时长;
管理节点确定待加入节点的上行带宽大于或等于预设上行带宽,确定待加入节点的下行带宽大于或等于预设下行带宽;
管理节点确定哈希值小于预设数值。
在本发明的实施例中,在对第二数据审核通过后,确认待加入节点成为共识节点包括:
通过管理节点发起共识事件;
在管理节点共识成功后,通过管理节点记录待加入节点的加入信息;
通过管理节点获取到公链相关的参数;
在公链相关的参数为空的情况下,确定待加入节点为公链的第一个共识节点;
在公链相关的参数不为空的情况下,待加入节点根据公链相关的参数加入公链的共识节点。
在本发明的实施例中,方法还包括:
获取待退出节点发出的共识节点退出请求,退出请求通过待退出节点的公钥进行签名;
在其他的共识节点对退出请求的签名验证通过后,将待退出节点退出的消息发送至管理节点;
在管理节点对全部的共识节点发送的消息记录完毕后,发送对应的通知至待退出节点;
获取待退出节点根据通知返回的退出请求;
在管理节点对退出请求的签名验证通过后,发起节点退出的共识事件;
在管理节点共识成功后,确定待退出节点退出共识节点,并通过管理节点记录待退出节点的退出事件。
本发明第二方面提供一种共识节点的生成装置,包括:
请求获取模块,用于获取待加入节点发出的新共识节点加入请求;
节点能力验证模块,用于根据所述加入请求将种子节点的第一数据返回至所述待加入节点;在所述待加入节点对所述第一数据验证通过后,获取所述待加入节点发送的第二数据,以对所述待加入节点的能力进行验证;
数据审核模块,用于在对所述待加入节点的能力验证通过后,将所述第二数据发送至管理节点,以通过所述管理节点对所述第二数据进行审核;
共识节点确认模块,用于在对所述第二数据审核通过后,确认所述待加入节点成为共识节点。
本发明第三方面提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令在被处理器执行时使得所述处理器被配置成执行上述的共识节点的生成方法。
本发明第四方面提供一种处理器,被配置成执行上述的共识节点的生成方法。
在上述的共识节点的生成方法中,管理节点作为对Hashgraph区块链共识节点和退出情况的可信记录节点,极大地提高了Hashgraph共识节点的动态管理的安全性。且,由于管理节点中的种子节点稳定性较强,可以减少管理节点进行区块链相关操作中的不确定性,有效地提高了整个系统的可信性和可靠性。同时,由于Hashgraph共识过程中利用gossip机制将大量的消息进行本地化处理,对本地资源要求较高,故对共识节点的能力有一定的要求。因此,上述技术方案中加入了对待加入节点的能力验证过程,提高了共识节点加入的门槛,使得Hashgraph自始至终保持一群高性能节点进行运作。进一步地,能力验证过程充分考虑了待加入节点的计算能力和带宽能力,若计算能力和带宽能力不达标,待加入节点则无法成为共识节点。其中,计算能力表示通过不断迭代使用Keccak算法来计算哈希值,而Keccak算法比较消耗计算资源,计算能力弱的待加入节点很难有机会通过验证。带宽能力需要同时考虑上行带宽和下行带宽,并使用时间戳和签名机制来验证申请的时效性和带宽评价的真实性,这为真实性提供了充分的技术保证。
本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:
图1示意性示出了根据本发明实施例的共识节点的生成方法的流程示意图;
图2示意性示出了根据本发明实施例的共识节点的生成装置的结构框图。
具体实施方式
以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。
图1示意性示出了根据本发明实施例的共识节点的生成方法的流程示意图。如图1所示,在本发明一实施例中,提供了一种共识节点的生成方法,包括以下步骤:
步骤101,获取待加入节点发出的新共识节点加入请求。
步骤102,根据加入请求将种子节点的第一数据返回至待加入节点。
步骤103,在待加入节点对第一数据验证通过后,获取待加入节点发送的第二数据,以对待加入节点的能力进行验证。
步骤104,在对待加入节点的能力验证通过后,将第二数据发送至管理节点,以通过管理节点对第二数据进行审核。
步骤105,在对第二数据审核通过后,确认待加入节点成为共识节点。
节点决定着谁有出块的资格,共识机制则决定着这些有出块资格的节点。共识机制类似于投票机制,不同的共识机制相当于投票规则不同,所有的节点都具备投票的权利,每次要出块的时候,所有的节点都会参与投票,按照不同的投票规则(共识机制)进行投票,从而选出一个节点,所有节点通过共识机制就达成了共识,本轮投票以选中的这个节点出的块为准,其他节点出的块就不作数了。共识算法的好坏最终决定区块链出块的效率。可以将新的节点,且想加入共识节点的节点称之为待加入节点。在待加入节点成为共识节点的情况下,待加入节点可以发送相应的新共识节点加入请求至管理节点中的种子节点,种子节点在获取到加入请求后,可以将其节点各自对应的第一数据返回至该待加入节点。在待加入节点接收到第一数据后,可以对第一数据进行验证。具体地,每个种子节点的第一数据至少包括该种子节点的随机数R、难度值Diff和上一次目标哈希值LH,以及R、Diff和LH的签名结果中的至少一者。待加入节点可以通过任意一个非种子节点的管理节点获取到全部种子节点的公钥数据,并将公钥数据对第一数据进行解密,若解密成功,则确定第一数据验证通过。反之,若解密失败,则确定第一数据验证未通过,跳转至步骤101。
其中,管理节点的作用是为了更加有效的管理Hashgraph(区块链公链)共识节点的动态加入和退出机制。因此,管理节点又称为动态机制管理节点。管理节点可以对共识节点的动态加入和退出进行管理记录。进一步地,前N个动态机制管理节点为人工部署,这N个节点称为种子节点。这些种子节点相互连通,种子节点不能退出。其他的非种子节点则可以退出。即,管理节点可以是种子节点,也可以是非种子节点。若第N+1个以及之后节点想成为管理节点,设待加入的节点为M,节点M可以将自身的Pubkey传播至已有的管理节点,每个管理节点可以更新总的管理节点数量。若非种子节点的管理节点想退出管理节点,假设节点M想要退出,其他管理节点可以将节点M的Pubkey删除,每个管理节点则会及时更新总的管理节点数量。
在一个实施例中,在待加入节点对第一数据验证通过后,获取待加入节点的第二数据,以对待加入节点的能力进行验证包括:在待加入节点对第一数据验证通过后,将第一数据进行拼接得到对应的第一拼接数据;获取待加入节点对应的公钥数据;根据公钥数据确定待加入节点的带宽;将公钥数据、带宽与对应的时间戳合并后进行签名,发送至待加入节点;将当前时间戳、第一拼接数据、公钥数据以及待加入节点的第二数据进行拼接,得到对应的第二拼接数据;采用预设算法确定第二拼接数据对应的哈希值;根据哈希值对待加入节点的能力进行验证。
在待加入节点对种子节点的第一数据验证通过后,待加入节点可以将接收到的全部第一数据进行拼接。具体地,待加入节点可以将收到的第一数据按照升序进行一一拼接,以形成对应的第一拼接数据。待加入节点可以连接第三方宽带验证服务,并将其公钥数据发送至第三方宽带验证服务进行测试,以确定出待加入节点的带宽。待加入节点的带宽包括上行带宽UB和下行带宽DB。第三方宽带验证服务可以将上行带宽UB、下行带宽DB和当前的时间戳BT合并后,用该第三方带宽验证服务的公钥Pubkey签名,并将签名后的数据BS返回给待加入节点。待加入节点可以随机生成一个难度调节值NC,并将当前时间戳、第一拼接数据、公钥数据以及待加入节点的第二数据进行拼接,得到对应的第二拼接数据。其中,第二数据至少包括第一拼接数据、带宽验证签名、带宽验证时间戳、待加入节点的带宽和待加入节点对应的哈希值中的至少一者。进一步地,待加入节点可以将当前时间戳BT、第一拼接数据SeedR、待加入节点P的公钥数据、待加入节点P的IP地址、待加入节点P的服务端口、难度调节值NC、第三方带宽验证签名BS等7项数据进行拼接形成第二拼接数据Cap。然后,可以采用预设算法确定第二拼接数据对应的哈希值,例如,预设算法可以是Keccak算法,可以使用Keccak算法对第二拼接数据Cap求哈希得到对应的哈希值HCap,从而可以根据哈希值对待加入节点的能力进行验证。
在一个实施例中,根据哈希值对待加入节点的能力进行验证包括:将哈希值与预设数值进行比较;在哈希值小于预设数值的情况下,确定待加入节点的能力验证通过;在哈希值大于或等于预设数值的情况下,确定待加入节点的能力验证未通过。
在确定第二拼接数据对应的哈希值后,可以将哈希值与预设数值进行比较。假设预设数值为默认设定的数字HD,在哈希值小于预设数值HD的情况下,可以确定待加入节点的能力验证通过,可以进入下一个对第二数据进行审核的步骤。在哈希值大于或等于预设数值HD的情况下,确定待加入节点的能力验证未通过。
在一个实施例中,在对待加入节点的能力验证通过后,将第二数据发送至管理节点,以通过管理节点对第二数据进行审核包括:在第二数据满足以下条件的情况下,确定第二数据审核通过:管理节点通过种子节点的公钥数据对第一数据进行验证且验证通过;管理节点通过带宽服务对应的公钥数据对带宽验证签名进行验证且验证通过;管理节点确定带宽验证时间戳未超过预设时长;管理节点确定待加入节点的上行带宽大于或等于预设上行带宽,确定待加入节点的下行带宽大于或等于预设下行带宽;管理节点确定哈希值小于预设数值。
在待加入节点通过能力验证后,管理节点可以对待加入节点给出的能力值进行审核。具体地,可以对第二数据是否满足以下条件进行检测:
其一:管理节点通过种子节点的公钥数据对第一数据进行验证且验证通过。
管理节点可以利用种子节点的公钥数据对第一数据进行验证。若利用种子节点的公钥数据对第一数据解密成功,可以确定第一数据验证通过。反之,则可以确定第二数据未验证通过,则可以通知待加入节点的加入过程。
其二:管理节点通过带宽服务对应的公钥数据对带宽验证签名进行验证且验证通过。
管理节点可以利用第三方带宽验证服务的公钥数据PubKey,来验证第三方带宽的验证签名BS,若验证通过则跳转下一步骤,若验证未通过,则通知待加入节点和其余管理节点审核失败,终止待加入节点的加入过程。
其三:管理节点确定带宽验证时间戳未超过预设时长。
管理节点可以验证第三方带宽验证时间戳BT是否超过系统默认设定的预设时长TS。若未超过则跳转下一步骤,若验证通过,则通知待加入节点和其余管理节点审核失败,终止待加入节点的加入过程。
其四:管理节点确定待加入节点的上行带宽大于或等于预设上行带宽,确定待加入节点的下行带宽大于或等于预设下行带宽。
管理节点可以验证待加入节点的上行带宽UB是否大于预设上行带宽,即上行带宽UB是否大于设定值MinUB。若上行带宽UB不低于设定值MinUB,则跳转下一步骤。若上行带宽UB低于设定值MinUB,则通知待加入节点和其余管理节点审核失败,终止待加入节点的加入过程。管理节点还可以验证待加入节点的下行带宽DB是否大于预设下行带宽,即下行带宽DB是否大于设定值MinDB。若下行带宽DB不低于设定值MinDB,则跳转下一步骤。若下行带宽DB低于设定值MinDB,则通知待加入节点和其余管理节点审核失败,终止待加入节点的加入过程。
其五:管理节点确定哈希值小于预设数值。
管理节点可以验证哈希值HCap是否小于预设数值HD。若哈希值HCap小于HD,则跳转下一步骤。若哈希值HCap不小于HD,则通知待加入节点和其余管理节点审核失败,终止加入过程。
在一个实施例中,在对第二数据审核通过后,确认待加入节点成为共识节点包括:通过管理节点发起共识事件;在管理节点共识成功后,通过管理节点记录待加入节点的加入信息;通过管理节点获取到公链相关的参数;在公链相关的参数为空的情况下,确定待加入节点为公链的第一个共识节点;在公链相关的参数不为空的情况下,待加入节点根据公链相关的参数加入公链的共识节点。
在对第二数据审核通过后,可以通过管理节点发起共识事件,在管理节点共识成功后,可以通过管理节点记录该待加入节点的加入信息。可以通过管理节点获取到公链Hashgraph相关的参数。若是Hashgraph相关的参数为空,则待加入节点则可以作为公链Hashgraph的第一个共识节点,并将相关的Hashgraph参数发送给全部的管理节点进行记录和存储。在公链Hashgraph相关的参数不为空的情况下,待加入节点可以根据公链相关的参数加入公链的共识节点。
在一个实施例中,上述方法还包括:获取待退出节点发出的共识节点退出请求,退出请求通过待退出节点的公钥进行签名;在其他的共识节点对退出请求的签名验证通过后,将待退出节点退出的消息发送至管理节点;在管理节点对全部的共识节点发送的消息记录完毕后,发送对应的通知至待退出节点;获取待退出节点根据通知返回的退出请求;在管理节点对退出请求的签名验证通过后,发起节点退出的共识事件;在管理节点共识成功后,确定待退出节点退出共识节点,并通过管理节点记录待退出节点的退出事件。
在成为了共识节点后,若是想退出共识节点,则可以发起共识节点退出请求,为了便于描述,可以将想退出共识节点的节点称之为待退出节点。其中,退出请求通过待退出节点的公钥数据进行了签名。在其他的共识节点对退出请求的签名验证通过后,可以将待退出节点退出的消息发送至全部的管理节点。管理节点可以利用共识算法(PBFT)对待退出节点退出的消息进行记录。在管理节点对全部的共识节点发送的消息记录完毕后,可以通过任意一个管理节点发送对应的通知至该待退出节点。待退出节点可以将退出请求发送至管理节点,管理节点可以对退出请求的签名进行验证。在管理节点对退出请求的签名验证通过后,且管理节点成为出块节点之后,该管理节点可以发起节点退出的共识事件。其中,块结构包括高度和确认待退出节点退出中的至少一者。在管理节点共识成功后,确定待退出节点退出共识节点,并通过管理节点记录该待退出节点的退出事件。管理节点也会更新公链Hashgraph相关的参数。
在上述的共识节点的生成方法中,管理节点作为对Hashgraph区块链共识节点和退出情况的可信记录节点,极大地提高了Hashgraph共识节点的动态管理的安全性。且,由于管理节点中的种子节点稳定性较强,可以减少管理节点进行区块链相关操作中的不确定性,有效地提高了整个系统的可信性和可靠性。同时,由于Hashgraph共识过程中利用gossip机制将大量的消息进行本地化处理,对本地资源要求较高,故对共识节点的能力有一定的要求。因此,上述技术方案中加入了对待加入节点的能力验证过程,提高了共识节点加入的门槛,使得Hashgraph自始至终保持一群高性能节点进行运作。进一步地,能力验证过程充分考虑了待加入节点的计算能力和带宽能力,若计算能力和带宽能力不达标,待加入节点则无法成为共识节点。其中,计算能力表示通过不断迭代使用Keccak算法来计算哈希值,而Keccak算法比较消耗计算资源,计算能力弱的待加入节点很难有机会通过验证。带宽能力需要同时考虑上行带宽和下行带宽,并使用时间戳和签名机制来验证申请的时效性和带宽评价的真实性,这为真实性提供了充分的技术保证。
同时,上述技术方案中加入了待加入节点的加入审核过程,管理节点可以对待加入节点的计算能力和带宽能力各个要素进行一一审核,进一步提升了共识节点能力的可靠度。并且,还利用PBFT共识机制将待加入节点能力要素信息进行记录,真实可信地写入PBFT的区块中,有效地防止部分管理节点和待加入节点进行串谋对能力进行欺骗。进一步地,上述技术方案中还包含有共识节点的退出机制,将其他共识节点对待退出共识节点退出的确认写入管理节点的PBFT区块中,而且还进一步再次让待退出节点发确认给各个管理节点,并将该请求写入PBFT区块。如此,极大地提高了共识节点自愿退出的真实性,防止某些共识节点串谋单方面将其他共识节点“踢出”的危险情况发生。
在一个实施例中,如图2所示,提供了一种共识节点的生成装置200,包括:
请求获取模块201,用于获取待加入节点发出的新共识节点加入请求。
节点能力验证模块202,用于根据加入请求将种子节点的第一数据返回至待加入节点;在待加入节点对第一数据验证通过后,获取待加入节点发送的第二数据,以对待加入节点的能力进行验证。
数据审核模块203,用于在对待加入节点的能力验证通过后,将第二数据发送至管理节点,以通过管理节点对第二数据进行审核。
共识节点确认模块204,用于在对第二数据审核通过后,确认待加入节点成为共识节点。
在一个实施例中,节点能力验证模块202还用于在待加入节点对第一数据验证通过后,将第一数据进行拼接得到对应的第一拼接数据;获取待加入节点对应的公钥数据;根据公钥数据确定待加入节点的带宽;将公钥数据、带宽与对应的时间戳合并后进行签名,发送至待加入节点;将当前时间戳、第一拼接数据、公钥数据以及待加入节点的第二数据进行拼接,得到对应的第二拼接数据;采用预设算法确定第二拼接数据对应的哈希值;根据哈希值对待加入节点的能力进行验证。
在一个实施例中,节点能力验证模块202还用于将哈希值与预设数值进行比较;在哈希值小于预设数值的情况下,确定待加入节点的能力验证通过;在哈希值大于或等于预设数值的情况下,确定待加入节点的能力验证未通过。
在一个实施例中,第二数据至少包括第一拼接数据、带宽验证签名、带宽验证时间戳、待加入节点的带宽和待加入节点对应的哈希值中的至少一者。
在一个实施例中,数据审核模块203还用于在第二数据满足以下条件的情况下,确定第二数据审核通过:管理节点通过种子节点的公钥数据对第一数据进行验证且验证通过;管理节点通过带宽服务对应的公钥数据对带宽验证签名进行验证且验证通过;管理节点确定带宽验证时间戳未超过预设时长;管理节点确定待加入节点的上行带宽大于或等于预设上行带宽,确定待加入节点的下行带宽大于或等于预设下行带宽;管理节点确定哈希值小于预设数值。
在一个实施例中,共识节点确认模块204还用于通过管理节点发起共识事件;在管理节点共识成功后,通过管理节点记录待加入节点的加入信息;通过管理节点获取到公链相关的参数;在公链相关的参数为空的情况下,确定待加入节点为公链的第一个共识节点;在公链相关的参数不为空的情况下,待加入节点根据公链相关的参数加入公链的共识节点。
在一个实施例中,共识节点的生成装置200还包括节点退出模块(图中未示出),用于获取待退出节点发出的共识节点退出请求,退出请求通过待退出节点的公钥进行签名;在其他的共识节点对退出请求的签名验证通过后,将待退出节点退出的消息发送至管理节点;在管理节点对全部的共识节点发送的消息记录完毕后,发送对应的通知至待退出节点;获取待退出节点根据通知返回的退出请求;在管理节点对退出请求的签名验证通过后,发起节点退出的共识事件;在管理节点共识成功后,确定待退出节点退出共识节点,并通过管理节点记录待退出节点的退出事件。
共识节点的生成装置装置包括处理器和存储器,上述请求获取模块、节点能力验证模块、数据审核模块和共识节点确认模块等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序模块中实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现共识节点的生成方法。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现上述共识节点的生成方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述共识节点的生成方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现上述的共识节点的生成方法的步骤。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有共识节点的生成方法步骤的程序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种共识节点的生成方法,其特征在于,包括:
获取待加入节点发出的新共识节点加入请求;
根据所述加入请求将种子节点的第一数据返回至所述待加入节点;
在所述待加入节点对所述第一数据验证通过后,获取所述待加入节点发送的第二数据,以对所述待加入节点的能力进行验证;
在对所述待加入节点的能力验证通过后,将所述第二数据发送至管理节点,以通过所述管理节点对所述第二数据进行审核;
在对所述第二数据审核通过后,确认所述待加入节点成为共识节点。
2.根据权利要求1所述的共识节点的生成方法,其特征在于,所述在所述待加入节点对所述第一数据验证通过后,获取所述待加入节点的第二数据,以对所述待加入节点的能力进行验证包括:
在所述待加入节点对所述第一数据验证通过后,将所述第一数据进行拼接得到对应的第一拼接数据;
获取所述待加入节点对应的公钥数据;
根据所述公钥数据确定所述待加入节点的带宽;
将所述公钥数据、所述带宽与对应的时间戳合并后进行签名,发送至所述待加入节点;
将当前时间戳、所述第一拼接数据、所述公钥数据以及所述待加入节点的第二数据进行拼接,得到对应的第二拼接数据;
采用预设算法确定所述第二拼接数据对应的哈希值;
根据所述哈希值对所述待加入节点的能力进行验证。
3.根据权利要求2所述的共识节点的生成方法,其特征在于,所述根据所述哈希值对所述待加入节点的能力进行验证包括:
将所述哈希值与预设数值进行比较;
在所述哈希值小于所述预设数值的情况下,确定所述待加入节点的能力验证通过;
在所述哈希值大于或等于所述预设数值的情况下,确定所述待加入节点的能力验证未通过。
4.根据权利要求1所述的共识节点的生成方法,其特征在于,所述第二数据至少包括所述第一拼接数据、带宽验证签名、带宽验证时间戳、所述待加入节点的带宽和所述待加入节点对应的哈希值中的至少一者。
5.根据权利要求4所述的共识节点的生成方法,其特征在于,所述在对所述待加入节点的能力验证通过后,将所述第二数据发送至管理节点,以通过所述管理节点对所述第二数据进行审核包括:
在所述第二数据满足以下条件的情况下,确定所述第二数据审核通过:
所述管理节点通过所述种子节点的公钥数据对所述第一数据进行验证且验证通过;
所述管理节点通过带宽服务对应的公钥数据对所述带宽验证签名进行验证且验证通过;
所述管理节点确定所述带宽验证时间戳未超过预设时长;
所述管理节点确定所述待加入节点的上行带宽大于或等于预设上行带宽,确定所述待加入节点的下行带宽大于或等于预设下行带宽;
所述管理节点确定所述哈希值小于预设数值。
6.根据权利要求1所述的共识节点的生成方法,其特征在于,所述在对所述第二数据审核通过后,确认所述待加入节点成为共识节点包括:
通过所述管理节点发起共识事件;
在所述管理节点共识成功后,通过所述管理节点记录所述待加入节点的加入信息;
通过所述管理节点获取到公链相关的参数;
在所述公链相关的参数为空的情况下,确定所述待加入节点为所述公链的第一个共识节点;
在所述公链相关的参数不为空的情况下,所述待加入节点根据所述公链相关的参数加入所述公链的共识节点。
7.根据权利要求1所述的共识节点的生成方法,其特征在于,所述方法还包括:
获取待退出节点发出的共识节点退出请求,所述退出请求通过所述待退出节点的公钥进行签名;
在其他的共识节点对所述退出请求的签名验证通过后,将所述待退出节点退出的消息发送至所述管理节点;
在所述管理节点对全部的共识节点发送的消息记录完毕后,发送对应的通知至所述待退出节点;
获取所述待退出节点根据所述通知返回的退出请求;
在所述管理节点对所述退出请求的签名验证通过后,发起节点退出的共识事件;
在所述管理节点共识成功后,确定所述待退出节点退出共识节点,并通过所述管理节点记录所述待退出节点的退出事件。
8.一种共识节点的生成装置,其特征在于,包括:
请求获取模块,用于获取待加入节点发出的新共识节点加入请求;
节点能力验证模块,用于根据所述加入请求将种子节点的第一数据返回至所述待加入节点;在所述待加入节点对所述第一数据验证通过后,获取所述待加入节点发送的第二数据,以对所述待加入节点的能力进行验证;
数据审核模块,用于在对所述待加入节点的能力验证通过后,将所述第二数据发送至管理节点,以通过所述管理节点对所述第二数据进行审核;
共识节点确认模块,用于在对所述第二数据审核通过后,确认所述待加入节点成为共识节点。
9.一种机器可读存储介质,该机器可读存储介质上存储有指令,其特征在于,该指令在被处理器执行时使得所述处理器被配置成执行根据权利要求1至7中任一项所述的共识节点的生成方法。
10.一种处理器,其特征在于,被配置成执行根据权利要求1至7中任意一项所述的共识节点的生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110311934.7A CN113225191B (zh) | 2021-03-24 | 2021-03-24 | 共识节点的生成方法、装置、存储介质及处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110311934.7A CN113225191B (zh) | 2021-03-24 | 2021-03-24 | 共识节点的生成方法、装置、存储介质及处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113225191A true CN113225191A (zh) | 2021-08-06 |
CN113225191B CN113225191B (zh) | 2024-02-13 |
Family
ID=77083874
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110311934.7A Active CN113225191B (zh) | 2021-03-24 | 2021-03-24 | 共识节点的生成方法、装置、存储介质及处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113225191B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113626530A (zh) * | 2021-09-03 | 2021-11-09 | 杭州复杂美科技有限公司 | 区块生成方法、计算机设备和存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107196900A (zh) * | 2017-03-24 | 2017-09-22 | 阿里巴巴集团控股有限公司 | 一种共识校验的方法及装置 |
US20180183774A1 (en) * | 2016-12-23 | 2018-06-28 | Amazon Technologies, Inc. | Key distribution in a distributed computing environment |
WO2018126344A1 (zh) * | 2017-01-03 | 2018-07-12 | 华为技术有限公司 | 一种数据处理方法及相关设备 |
CN109831425A (zh) * | 2019-01-25 | 2019-05-31 | 中国联合网络通信集团有限公司 | 区块链共识方法、装置、设备及计算机可读存储介质 |
CN110956542A (zh) * | 2019-11-07 | 2020-04-03 | 支付宝(杭州)信息技术有限公司 | 区块链系统及其运行方法、装置及设备 |
CN111200641A (zh) * | 2019-12-25 | 2020-05-26 | 深圳供电局有限公司 | 数据跨链共享方法、系统,计算机设备和存储介质 |
WO2020168937A1 (zh) * | 2019-02-20 | 2020-08-27 | 深圳前海微众银行股份有限公司 | 区块链多方见证方法、装置、设备及计算机可读存储介质 |
US20210203509A1 (en) * | 2019-09-12 | 2021-07-01 | Tencent Technology (Shenzhen) Company Limited | Data processing method and apparatus in blockchain network, storage medium, and computer device |
-
2021
- 2021-03-24 CN CN202110311934.7A patent/CN113225191B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180183774A1 (en) * | 2016-12-23 | 2018-06-28 | Amazon Technologies, Inc. | Key distribution in a distributed computing environment |
WO2018126344A1 (zh) * | 2017-01-03 | 2018-07-12 | 华为技术有限公司 | 一种数据处理方法及相关设备 |
CN107196900A (zh) * | 2017-03-24 | 2017-09-22 | 阿里巴巴集团控股有限公司 | 一种共识校验的方法及装置 |
CN109831425A (zh) * | 2019-01-25 | 2019-05-31 | 中国联合网络通信集团有限公司 | 区块链共识方法、装置、设备及计算机可读存储介质 |
WO2020168937A1 (zh) * | 2019-02-20 | 2020-08-27 | 深圳前海微众银行股份有限公司 | 区块链多方见证方法、装置、设备及计算机可读存储介质 |
US20210203509A1 (en) * | 2019-09-12 | 2021-07-01 | Tencent Technology (Shenzhen) Company Limited | Data processing method and apparatus in blockchain network, storage medium, and computer device |
CN110956542A (zh) * | 2019-11-07 | 2020-04-03 | 支付宝(杭州)信息技术有限公司 | 区块链系统及其运行方法、装置及设备 |
CN111200641A (zh) * | 2019-12-25 | 2020-05-26 | 深圳供电局有限公司 | 数据跨链共享方法、系统,计算机设备和存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113626530A (zh) * | 2021-09-03 | 2021-11-09 | 杭州复杂美科技有限公司 | 区块生成方法、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113225191B (zh) | 2024-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210350010A1 (en) | Distributed privately subspaced blockchain data structures with secure access restriction management | |
KR102578019B1 (ko) | 블록체인 기반 데이터 검출 방법 및 디바이스, 및 컴퓨터 판독가능 저장 매체 | |
CN111737360B (zh) | 基于区块链的设备管理方法、装置、计算机设备 | |
CN110086780B (zh) | 基于以太坊的被篡改交易的处理方法、装置及存储介质 | |
CN113783899B (zh) | 节点退出方法和区块链系统 | |
NZ786912A (en) | Passive monitoring and prevention of unauthorized firmware or software upgrades between computing devices | |
CN113726913B (zh) | 骨干节点接入方法和区块链系统 | |
KR20190035056A (ko) | 이동체 기기 및 이의 데이터 전송 방법 | |
Le et al. | A lightweight block validation method for resource-constrained iot devices in blockchain-based applications | |
Kairaldeen et al. | Data integrity time optimization of a blockchain IoT smart home network using different consensus and hash algorithms | |
US11245699B2 (en) | Token-based device access restriction systems | |
CN113225191A (zh) | 共识节点的生成方法、装置、存储介质及处理器 | |
Tulloch | Lox: Protecting the social graph in bridge distribution | |
US11805407B2 (en) | Apparatus and method for securely updating binary data in vehicle | |
KR102235566B1 (ko) | 블록체인 기반 이상행위 탐지 장치 및 방법 | |
CN114978651B (zh) | 一种隐私计算存证方法、装置、电子设备及存储介质 | |
CN111190754A (zh) | 一种区块链事件通知方法及区块链系统 | |
US12081814B2 (en) | Distributed access control for multimedia content | |
KR102542063B1 (ko) | 뉴럴 블록 클러스터 기반의 안전한 블록 체인을 구축하는 장치 및 그 동작 방법 | |
EP3685299A1 (en) | Regulating modification | |
CN115442106B (zh) | 一种区块链监管方法、系统、设备及存储介质 | |
CN115811519A (zh) | 一种基于联盟链的体检档案存储方法、装置、设备及介质 | |
CN116684434A (zh) | 一种基于区块链网络的数据处理方法以及相关设备 | |
CN114329566A (zh) | 基于门限加密的区块链上随机数的生成方法和系统 | |
CN118282845A (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 |