CN112600874B - 节点加入方法、装置、电子设备及可读存储介质 - Google Patents
节点加入方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN112600874B CN112600874B CN202011331871.3A CN202011331871A CN112600874B CN 112600874 B CN112600874 B CN 112600874B CN 202011331871 A CN202011331871 A CN 202011331871A CN 112600874 B CN112600874 B CN 112600874B
- Authority
- CN
- China
- Prior art keywords
- node
- transaction
- network
- joining
- blockchain network
- 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
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/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- 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
- 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/1042—Peer-to-peer [P2P] networks using topology management mechanisms
-
- 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/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)
- Accounting & Taxation (AREA)
- General Business, Economics & Management (AREA)
- Finance (AREA)
- Development Economics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种节点加入方法方法、装置、设备及存储介质。其中,所述节点加入方法应用于专属区块链网络的任一节点,所述方法包括:获得节点加入交易和公共区块链网络对所述节点加入交易的执行结果,所述节点加入交易中包含:准备加入专属区块链网络的新节点的节点信息、以及所述新节点准备加入的专属区块链网络的网络ID;如果所述执行结果表征所述公共区块链网络已经在其维护的全局节点表中添加了所述新节点的节点信息,则判断自身所属的专属区块链网络的网络ID是否等于所述节点加入交易包含的网络ID;若是,则在自身维护的局部节点表中添加所述新节点的节点信息;若否,则在自身维护的全局节点表中添加所述新节点的节点信息。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种节点加入方法、装置、电子设备及可读存储介质。
背景技术
区块链技术实现于区块链网络之上,区块链网络中的分布式节点设备(以下简称为节点)通过运行区块链程序,从而实现区块数据的生成和共识,最终实现了数据的防篡改机制,为业务开展提供了安全可信的技术新思路。
区块链技术可应用至多种业务场景,例如金融领域、电子商务领域、商品或原材料溯源领域、电子存证领域等,由于区块链技术实现了数据防篡改机制,因此利用区块链技术开展业务,能解决业务参与各方之间的信任危机。
相关技术中,随着业务开展多样性的提高,产生了在两个联盟链之间进行跨链交易的需求,或者在两个私有链之间进行跨链交易的需求。为此,技术人员开发出支持跨链交易的区块链网络系统,该区块链网络系统中包括两个或多个联盟链,或者包括两个或多个私有链。在此基础上,又产生了新节点加入联盟链或私有链的需求。然而,对于支持跨链交易的区块链网络系统而言,如何实现新节点加入,是一个亟待解决的问题。
发明内容
本发明实施例的目的在于提供一种节点加入方法方法、装置、设备及存储介质,具体技术方案如下:
在本发明实施例的第一方面,提供一种节点加入方法,应用于专属区块链网络的任一节点,该节点维护有局部节点表和全局节点表,所述局部节点表用于记录该专属区块链网络的各节点的节点信息,所述全局节点表用于记录所有专属区块链网络的各节点的节点信息;所述方法包括:
获得节点加入交易和公共区块链网络对所述节点加入交易的执行结果,所述节点加入交易中包含:准备加入专属区块链网络的新节点的节点信息、以及所述新节点准备加入的专属区块链网络的网络ID;
如果所述执行结果表征所述公共区块链网络已经在其维护的全局节点表中添加了所述新节点的节点信息,则判断自身所属的专属区块链网络的网络ID是否等于所述节点加入交易包含的网络ID;
若是,则在自身维护的局部节点表中添加所述新节点的节点信息;
若否,则在自身维护的全局节点表中添加所述新节点的节点信息。
在本发明实施例的第二方面,提供一种节点加入装置,应用于专属区块链网络的任一节点,该节点维护有局部节点表和全局节点表,所述局部节点表用于记录该专属区块链网络的各节点的节点信息,所述全局节点表用于记录所有专属区块链网络的各节点的节点信息;所述装置包括:
数据获取模块,用于获得节点加入交易和公共区块链网络对所述节点加入交易的执行结果,所述节点加入交易中包含:准备加入专属区块链网络的新节点的节点信息、以及所述新节点准备加入的专属区块链网络的网络ID;
网络ID判断模块,如果所述执行结果表征所述公共区块链网络已经在其维护的全局节点表中添加了所述新节点的节点信息,则所述网络ID判断模块用于判断自身所属的专属区块链网络的网络ID是否等于所述节点加入交易包含的网络ID;
节点表更新模块,若自身所属的专属区块链网络的网络ID等于所述节点加入交易包含的网络ID,则所述节点表更新模块用于在自身维护的局部节点表中添加所述新节点的节点信息;若自身所属的专属区块链网络的网络ID不等于所述节点加入交易包含的网络ID,则所述节点表更新模块用于在自身维护的全局节点表中添加所述新节点的节点信息。
在本发明实施例的第三方面,提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于在执行存储器上所存放的程序时,实现本发明任一实施例所提供的节点加入方法。
在本发明实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任一实施例所提供的节点加入方法。
本发明中,由于专属区块链网络的节点运维有局部节点表,局部节点表用于记录该专属区块链网络的各节点的节点信息,因此节点可以根据其运维的局部节点表,确定其所属的专属区块链网络中包含哪些节点。又由于专属区块链网络的节点还运维有全局节点表,全局节点表用于记录所有专属区块链网络的各节点的节点信息,因此节点还可以根据其运维的全局节点表,确定所有专属区块链网络总共包括哪些节点。
本发明中,专属区块链网络的节点获得节点加入交易和公共区块链网络对该节点加入交易的执行结果,该节点加入交易中包含:准备加入专属区块链网络的新节点的节点信息、以及新节点准备加入的专属区块链网络的网络ID。专属区块链网络的节点判断其自身所属的专属区块链网络的网络ID是否等于所述节点加入交易包含的网络ID。
若是,则说明节点所属的专属区块链网络,正是新节点准备加入的专属区块链网络。在此情况下,节点将新节点的节点信息添加至其维护的局部节点表,从而承认新节点可加入该专属区块链网络。节点后续在执行链内任务时,可以通过查询其运维的局部节点表,从而确认新节点的身份。
若否,则说明节点所属的专属区块链网络,不是新节点准备加入的专属区块链网络。在此情况下,节点将新节点的节点信息添加至其维护的全局节点表,从而承认新节点可加入整个区块链系统。节点后续在执行跨链任务时,可以通过查询其维护的全局节点表,从而确认新节点的身份。
此外本发明中,在公共区块链网络的执行结果表征“公共区块链网络已经在其维护的全局节点表中添加了新节点的节点信息”的情况下,专属区块链网络的节点才会选择更新局部节点表和/或全局节点表。换言之,当公共区块链网络已经在其维护的全局节点表中添加了新节点的节点信息后,也即公共区块链网络承认新节点可以加入整个区块链网络系统后,各专属区块链网络的节点才会选择更新局部节点表和/或全局节点表。如此,使得所有专属区块链网络的各节点在新节点加入这一事件上达成共识。
可见,通过实施本发明,对于支持跨链交易的区块链网络系统而言,能顺利实现新节点的加入。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,以下描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1(a)是本发明一实施例提出的节点加入方法的前半段的示意图;
图1(b)是本发明一实施例提出的节点加入方法的中半段的示意图;
图1(c)是本发明一实施例提出的节点加入方法的后半段的示意图;
图2是本发明一实施例提出的节点加入方法的流程图;
图3是本发明另一实施例提出的节点加入方法的流程图;
图4是本发明一实施例提出的节点加入装置的示意图;
图5是本发明一实施例提出的电子设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
区块链技术实现于区块链网络之上,区块链网络中的分布式节点设备(以下简称为节点)通过运行区块链程序,从而实现区块数据的生成和共识,最终实现了数据的防篡改机制,为业务开展提供了安全可信的技术新思路。
相关技术中,随着业务开展多样性的提高,产生了在两个联盟链之间进行跨链交易的需求,或者在两个私有链之间进行跨链交易的需求。为此,技术人员开发出支持跨链交易的区块链网络系统,该区块链网络系统中包括两个或多个联盟链,或者包括两个或多个私有链。在此基础上,又产生了新节点加入联盟链或私有链的需求。然而,对于支持跨链交易的区块链网络系统而言,如何实现新节点加入,是一个亟待解决的问题。
有鉴于此,本发明通过以下实施例,提出节点加入方法、装置、电子设备及可读存储介质,旨在针对支持跨链交易的区块链网络系统,灵活地实现节点加入。
参考图1(a),图1(a)是本发明一实施例提出的节点加入方法的前半段的示意图。如图1(a)所示,区块链网络系统包括公共区块链网络和多个专属区块链网络。
需要说明的是,所谓公共区块链网络,并非是指该区块链网络一定是公有链,实际上公共区块链网络可以是公有链、联盟链或者私有链,且优选为联盟链或私有链。公共区块链网络的作用之一在于:对不同专属区块链网络之间的跨链交易进行见证。
还需要说明的是,所谓专属区块链网络,通常为联盟链或私有链。在专属区块链网络内执行的交易,通常具有一定的私密性。
当本发明应用至金融领域时,示例地,一个银行的多个分布式节点设备可以组成一个专属区块链网络。另一个银行的多个分布式节点设备可以组成另一个专属区块链网络。第三方机构的多个分布式节点设备组成公共区块链网络,或者多个银行的多个分布式节点设备共同组成公共区块链网络。
如图1(a)所示,每个专属区块链网络对应一个网关,每个专属区块链网络包括多个分布式节点设备(以下简称为节点),多个节点各自运行区块链程序以实现区块链技术,网关通过与专属区块链网络的任一节点或若干指定节点通信,从而实现与专属区块链网络的通信。同样地,公共区块链网络也包括多个分布式节点设备(以下简称为节点),多个节点各自运行区块链程序以实现区块链技术,网关通过与公共区块链网络的任一节点或若干指定节点通信,从而实现与公共区块链网络的通信。如此,每个专属区块链网络通过其对应的网关,实现与公共区块链网络的通信。
如图1(a)所示,每个专属区块链网络包括的多个节点中,存在一个主节点。该主节点是从多个节点中定期选举出的节点,因此主节点并非固定为某一节点。主节点的作用之一在于:向其他区块链网络提交交易。对于主节点的具体工作方式,请参见下文,此处不展开赘述。
以上,本发明介绍了区块链网络系统的组成和系统内各网络之间的通信方式。以下,本发明结合图1(a),介绍节点加入过程。
需要提前说明的是,每个专属区块链网络的每个节点均维护有局部节点表和全局节点表。其中,节点的局部节点表用于记录该节点所属的专属区块链网络的各节点的节点信息。节点的全局节点表用于记录所有专属区块链网络的各节点的节点信息。此外,节点的全局节点表中还可以记录有公共区块链网络的各节点的节点信息。
为便于理解,专属区块链网络A的节点a1的局部节点表中,记录有专属区块链网络A的各节点的节点信息,包括节点a1、节点a2、节点a3…等节点的节点信息。节点a1的全局节点表中,记录有专属区块链网络A、专属区块链网络B、专属区块链网络C…等所有专属区块链网络的各节点的节点信息,包括节点a1、节点a2、节点a3…节点b1、节点b2、节点b3…节点c1、节点c2、节点c3…等节点的节点信息。
专属区块链网络B的节点b1的局部节点表中,记录有专属区块链网络B的各节点的节点信息,包括节点b1、节点b2、节点b3…等节点的节点信息。节点b1的全局节点表中,记录有专属区块链网络A、专属区块链网络B、专属区块链网络C…等所有专属区块链网络的各节点的节点信息,包括节点a1、节点a2、节点a3…节点b1、节点b2、节点b3…节点c1、节点c2、节点c3…等节点的节点信息。
可见本发明中,由于专属区块链网络的节点运维有局部节点表,局部节点表用于记录该专属区块链网络的各节点的节点信息,因此节点可以根据其运维的局部节点表,确定其所属的专属区块链网络中包含哪些节点。又由于专属区块链网络的节点还运维有全局节点表,全局节点表用于记录所有专属区块链网络的各节点的节点信息,因此节点还可以根据其运维的全局节点表,确定所有专属区块链网络总共包括哪些节点。
此外,公共区块链网络的每个节点也维护有局部节点表和全局节点表,每个节点的局部节点表用于记录公共区块链网络的各节点的节点信息。每个节点的全局节点表用于记录所有专属区块链网络的各节点的节点信息。此外,节点的全局节点表中还可以记录有公共区块链网络的各节点的节点信息。
本发明中,节点的节点信息包括但不限于:节点ID、节点的公钥。基于此,节点之间在进行通信时,作为消息发起方的节点可以对消息进行签名,并将自身的节点ID和签名后的消息一并发送给其他节点。其他节点接收到节点ID和签名后的消息后,可以通过查询局部节点表或全局节点表,读取到该节点ID对应的公钥,并利用读取的公钥对签名后的消息进行签名验证,从而确认消息发起方的身份是否合法,或者确认消息发起方的消息是否被篡改。
需要说明的是,为简化附图,凡是每个节点均需要参与的步骤,在图1(a)中仅示意性地示出了一个或几个节点参与该步骤,而没有完整地示出所有节点均参与该步骤。
如图1(a)所示,当一个新节点准备加入某一专属区块链网络时,该新节点生成一个节点加入交易。为了便于将该节点加入交易与下文中的其他节点加入交易区分,以下将该节点加入交易称为“节点加入交易-1”。新节点将生成的节点加入交易-1提交给准备加入的专属区块链网络的任一节点。
示例地,节点加入交易-1的交易结构如表1所示。
表1节点加入交易-1的交易结构表
其中,交易ID是节点加入交易-1的唯一性标识。网络ID是新节点准备加入的专属区块链网络的网络ID,例如新节点准备加入专属区块链网络A,则交易结构中的网络ID等于专属区块链网络A的网络ID。交易类型用于表征交易是跨链交易还是链内交易,本发明中,节点加入交易-1属于跨链交易类型。公开交易部分是交易结构的核心内容之一,是需要在公共区块链网络内执行的部分。私密交易部分也是交易结构的核心内容之一,是需要在新节点准备加入的专属区块链网络内执行的部分,通常具有私密性。新节点的节点信息包括但不限于:新节点的节点ID、新节点的公钥等。投票数据和预执行结果暂时为空,在节点加入的后续流程中会被依次补充。
如图1(a)所示,专属区块链网络的节点a1接收到新节点提交的节点加入交易-1后,从交易结构中读取交易类型,并识别出交易类型为跨链交易类型。响应于此,节点a1根据跨链交易类型对应的投票规则,将节点加入交易-1发送给投票规则所约定的若干节点进行投票。
为便于理解,示例地,投票规则约定:针对节点加入交易-1,需要由节点a2、节点a3、以及节点a5投票。因此节点a1将节点加入交易-1发送给节点a2、节点a3、以及节点a5进行投票。
可选地,在一些具体实施方式中,节点在进行投票时,可以读取节点加入交易-1携带的业务参数,例如节点性能参数、准备加入的专属区块链网络的网络ID等。然后判断读取的业务参数是否符合预设的业务要求,若符合,则该节点投出同意新节点加入的投票,若不符合,则该节点投出不同意新节点加入的投票。
可选地,在另一些具体实施方式中,节点在进行投票时,可以将节点加入交易-1显示给该节点的管理员,并接收管理员对节点加入交易-1的投票。管理员的投票用于表征:该节点是否同意新节点加入。
需要说明的是,上述两种投票方式仅作为示例,本发明在具体实施时,可以采用不同于上述两种投票方式的其他方式。
如图1(a)所示,专属区块链网络的节点a1接收各节点返回的投票数据,并将各节点的投票数据填充至节点加入交易-1,以及将填充有投票数据的节点加入交易-1广播给专属区块链网络A的每个节点。
如图1(a)所示,专属区块链网络A的主节点对节点加入交易-1进行改造,得到节点加入交易-2,并将节点加入交易-2提交给公共区块链网络。
具体实现时,当每个节点接收到节点a1广播的节点加入交易-1后,对节点加入交易-1进行存储,并将节点加入交易-1标记为待发出信息。并且,每个节点周期性地(例如每5秒)判断一下自身是否为主节点。如果自身为主节点,则将待发出的节点加入交易-1改造为节点加入交易-2,以及将节点加入交易-2发向公共区块链网络。此外,主节点将节点加入交易-2提交给公共区块链网络之后,主节点可以向各节点发送提示信息,使得各节点将节点加入交易-1标记为已发送信息。
本发明中,由于专属区块链网络的每个节点都存储有节点加入交易-1,任一节点被选举成主节点后,都可以从本地获取到待发送的节点加入交易-1,并将节点加入交易-1改造为节点加入交易-2,再提交给公共区块链网络。因此,通过上述方式向公共区块链网络提交节点加入交易-2,可以使得节点加入交易-2被更可靠地提交给公共区块链网络,不易造成节点加入交易-2的丢失。
其中,主节点在改造节点加入交易-1时,具体地:主节点将节点加入交易-1中的私密交易部分删除,并变更节点加入交易-1的交易ID,最终得到改造后的节点加入交易-1,也即节点加入交易-2。
示例地,节点加入交易-2的交易结构如表2所示。
表2节点加入交易-2的交易结构表
通过与表1对比可知,节点加入交易-2中删除了私密交易部分,从而避免私密数据被泄露给公共区块链网络和其他专属区块链网络。节点加入交易-2中添加了投票数据。节点加入交易-2的交易ID不同于节点加入交易-1的交易ID。在一些具体实施方式中,为了得到节点加入交易-2的交易ID,主节点可以对节点加入交易-1的节点ID的首位字符进行修改,例如将首字符“0”修改成首字符“1”。
其中,主节点为了将节点加入交易-2提交给公共区块链网络,可以将节点加入交易-2发送给专属区块链网络A对应的网关a,再由网关a将节点加入交易-2发送给公共区块链网络内的某个节点。如此,节点加入交易-2被提交给公共区块链网络。
如图1(a)所示,公共区块链网络的节点1接收到节点加入交易-2后,可以将节点加入交易-2提交给公共区块链网络的主节点。主节点响应于节点加入交易-2,生成一个交易包package,该交易包package中包含节点加入交易-2。主节点将该交易包package分发给公共区块链网络的每个节点。
如图1(a)所示,公共区块链网络的每个节点接收到交易包package后,从交易包package中读取出节点加入交易-2,并执行节点加入交易-2。其中,每个节点在执行节点加入交易-2时,具体地,从节点加入交易-2中读取出投票数据,并根据预设的第一判断规则,判断专属区块链网络A是否同意新节点加入,从而生成判断结果。每个节点将其生成的判断结果及节点加入交易-2作为区块数据,从而生成新的公共区块。本发明中,将公共区块链网络生成的区块称为公共区块。
为便于理解,示例地,例如第一判断规则为:如果一个专属区块链网络的所有投票中,同意新节点加入的票数,超过该专属区块链网络的全部投票节点数量的预设比例(例如60%),则确定该专属区块链网络同意新节点加入。假设专属区块链网络A的全部投票节点的数量为20,而专属区块链网络A的所有投票中,同意新节点加入的票数为18票,由于票数18超过了20的60%,因此确定专属区块链网络A同意新节点加入。
需要说明的是,上述第一判断规则仅作为示例,不应理解为是对本发明的限定。本发明在具体实施时,可以采用不同于上述第一判断规则的其他判断规则。
参考图1(b),图1(b)是本发明一实施例提出的节点加入方法的中半段的示意图。需要说明的是,为简化附图,凡是每个节点均需要参与的步骤,在图1(b)中仅示意性地示出了一个或几个节点参与该步骤,而没有完整地示出所有节点均参与该步骤。
如图1(b)所示,每个专属区块链网络的网关持续地同步公共区块链网络生成的公共区块,每个专属区块链网络的节点又持续地从相应网关处同步这些公共区块。
例如图1(b)中,专属区块链网络A的网关a持续地同步公共区块链网络生成的公共区块,专属区块链网络A的各节点又持续地从网关a同步这些公共区块。同样地,专属区块链网络B的网关b持续地同步公共区块链网络生成的公共区块,专属区块链网络B的各节点又持续地从网关b同步这些公共区块。
如图1(b)所示,当专属区块链网络A的每个节点从同步到的公共区块中读取到判断结果和节点加入交易-2后,节点从节点加入交易-2中读取网络ID,并判断该网络ID是否等于专属区块链网络A的网络ID。如果等于,则说明新节点准备加入的专属区块链网络是专属区块链网络A,因此节点需要继续执行后续的节点加入流程。如果不等于,则说明新节点准备加入的专属区块链网络不是专属区块链网络A,因此节点不需要执行后续的节点加入流程。
由于节点加入交易-2中的网络ID等于专属区块链网络A的网络ID,因此专属区块链网络A的每个节点需要继续执行下述流程。
而对于专属区块链网络B而言,由于节点加入交易-2中的网络ID不等于专属区块链网络B的网络ID,因此专属区块链网络B的每个节点不需要继续执行下述流程。
如图1(b)所示,专属区块链网络A的每个节点在确定节点加入交易-2的网络ID等于专属区块链网络A的网络ID之后,专属区块链网络A的每个节点识别公共区块中的判断结果,如果该判断结果表征:公共区块链网络确定专属区块链网络A同意新节点加入,则专属区块链网络A的节点对预先存储的节点加入交易-1实施预执行操作,得到预执行结果。
此外,如果该判断结果表征:公共区块链网络确定专属区块链网络A不同意新节点加入,则专属区块链网络A的节点不需要继续执行后续的节点加入流程,从而终止节点加入流程。
本发明中,对节点加入交易-2实施预执行操作,具体是指:执行节点加入交易-2,但是得到的执行结果不会被保存至账本数据库中。换言之,虽然执行节点加入交易-2,但是得到的执行结果不会被上链保存。
具体实现时,专属区块链网络A的每个节点从节点加入交易-2中读取出公钥,然后利用读取的公钥,针对新节点对节点加入交易的签名数据,进行签名验证,从而验证节点加入交易的合法性,得到合法性验证结果。该合法性验证结果可以作为预执行结果。
如图1(b)所示,专属区块链网络A的每个节点将预执行结果提交给专属区块链网络A的主节点。主节点接收到各节点的预执行结果后,对节点加入交易-2进行改造,获得改造后的节点加入交易-2,以下将改造后的节点加入交易-2简称为“节点加入交易-3”。
示例地,节点加入交易-3的交易结构如表3所示。
表3节点加入交易-3的交易结构表
通过与表1和表2对比可知,节点加入交易-3中不包含私密交易部分,从而避免私密数据被泄露给公共区块链网络和其他专属区块链网络。节点加入交易-3中进一步添加了预执行结果。节点加入交易-3的交易ID等于节点加入交易-1的交易ID。
如图1(b)所示,专属区块链网络A的主节点将节点加入交易-3提交给公共区块链网络。
具体实现时,主节点将节点加入交易-3发送给专属区块链网络A对应的网关a,再由网关a将节点加入交易-3发送给公共区块链网络内的某个节点。如此,节点加入交易-3被提交给公共区块链网络。
如图1(b)所示,公共区块链网络的节点1接收到节点加入交易-3后,可以将节点加入交易-3提交给公共区块链网络的主节点。主节点响应于节点加入交易-3,生成一个交易包package,该交易包package中包含节点加入交易-3。主节点将该交易包package分发给公共区块链网络的每个节点。
如图1(b)所示,公共区块链网络的每个节点接收到交易包package后,从交易包中读取出节点加入交易-3,并执行节点加入交易-3,从而生成新的公共区块。
其中,公共区块链网络的节点在执行节点加入交易-3时,具体地:
1、从节点加入交易-3中读取预执行结果,并根据读取的预执行结果和预设的第二判断规则,判断专属区块链网络A是否成功预执行了节点加入交易-2。
2、如果确定专属区块链网络A成功预执行了节点加入交易-2,则从节点加入交易-3读取公开交易部分,并执行公开交易部分,从而在节点维护的全局节点表中添加新节点的节点信息,以更新全局节点表。此外,将更新后的全局节点表和节点加入交易-3作为区块数据,生成新的公共区块。
3、如果确定专属区块链网络A未成功预执行节点加入交易-2,则直接得到执行失败的执行结果,并将执行失败的执行结果和节点加入交易-3作为区块数据,生成新的公共区块。
为便于理解,示例地,例如第二判断规则为:如果专属区块链网络的所有预执行结果中,表征预执行成功的预执行结果,超过该专属区块链网络的全部节点数量的预设比例(例如60%),则确定该专属区块链网络成功预执行了节点加入交易-2。假设专属区块链网络A的全部节点的数量为50,而专属区块链网络A的所有预执行结果中,表征预执行成功的预执行结果为47个,由于47超过了50的60%,因此确定专属区块链网络A成功预执行了节点加入交易-2。
参考图1(c),图1(c)是本发明一实施例提出的节点加入方法的后半段的示意图。需要说明的是,为简化附图,凡是每个节点均需要参与的步骤,在图1(c)中仅示意性地示出了一个或几个节点参与该步骤,而没有完整地示出所有节点均参与该步骤。
如前所述,以及如图1(c)所示,每个专属区块链网络的网关持续地同步公共区块链网络生成的公共区块,每个专属区块链网络的节点又持续地从相应网关处同步这些公共区块。
例如图1(c)中,专属区块链网络A的网关a持续地同步公共区块链网络生成的公共区块,专属区块链网络A的各节点又持续地从网关a同步这些公共区块。同样地,专属区块链网络B的网关b持续地同步公共区块链网络生成的公共区块,专属区块链网络B的各节点又持续地从网关b同步这些公共区块。
如图1(c)所示,当专属区块链网络A的每个节点从同步到的公共区块中读取到执行结果和节点加入交易-3后,节点识别公共区块中的执行结果。如果该执行结果表征:公共区块链网络已经在其维护的全局节点表中添加了新节点的节点信息,则说明公共区块链网络已经承认并见证了新节点的加入,因此节点需要继续执行后续的节点加入流程。如果该执行结果表征:公共区块链网络执行失败(也即公共区块链网络没有在其维护的全局节点表中添加新节点的节点信息),则说明公共区块链网络不承认也未见证新节点的加入,因此节点不需要执行后续的节点加入流程。
如图1(c)所示,当专属区块链网络A的节点继续执行后续的节点加入流程时,每个节点从节点加入交易-3中读取网络ID,并判断该网络ID是否等于专属区块链网络A的网络ID。如果等于,则说明新节点准备加入的专属区块链网络是专属区块链网络A。如果不等于,则说明新节点准备加入的专属区块链网络不是专属区块链网络A。
对于专属区块链网络A的各节点而言,由于节点加入交易-3中的网络ID等于专属区块链网络A的网络ID,继而,专属区块链网络A的节点从本地获取节点加入交易-1中的私密交易部分,并执行私密交易部分,从而在自身维护的局部节点表中添加新节点的节点信息,以更新局部节点表。此外,专属区块链网络A的节点还从节点加入交易-3中读取公开交易部分,并执行公开交易部分,从而在自身维护的全局节点表中添加新节点的节点信息,以更新全局节点表。
对于专属区块链网络B的各节点而言,由于节点加入交易-3中的网络ID不等于专属区块链网络B的网络ID,继而,专属区块链网络B的节点仅从节点加入交易-3中读取公开交易部分,并执行公开交易部分,从而在自身维护的全局节点表中添加新节点的节点信息,以更新全局节点表。
通过实施本发明,可以达到以下有益效果:
由于专属区块链网络的节点运维有局部节点表,局部节点表用于记录该专属区块链网络的各节点的节点信息,因此节点可以根据其运维的局部节点表,确定其所属的专属区块链网络中包含哪些节点。又由于专属区块链网络的节点还运维有全局节点表,全局节点表用于记录所有专属区块链网络的各节点的节点信息,因此节点还可以根据其运维的全局节点表,确定所有专属区块链网络总共包括哪些节点。
此外,专属区块链网络的节点获得节点加入交易和公共区块链网络对该节点加入交易的执行结果,该节点加入交易中包含:准备加入专属区块链网络的新节点的节点信息、以及新节点准备加入的专属区块链网络的网络ID。专属区块链网络的节点判断其自身所属的专属区块链网络的网络ID是否等于所述节点加入交易包含的网络ID。
若是,则说明节点所属的专属区块链网络,正是新节点准备加入的专属区块链网络。在此情况下,节点将新节点的节点信息添加至其维护的局部节点表,从而承认新节点可加入该专属区块链网络。节点后续在执行链内任务时,可以通过查询其运维的局部节点表,从而确认新节点的身份。
若否,则说明节点所属的专属区块链网络,不是新节点准备加入的专属区块链网络。在此情况下,节点将新节点的节点信息添加至其维护的全局节点表,从而承认新节点可加入整个区块链系统。节点后续在执行跨链任务时,可以通过查询其维护的全局节点表,从而确认新节点的身份。
此外本发明中,在公共区块链网络的执行结果表征“公共区块链网络已经在其维护的全局节点表中添加了新节点的节点信息”的情况下,专属区块链网络的节点才会选择更新局部节点表和/或全局节点表。换言之,当公共区块链网络已经在其维护的全局节点表中添加了新节点的节点信息后,也即公共区块链网络承认新节点可以加入整个区块链网络系统后,各专属区块链网络的节点才会选择更新局部节点表和/或全局节点表。如此,可以使得所有专属区块链网络的各节点在新节点加入这一事件上,达成共识。
可见,通过实施本发明,对于支持跨链交易的区块链网络系统而言,能顺利实现新节点的加入。
此外本发明中,公共区块链网络会获得专属区块链网络的投票数据,并根据投票数据,判断专属区块链网络是否同意新节点加入,以及将判断结果作为区块数据记录至区块链。如此,公共区块链网络对新节点能否加入这一事件进行了见证。此外,专属区块链网络的节点从同步到的公共区块中读取到判断结果后,仅在判断结果表征“公共区块链网络确定专属区块链网络同意新节点加入”的情况下,才继续执行后续的节点加入流程。如此,可以防止以下情况发生:在整个专属区块链网络不同意新节点加入时,专属区块链网络内的少数节点继续执行节点加入流程。
此外本发明中,在专属区块链网络成功预执行节点加入原始交易的情况下,公共区块链网络才执行节点加入交易。专属区块链网络在获得公共区块链网络对节点加入交易的执行结果后,才继续执行后续的节点加入流程。如此,可以有效避免以下情况的发生:专属区块链网络成功执行节点加入原始交易(也即承认新节点的加入),而公共区块链网络未成功执行节点加入交易(也即不承认新节点的加入),其他专属区块链网络获得公共区块链网络的执行失败的执行结果后,不对全局节点表进行更新(也即不承认新节点的加入),导致各区块链网络在新节点加入这一事件上未达成共识。
以上,本发明通过较佳实施例,提出了节点加入方法。以下,本发明通过另一些实施例,提出另一些节点加入方法。需要说明的是,以下实施例可与以上实施例相互参照。还需要说明的是,以下实施例提出的节点加入方法在实施期间,并不一定依赖于上述附图所示的区块链网络系统。
参考图2,图2是本发明一实施例提出的节点加入方法的流程图,该节点加入方法应用于专属区块链网络的任一节点,该节点维护有局部节点表和全局节点表,所述局部节点表用于记录该专属区块链网络的各节点的节点信息,所述全局节点表用于记录所有专属区块链网络的各节点的节点信息。
如前所述,所谓公共区块链网络,并非是指该区块链网络一定是公有链,实际上公共区块链网络可以是公有链、联盟链或者私有链,且优选为联盟链或私有链。公共区块链网络的作用之一在于:对不同专属区块链网络之间的跨链交易进行见证。所谓专属区块链网络,通常为联盟链或私有链。在专属区块链网络内执行的交易,通常具有一定的私密性。
如图2所示,该节点加入方法包括以下步骤:
步骤S21:获得节点加入交易和公共区块链网络对所述节点加入交易的执行结果,所述节点加入交易中包含:准备加入专属区块链网络的新节点的节点信息、以及所述新节点准备加入的专属区块链网络的网络ID。
可选地,在一些具体实施方式中,参考前述较佳实施例,节点可以通过同步公共区块链网络的公共区块,从而从公共区块中获取节点加入交易和公共区块链网络对该节点加入交易的执行结果。其中,所述的节点加入交易对应较佳实施例中的节点加入交易-3。
可选地,在另一些具体实施方式中,公共区块链网络的节点在执行完节点加入交易后,可以直接将节点加入交易和执行结果发送给各个专属区块链网络的各节点。如此,专属区块链网络的节点被动地接收公共区块链网络发来的节点加入交易和执行结果。
可选地,在又一些具体实施方式中,专属区块链网络的节点从公共区块链网络处获得公共区块链网络对节点加入交易的执行结果,而从另一专属区块链网络处获得节点加入交易。或者,专属区块链网络的节点从公共区块链网络处获得公共区块链网络对节点加入交易的执行结果,而从新节点处获得节点加入交易。
步骤S22:如果所述执行结果表征所述公共区块链网络已经在其维护的全局节点表中添加了所述新节点的节点信息,则判断自身所属的专属区块链网络的网络ID是否等于所述节点加入交易包含的网络ID。
本发明中,当专属区块链网络的节点获得节点加入交易和公共区块链网络对该节点加入交易的执行结果后,专属区块链网络对执行结果进行识别,从而判断该执行结果是否表征:公共区块链网络已经在其维护的全局节点表中添加了新节点的节点信息。
如果执行结果表征公共区块链网络已经在其维护的全局节点表中添加了新节点的节点信息,则说明公共区块链网络已经承认并见证了新节点的加入。如此,专属区块链网络的节点继续执行步骤S22,从而判断自身所属的专属区块链网络的网络ID是否等于节点加入交易包含的网络ID。
如果执行结果表征公共区块链网络没有在其维护的全局节点表中添加新节点的节点信息,则说明公共区块链网络不承认新节点的加入,也未见证新节点的加入。如此,专属区块链网络的节点可以终止节点加入流程,从而拒绝新节点的加入。
需要说明的是,本发明的等同技术方案包括:在执行步骤S22时,首先判断自身所属的专属区块链网络的网络ID是否等于所述节点加入交易包含的网络ID,若是,再判断执行结果是否表征:公共区块链网络已经在其维护的全局节点表中添加了新节点的节点信息。应当理解的,该等同技术方案涵盖在本发明的保护范围之内。
步骤S23:若是,则在自身维护的局部节点表中添加所述新节点的节点信息。
换言之,如果节点自身所属的专属区块链网络的网络ID等于节点加入交易包含的网络ID,则节点在自身维护的局部节点表中添加新节点的节点信息。
可选地,在一些具体实施方式中,参考前述较佳实施例,如果节点自身所属的专属区块链网络的网络ID等于所述节点加入交易包含的网络ID,则节点还会在自身维护的全局节点表中添加所述新节点的节点信息。如此,每个专属区块链网络的每个节点,均维护有数据相互一致的全局节点表。
步骤S24:若否,则在自身维护的全局节点表中添加所述新节点的节点信息。
换言之,如果节点自身所属的专属区块链网络的网络ID不等于节点加入交易包含的网络ID,则节点仅在自身维护的全局节点表中添加新节点的节点信息,而不会在自身维护的局部节点表中添加新节点的节点信息。
通过执行上述步骤S21至步骤S24,在公共区块链网络的执行结果表征:公共区块链网络已经在其维护的全局节点表中添加了新节点的节点信息的情况下,专属区块链网络的节点才会选择更新局部节点表和/或全局节点表。换言之,当公共区块链网络已经在其维护的全局节点表中添加了新节点的节点信息后,也即公共区块链网络承认新节点可以加入整个区块链网络系统后,各专属区块链网络的节点才会选择更新局部节点表和/或全局节点表。如此,使得所有专属区块链网络的各节点在新节点加入这一事件上达成共识。
可见,通过执行上述步骤S21至步骤S24,对于支持跨链交易的区块链网络系统而言,能顺利实现新节点的加入。
可选地,在一些具体实施方式中,如前所述,每个节点的节点信息中包含该节点的公钥和节点ID。
可选地,在一些具体实施方式中,参考前述较佳实施例,在获得节点加入交易和公共区块链网络对所述节点加入交易的执行结果之前,如图3所示,还可以包括以下步骤:
步骤S20-1:接收所述新节点发送的节点加入原始交易,并将接收到的节点加入原始交易广播给所述专属区块链网络的其他节点;或者,接收所述专属区块链网络的其他节点广播的节点加入原始交易。
步骤S20-2:预执行所述节点加入原始交易,得到预执行结果;其中,所述预执行所述节点加入原始交易,包括:验证所述节点加入原始交易的合法性;所述预执行结果表征所述节点加入原始交易是否通过合法性验证。
步骤S20-3:将所述预执行结果发送给所述专属区块链网络的主节点,使得所述主节点根据节点加入原始交易和各节点的预执行结果,生成所述节点加入交易,并将所述节点加入交易提交给所述公共区块链网络,使得所述公共区块链网络根据各节点的预执行结果,判断所述专属区块链网络是否成功预执行了所述节点加入原始交易,并在判断结果为是的情况下,执行所述节点加入交易,得到所述执行结果;其中,所述节点加入交易中携带各节点的预执行结果。
其中,节点加入原始交易对应较佳实施例中的节点加入交易-1,主节点生成的节点加入交易对应较佳实施例中的节点加入交易-3。图3所示的过程,与较佳实施例基本对应,但是省略了较佳实施例中的以下过程:专属区块链网络内的投票过程、公共区块链网络根据投票数据判断专属区块链网络是否同意新节点加入的过程。
上述具体实施方式中,在专属区块链网络成功预执行节点加入原始交易的情况下,公共区块链网络才执行节点加入交易。专属区块链网络在获得公共区块链网络对节点加入交易的执行结果后,才继续执行后续的节点加入流程。如此,可以有效避免以下情况的发生:专属区块链网络成功执行节点加入原始交易(也即承认新节点的加入),而公共区块链网络未成功执行节点加入交易(也即不承认新节点的加入),其他专属区块链网络获得公共区块链网络的执行失败的执行结果后,不对全局节点表进行更新(也即不承认新节点的加入),导致各区块链网络在新节点加入这一事件上未达成共识。
可选地,在一些具体实施方式中,参考前述较佳实施例,所述节点加入原始交易中包含:所述新节点的节点信息、所述新节点准备加入的专属区块链网络的网络ID、私密交易部分、以及公开交易部分;所述节点加入交易是按照以下方式生成的:将各节点的预执行结果填充至所述节点加入原始交易,并将所述节点加入原始交易中的私密交易部分删除。其中,节点加入原始交易对应较佳实施例中的节点加入交易-1,主节点生成的节点加入交易对应较佳实施例中的节点加入交易-3。
可选地,在一些具体实施方式中,参考前述较佳实施例,专属区块链网络的节点在执行上述步骤S23时,具体地:专属区块链网络的节点从本地获取节点加入原始交易的私密交易部分,并执行私密交易部分,从而在自身维护的局部节点表中添加新节点的节点信息。其中,所述节点加入原始交易对应较佳实施例中的节点加入交易-1。
可选地,在一些具体实施方式中,参考前述较佳实施例,专属区块链网络的节点在执行上述步骤S24时,具体地:专属区块链网络的节点执行所述节点加入交易的公开交易部分,从而在自身维护的全局节点表中添加所述新节点的节点信息。其中,所述节点加入交易对应较佳实施例中的节点加入交易-3。
可选地,在一些具体实施方式中,参考前述较佳实施例,专属区块链网络的节点在执行上述步骤S21时,具体地:专属区块链网络的节点同步所述公共区块链网络产生的公共区块,每个公共区块中记录有所述公共区块链网络执行过的交易以及该交易的执行结果;专属区块链网络的节点从所述公共区块中获取所述节点加入交易和公共区块链网络对所述节点加入交易的执行结果。
基于同一发明构思,本发明实施例还提供一种节点加入装置。参考图4,图4是本发明一实施例提出的节点加入装置的示意图,该节点加入装置应用于专属区块链网络的任一节点,该节点维护有局部节点表和全局节点表,所述局部节点表用于记录该专属区块链网络的各节点的节点信息,所述全局节点表用于记录所有专属区块链网络的各节点的节点信息。如图4所示,该装置包括:
数据获取模块41,用于获得节点加入交易和公共区块链网络对所述节点加入交易的执行结果,所述节点加入交易中包含:准备加入专属区块链网络的新节点的节点信息、以及所述新节点准备加入的专属区块链网络的网络ID;
网络ID判断模块42,如果所述执行结果表征所述公共区块链网络已经在其维护的全局节点表中添加了所述新节点的节点信息,则所述网络ID判断模块用于判断自身所属的专属区块链网络的网络ID是否等于所述节点加入交易包含的网络ID;
节点表更新模块43,若自身所属的专属区块链网络的网络ID等于所述节点加入交易包含的网络ID,则所述节点表更新模块用于在自身维护的局部节点表中添加所述新节点的节点信息;若自身所属的专属区块链网络的网络ID不等于所述节点加入交易包含的网络ID,则所述节点表更新模块用于在自身维护的全局节点表中添加所述新节点的节点信息。
可选地,在一些具体实施方式中,所述装置还包括:
流程控制模块,如果所述执行结果表征所述公共区块链网络没有在其维护的全局节点表中添加所述新节点的节点信息,则所述流程控制模块用于终止节点加入流程。
可选地,在一些具体实施方式中,所述节点表更新模块还用于:如果自身所属的专属区块链网络的网络ID等于所述节点加入交易包含的网络ID,则还会在自身维护的全局节点表中添加所述新节点的节点信息。
可选地,在一些具体实施方式中,每个节点的节点信息中包含该节点的公钥和节点ID。
可选地,在一些具体实施方式中,所述装置还包括:
交易接收模块,用于在所述数据获取模块获得节点加入交易和公共区块链网络对所述节点加入交易的执行结果之前,接收所述新节点发送的节点加入原始交易,并将接收到的节点加入原始交易广播给所述专属区块链网络的其他节点;或者,接收所述专属区块链网络的其他节点广播的节点加入原始交易;
预执行模块,用于预执行所述节点加入原始交易,得到预执行结果;其中,所述预执行所述节点加入原始交易,包括:验证所述节点加入原始交易的合法性;所述预执行结果表征所述节点加入原始交易是否通过合法性验证;
预执行结果发送模块,用于将所述预执行结果发送给所述专属区块链网络的主节点,使得所述主节点根据节点加入原始交易和各节点的预执行结果,生成所述节点加入交易,并将所述节点加入交易提交给所述公共区块链网络,使得所述公共区块链网络根据各节点的预执行结果,判断所述专属区块链网络是否成功预执行了所述节点加入原始交易,并在判断结果为是的情况下,执行所述节点加入交易,得到所述执行结果;其中,所述节点加入交易中携带各节点的预执行结果。
可选地,在一些具体实施方式中,所述节点加入原始交易中包含:所述新节点的节点信息、所述新节点准备加入的专属区块链网络的网络ID、私密交易部分、以及公开交易部分;所述节点加入交易是按照以下方式生成的:将各节点的预执行结果填充至所述节点加入原始交易,并将所述节点加入原始交易中的私密交易部分删除。
可选地,在一些具体实施方式中,所述节点表更新模块具体用于:若自身所属的专属区块链网络的网络ID等于所述节点加入交易包含的网络ID,则从本地获取所述节点加入原始交易的私密交易部分,并执行所述私密交易部分,从而在自身维护的局部节点表中添加所述新节点的节点信息;
若自身所属的专属区块链网络的网络ID不等于所述节点加入交易包含的网络ID,则执行所述节点加入交易的公开交易部分,从而在自身维护的全局节点表中添加所述新节点的节点信息。
可选地,在一些具体实施方式中,所述数据获取模块具体用于:同步所述公共区块链网络产生的公共区块,每个公共区块中记录有所述公共区块链网络执行过的交易以及该交易的执行结果;从所述公共区块中获取所述节点加入交易和公共区块链网络对所述节点加入交易的执行结果。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
基于同一发明构思,本发明实施例还提供了一种电子设备,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信。
所述存储器503,用于存放计算机程序;
所述处理器501,用于在执行存储器503上所存放的程序时,实现如下步骤:
获得节点加入交易和公共区块链网络对所述节点加入交易的执行结果,所述节点加入交易中包含:准备加入专属区块链网络的新节点的节点信息、以及所述新节点准备加入的专属区块链网络的网络ID;
如果所述执行结果表征所述公共区块链网络已经在其维护的全局节点表中添加了所述新节点的节点信息,则判断自身所属的专属区块链网络的网络ID是否等于所述节点加入交易包含的网络ID;
若是,则在自身维护的局部节点表中添加所述新节点的节点信息,并在自身维护的全局节点表中添加所述新节点的节点信息;
若否,则在自身维护的全局节点表中添加所述新节点的节点信息。
或者,处理器501用于在执行存储器503上所存放的程序时,实现本发明以上其他方法实施例所提供的节点加入方法步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的节点加入方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种节点加入方法,其特征在于,应用于专属区块链网络的任一节点,该节点维护有局部节点表和全局节点表,所述局部节点表用于记录该专属区块链网络的各节点的节点信息,所述全局节点表用于记录所有专属区块链网络的各节点的节点信息;所述方法包括:
获得节点加入交易和公共区块链网络对所述节点加入交易的执行结果,所述节点加入交易中包含:准备加入专属区块链网络的新节点的节点信息、以及所述新节点准备加入的专属区块链网络的网络ID;
如果所述执行结果表征所述公共区块链网络已经在其维护的全局节点表中添加了所述新节点的节点信息,则判断自身所属的专属区块链网络的网络ID是否等于所述节点加入交易包含的网络ID;
若是,则在自身维护的局部节点表中添加所述新节点的节点信息;
若否,则在自身维护的全局节点表中添加所述新节点的节点信息;
其中,所述节点信息包括节点ID和节点的公钥。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述执行结果表征所述公共区块链网络没有在其维护的全局节点表中添加所述新节点的节点信息,则终止节点加入流程。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果自身所属的专属区块链网络的网络ID等于所述节点加入交易包含的网络ID,则还会在自身维护的全局节点表中添加所述新节点的节点信息。
4.根据权利要求1至3任一所述的方法,其特征在于,在获得节点加入交易和公共区块链网络对所述节点加入交易的执行结果之前,所述方法还包括:
接收所述新节点发送的节点加入原始交易,并将接收到的节点加入原始交易广播给所述专属区块链网络的其他节点;或者,接收所述专属区块链网络的其他节点广播的节点加入原始交易;
预执行所述节点加入原始交易,得到预执行结果;其中,所述预执行所述节点加入原始交易,包括:验证所述节点加入原始交易的合法性;所述预执行结果表征所述节点加入原始交易是否通过合法性验证;
将所述预执行结果发送给所述专属区块链网络的主节点,使得所述主节点根据节点加入原始交易和各节点的预执行结果,生成所述节点加入交易,并将所述节点加入交易提交给所述公共区块链网络,使得所述公共区块链网络根据各节点的预执行结果,判断所述专属区块链网络是否成功预执行了所述节点加入原始交易,并在判断结果为是的情况下,执行所述节点加入交易,得到所述执行结果;其中,所述节点加入交易中携带各节点的预执行结果。
5.根据权利要求4所述的方法,其特征在于,所述节点加入原始交易中包含:所述新节点的节点信息、所述新节点准备加入的专属区块链网络的网络ID、私密交易部分、以及公开交易部分;所述节点加入交易是按照以下方式生成的:将各节点的预执行结果填充至所述节点加入原始交易,并将所述节点加入原始交易中的私密交易部分删除。
6.根据权利要求5所述的方法,其特征在于,所述若是,则在自身维护的局部节点表中添加所述新节点的节点信息,包括:
若是,则从本地获取所述节点加入原始交易的私密交易部分,并执行所述私密交易部分,从而在自身维护的局部节点表中添加所述新节点的节点信息;
所述若否,则在自身维护的全局节点表中添加所述新节点的节点信息,包括:
若否,则执行所述节点加入交易的公开交易部分,从而在自身维护的全局节点表中添加所述新节点的节点信息。
7.根据权利要求4所述的方法,其特征在于,所述获得节点加入交易和公共区块链网络对所述节点加入交易的执行结果,包括:
同步所述公共区块链网络产生的公共区块,每个公共区块中记录有所述公共区块链网络执行过的交易以及该交易的执行结果;
从所述公共区块中获取所述节点加入交易和公共区块链网络对所述节点加入交易的执行结果。
8.一种节点加入装置,其特征在于,应用于专属区块链网络的任一节点,该节点维护有局部节点表和全局节点表,所述局部节点表用于记录该专属区块链网络的各节点的节点信息,所述全局节点表用于记录所有专属区块链网络的各节点的节点信息;所述装置包括:
数据获取模块,用于获得节点加入交易和公共区块链网络对所述节点加入交易的执行结果,所述节点加入交易中包含:准备加入专属区块链网络的新节点的节点信息、以及所述新节点准备加入的专属区块链网络的网络ID;
网络ID判断模块,如果所述执行结果表征所述公共区块链网络已经在其维护的全局节点表中添加了所述新节点的节点信息,则所述网络ID判断模块用于判断自身所属的专属区块链网络的网络ID是否等于所述节点加入交易包含的网络ID;
节点表更新模块,若自身所属的专属区块链网络的网络ID等于所述节点加入交易包含的网络ID,则所述节点表更新模块用于在自身维护的局部节点表中添加所述新节点的节点信息;若自身所属的专属区块链网络的网络ID不等于所述节点加入交易包含的网络ID,则所述节点表更新模块用于在自身维护的全局节点表中添加所述新节点的节点信息;
其中,所述节点信息包括节点ID和节点的公钥。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于在执行存储器上所存放的程序时,实现权利要求1-7任一所述的方法步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时,实现权利要求1-7任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011331871.3A CN112600874B (zh) | 2020-11-24 | 2020-11-24 | 节点加入方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011331871.3A CN112600874B (zh) | 2020-11-24 | 2020-11-24 | 节点加入方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112600874A CN112600874A (zh) | 2021-04-02 |
CN112600874B true CN112600874B (zh) | 2023-03-31 |
Family
ID=75183766
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011331871.3A Active CN112600874B (zh) | 2020-11-24 | 2020-11-24 | 节点加入方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112600874B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239940A (zh) * | 2017-05-11 | 2017-10-10 | 北京博晨技术有限公司 | 基于区块链系统的网络交易方法及装置 |
CN110569309A (zh) * | 2019-09-17 | 2019-12-13 | 上海保险交易所股份有限公司 | 用于实现区块链的设备、方法、系统以及介质 |
CN110727731A (zh) * | 2019-09-05 | 2020-01-24 | 阿里巴巴集团控股有限公司 | 区块链网络中加入节点的方法和区块链系统 |
CN111382168A (zh) * | 2020-05-28 | 2020-07-07 | 支付宝(杭州)信息技术有限公司 | 在联盟链网络中创建节点组、基于节点组的交易方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106686008B (zh) * | 2017-03-03 | 2019-01-11 | 腾讯科技(深圳)有限公司 | 信息存储方法及装置 |
CN107301600B (zh) * | 2017-06-23 | 2021-07-20 | 北京天德科技有限公司 | 一种跨链交易的区块链互联网模型的核心构建方法 |
US10862671B2 (en) * | 2017-08-02 | 2020-12-08 | Visa International Service Association | Global ownership registry |
CN107766542B (zh) * | 2017-10-30 | 2020-09-11 | 上海分布信息科技有限公司 | 一种分区的区块链网络及其实现分区查询的方法 |
CN107766540A (zh) * | 2017-10-31 | 2018-03-06 | 上海分布信息科技有限公司 | 一种分区的区块链网络及其实现分区存储的方法 |
CN108683539B (zh) * | 2018-05-21 | 2022-03-25 | 腾讯科技(深圳)有限公司 | 区块链网络的管理方法、装置、介质及电子设备 |
CN109242456A (zh) * | 2018-09-04 | 2019-01-18 | 湖南宸瀚信息科技有限责任公司 | 区块链跨链交易方法、系统及存储介质 |
CN109462587B (zh) * | 2018-11-09 | 2020-03-27 | 四川虹微技术有限公司 | 区块链分层共识方法、区块链网络系统及区块链节点 |
CN113348656A (zh) * | 2019-04-29 | 2021-09-03 | 互达控股有限公司 | 基于多个节点的网络交易验证方法及其系统和存储介质 |
CN111164935B (zh) * | 2019-05-31 | 2023-08-22 | 创新先进技术有限公司 | 在基于区块链的私有交易中提供隐私和安全保护的系统和方法 |
CN110581887B (zh) * | 2019-09-02 | 2021-03-30 | 北京海益同展信息科技有限公司 | 数据处理方法、装置、区块链节点及存储介质 |
CN110650189B (zh) * | 2019-09-20 | 2022-01-18 | 深圳供电局有限公司 | 一种基于中继的区块链的交互系统及方法 |
CN110716983B (zh) * | 2019-09-26 | 2023-02-17 | 联想(北京)有限公司 | 一种信息处理方法和区块链网络服务平台 |
CN111917865B (zh) * | 2020-07-29 | 2022-09-20 | 成都质数斯达克科技有限公司 | 区块链网络系统、网关以及组网方法 |
-
2020
- 2020-11-24 CN CN202011331871.3A patent/CN112600874B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239940A (zh) * | 2017-05-11 | 2017-10-10 | 北京博晨技术有限公司 | 基于区块链系统的网络交易方法及装置 |
CN110727731A (zh) * | 2019-09-05 | 2020-01-24 | 阿里巴巴集团控股有限公司 | 区块链网络中加入节点的方法和区块链系统 |
CN110569309A (zh) * | 2019-09-17 | 2019-12-13 | 上海保险交易所股份有限公司 | 用于实现区块链的设备、方法、系统以及介质 |
CN111382168A (zh) * | 2020-05-28 | 2020-07-07 | 支付宝(杭州)信息技术有限公司 | 在联盟链网络中创建节点组、基于节点组的交易方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112600874A (zh) | 2021-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11108544B2 (en) | On-chain governance of blockchain | |
US11971877B2 (en) | Method, apparatus, device, and storage medium for proposal message processing for blockchain | |
US11924323B2 (en) | On-chain governance of blockchain | |
US20200007314A1 (en) | On-chain governance of blockchain | |
CN112527912B (zh) | 基于区块链网络的数据处理方法、装置及计算机设备 | |
WO2020088098A1 (zh) | 一种基于区块链的质量数据处理方法和装置 | |
CN111164632A (zh) | 一种基于区块链的信息处理方法、装置及区块链网络 | |
CN111314172B (zh) | 基于区块链的数据处理方法、装置、设备及存储介质 | |
CN111953754B (zh) | 跨链交易方法、电子设备及可读存储介质 | |
CN112612856B (zh) | 基于区块链的数据处理方法和装置 | |
CN109886695A (zh) | 不同区块链之间的信息共享方法及装置和电子设备 | |
CN112671881B (zh) | 节点组织管理方法、装置、电子设备及可读存储介质 | |
CN112448946A (zh) | 基于区块链的日志审计方法及装置 | |
CN115730935A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN112862487A (zh) | 一种数字证书认证方法、设备及存储介质 | |
CN115701078B (zh) | 跨链交易处理方法、装置、电子设备以及存储介质 | |
CN110941840A (zh) | 一种数据处理方法、系统及终端 | |
CN113642975B (zh) | 基于区块链的氢能监管方法和系统 | |
CN113987062A (zh) | 一种数据上链存储方法、系统、装置以及存储介质 | |
CN113761064A (zh) | 基于区块链的日切对账方法、装置、设备及可读存储介质 | |
CN112488834A (zh) | 节点管理方法、装置、电子设备及可读存储介质 | |
CN112272114A (zh) | 跨区块链网络发送信息的方法、装置、设备及存储介质 | |
CN112600874B (zh) | 节点加入方法、装置、电子设备及可读存储介质 | |
CN112926981B (zh) | 用于区块链的交易信息处理方法、装置、介质及电子设备 | |
CN116028982A (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 |