CN111711526B - 一种区块链节点的共识方法及系统 - Google Patents
一种区块链节点的共识方法及系统 Download PDFInfo
- Publication number
- CN111711526B CN111711526B CN202010545754.0A CN202010545754A CN111711526B CN 111711526 B CN111711526 B CN 111711526B CN 202010545754 A CN202010545754 A CN 202010545754A CN 111711526 B CN111711526 B CN 111711526B
- Authority
- CN
- China
- Prior art keywords
- node
- block
- consensus
- distribution
- master
- 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 83
- 238000009826 distribution Methods 0.000 claims abstract description 243
- 238000012795 verification Methods 0.000 claims abstract description 72
- 238000012790 confirmation Methods 0.000 claims abstract description 35
- 238000012545 processing Methods 0.000 claims description 17
- 238000003860 storage Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 abstract description 19
- 238000010586 diagram Methods 0.000 description 10
- 230000000694 effects Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000009191 jumping Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
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/3218—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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
- H04L9/3221—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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs interactive zero-knowledge proofs
-
- 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
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0668—Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
-
- 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]
-
- 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/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
- H04L67/145—Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
-
- 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
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
- H04L2209/463—Electronic voting
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种区块链节点的共识方法及系统,其中方法为:若主节点的待共识区块缓冲区内无未共识区块,则所述主节点从交易池中获取预设数量的交易,生成区块链的待共识区块,并存入所述待共识区块缓冲区;若所述主节点接收到来自所述至少一个备份节点的第一验证消息的数量大于第一阈值,且接收到来自所述各分发节点的第二验证消息的数量大于第二阈值,则向所述各分发节点和所述至少一个备份节点发送答复确认消息。上述方法应用于金融科技(Fintech)时,减小了区块链在共识过程中的整体网络开销。
Description
技术领域
本发明涉及金融科技(Fintech)领域中的区块链领域,尤其涉及一种区块链节点的共识方法及系统。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求。区块链中存储的数据具有不可篡改性,因此,金融交易数据经常通过区块链处理。由于金融机构对可用性要求极高,金融机构经常以分布式的形式,在多个地区分别部署区块链节点,并使用共识算法来保证各地区块链节点的数据一致性。
然而,区块链在共识过程中很可能会涉及到区块链节点之间的跨域数据传输。因此,目前共识方法下,由于跨地域带宽的网络延迟较大,这可能导致区块链在共识过程中的整体网络开销较大,是一个亟待解决的问题。
发明内容
本发明提供一种区块链节点的共识方法及系统,解决了现有技术中区块链在共识过程中的整体网络开销较大的问题。
第一方面,本发明提供一种区块链节点的共识方法,包括:若主节点的待共识区块缓冲区内无未共识区块,则所述主节点从交易池中获取预设数量的交易,生成区块链的待共识区块,并存入所述待共识区块缓冲区;所述主节点将所述待共识区块发送至至少一个备份节点和至少一个分发节点;所述至少一个备份节点和所述主节点同域;所述至少一个分发节点及每个分发节点的跟随节点部署在与所述主节点不同的各域;若所述主节点接收到来自所述至少一个备份节点的第一验证消息的数量大于第一阈值,且接收到来自所述至少一个分发节点的第二验证消息的数量大于第二阈值,则向所述至少一个分发节点和所述至少一个备份节点发送答复确认消息;其中,任一备份节点发送的所述第一验证消息指示该备份节点验证所述待共识区块通过,任一分发节点发送的所述第二验证消息指示该分发节点及所在域的跟随节点均验证所述待共识区块通过;所述第一验证消息及所述第二验证消息中的区块哈希与所述待共识区块缓冲区中的所述待共识区块的区块哈希一致;所述第一阈值是根据预设共识算法和所述至少一个备份节点的数量确定的;所述第二阈值是根据所述预设共识算法和至少一个分发节点中每个分发节点的跟随节点的数量确定的。
上述方法中,所述至少一个分发节点及所述分发节点的跟随节点部署在各域,主节点生成区块链的待共识区块后,并不直接将所述待共识区块发送至至少一个跟随节点,只需要将所述待共识区块发送至同域的所述至少一个备份节点以及各域的至少一个分发节点,指示所述至少一个备份节点将所述待共识区块发送至所述至少一个备份节点所在域的跟随节点,从而大幅降低了跨域通信的开销,且只接收备份节点的第一验证消息及分发节点的第二验证消息,由于任一分发节点发送的所述第二验证消息指示该分发节点及所在域的跟随节点均验证所述待共识区块通过,并不需要直接地接收消息确定跟随节点均验证所述待共识区块通过,以及向所述至少一个分发节点和所述至少一个备份节点发送答复确认消息,也大幅降低了跨域通信的开销,从而减小了区块链在共识过程中的整体网络开销。
可选的,所述主节点将主节点心跳消息发送至所述至少一个备份节点和所述至少一个分发节点;所述主节点心跳消息用于声明所述主节点的节点共识主导身份且所述主节点处于正常运行状态。
上述方法中,所述主节点通过主节点心跳消息发送至所述至少一个备份节点和所述至少一个分发节点维持所述主节点的节点共识主导身份且所述主节点处于正常运行状态,从而提供了一种声明所述主节点的方法。
可选的,所述主节点心跳消息包括任期;所述主节点心跳消息中的任期指示所述至少一个分发节点和所述至少一个备份节点将所述主节点心跳消息中的任期作为所述至少一个分发节点和所述至少一个备份节点更新后的任期。
上述方法中,所述主节点心跳消息包括任期,从而及时更新所述至少一个分发节点和所述至少一个备份节点中的任期。
第二方面,本发明提供一种区块链节点的共识方法,包括:分发节点接收来自主节点的区块链的待共识区块;所述分发节点和所述主节点不同域;所述分发节点管理所述分发节点所在域的跟随节点;若所述分发节点确定所述分发节点所在域验证所述待共识区块通过,则发送第二验证消息至所述主节点;所述第二验证消息中的区块哈希与所述待共识区块缓冲区中的所述待共识区块的区块哈希一致;若所述分发节点接收到来自所述主节点的答复确认消息,则将答复确认消息发送至所述分发节点所在域的跟随节点,并将所述待共识区块写入所述分发节点。
上述方式下,只需要分发节点接收来自主节点的区块链的待共识区块,实现不同域间的跨域通信,且由分发节点发送所述待共识区块至所述分发节点所在域的跟随节点,只涉及了域内通信,且发送第二验证消息至所述主节点,将答复确认消息发送至所述分发节点所在域的跟随节点,从而减小了区块链在共识过程中的整体网络开销。
可选的,所述分发节点确定所述分发节点所在域验证所述待共识区块通过,包括:若所述分发节点验证所述待共识区块通过且接收到所述分发节点所在域的跟随节点的第三验证消息的数量大于第三阈值。
上述方式下,提供了一种通过第三验证消息的数量确定所述分发节点所在域验证所述待共识区块通过的方法。
可选的,所述分发节点接收来自所述主节点的主节点心跳消息;所述主节点心跳消息用于声明所述主节点的节点共识主导身份且所述主节点处于正常运行状态;所述主节点心跳消息包括任期;若所述主节点心跳消息中的任期大于所述分发节点的任期,则所述分发节点将所述主节点心跳消息中的任期作为所述分发节点更新后的任期。
上述方式下,所述分发节点通过所述主节点的主节点心跳消息来确定所述主节点的节点共识主导身份且所述主节点处于正常运行状态,且所述主节点心跳消息包括任期,从而可以及时更新所述分发节点中的任期。
第三方面,本发明提供一种区块链节点的共识方法,包括:跟随节点接收分发节点发送的区块链的待共识区块;所述待共识区块来自主节点;所述跟随节点和所述分发节点同域;所述分发节点和所述主节点不同域;所述跟随节点确定所述待共识区块的块高为所述跟随节点的块高加1,则将所述待共识区块存入所述跟随节点的待共识区块缓冲区中,并发送第三验证消息至所述分发节点;若所述跟随节点接收到所述分发节点发送的答复确认消息,且验证所述答复确认消息通过,则将所述待共识区块写入所述跟随节点;所述答复确认消息来自主节点。
上述方式下,由跟随节点接收所述跟随节点所在域的分发节点发送的待共识区块,只涉及了域内通信,且发送第三验证消息至所述分发节点,将答复确认消息发送至所述分发节点,从而减小了区块链在共识过程中的整体网络开销。
可选的,所述答复确认消息包括区块哈希;所述跟随节点验证所述答复确认消息通过;包括:所述跟随节点至少确定所述答复确认消息中的区块哈希与所述待共识区块中的区块哈希一致后,验证所述答复确认消息通过。
上述方式为所述跟随节点验证所述答复确认消息通过的一种方式。
第四方面,本发明提供一种区块链节点的共识装置,包括:生成模块,用于若主节点的待共识区块缓冲区内无未共识区块,则从交易池中获取预设数量的交易,生成区块链的待共识区块,并存入所述待共识区块缓冲区;收发模块,用于将所述待共识区块发送至至少一个备份节点和至少一个分发节点;所述至少一个备份节点和主节点同域;所述至少一个分发节点及所述分发节点的跟随节点部署在与所述主节点不同的各域;处理模块,用于在接收到来自所述至少一个备份节点的第一验证消息的数量大于第一阈值,且接收到来自所述至少一个分发节点的第二验证消息的数量大于第二阈值时,向所述至少一个分发节点和所述至少一个备份节点发送答复确认消息;其中,任一备份节点发送的所述第一验证消息指示该备份节点验证所述待共识区块通过,任一分发节点发送的所述第二验证消息指示该分发节点及所在域的跟随节点均验证所述待共识区块通过;所述第一验证消息及所述第二验证消息中的区块哈希与所述待共识区块缓冲区中的所述待共识区块的区块哈希一致;所述第一阈值是根据预设共识算法和所述至少一个备份节点的数量确定的;所述第二阈值是根据所述预设共识算法和至少一个分发节点中每个分发节点的跟随节点的数量确定的。
可选的,所述收发模块还用于:将主节点心跳消息发送至所述至少一个备份节点和所述至少一个分发节点;所述主节点心跳消息用于声明所述主节点的节点共识主导身份且所述主节点处于正常运行状态。
可选的,所述主节点心跳消息包括任期;所述主节点心跳消息中的任期指示所述至少一个分发节点和所述至少一个备份节点将所述主节点心跳消息中的任期作为所述至少一个分发节点和所述至少一个备份节点更新后的任期。
上述第四方面及第四方面各个可选装置的有益效果,可以参考上述第一方面及第一方面各个可选方法的有益效果,这里不再赘述。
第五方面,本发明提供一种区块链节点的共识装置,包括:收发模块,用于接收来自主节点的区块链的待共识区块;分发节点和所述主节点不同域;所述分发节点管理所述分发节点所在域的跟随节点;以及用于发送所述待共识区块至所述分发节点所在域的跟随节点;处理模块,用于确定所述分发节点所在域验证所述待共识区块通过,则发送第二验证消息至所述主节点;所述第二验证消息中的区块哈希与所述待共识区块缓冲区中的所述待共识区块的区块哈希一致;以及用于所述收发模块接收到来自所述主节点的答复确认消息时,将答复确认消息发送至所述分发节点所在域的跟随节点,并将所述待共识区块写入所述分发节点。
可选的,所述处理模块具体用于:若验证所述待共识区块通过且接收到所述分发节点所在域的跟随节点的第三验证消息的数量大于第三阈值,则确定所述分发节点所在域验证所述待共识区块通过。
可选的,所述收发模块还用于:接收来自所述主节点的主节点心跳消息;所述主节点心跳消息用于声明所述主节点的节点共识主导身份且所述主节点处于正常运行状态;所述主节点心跳消息包括任期;所述处理模块还用于:若所述主节点心跳消息中的任期大于所述分发节点的任期,则将所述主节点心跳消息中的任期作为所述分发节点更新后的任期。
上述第五方面及第五方面各个可选装置的有益效果,可以参考上述第二方面及第二方面各个可选方法的有益效果,这里不再赘述。
第六方面,本发明提供一种区块链节点的共识装置,包括:收发模块,用于接收分发节点发送的区块链的待共识区块;所述待共识区块来自主节点;跟随节点和所述分发节点同域;所述分发节点和所述主节点不同域;处理模块,用于若确定所述待共识区块的块高为所述跟随节点的块高加1,则将所述待共识区块存入所述跟随节点的待共识区块缓冲区中,并发送第三验证消息至所述分发节点;若接收到所述分发节点发送的答复确认消息,且验证所述答复确认消息通过,则将所述待共识区块写入所述跟随节点;所述答复确认消息来自所述主节点。
可选的,所述答复确认消息包括区块哈希;所述处理模块还用于:至少确定所述答复确认消息中的区块哈希与所述待共识区块中的区块哈希一致后,验证所述答复确认消息通过。
上述第六方面及第六方面各个可选装置的有益效果,可以参考上述第三方面及第三方面各个可选方法的有益效果,这里不再赘述。
本发明提供一种区块链的节点共识系统,包括:主节点、至少一个备份节点、至少一个分发节点和至少一个跟随节点;所述至少一个备份节点和所述主节点同域;所述至少一个分发节点及所述分发节点的跟随节点部署在与所述主节点不同的各域;所述主节点,用于生成待共识区块,并触发所述待共识区块的节点共识;所述至少一个备份节点任一备份节点,用于验证所述待共识区块;以及用于在所述主节点失效时,被选举为更新的主节点,从而替换失效的主节点;所述至少一个分发节点任一分发节点,用于验证所述待共识区块;以及用于指示所述分发节点的跟随节点验证所述待共识区块;所述至少一个跟随节点任一跟随节点,用于验证所述待共识区块。
可选的,所述主节点具体用于:将所述待共识区块发送至至少一个备份节点和至少一个分发节点;所述至少一个备份节点任一备份节点,具体用于:接收来自所述主节点的所述待共识区块;所述备份节点还用于:若验证所述待共识区块通过,发送第一验证消息至所述主节点;所述至少一个分发节点中任一分发节点,具体用于:接收来自所述主节点的所述待共识区块,并将所述待共识区块发送至所述分发节点所在域的跟随节点;所述分发节点还用于:若确定所述分发节点的所在域均验证所述待共识区块通过,发送第二验证消息至所述主节点;所述至少一个跟随节点中任一跟随节点,具体用于:接收所述跟随节点所在域的分发节点发送的所述待共识区块;所述主节点具体用于:若接收到来自所述至少一个备份节点的所述第一验证消息的数量大于第一阈值,且接收到来自所述至少一个分发节点的所述第二验证消息的数量大于第二阈值,则向所述至少一个分发节点和所述至少一个备份节点发送答复确认消息。
可选的,所述主节点还用于:将主节点心跳消息发送至所述至少一个备份节点和所述至少一个分发节点;所述主节点心跳消息用于声明所述主节点的节点共识主导身份且所述主节点处于正常运行状态;所述至少一个备份节点任一备份节点,还用于:接收来自所述主节点的主节点心跳消息;若所述主节点心跳消息中的任期大于所述备份节点的任期,则所述备份节点将所述主节点心跳消息中的任期作为所述备份节点更新后的任期;所述至少一个分发节点任一分发节点,还用于:接收来自所述主节点的主节点心跳消息;若所述主节点心跳消息中的任期大于所述分发节点的任期,则所述分发节点将所述主节点心跳消息中的任期作为所述分发节点更新后的任期。
上述第七方面及第七方面各个可选装置的有益效果,可以参考上述第一方面至第三方面及各个可选方法的有益效果,这里不再赘述。
第八方面,本发明提供一种计算机设备,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面至第三方面及各个可选方法。
第九方面,本发明提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面至第三方面及各个可选方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍。
图1为区块链的结构示意图;
图2为本申请实施例提供的一种区块链节点的共识方法的可应用的架构示意图;
图3为本申请实施例提供的一种区块链节点的共识方法中共识节点的结构示意图;
图4为本申请实施例提供的一种区块链节点的共识方法的步骤流程示意图;
图5为本申请实施例提供的一种区块链节点的共识方法中节点初始化的步骤流程示意图;
图6为本申请实施例提供的一种区块链节点的共识方法中主节点的步骤流程示意图;
图7为本申请实施例提供的一种区块链节点的共识方法中备份节点的步骤流程示意图;
图8为本申请实施例提供的一种区块链节点的共识方法中候选节点的步骤流程示意图;
图9为本申请实施例提供的一种区块链节点的共识方法中分发节点的步骤流程示意图;
图10为本申请实施例提供的一种区块链节点的共识方法中跟随节点的步骤流程示意图;
图11为本申请实施例提供的一种区块链节点的共识装置的结构示意图;
图12为本申请实施例提供的一种区块链节点的共识装置的结构示意图;
图13为本申请实施例提供的一种区块链节点的共识装置的结构示意图。
具体实施方式
为了更好的理解上述技术方案,下面将结合说明书附图及具体的实施方式对上述技术方案进行详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互结合。
下面首先列出本申请中出现的名词释义。
区块链:如图1所示,区块链是由一系列区块组成的一条链,每个块上除了记录本块的数据还会记录上一块的哈希值,通过这种方式组成一条链。区块链的核心理念有两个,一个是密码学技术,另一个是去中心化思想,基于这两个理念做到区块链上的历史信息无法被篡改。
节点:网络中的每一个参与者就是一个节点,节点参与网络组建和数据交换。在区块链网络中,一个节点是指一个具有唯一身份的参与者,该节点具有一份完整的账本拷贝,具有参与区块链网络共识和账本维护的能力。
交易:
在区块链中,任何操作(部署合约、调用合约接口等)都是通过发送交易的方式进行。交易由用户发起,并通过客户端发送至区块链节点。区块链节点在收到交易后,会将交易打包为区块并执行。
在金融机构(银行机构、保险机构或证券机构)在进行业务(如银行的贷款业务、存款业务等)运转过程中,数据中心节点之间进行任务调度时,由于各任务之间可能存在先后依赖关系,因此可以通过任务调度信号来触发任务的执行。由于金融机构对可用性要求极高,金融机构经常以分布式的形式,在多个地区分别部署区块链节点,并使用共识算法来保证各地区块链节点的数据一致性。
然而,区块链在共识过程中很可能会涉及到区块链节点之间的跨域数据传输。目前共识算法下的共识过程中,由于跨地域带宽的网络延迟较大,这可能导致区块链在共识过程中共识过程的整体网络开销较大,是一个亟待解决的问题。为此,如图2所示,为本申请实施例提供的一种区块链节点的共识方法。
如图2所示,将不同地域的机房划分为共识主中心、共识副中心。共识主中心有且只能有1个,而共识副中心可有多个。共识主中心负责处理用户交易、接受用户区块链状态查询请求;共识副中心负责转发用户交易、接受用户区块链状态查询请求。节点可以按照所在机房的地理位置划分为多个组,每个组使用一个全局唯一的整数标识,只要节点组标识相同就意味着节点在同一个组中。每个节点的身份均是下列5种身份之一:
主节点:负责从自己的交易池中取出交易,构造待共识区块并将待共识区块通过跨地域网络复制至其他节点进行共识,使得全局至少超过半数节点的状态达到一致;主节点有且只有一个,且只能从共识主中心中产生;主节点同时也是自身所在组的分发节点;
候选节点:参与主节点竞选的节点,由共识主中心的备份节点转换而来。
备份节点:共识主中心中除主节点之外的节点。
分发节点:作为本组的代表,负责将待共识区块副本广播至同组的跟随者节点进行共识,使得本组所有节点的状态达到一致。
跟随节点:接收本组分发节点广播的待共识区块副本,根据待共识区块改变自身维护的区块链状态。
如图3所示,上述节点可以是以下包含4个模块的结构,自底向下分别为:
配置模块:
配置模块用于存储、读取及解析节点、共识及网络配置,配置项共有三项:
表1
网络模块:通过其他节点进行网络交互,用于接收或发送共识、交易消息。
共识模块:执行共识流程,就区块链状态在各个节点间达成一致。
服务模块:用于接收用户交易、响应用户的数据查询请求等。
本申请中传输的网络消息及数据结构有以下几种:
交易消息:
字段名 | 值 |
消息类型 | 交易消息 |
交易数据 | 交易数据 |
表2
确认消息:
表3投票请求:
表4
心跳:
字段名 | 值 |
消息类型 | 主节点心跳 |
节点ID | 主节点的节点ID |
任期 | 主节点当前的任期 |
IP地址 | 主节点的IP地址 |
端口 | 主节点的端口 |
待共识区块数据 | 主节点的待共识区块缓冲区 |
表5
提交消息:
表6
确认消息:
表7
如图4所示,本申请提供一种区块链节点的共识方法,该方法适用于主节点。
步骤401:若主节点的待共识区块缓冲区内无未共识区块,则所述主节点从交易池中获取预设数量的交易,生成区块链的待共识区块,并存入所述待共识区块缓冲区。
步骤402:所述主节点将所述待共识区块发送至至少一个备份节点和至少一个分发节点。
步骤403:若所述主节点接收到来自所述至少一个备份节点的第一验证消息的数量大于第一阈值,且接收到来自所述至少一个分发节点的第二验证消息的数量大于第二阈值,则向所述至少一个分发节点和所述至少一个备份节点发送答复确认消息。
所述至少一个备份节点和所述主节点同域;所述至少一个分发节点及所述分发节点的跟随节点部署在与所述主节点不同的各域;其中,任一备份节点发送的所述第一验证消息指示该备份节点验证所述待共识区块通过,任一分发节点发送的所述第二验证消息指示该分发节点及所在域的跟随节点均验证所述待共识区块通过;所述第一验证消息及所述第二验证消息中的区块哈希与所述待共识区块缓冲区中的所述待共识区块的区块哈希一致;所述第一阈值是根据预设共识算法和所述至少一个备份节点的数量确定的;所述第二阈值是根据所述预设共识算法和至少一个分发节点中每个分发节点的跟随节点的数量确定的。
需要说明的是,步骤402中发送至至少一个备份节点和至少一个分发节点的发送方式可以是广播,所述主节点发送所述待共识区块至所述至少一个备份节点指示了所述至少一个备份节点将所述待共识区块发送至所述至少一个备份节点所在域的跟随节点。具体的第一阈值和第二阈值可根据具体的共识算法设置,如所述第一阈值为所述至少一个备份节点及所述主节点的数量半数的向上取整值,所述第二阈值为所述至少一个分发节点及所述主节点的数量半数的向上取整值。
需要说明的是,步骤401之前,各节点可以按照如图5所示的方法初始化。
具体包括以下步骤:
节点初始化流程如下:
(1)检查配置文件是否存在,若不存在则转至(26);
(2)读取并解析配置文件;
(3)检查配置文件中是否存在节点ID配置,若不存在则转至(26);
(4)读入配置文件中的节点ID配置,存储为自身节点ID;
(5)检查配置文件中是否存在共识配置,若不存在则转至(26);
(6)读入配置文件中的共识配置,存储为组标识与该组共识节点列表间的映射表;
(7)检查共识配置中的节点ID和组标识是否存在重复,若存在则转至(26);
(8)检查共识配置中自身节点ID是否归属于某一组,若无归属则转至(26);
(9)检查配置文件中是否存在网络配置,若不存在则转至(26);
(10)读入配置文件中的网络配置,存储为节点ID与其网络地址间的映射表;
(11)通过网络模块与网络配置中的各个节点建立网络连接;
(12)设置待共识缓冲区为空;
(13)检查自身节点ID是否位于共识主中心组(共识配置中的第1组),若是则转至(14),否则转至(18);
(14)设置任期为0;
(15)设置上级节点ID为空;
(16)设置节点身份为备份节点;
(17)进入备份节点工作流程,转至(26);
(18)检查自身节点ID是否位于本组共识节点ID列表的第1位,若是则转至(19),否则转至(23);
(19)设置任期为0;
(20)设置上级节点ID为空;
(21)设置节点身份为分发节点;
(22)进入分发节点工作流程,转至(26);
(23)设置上级节点ID为本组共识节点ID列表中第1位的节点ID;
(24)设置节点身份为跟随节点;
(25)进入跟随节点工作流程,转至(26);
(26)结束。
一种可选实施方式中,所述主节点将主节点心跳消息发送至所述至少一个备份节点和所述至少一个分发节点;所述主节点心跳消息用于声明所述主节点的节点共识主导身份且所述主节点处于正常运行状态。
一种可选实施方式中,所述主节点心跳消息包括任期;所述主节点心跳消息中的任期指示所述至少一个分发节点和所述至少一个备份节点将所述主节点心跳消息中的任期作为所述至少一个分发节点和所述至少一个备份节点更新后的任期。
需要说明的是,主节点也具有备份节点的属性,也会执行备份节点的相关步骤,一种可选实施方式中:
所述主节点接收来自所述至少一个备份节点中任一备份节点的候选节点投票请求;所述候选节点投票请求用于所述备份节点请求晋升为节点共识主导身份;所述主节点投票请求中包括任期;所述主节点至少根据所述主节点投票请求中的任期和所述主节点的任期,若许可所述备份节点晋升,则向所述备份节点发送晋升许可。
综上所述,主节点的步骤流程如图6所示。具体如下:
(1)设置心跳发送时间为0;
(2)设置等待标志为false;
(3)获取当前系统时间;
(4)计算当前系统时间与心跳发送时间的差值;
(5)若差值大于某个预定义的时间间隔则转至(6);否则转至(13);
(6)若等待标志为false则转至(7);否则转至(13);
(7)检查待共识区块缓冲区内是否有待共识区块,若有则转至(11);否则转至(8);
(8)检查交易池中是否存在未上链的交易,若存在则转至(9);否则转至(13);
(9)从交易池中获取一定数量的交易,打包为待共识区块;
(10)将待共识区块存储至待共识区块缓冲区中;
(11)设置组内已确认数量为1;
(12)设置组外已确认数量为0;
(13)构造心跳,若等待标志为true则将心跳中的待共识区块字段置空;
(14)将心跳发送时间更新为当前系统时间;
(15)向组内其他节点广播心跳;
(16)向其他各组分发节点广播心跳;
(17)设置等待标志为true;
(18)检查网络模块中是否中收到其他节点发送过来的消息,如果没有收到,则转至(3);
(19)检查消息类型,若为交易则转至(20),否则转至(22);
(20)检查交易是否已上链或与交易池中的交易重复,若是则转至(3);
(21)将交易添加至自身交易池中,转至(3);
(22)检查消息类型,若为主节点心跳,则转至(23);否则转至(29);
(23)若心跳中的任期大于自身任期,则转至(24);否则转至(3);
(24)将上级节点ID置为心跳中的节点ID;
(25)将自身任期更新为心跳中的任期;
(26)设置节点身份为备份节点;
(27)将待共识区块缓冲区置空;
(28)进入备份节点工作流程,转至(48);
(29)检查消息类型,若消息类型为候选节点投票请求则转至(30);否则转至(35);
(30)若候选节点投票请求中的任期大于自己任期则转至(31);否则转至(3);
(31)获取当前块高,若待共识区块缓冲区不为空,当前块高加1;
(32)若候选节点投票请求中的块高大于或等于当前块高,则转至(33);否则转至(3);
(33)将自己的任期更新为候选节点投票请求中的任期;
(34)向候选节点投票请求中节点ID对应的节点发送晋升许可,转至(26);
(35)检查消息类型,若消息类型为确认消息,则转至(36);否则转至(3);
(36)检查确认消息中的区块哈希是否与待共识区块缓冲区中的区块的哈希一致,若一致则转至(37),否则转至(3);
(37)若确认消息来自组内其他备份节点,则跳转至(38);否则跳转至(41);
(38)组内已确认数量加1;
(39)检查组内已确认数量是否已超过共识主中心中的节点的半数,若是则跳转至(40);否则跳转至(3);
(40)将组内已确认数量置为0;
(41)组外已确认数量加1;
(42)检查组外已确认数量是否等于分组的总数,若相等则转至(43);否则跳转至(3);
(43)将缓存区中的待共识区块写至磁盘中;
(44)向同组其他备份节点广播提交消息;
(45)向其他各组分发节点广播提交消息;
(46)将待共识区块缓冲区置空;
(47)设置等待标志为false,转至(3);
(48)结束。
本申请提供一种区块链节点的共识方法,该方法适用于备份节点。
备份节点接收来自主节点的区块链的待共识区块;若所述备份节点验证所述待共识区块通过,则发送第一验证消息至所述主节点;若所述备份节点接收到来自所述主节点的答复确认消息,则将所述待共识区块写入所述备份节点;所述备份节点和所述主节点同域。
需要说明的是,所述备份节点为至少一个备份节点中任一备份节点;一种可选实施方式中,所述备份节点是在预设周期内通过接收来自所述主节点的心跳消息来确定所述主节点的身份;若所述备份节点在所述预设周期内未接收到来自所述主节点的心跳消息,则将所述备份节点的身份设置为候选节点;所述备份节点以所述候选节点的身份向所述至少一个备份节点及所述主节点发送晋升投票请求;若所述备份节点以所述候选节点的身份接收到的晋升许可消息的数量大于第一阈值,则将所述备份节点的身份设置为主节点。
所述第一阈值可以根据具体的共识算法来确定,举例来说,所述第一阈值为所述至少一个备份节点及所述主节点的数量半数的向上取整值。
更具体地,如图7所示,备份节点的具体步骤流程为:
(1)重置心跳超时器,设置超时时间为固定范围内的一个随机值;
(2)检查心跳超时器是否超时,若未超时则跳至(3);否则转至(28);
(3)检查网络模块中是否收到其他节点发送过来的消息,如果没有收到,则转至(2);
(4)检查消息类型,若为交易则转至(5),否则转至(9);
(5)检查交易是否已上链或与交易池中的交易重复,若是则转至(2);
(6)将交易添加至自身交易池中;
(7)检查上级节点ID是否为空,若为空则转至(2);否则转至(8);
(8)向上级节点ID所代表的节点转发交易,转至(2);
(9)检查消息类型,若为主节点心跳,则转至(10);否则转至(18);
(10)若心跳中的任期大于或等于自身任期,则转至(11);否则转至(2);
(11)将上级节点ID置为心跳中的节点ID;
(12)将自身任期更新为心跳中的任期;
(13)如果心跳中有待共识区块数据,则转至(14);否则转至(1);
(14)获取当前块高;
(15)检查待共识区块的块高是否等于当前块高加1,若是则转至(16);否则转至(2);
(16)将消息中的待共识区块存储至待共识区块缓冲区中;
(17)向上级节点ID所代表的节点发送确认消息,转至(1);
(18)检查消息类型,若消息类型为提交消息则转至(19);否则转至(22);
(19)检查提交消息中的区块哈希是否与待共识区块缓冲区中的区块的哈希一致,若一致则转至(20);否则转至(2);
(20)将缓存区中的待共识区块写至磁盘中;
(21)将待共识区块缓冲区清空,转至(1);
(22)检查消息类型,若消息类型为候选节点投票请求则转至(23);否则转至(2);
(23)若候选节点投票请求中的任期大于自己任期则转至(24);否则转至(2);
(24)获取当前块高,若待共识区块缓冲区不为空,当前块高加1;
(25)若候选节点投票请求中的块高大于或等于当前块高,则转至(26);否则转至(2);
(26)将自己的任期更新为候选节点投票请求中的任期;
(27)向候选节点投票请求中节点ID对应的节点发送晋升许可,转至(2);
(28)设置节点身份为候选节点;
(29)进入候选节点工作流程,转至(30);
(30)结束。
进一步地,当备份节点未在预设周期内收到主节点发送的主节点心跳消息,便将备份节点的身份设置为候选节点,并启用如图8所示的步骤流程。
(1)将上级节点ID置空;
(2)将自身任期加1,构造投票请求。
(3)设置已许可数量为1;
(4)向本组其他节点广播投票请求;
(5)重置选举超时器,设置超时时间为固定范围内的一个随机值;
(6)检查选举超时器是否超时,若超时则转至(20);否则转至(7);
(7)检查网络模块中是否中收到其他节点发送过来的消息,如果没有收到,则转至(6);
(8)检查消息类型,若为晋升许可则转至(9);否则转至(13);
(9)将已许可数量加1;
(10)检查已许可数量是否超过共识主中心节点数量的半数,若是则转至(11);否则转至(6);
(11)将节点身份置为主节点;
(12)进入主节点工作流程,转至(21);
(13)检查消息类型,若为主节点的心跳,则转至(14);否则转至(6);
(14)若心跳中的任期大于或等于本地任期,则转至(15);否则转至(6);
(15)将上级节点ID置为心跳中的节点ID;
(16)将自身任期更新为心跳中的任期;
(17)设置节点身份为备份节点;
(18)将待共识区块缓冲区置空;
(19)进入备份节点工作流程,转至(21);
(20)将自身任期减1,转至(17);
(21)结束。
本发明提供一种区块链节点的共识方法,该方法适用于分发节点。具体来说:
分发节点接收来自主节点的区块链的待共识区块;若所述分发节点确定所述分发节点所在域验证所述待共识区块通过,则发送第二验证消息至所述主节点;若所述分发节点接收到来自所述主节点的答复确认消息,则将答复确认消息发送至所述分发节点所在域的跟随节点,并将所述待共识区块写入所述分发节点。
其中,所述第二验证消息中的区块哈希与所述待共识区块缓冲区中的所述待共识区块的区块哈希一致。
所述分发节点和所述主节点不同域;所述分发节点管理所述分发节点所在域的跟随节点。
一种可选实施方式中,所述分发节点按照以下方式确定所述分发节点所在域验证所述待共识区块通过,具体包括:
若所述分发节点验证所述待共识区块通过且接收到所述分发节点所在域的跟随节点的第三验证消息的数量大于第三阈值。
需要说明的是,所述第三阈值可以为所述分发节点所在域的跟随节点的数量半数的向下取整值。
上述方式下,提供了一种通过第三验证消息的数量确定所述分发节点所在域验证所述待共识区块通过的方法。
一种可选实施方式中,所述分发节点接收来自所述主节点的主节点心跳消息;所述主节点心跳消息用于声明所述主节点的节点共识主导身份且所述主节点处于正常运行状态;所述主节点心跳消息包括任期;若所述主节点心跳消息中的任期大于所述分发节点的任期,则所述分发节点将所述主节点心跳消息中的任期作为所述分发节点更新后的任期。
上述方式下,所述分发节点通过所述主节点的主节点心跳消息来确定所述主节点的节点共识主导身份且所述主节点处于正常运行状态,且所述主节点心跳消息包括任期,从而可以及时更新所述分发节点中的任期。
综上所述,分发节点的具体区块链节点的共识方法可以如图9所示,包括以下具体过程:
(1)检查网络模块中是否收到其他节点发送过来的消息,如果没有收到,则转至(1);
(2)检查消息类型,若为交易则转至(3),否则转至(6);
(3)检查上级节点ID是否为空,若为空则转至(1);否则转至(4);
(4)检查交易是否已上链或与交易池中的交易重复,若是则转至(1);
(5)向上级节点ID所代表的节点转发交易,转至(1);
(6)检查消息类型,若为主节点心跳,则转至(7);否则转至(17);
(7)若心跳中的任期大于或等于自身任期,则转至(8);否则转至(1);
(8)将上级节点ID置为心跳中的节点ID;
(9)根据心跳中的IP地址及端口,建立到主节点的网络连接;
(10)将自身任期更新为心跳中的任期;
(11)如果心跳中有待共识区块数据,则转至(12);否则转至(1);
(12)获取当前块高;
(13)检查待共识区块的块高是否等于当前块高加1,若是则转至(14);否则转至(1);
(14)将消息中的待共识区块存储至待共识区块缓冲区中;
(15)设置已确认数量为1;
(16)向同组其他跟随节点广播待共识区块,转至(1);
(17)检查消息类型,若消息类型为提交消息,则跳转至(18);否则转至(22);
(18)检查提交消息中的区块哈希是否与待共识区块缓冲区中的区块的哈希一致,若一致则转至(19);否则转至(1);
(19)将缓存区中的待共识区块写至磁盘中;
(20)将待共识区块缓冲区清空;
(21)向同组其他跟随节点广播提交消息,转至(1);
(22)检查消息类型,若消息类型为同组其他跟随节点的确认消息,转至(23);否则转至(1);
(23)检查确认消息中的区块哈希是否与待共识区块缓冲区中的区块的哈希一致,若一致则将已确认数量加1,转至(24);否则转至(1);
(24)检查已确认数量是否超过共识配置中本组的节点总数的半数,若超过,则转至(25);否则转至(1);
(25)向上级节点ID所代表的节点发送确认消息;
(26)将已确认数量置为0,转至(1)。
本发明提供一种区块链节点的共识方法,该方法适用于跟随节点。具体来说:
跟随节点接收分发节点发送的区块链的待共识区块;所述分发节点和所述主节点不同域;所述跟随节点确定所述待共识区块的块高为所述跟随节点的块高加1,则将所述待共识区块存入所述跟随节点的待共识区块缓冲区中,并发送第三验证消息至所述分发节点;若所述跟随节点接收到所述分发节点发送的答复确认消息,且验证所述答复确认消息通过,则将所述待共识区块写入所述跟随节点。
其中,所述待共识区块来自主节点;所述跟随节点和所述分发节点同域;所述答复确认消息来自主节点。
上述方式下,由跟随节点接收所述跟随节点所在域的分发节点发送的待共识区块,只涉及了域内通信,且发送第三验证消息至所述分发节点,将答复确认消息发送至所述分发节点,从而减小了区块链在共识过程中的整体网络开销。
一种可选实施方式中,所述答复确认消息包括区块哈希;所述跟随节点验证所述答复确认消息通过;包括:所述跟随节点至少确定所述答复确认消息中的区块哈希与所述待共识区块中的区块哈希一致后,验证所述答复确认消息通过。
上述方式为所述跟随节点验证所述答复确认消息通过的一种方式。
综上所述,跟随节点的具体区块链节点的共识方法可以如图10所示,包括以下具体过程:
(1)检查网络模块中是否收到其他节点发送过来的消息,如果没有收到,则转至(1);
(2)检查消息类型,若为交易则转至(3),否则转至(5);
(3)检查交易是否已上链或与交易池中的交易重复,若是则转至(1);
(4)通过网络模块向上级节点ID所对应的节点转发交易消息,转至(1);
(5)检查消息类型,若为待共识区块则转至(6);否则转至(10);
(6)获取当前块高;
(7)检查待共识区块的块高是否等于当前块高加1,若相等则转至(8);否则转至(1);
(8)将消息中的待共识区块存储至待共识区块缓冲区中;
(9)向上级节点ID所对应的分发节点发送确认消息,转至(1);
(10)检查消息类型,若为提交消息则转至(11);否则转至(1);
(11)检查提交消息中的区块哈希是否与待共识区块缓冲区中的区块的哈希一致,若一致则转至(12);否则转至(1);
(12)将待共识区块缓冲区中的待共识区块写入磁盘中;
(13)将待共识区块缓冲区清空,转至(1)。
如图11所示,本发明提供一种区块链节点的共识装置,包括:生成模块1101,用于若主节点的待共识区块缓冲区内无未共识区块,则从交易池中获取预设数量的交易,生成区块链的待共识区块,并存入所述待共识区块缓冲区;收发模块1102,用于将所述待共识区块发送至至少一个备份节点和至少一个分发节点;所述至少一个备份节点和主节点同域;所述至少一个分发节点及所述分发节点的跟随节点部署在与所述主节点不同的各域;处理模块1103,用于在接收到来自所述至少一个备份节点的第一验证消息的数量大于第一阈值,且接收到来自所述至少一个分发节点的第二验证消息的数量大于第二阈值时,向所述至少一个分发节点和所述至少一个备份节点发送答复确认消息;其中,任一备份节点发送的所述第一验证消息指示该备份节点验证所述待共识区块通过,任一分发节点发送的所述第二验证消息指示该分发节点及所在域的跟随节点均验证所述待共识区块通过;所述第一验证消息及所述第二验证消息中的区块哈希与所述待共识区块缓冲区中的所述待共识区块的区块哈希一致;所述第一阈值是根据预设共识算法和所述至少一个备份节点的数量确定的;所述第二阈值是根据所述预设共识算法和至少一个分发节点中每个分发节点的跟随节点的数量确定的。
可选的,所述收发模块1102还用于:将主节点心跳消息发送至所述至少一个备份节点和所述至少一个分发节点;所述主节点心跳消息用于声明所述主节点的节点共识主导身份且所述主节点处于正常运行状态。
可选的,所述主节点心跳消息包括任期;所述主节点心跳消息中的任期指示所述至少一个分发节点和所述至少一个备份节点将所述主节点心跳消息中的任期作为所述至少一个分发节点和所述至少一个备份节点更新后的任期。
如图12所示,本发明提供一种区块链节点的共识装置,包括:收发模块1201,用于接收来自主节点的区块链的待共识区块;分发节点和所述主节点不同域;所述分发节点管理所述分发节点所在域的跟随节点;以及用于发送所述待共识区块至所述分发节点所在域的跟随节点;处理模块1202,用于确定所述分发节点所在域验证所述待共识区块通过,则发送第二验证消息至所述主节点;所述第二验证消息中的区块哈希与所述待共识区块缓冲区中的所述待共识区块的区块哈希一致;以及用于所述收发模块1201接收到来自所述主节点的答复确认消息时,将答复确认消息发送至所述分发节点所在域的跟随节点,并将所述待共识区块写入所述分发节点。
可选的,所述处理模块1202具体用于:若验证所述待共识区块通过且接收到所述分发节点所在域的跟随节点的第三验证消息的数量大于第三阈值,则确定所述分发节点所在域验证所述待共识区块通过。
可选的,所述收发模块1201还用于:接收来自所述主节点的主节点心跳消息;所述主节点心跳消息用于声明所述主节点的节点共识主导身份且所述主节点处于正常运行状态;所述主节点心跳消息包括任期;所述处理模块1202还用于:若所述主节点心跳消息中的任期大于所述分发节点的任期,则将所述主节点心跳消息中的任期作为所述分发节点更新后的任期。
如图13所示,本发明提供一种区块链节点的共识装置,包括:收发模块1301,用于接收分发节点发送的区块链的待共识区块;所述待共识区块来自主节点;跟随节点和所述分发节点同域;所述分发节点和所述主节点不同域;处理模块1302,用于若确定所述待共识区块的块高为所述跟随节点的块高加1,则将所述待共识区块存入所述跟随节点的待共识区块缓冲区中,并发送第三验证消息至所述分发节点,则发送第三验证消息至所述分发节点;若接收到所述分发节点发送的答复确认消息,且验证所述答复确认消息通过,则将所述待共识区块写入所述跟随节点;所述答复确认消息来自所述主节点。
可选的,所述答复确认消息包括区块哈希;所述处理模块1302还用于:至少确定所述答复确认消息中的区块哈希与所述待共识区块中的区块哈希一致后,验证所述答复确认消息通过。
综合上述内容,本发明提供一种区块链的节点共识系统,包括:主节点、至少一个备份节点、至少一个分发节点和至少一个跟随节点;所述至少一个备份节点和所述主节点同域;所述至少一个分发节点及所述分发节点的跟随节点部署在与所述主节点不同的各域;所述主节点,用于生成待共识区块,并触发所述待共识区块的节点共识;所述至少一个备份节点任一备份节点,用于验证所述待共识区块;以及用于在所述主节点失效时,被选举为更新的主节点,从而替换失效的主节点;所述至少一个分发节点任一分发节点,用于验证所述待共识区块;以及用于指示所述分发节点的跟随节点验证所述待共识区块;所述至少一个跟随节点任一跟随节点,用于验证所述待共识区块。
可选的,所述主节点具体用于:将所述待共识区块发送至至少一个备份节点和至少一个分发节点;所述至少一个备份节点任一备份节点,具体用于:接收来自所述主节点的所述待共识区块;所述备份节点还用于:若验证所述待共识区块通过,发送第一验证消息至所述主节点;所述至少一个分发节点中任一分发节点,具体用于:接收来自所述主节点的所述待共识区块,并将所述待共识区块发送至所述分发节点所在域的跟随节点;所述分发节点还用于:若确定所述分发节点的所在域均验证所述待共识区块通过,发送第二验证消息至所述主节点;所述至少一个跟随节点中任一跟随节点,具体用于:接收所述跟随节点所在域的分发节点发送的所述待共识区块;所述主节点具体用于:若接收到来自所述至少一个备份节点的所述第一验证消息的数量大于第一阈值,且接收到来自所述至少一个分发节点的所述第二验证消息的数量大于第二阈值,则向所述至少一个分发节点和所述至少一个备份节点发送答复确认消息。
可选的,所述主节点还用于:将主节点心跳消息发送至所述至少一个备份节点和所述至少一个分发节点;所述主节点心跳消息用于声明所述主节点的节点共识主导身份且所述主节点处于正常运行状态;所述至少一个备份节点任一备份节点,还用于:接收来自所述主节点的主节点心跳消息;若所述主节点心跳消息中的任期大于所述备份节点的任期,则所述备份节点将所述主节点心跳消息中的任期作为所述备份节点更新后的任期;所述至少一个分发节点任一分发节点,还用于:接收来自所述主节点的主节点心跳消息;若所述主节点心跳消息中的任期大于所述分发节点的任期,则所述分发节点将所述主节点心跳消息中的任期作为所述分发节点更新后的任期。
本申请实施例提供一种计算机设备,包括程序或指令,当所述程序或指令被执行时,用以执行本申请实施例提供的一种区块链节点的共识方法及任一可选方法。
本申请实施例提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,用以执行本申请实施例提供的一种区块链节点的共识方法及任一可选方法。
最后应说明的是:本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (14)
1.一种区块链节点的共识方法,其特征在于,包括:
若主节点的待共识区块缓冲区内无未共识区块,则所述主节点从交易池中获取预设数量的交易,生成区块链的待共识区块,并存入所述待共识区块缓冲区;
所述主节点将所述待共识区块发送至至少一个备份节点和至少一个分发节点;所述至少一个备份节点和所述主节点同域;所述至少一个分发节点及每个分发节点的跟随节点部署在与所述主节点不同的各域;
若所述主节点接收到来自所述至少一个备份节点的第一验证消息的数量大于第一阈值,且接收到来自所述至少一个分发节点的第二验证消息的数量大于第二阈值,则向所述至少一个分发节点和所述至少一个备份节点发送答复确认消息;
其中,任一备份节点发送的所述第一验证消息指示该备份节点验证所述待共识区块通过,任一分发节点发送的所述第二验证消息指示该分发节点及所在域的跟随节点均验证所述待共识区块通过;所述第一验证消息及所述第二验证消息中的区块哈希与所述待共识区块缓冲区中的所述待共识区块的区块哈希一致;所述第一阈值是根据预设共识算法和所述至少一个备份节点的数量确定的;所述第二阈值是根据所述预设共识算法和至少一个分发节点中每个分发节点的跟随节点的数量确定的。
2.如权利要求1所述的方法,其特征在于,还包括:
所述主节点将主节点心跳消息发送至所述至少一个备份节点和所述至少一个分发节点;所述主节点心跳消息用于声明所述主节点的节点共识主导身份且所述主节点处于正常运行状态。
3.如权利要求2所述的方法,其特征在于,所述主节点心跳消息包括任期;所述主节点心跳消息中的任期指示所述至少一个分发节点和所述至少一个备份节点将所述主节点心跳消息中的任期作为所述至少一个分发节点和所述至少一个备份节点更新后的任期。
4.一种区块链节点的共识方法,其特征在于,包括:
分发节点接收来自主节点的区块链的待共识区块;所述分发节点和所述主节点不同域;所述分发节点管理所述分发节点所在域的跟随节点;
所述分发节点发送所述待共识区块至所述分发节点所在域的跟随节点;
若所述分发节点确定所述分发节点所在域验证所述待共识区块通过,则发送第二验证消息至所述主节点;所述第二验证消息中的区块哈希与所述待共识区块缓冲区中的所述待共识区块的区块哈希一致;
若所述分发节点接收到来自所述主节点的答复确认消息,则将答复确认消息发送至所述分发节点所在域的跟随节点,并将所述待共识区块写入所述分发节点。
5.如权利要求4所述的方法,其特征在于,所述分发节点确定所述分发节点所在域验证所述待共识区块通过,包括:
若所述分发节点验证所述待共识区块通过且接收到所述分发节点所在域的跟随节点的第三验证消息的数量大于第三阈值,则确定所述分发节点所在域验证所述待共识区块通过。
6.如权利要求4或5所述的方法,其特征在于,还包括:
所述分发节点接收来自所述主节点的主节点心跳消息;所述主节点心跳消息用于声明所述主节点的节点共识主导身份且所述主节点处于正常运行状态;所述主节点心跳消息包括任期;
若所述主节点心跳消息中的任期大于所述分发节点的任期,则所述分发节点将所述主节点心跳消息中的任期作为所述分发节点更新后的任期。
7.一种区块链节点的共识方法,其特征在于,包括:
跟随节点接收分发节点发送的区块链的待共识区块;所述待共识区块来自主节点;所述跟随节点和所述分发节点同域;所述分发节点和所述主节点不同域;
所述跟随节点确定所述待共识区块的块高为所述跟随节点的块高加1,则将所述待共识区块存入所述跟随节点的待共识区块缓冲区中,并发送第三验证消息至所述分发节点;
若所述跟随节点接收到所述分发节点发送的答复确认消息,且验证所述答复确认消息通过,则将所述待共识区块写入所述跟随节点;所述答复确认消息来自所述主节点。
8.如权利要求7所述的方法,其特征在于,所述答复确认消息包括区块哈希;所述跟随节点验证所述答复确认消息通过;包括:
所述跟随节点至少确定所述答复确认消息中的区块哈希与所述待共识区块中的区块哈希一致后,验证所述答复确认消息通过。
9.一种区块链的节点共识系统,其特征在于,包括:主节点、至少一个备份节点、至少一个分发节点和至少一个跟随节点;所述至少一个备份节点和所述主节点同域;所述至少一个分发节点及所述分发节点的跟随节点部署在与所述主节点不同的各域;
所述主节点,用于生成待共识区块,并触发所述待共识区块的节点共识;
所述至少一个备份节点中任一备份节点,用于验证所述待共识区块;以及用于在所述主节点失效时,被选举为更新的主节点,从而替换失效的主节点;
所述至少一个分发节点中任一分发节点,用于验证所述待共识区块;以及用于指示所述分发节点的跟随节点验证所述待共识区块;
所述至少一个跟随节点中任一跟随节点,用于验证所述待共识区块。
10.如权利要求9所述的系统,其特征在于,
所述主节点具体用于:将所述待共识区块发送至至少一个备份节点和至少一个分发节点;
所述至少一个备份节点中任一备份节点,具体用于:接收来自所述主节点的所述待共识区块;所述备份节点还用于:若验证所述待共识区块通过,发送第一验证消息至所述主节点;
所述至少一个分发节点中任一分发节点,具体用于:接收来自所述主节点的所述待共识区块,并将所述待共识区块发送至所述分发节点所在域的跟随节点;所述分发节点还用于:若确定所述分发节点的所在域均验证所述待共识区块通过,发送第二验证消息至所述主节点;
所述至少一个跟随节点中任一跟随节点,具体用于:接收所述跟随节点所在域的分发节点发送的所述待共识区块;
所述主节点具体用于:若接收到来自所述至少一个备份节点的所述第一验证消息的数量大于第一阈值,且接收到来自所述至少一个分发节点的所述第二验证消息的数量大于第二阈值,则向所述至少一个分发节点和所述至少一个备份节点发送答复确认消息。
11.如权利要求9或10所述的系统,其特征在于,
所述主节点还用于:将主节点心跳消息发送至所述至少一个备份节点和所述至少一个分发节点;所述主节点心跳消息用于声明所述主节点的节点共识主导身份且所述主节点处于正常运行状态;
所述至少一个备份节点中任一备份节点,还用于:接收来自所述主节点的主节点心跳消息;若所述主节点心跳消息中的任期大于所述备份节点的任期,则所述备份节点将所述主节点心跳消息中的任期作为所述备份节点更新后的任期;
所述至少一个分发节点中任一分发节点,还用于:接收来自所述主节点的主节点心跳消息;若所述主节点心跳消息中的任期大于所述分发节点的任期,则所述分发节点将所述主节点心跳消息中的任期作为所述分发节点更新后的任期。
12.一种区块链节点的共识装置,其特征在于,包括:
生成模块,用于生成区块链的待共识区块;
收发模块,用于将所述待共识区块发送至至少一个备份节点和至少一个分发节点;所述至少一个备份节点和主节点同域;所述至少一个分发节点及所述分发节点的跟随节点部署在与所述主节点不同的各域;
处理模块,用于在接收到来自所述至少一个备份节点的第一验证消息的数量大于第一阈值,且接收到来自所述至少一个分发节点的第二验证消息的数量大于第二阈值时,向所述至少一个分发节点和所述至少一个备份节点发送答复确认消息;
其中,任一备份节点发送的所述第一验证消息指示该备份节点验证所述待共识区块通过,任一分发节点发送的所述第二验证消息指示该分发节点及所在域的跟随节点均验证所述待共识区块通过。
13.一种计算机设备,其特征在于,包括程序或指令,当所述程序或指令被执行时,如权利要求1至3或4至6或7至8中任意一项所述的方法被执行。
14.一种存储介质,其特征在于,包括程序或指令,当所述程序或指令被执行时,如权利要求1至3或4至6或7至8中任意一项所述的方法被执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010545754.0A CN111711526B (zh) | 2020-06-16 | 2020-06-16 | 一种区块链节点的共识方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010545754.0A CN111711526B (zh) | 2020-06-16 | 2020-06-16 | 一种区块链节点的共识方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111711526A CN111711526A (zh) | 2020-09-25 |
CN111711526B true CN111711526B (zh) | 2024-03-26 |
Family
ID=72540248
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010545754.0A Active CN111711526B (zh) | 2020-06-16 | 2020-06-16 | 一种区块链节点的共识方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111711526B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022530400A (ja) | 2019-04-25 | 2022-06-29 | マイクロチップ テクノロジー インコーポレイテッド | 有線ローカルエリアネットワーク内のマスタノードの移行、並びに関連するシステム、方法、及びデバイス |
CN112437049B (zh) * | 2020-11-06 | 2022-04-26 | 深圳前海微众银行股份有限公司 | 一种基于bft的区块链共识方法及装置 |
CN112511337B (zh) * | 2020-11-09 | 2023-03-14 | 迅鳐成都科技有限公司 | 区块链共识网络自恢复方法、电子设备、系统及存储介质 |
CN112767152B (zh) * | 2021-01-18 | 2024-02-09 | 中国工商银行股份有限公司 | 应用于联盟链的双园区灾备系统及方法 |
CN113779145A (zh) * | 2021-08-27 | 2021-12-10 | 浙商银行股份有限公司 | 一种区块链吞吐量提升系统及方法 |
Citations (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6584566B1 (en) * | 1998-08-27 | 2003-06-24 | Nortel Networks Limited | Distributed group key management for multicast security |
CN107800787A (zh) * | 2017-10-23 | 2018-03-13 | 广州百兴网络科技有限公司 | 一种分布式大数据实时交换共享的计算机网络系统 |
CN107819749A (zh) * | 2017-10-26 | 2018-03-20 | 平安科技(深圳)有限公司 | 基于以太坊的区块链系统和交易数据处理方法 |
CN108182635A (zh) * | 2017-12-18 | 2018-06-19 | 深圳前海微众银行股份有限公司 | 区块链共识方法、系统和计算机可读存储介质 |
CN109379397A (zh) * | 2018-08-31 | 2019-02-22 | 阿里巴巴集团控股有限公司 | 基于区块链的交易共识处理方法及装置、电子设备 |
CN109522362A (zh) * | 2018-10-17 | 2019-03-26 | 北京瑞卓喜投科技发展有限公司 | 基于区块链数据的非完全数据同步方法、系统及设备 |
CN109547527A (zh) * | 2018-10-12 | 2019-03-29 | 广西师范大学 | 区块链中基于信誉机制的分区快速共识方法 |
CN109831425A (zh) * | 2019-01-25 | 2019-05-31 | 中国联合网络通信集团有限公司 | 区块链共识方法、装置、设备及计算机可读存储介质 |
CN109886681A (zh) * | 2019-01-31 | 2019-06-14 | 北京瑞卓喜投科技发展有限公司 | 区块链共识方法及共识系统 |
WO2019127915A1 (zh) * | 2017-12-29 | 2019-07-04 | 北京奇虎科技有限公司 | 基于分布式一致性协议实现的数据读取方法及装置 |
CN109978516A (zh) * | 2019-03-06 | 2019-07-05 | 西安电子科技大学 | 区块链网络中区块的制造和同步方法、信息数据处理终端 |
CN109995536A (zh) * | 2019-03-15 | 2019-07-09 | 广州杰赛科技股份有限公司 | 一种区块链共识方法、装置及可读存储介质 |
CN110086821A (zh) * | 2019-05-07 | 2019-08-02 | 国网江苏省电力有限公司无锡供电分公司 | 基于区块链的电力物联网网关和电力物联网终端接入的认证方法 |
CN110113388A (zh) * | 2019-04-17 | 2019-08-09 | 四川大学 | 一种基于改进型聚类算法的区块链系统共识的方法和装置 |
CN110247774A (zh) * | 2019-06-28 | 2019-09-17 | 深圳市网心科技有限公司 | 一种区块链数据的共识方法及相关设备 |
CN110351133A (zh) * | 2019-06-28 | 2019-10-18 | 阿里巴巴集团控股有限公司 | 用于区块链系统中的主节点切换处理的方法及装置 |
CN110430248A (zh) * | 2019-07-23 | 2019-11-08 | 平安科技(深圳)有限公司 | 基于云服务的区块链构建方法、装置、介质及电子设备 |
CN110474986A (zh) * | 2019-08-20 | 2019-11-19 | 深圳前海微众银行股份有限公司 | 一种基于区块链系统的共识方法、装置及系统 |
CN110517141A (zh) * | 2019-08-27 | 2019-11-29 | 深圳前海微众银行股份有限公司 | 一种基于区块链系统的共识方法及装置 |
WO2019232789A1 (zh) * | 2018-06-08 | 2019-12-12 | 北京大学深圳研究生院 | 一种基于投票的共识方法 |
KR20190140826A (ko) * | 2018-06-12 | 2019-12-20 | 한국전자통신연구원 | 난스 증명 기반 분산합의 노드 선정 방법 및 장치 |
CN110784346A (zh) * | 2019-10-18 | 2020-02-11 | 深圳供电局有限公司 | 一种基于信誉值的pbft共识系统及方法 |
WO2020042792A1 (zh) * | 2018-08-31 | 2020-03-05 | 阿里巴巴集团控股有限公司 | 基于区块链的交易共识处理方法及装置、电子设备 |
KR102090723B1 (ko) * | 2019-12-12 | 2020-03-18 | 주식회사 립페이 | 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 제공 방법 |
CN110941859A (zh) * | 2018-09-21 | 2020-03-31 | 上海派链信息科技有限公司 | 用于区块链形成共识的方法、设备、计算机可读存储介质和计算机程序产品 |
CN111131209A (zh) * | 2019-12-16 | 2020-05-08 | 国网重庆市电力公司客户服务中心 | 一种改进的高效共识方法、系统、计算机设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US20190220768A1 (en) * | 2017-05-16 | 2019-07-18 | Peking University Shenzhen Graduate School | Constructing topology for satisfying partition tolerance in consortium blockchain consensus |
SG11201907346UA (en) * | 2018-12-13 | 2019-09-27 | Alibaba Group Holding Ltd | Performing a change of primary node in a distributed system |
-
2020
- 2020-06-16 CN CN202010545754.0A patent/CN111711526B/zh active Active
Patent Citations (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6584566B1 (en) * | 1998-08-27 | 2003-06-24 | Nortel Networks Limited | Distributed group key management for multicast security |
CN107800787A (zh) * | 2017-10-23 | 2018-03-13 | 广州百兴网络科技有限公司 | 一种分布式大数据实时交换共享的计算机网络系统 |
CN107819749A (zh) * | 2017-10-26 | 2018-03-20 | 平安科技(深圳)有限公司 | 基于以太坊的区块链系统和交易数据处理方法 |
CN108182635A (zh) * | 2017-12-18 | 2018-06-19 | 深圳前海微众银行股份有限公司 | 区块链共识方法、系统和计算机可读存储介质 |
WO2019127915A1 (zh) * | 2017-12-29 | 2019-07-04 | 北京奇虎科技有限公司 | 基于分布式一致性协议实现的数据读取方法及装置 |
WO2019232789A1 (zh) * | 2018-06-08 | 2019-12-12 | 北京大学深圳研究生院 | 一种基于投票的共识方法 |
KR20190140826A (ko) * | 2018-06-12 | 2019-12-20 | 한국전자통신연구원 | 난스 증명 기반 분산합의 노드 선정 방법 및 장치 |
CN109379397A (zh) * | 2018-08-31 | 2019-02-22 | 阿里巴巴集团控股有限公司 | 基于区块链的交易共识处理方法及装置、电子设备 |
WO2020042792A1 (zh) * | 2018-08-31 | 2020-03-05 | 阿里巴巴集团控股有限公司 | 基于区块链的交易共识处理方法及装置、电子设备 |
CN110941859A (zh) * | 2018-09-21 | 2020-03-31 | 上海派链信息科技有限公司 | 用于区块链形成共识的方法、设备、计算机可读存储介质和计算机程序产品 |
CN109547527A (zh) * | 2018-10-12 | 2019-03-29 | 广西师范大学 | 区块链中基于信誉机制的分区快速共识方法 |
CN109522362A (zh) * | 2018-10-17 | 2019-03-26 | 北京瑞卓喜投科技发展有限公司 | 基于区块链数据的非完全数据同步方法、系统及设备 |
CN109831425A (zh) * | 2019-01-25 | 2019-05-31 | 中国联合网络通信集团有限公司 | 区块链共识方法、装置、设备及计算机可读存储介质 |
CN109886681A (zh) * | 2019-01-31 | 2019-06-14 | 北京瑞卓喜投科技发展有限公司 | 区块链共识方法及共识系统 |
CN109978516A (zh) * | 2019-03-06 | 2019-07-05 | 西安电子科技大学 | 区块链网络中区块的制造和同步方法、信息数据处理终端 |
CN109995536A (zh) * | 2019-03-15 | 2019-07-09 | 广州杰赛科技股份有限公司 | 一种区块链共识方法、装置及可读存储介质 |
CN110113388A (zh) * | 2019-04-17 | 2019-08-09 | 四川大学 | 一种基于改进型聚类算法的区块链系统共识的方法和装置 |
CN110086821A (zh) * | 2019-05-07 | 2019-08-02 | 国网江苏省电力有限公司无锡供电分公司 | 基于区块链的电力物联网网关和电力物联网终端接入的认证方法 |
CN110351133A (zh) * | 2019-06-28 | 2019-10-18 | 阿里巴巴集团控股有限公司 | 用于区块链系统中的主节点切换处理的方法及装置 |
CN110247774A (zh) * | 2019-06-28 | 2019-09-17 | 深圳市网心科技有限公司 | 一种区块链数据的共识方法及相关设备 |
CN110430248A (zh) * | 2019-07-23 | 2019-11-08 | 平安科技(深圳)有限公司 | 基于云服务的区块链构建方法、装置、介质及电子设备 |
CN110474986A (zh) * | 2019-08-20 | 2019-11-19 | 深圳前海微众银行股份有限公司 | 一种基于区块链系统的共识方法、装置及系统 |
CN110517141A (zh) * | 2019-08-27 | 2019-11-29 | 深圳前海微众银行股份有限公司 | 一种基于区块链系统的共识方法及装置 |
CN110784346A (zh) * | 2019-10-18 | 2020-02-11 | 深圳供电局有限公司 | 一种基于信誉值的pbft共识系统及方法 |
KR102090723B1 (ko) * | 2019-12-12 | 2020-03-18 | 주식회사 립페이 | 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 제공 방법 |
CN111131209A (zh) * | 2019-12-16 | 2020-05-08 | 国网重庆市电力公司客户服务中心 | 一种改进的高效共识方法、系统、计算机设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
一种基于分组的区块链共识算法;张思贤;文捷;;计算机应用与软件;20200312(第03期);267-271+315 * |
区块链全局账本数据的拆分技术研究;于雷;金岩;;高技术通讯;20171215(第Z2期);4-17 * |
基于区块链审计的公钥分发方案;胡逸飞;熊焰;黄文超;;计算机工程;20190318(第05期);35-40 * |
Also Published As
Publication number | Publication date |
---|---|
CN111711526A (zh) | 2020-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111711526B (zh) | 一种区块链节点的共识方法及系统 | |
US20240048376A1 (en) | Methods and systems implemented in a network architecture with nodes capable of performing message-based transactions | |
WO2018223995A1 (zh) | 实现区块链跨链通信的方法、装置及系统 | |
CN109829718B (zh) | 一种基于存储应用场景的区块链多层级构架及其运行方法 | |
CN108810137A (zh) | 一种联盟区块链系统 | |
US7818370B2 (en) | Event server using clustering | |
US20210256016A1 (en) | Blockchain system and method | |
US20180308091A1 (en) | Fairness preserving byzantine agreements | |
CN110754070B (zh) | 最近交易在区块链网络上的快速传播 | |
Lev-Ari et al. | Fairledger: A fair blockchain protocol for financial institutions | |
WO2019042101A1 (zh) | 一种跨链交易方法及装置 | |
US7984094B2 (en) | Using distributed queues in an overlay network | |
CN104011701A (zh) | 内容传送网络 | |
CN111400112A (zh) | 分布式集群的存储系统的写入方法、装置及可读存储介质 | |
CN109547530A (zh) | 区域共识方法、系统及设备 | |
CN111597077B (zh) | 数据处理方法、装置、计算机设备以及存储介质 | |
US20230275771A1 (en) | Pre-execution of block chain transaction in parallel during block consensus | |
CN113067897B (zh) | 跨链交互方法及装置 | |
KR102260226B1 (ko) | 스마트 컨트랙트를 분산 처리하기 위한 블록체인 시스템 및 그 방법 | |
CN110730241B (zh) | 面向全局规模的区块链基础设施 | |
CN112001800B (zh) | 在区块链系统中进行业务处理的方法和装置 | |
US20200358597A1 (en) | Blockchain-based data processing | |
CN113518126A (zh) | 一种面向联盟链的交叉容错方法 | |
KR102130699B1 (ko) | 분산 트랜잭션 풀을 가지는 블록체인 기반 전자 투표 시스템의 운영 방법 | |
US20240028584A1 (en) | Distributed ledger system and method |
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 |