CN109246179A - 维护区块链的方法和装置、服务器和计算机可读存储介质 - Google Patents
维护区块链的方法和装置、服务器和计算机可读存储介质 Download PDFInfo
- Publication number
- CN109246179A CN109246179A CN201810806654.1A CN201810806654A CN109246179A CN 109246179 A CN109246179 A CN 109246179A CN 201810806654 A CN201810806654 A CN 201810806654A CN 109246179 A CN109246179 A CN 109246179A
- Authority
- CN
- China
- Prior art keywords
- block chain
- channel
- configuration information
- chain node
- node group
- 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
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- 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/1044—Group management mechanisms
- H04L67/1046—Joining mechanisms
-
- 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
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
-
- 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
-
- 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
- G06Q50/00—Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/18—Legal services; Handling legal documents
-
- 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/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
-
- 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/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
- H04L9/3239—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 involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- 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/3263—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- 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/3263—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3268—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/102—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measure for e-commerce
Abstract
本申请公开了一种维护区块链的方法。该方法用于实现将第一租户的目标区块链节点组加入通道。在该方法中,管理节点向第二租户的执行节点发送通道的新的通道配置信息;第二租户的执行节点根据该新的通道配置信息和该通道的旧的通道配置信息生成该通道的增量配置信息,并向共识组织发送该增量配置信息;该增量配置信息包括该通道的标识和该目标区块链节点组的配置信息,但不包括已加入该通道的所有区块链节点组的配置信息。已加入该通道的每个区块链节点组从共识组织获取包括该增量配置信息的区块,并将该区块添加入存储的区块链中,从而达成同意该目标区块链节点组加入该通道的共识。该目标区块链节点组根据该增量配置信息进行加入该通道的配置。
Description
技术领域
本申请涉及计算机领域,尤其涉及维护区块链的方法和装置、服务器和计算机可读存储介质。
背景技术
区块链(blockchain或者block chain)是在分布式数据库中由多个对等的区块链节点共同维护的链式数据结构。区块链可以分为公有链(public blockchain)、联盟链(consortium blockchain)和私有链(private blockchain)。公有链指没有任何访问限制,任何人都可读取、发送交易且交易能获得有效确认、都能参与其共识过程的区块链。私有链是指其写入权限由某个组织控制的区块链,只有经过该组织确认的成员(可以是个人或组织)才能在该区块链中写入数据。联盟链是指有多个组织(以下称为联盟链的成员)共同参与管理的区块链,每个成员运行着一个或多个节点,每个节点称为联盟链的参与者(participant)。联盟链只允许成员中的节点读取和发送交易,并且共同记录交易数据。
由于联盟链和私有链的成员都必须得到许可才能写入数据,因此,联盟链和私有链又被统称为许可链。
当前,许可链的成员是在初始化该联盟链或者私有链时便由管理人员确定的,添加新的成员需要管理人员重新规划或创建联盟链或私有链,实现复杂。
发明内容
有鉴于此,本申请提供了一种维护区块链的方法和装置、服务器,可以实现新租户(即成员)的区块链节点组动态加入区块链的维护。
第一方面,本申请提供一种维护区块链的方法。本方法的应用场景:第一租户没有区块链节点组加入维护该区块链的通道,第二租户的区块链节点组已加入该通道。本方法用于实现将第一租户的目标区块链节点组加入该通道。
在本方法中,第二租户的执行节点接收管理节点发送的该通道的新的通道配置信息。该新的通道配置信息包括:第一租户的目标区块链节点组的配置信息,已加入该通道的所有区块链节点组的配置信息,以及该通道的标识。已加入该通道的所有区块链节点组包括第二租户的区块链节点组。
第二租户的执行节点获取该通道的旧的通道配置信息,例如从共识组织中的共识节点获取该通道的旧的通道配置信息。该旧的通道配置信息包括该通道的标识和已加入该通道的所有区块链节点组的配置信息。
第二租户的执行节点生成该通道的增量配置信息。该增量配置信息包括该通道的新的通道配置信息与该通道的旧的通道配置信息之间的差量;即该增量配置信息不包括已加入该通道的所有区块链节点组的配置信息,该增量配置信息包括第一租户的目标区块链节点组的配置信息。该目标区块链节点组的配置信息用于配置第一租户的目标区块链节点组,使得第一租户的目标区块链节点组加入通道,从而第一租户的目标区块链节点组参与该区块链的维护。
该增量配置信息包括该通道的标识。这样,第一租户的执行节点根据该通道的标识确定待加入的通道。
第二租户的执行节点将该增量配置信息发送至共识组织,共识组织生成包括该增量配置信息的区块。后续,第二租户的已加入该通道的区块链节点组从共识组织获取该区块,并将该区块添加到该区块链节点组存储的区块链中。这样,将该增量配置信息以区块形式记录到区块链中,代表第二租户同意将第一租户的目标区块链节点组加入该通道。与第二租户的已加入该通道的区块链节点组将该区块添加到该区块链节点组存储的区块链的原理相同,已加入该通道的区块链节点组也将该区块添加到的区块链中,代表拥有该其他区块链节点组的其他租户也同意将第一租户的目标区块链节点组加入该通道。从而第一租户可以通过目标区块链节点组参与该通道对应的区块链的维护。后续,该第一租户的目标区块链节点组可以按照该增量配置信息配置该目标区块链节点组,使得该目标区块链节点组加入该通道,参与该通道对应的区块链的维护。
第一方面的一种可能设计中,该目标区块链节点组的配置信息包括:该目标区块链节点组的操作权限,该目标区块链节点组的权限证书,和该目标区块链节点组使用的安全算法。
该目标区块链节点组的操作权限用于配置该目标区块链节点组具有操作该区块链节点组的数据的权限(例如读权限/写权限/最高权限)。
该目标区块链节点组的权限证书包括:管理该目标区块链节点组的最高管理权限的证书,该目标区块链节点组的根证书,该目标区块链节点组通信所使用的根证书。通过这些权限证书,才能操作/访问该目标区块链节点组。
该目标区块链节点组使用的安全算法,包括用于防篡改区块的算法(例如哈希算法)。这样可以避免恶意修改区块中的交易记录。
该目标区块链节点组使用的安全算法还可以包括防止对该区块链节点组背书后的交易记录进行篡改的算法(例如哈希算法)。将通过该算法处理后的交易记录发送至共识节点,可以防止该交易记录中的交易信息在共识节点中泄露。
第一方面的一种可能设计中,增量配置信息还包括通道的权限策略。该通道的权限策略指定通道中具有管理权限的租户。后续,具有管理权限的租户可以读/写通道配置信息,该租户还可以邀请其他租户加入通道。
第一方面的一种可能设计中,增量配置信息还包括:新的通道配置信息的版本号,旧的通道配置信息的版本号。在包括该增量配置信息的区块加入到区块链后,可以通过该区块链查证通道的新旧变更情况。
第一方面的一种可能设计中,对于需要该第一租户的目标区块链节点组参与背书的合约事项,第二租户的执行节点在用于执行该合约事项的链代码中更新该合约事项对应的背书策略。更新后的背书策略指定该目标区块链节点组参与对执行该合约事项所得的交易记录背书。这样,已加入通道的第二租户的区块链节点组和已加入通道的第一租户的目标区块链节点组同时参与对执行该合约事项所得的交易记录的背书。
第二方面,本申请提供一种维护区块链的方法。本方法的应用场景与第一方面提供的方法的应用场景相同。
在本方法中,管理节点指示第一租户的执行节点部署用于加入通道的区块链节点组。该第一租户的执行节点在该第一租户的资源隔离区部署用于加入通道的目标区块链节点组。
在部署目标区块链节点组之后,第一租户的执行节点获取包括该通道的增量配置信息的区块,并按照该增量配置信息中的目标区块链节点组的配置信息配置该第一租户的该目标区块链节点组,使得该目标区块链节点组加入通道。
目标区块链节点组加入通道后,可以从已加入该通道的其他租户的区块链节点组获取区块链的副本,并在该目标区块链节点组存储该区块链的副本;进而,目标区块链节点组可以在存储的区块链中添加包括该通道的增量配置信息的区块。后续,目标区块链节点组与已加入该通道的其他区块链节点组共同参与该区块链的维护。
第二方面的一种可能设计中,第二租户的执行节点将该增量配置信息发送至共识组织后,共识组织会生成包括该增量配置信息的区块。第一租户的执行节点从共识组织获取包括该增量配置信息的区块。这样,第一租户的执行节点可以使用该增量配置信息配置目标区块链节点组。
第二方面的一种可能设计中,该目标区块链节点组的配置信息还包括:该目标区块链节点组的操作权限,该目标区块链节点组的权限证书,和该目标区块链节点组使用的安全算法。对该目标区块链节点组的配置信息的细节描述,可以参见第一方面的可能设计的相关描述。
第二方面的一种可能设计中,增量配置信息还包括通道的权限策略。该通道的权限策略指定通道中具有管理权限的租户。后续,具有管理权限的租户可以读/写通道配置信息,该租户还可以邀请其他租户加入通道。
第二方面的一种可能设计,增量配置信息还包括:新的通道配置信息的版本号,旧的通道配置信息的版本号。在包括该增量配置信息的区块加入到区块链后,可以通过该区块链查证通道的新旧变更情况。
第二方面的一种可能设计中,对于需要该第一租户的目标区块链节点组参与背书的合约事项,第一租户的执行节点在用于执行该合约事项的链代码中更新该合约事项对应的背书策略。更新后的背书策略指定该目标区块链节点组参与对执行该合约事项所得的交易记录背书。这样,目标区块链节点组在加入该通道后可以参与对执行该合约事项所得的交易记录的背书。
第三方面,本申请提供一种维护区块链的方法。本方法的应用场景与第一方面或者第二方面提供的方法的应用场景相同。
管理节点指示第一租户的执行节点在该第一租户的资源隔离区部署用于加入通道的区块链节点组。相应地,该第一租户的执行节点在该第一租户的资源隔离区部署该目标区块链节点组。
管理节点获取该通道的新的通道配置信息。该新的通道配置信息包括:该目标区块链节点组的配置信息,已加入该通道的所有区块链节点组的配置信息,以及该通道的标识。其中,该已加入该通道的所有区块链节点组包括第二租户的区块链节点组。
管理节点向该第二租户的执行节点发送该新的通道配置信息。第二租户的执行节点从共识组织获取旧的通道配置信息,并根据该新的通道配置信息与该通道的旧的通道配置信息生成增量配置信息。该增量配置信息包括该通道的新的通道配置信息与该通道的旧的通道配置信息之间的差量,即该增量配置信息不包括已加入该通道的所有区块链节点组的配置信息,该增量配置信息包括第一租户的目标区块链节点组的配置信息。
管理节点指示该第一租户的执行节点按照该通道的增量配置信息配置该第一租户的该目标区块链节点组,使得该第一租户的目标区块链节点组加入通道。从而,该第一租户的目标区块链节点组参与该区块链的维护。
第三方面的一种可能设计中,管理节点指示该第一租户的执行节点从共识组织获取包括包括该增量配置信息的区块。
具体地,第二租户的执行节点将该增量配置信息发送至共识组织后,共识组织会生成包括该增量配置信息的区块。从而,该第一租户的执行节点从共识组织获取包括该增量配置信息的区块。这样,第一租户的执行节点可以使用该增量配置信息配置目标区块链节点组。
第三方面的一种可能设计中,该目标区块链节点组的配置信息包括:该目标区块链节点组的操作权限,该目标区块链节点组的权限证书,和该目标区块链节点组使用的安全算法。对该目标区块链节点组的配置信息的细节描述,可以参见第一方面的可能设计的相关描述。
第四方面,本申请提供一种维护区块链的装置,包括多个功能单元,该多个功能单元部署在第一租户的执行节点中,使得该第一租户的执行节点执行第一方面或者第一方面的任意可能设计或者第二方面或者第二方面的任意可能设计或者第三方面或者第三面的任意可能设计提供的维护区块链的方法中由第一租户的执行节点执行的步骤。
本申请提供又一种维护区块链的装置,包括多个功能单元,该多个功能单元部署在第二租户的执行节点中,使得该第二租户的执行节点执行第一方面或者第一方面的任意可能设计或者第二方面或者第二方面的任意可能设计或者第三方面或者第三面的任意可能设计提供的维护区块链的方法中由第二租户的执行节点执行的步骤。
本申请还提供另一种维护区块链的装置,包括多个功能单元,该多个功能单元部署在管理节点中,使得该管理节点执行第一方面或者第一方面的任意可能设计或者第二方面或者第二方面的任意可能设计或者第三方面或者第三面的任意可能设计提供的维护区块链的方法中由该管理节点执行的步骤。
第五方面,本申请提供一种服务器,该服务器包括处理器和存储器。该存储器存储计算机指令;该处理器执行该存储器存储的计算机指令,使得该服务器执行第一方面或者第一方面的任意可能设计或者第二方面或者第二方面的任意可能设计或者第三方面或者第三面的任意可能设计提供的维护区块链的方法中由第一租户的执行节点执行的步骤,或者使得服务器执行第一方面或者第一方面的任意可能设计或者第二方面或者第二方面的任意可能设计或者第三方面或者第三面的任意可能设计提供的维护区块链的方法中由第二租户的执行节点执行的步骤,或者使得服务器执行第一方面或者第一方面的任意可能设计或者第二方面或者第二方面的任意可能设计或者第三方面或者第三面的任意可能设计提供的维护区块链的方法中由管理节点执行的步骤。
第五方面的一种可能设计中,该存储器中存储的计算机指令用于实现第四方面提供的任一种维护区块链的装置中的功能单元。
第六方面,提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机指令,当服务器的处理器执行该计算机指令时,该服务器执行第一方面或者第一方面的任意可能设计或者第二方面或者第二方面的任意可能设计或者第三方面或者第三面的任意可能设计提供的维护区块链的方法中由第一租户的执行节点执行的步骤,或者该服务器执行第一方面或者第一方面的任意可能设计或者第二方面或者第二方面的任意可能设计或者第三方面或者第三面的任意可能设计提供的维护区块链的方法中由第二租户的执行节点执行的步骤,或者该服务器执行第一方面或者第一方面的任意可能设计或者第二方面或者第二方面的任意可能设计或者第三方面或者第三面的任意可能设计提供的维护区块链的方法中由管理节点执行的步骤。
第六方面的一种可能设计中,该计算机可读存储介质中存储的计算机指令用于实现第四方面提供的任一种维护区块链的装置中的功能单元。
第七方面,提供一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。服务器的处理器可以从计算机可读存储介质读取并执行该计算机指令,使得该服务器执行第一方面或者第一方面的任意可能设计或者第二方面或者第二方面的任意可能设计或者第三方面或者第三面的任意可能设计提供的维护区块链的方法中由第一租户的执行节点执行的步骤,或者使得服务器执行第一方面或者第一方面的任意可能设计或者第二方面或者第二方面的任意可能设计或者第三方面或者第三面的任意可能设计提供的维护区块链的方法中由第二租户的执行节点执行的步骤,或者使得服务器执行第一方面或者第一方面的任意可能设计或者第二方面或者第二方面的任意可能设计或者第三方面或者第三面的任意可能设计提供的维护区块链的方法中由管理节点执行的步骤。
第七方面的一种可能设计中,该计算机程序产品中的计算机指令用于实现第四方面提供的任一种维护区块链的装置中的功能单元。
附图说明
图1为本申请提供的通道的一种示意图;
图2为本申请提供的区块链系统的一种示意图;
图3为本申请提供的生成新区块的流程的一种流程示意图;
图4为本申请提供的区块链系统的另一种示意图;
图5为本申请提供的维护区块链的方法的一种流程示意图;
图6为本申请提供的维护区块链的装置600的一种逻辑结构示意图;
图7为本申请提供的维护区块链的装置700的一种逻辑结构示意图;
图8为本申请提供的维护区块链的装置800的一种逻辑结构示意图;
图9为本申请提供的服务器900的一种硬件结构示意图。
具体实施方式
下面将结合本申请中的附图,对本申请提供的技术方案进行描述。
术语简介
合约(contract):记录一个或多个合约事项。每个合约事项约定了多个参与方和该多个参与方一起完成的交易;例如,用户在两个银行间转账,这两个银行作为两个参与方,一起完成转账这个交易。
交易(transaction):指任何能够记录的活动或事件,例如医疗事件,身份管理,文档证明,食品来源追踪,转账付款,投票等。本申请中,每个交易发生时,会生成该交易对应的交易记录。
区块链:可以是在分布式数据库中由多个对等的区块链节点组共同维护的链式数据结构。每个区块链存储一个或多个合约的所有交易记录。
区块(block):区块链中的数据单元,每个区块记录一个或多个经过背书的交易记录。多个区块按照发生顺序串联就得到区块链。可选地,区块链中的每个区块通常可以包括前一区块的哈希值,时间戳和交易记录。
区块链节点:参与维护区块链的对等节点,每个区块链节点上都存储有该区块链的所有交易记录。
成员(member):区块链节点的管理者,即参与区块链管理的个人或组织。成员又可被称为用户或租户,以下统称为租户。每个租户具有独立的资源(例如计算资源和存储资源),一条区块链中的所有交易记录,存储在该区块链的每个租户的区块链节点上。
资源隔离区:每个租户参与到区块链中时,需要申请一定数量的资源(包括网络资源,计算资源和存储资源等)以部署区块链节点,该资源可以是租用的或者自有的。本申请中,将为每个租户分配的资源分别划分到一个资源隔离区中。多个租户的资源隔离区相互隔离,除非有另外的配置,一个租户不能跨资源隔离区访问另一个租户。
业务组织:当某个租户提供业务时,该租户又可以称为业务组织。可选地,当该租户为组织,并且该租户的不同部门提供不同的业务时,该租户的每个部门也可以称为一个业务组织。即,本申请中,一个租户可以拥有一个或多个业务组织,每个业务组织至少提供一种业务。
区块链节点组:本申请中参与区块链管理的结构,每个业务组织提供一个或者多个区块链节点组,每个区块链节点组可以参与一个区块链的维护。
通道:用于在两个或多个租户间通信的专用“子网”,以实现私有和保密的交易,建立跨租户的区块链。本申请中的通道和区块链一一对应。通道可以由多个成员、每个成员的锚点、共享账本(shared ledger)(也可以称为区块链)、链代码(chaincode) 和排序服务节点(ordering service node)(也可以称为共识节点)定义。
共识(consensus):区块链是一个历史可追溯、不可篡改,解决多方互信问题的分布式(去中心化)系统。分布式系统必然面临着一致性问题,而解决一致性问题的过程称之为共识。
共识节点:目前通过共识算法实现共识,执行共识算法的节点被称为共识节点。
共识组织:由所有共识节点组成,用于实现对交易记录的共识和排序。
本申请实施例提供的通道
图1为本申请实施例提供的通道的示意图。本申请为多个租户(图1中示出了租户A,租户B和租户C)分别分配资源隔离区110,资源隔离区120和资源隔离区130。通常情况下,资源隔离区110,资源隔离区120和资源隔离区130中的资源互相隔离。一个资源隔离区中的资源可以是由公有云分配的,也可以是从对应租户的私有的数据中心中获取的。当资源隔离区中的资源是由公有云分配时,该资源隔离区可以配置为虚拟专有云 (virtualprivate cloud,VPC),通过不同VPC实现不同租户之间的资源隔离。当资源隔离区中的资源是从对应租户的私有的数据中心中获取时,由数据中心实现不同租户之间的资源的隔离。
进一步地,租户A包括业务组织118和业务组织119;租户B包括业务组织128;租户C包括业务组织138。每个业务组织基于业务需求,部署至少一个区块链节点组,每个区块链节点组提供或参与至少一种业务。例如,业务组织118部署区块链节点组117;业务组织119部署区块链节点组116、区块链节点组115和区块链节点组114;业务组织128 部署区块链节点组124和区块链节点组126;业务组织138部署区块链节点组134和区块链节点组136。
本申请中,每个资源隔离区中的业务组织以区块链节点组为粒度加入通道,通过通道实现租户之间的访问,从而实现不同租户之间的数据传输。即,多个租户的不同区块链节点组加入同一个通道,则该通道内的所有区块链节点组可以互相通信。例如,图1中,区块链节点组117、区块链节点组116、区块链节点组126和区块链节点组136都加入了通道150,则区块链节点组117、区块链节点组116、区块链节点组126和区块链节点组136 之间可以在通道150内互相通信。再例如,图1中,区块链节点组114、区块链节点组124 和区块链节点组134都加入了通道140,则区块链节点组114、区块链节点组124和区块链节点组134之间可以在通道140内互相通信。没有加入同一通道的不同租户间的区块链节点组之间不能相互通信。加入同一通道的所有区块链节点组可以管理同一个区块链,能够看到相同的交易记录。同一租户的不同区块链节点组之间的是否互通由租户配置,不在本申请的讨论范围之内。
本申请中,不同租户的不同业务组织的区块链节点组可以加入同一通道。
基于业务的需求,本申请中同一租户的不同业务组织中的区块链节点组可以加入同一通道。例如,租户A为银行,租户A的投资管理部(业务组织118)部署区块链节点组117,租户A的审计监察部(业务组织119)部署区块链节点组116,区块链节点组117和区块链节点组116均加入通道150(账本通道,对应账本区块链),则投资管理部和审计监察部都参与账本区块链的维护,投资管理部可以在该区块链中写入投资记录,审计监察部可以验证该投资记录是否合法,增加了交易的安全性。
当然,租户也可以设置某个业务组织的区块链节点组不加入任何通道,只处理该租户内部的业务。例如,租户A的区块链节点组115没有加入任何通道。
本申请中,业务组织用于理解本申请的内容,其本身并不是参与区块链管理的实体。因此,可以理解,业务组织并不是本申请的必要特征。
本申请实施例提供的区块链系统
下面举例描述一种可能的区块链系统的架构。如图2所示,该区块链系统包括共识组织160和三个区块链节点组114、124和134,这三个区块链节点组114、124和134同时加入了通道140。如图1所示,区块链节点组(114、124和134)分别部署于不同的资源隔离区。
每个区块链节点组包括三类区块链节点:锚点(anchor peer)、内部区块链节点和主控点(leading peer)。其中,锚点用于与同一通道中的其他区块链节点组通信;内部区块链节点用于存储交易记录;主控点用于与该区块链节点组对应的共识节点通信。其中,锚点和主控点进一步还可以用于存储交易记录。以图2为例,资源隔离区110中的区块链节点组114包括锚点111、内部区块链节点112和主控点113。资源隔离区120中的区块链节点组124包括锚点121、内部区块链节点122和主控点123,资源隔离区130中的区块链节点组134包括锚点131、内部区块链节点132和主控点133。
可选地,一个区块链节点组中的三类区块链节点可以部署在同一个物理设备上,也可以部署在不同的物理设备上。在另一个实施方式中,也可以由同一个区块链节点承担两种或两种以上的功能。以图2的区块链节点组114为例,锚点111、内部区块链节点112和主控点113中的任意组合可以部署在同一物理或逻辑区块链节点上;例如锚点111、内部区块链节点112和主控点113部署在同一个区块链节点A上,则区块链节点A既能与其他区块链节点组通信,又能存储交易记录,还与该区块链节点组114对应的共识节点通信。
锚点与同一通道中的其他区块链节点组通信,具体指锚点与同一通道中的其他区块链节点组中的锚点通信。以图2为例,锚点111可以与锚点121通信,从而区块链节点组114可以通过锚点111在通道140中与区块链节点组124通信。可选地,在同一通道的锚点之间,是基于gossip协议建立点对点(peer to peer,P2P)通信的。
当区块链节点组的主控点与该区块链节点组对应的共识节点通信时,该主控点可以从该共识节点获取待验证的新区块。在同一通道中,不同区块链节点组的主控点可以与同一共识节点通信连接,也可以分别连接不同共识节点。以图2为例,主控点113连接共识节点161,主控点123连接共识节点163,主控点133连接共识节点164。
共识组织160包括所有共识节点。每个共识节点都可以接收背书后的交易记录,然后按照共识算法和共识组织160中的其他共识节点共同处理该交易记录以生成对该交易记录的共识结果。其中,共识组织160可以同时为多个通道服务,即根据共识算法分别处理该多个通道中的交易记录。
共识组织160中的共识节点在验证交易记录后,可以针对同一通道的一条或多条交易记录生成区块。共识组织160的共识节点之间可以同步该区块,例如共识节点161生成区块,并将该区块的副本发送至共识节点162、共识节点163和共识节点164,共识节点162、共识节点163和共识节点164存储各自接收的副本。
可选地,共识组织160部署在公有云中。例如,共识组织160包括的所有共识节点都部署在公有云中的一个资源隔离区中。
在一个区块链对应的通道中的每个区块链节点组,分别存储一个区块链,以及分别负责各自存储的区块链的更新。以图2为例,区块链节点组114、区块链节点组124和区块链节点组134分别存储一个区块链。区块链节点组114、区块链节点组124和区块链节点组134存储的区块链包括执行相同合约生成的区块。当新区块在共识节点产生后,三个区块链节点组114、124和134分别从各自连接的三个共识节点161、163、164获取该新区块,并将该新区块添加到各自存储的区块链中。因此,如果区块链节点组存储的区块链没有被恶意修改,同一通道中所有区块链节点组分别存储的区块链是相同的。如果同一通道中少数区块链节点组存储的区块链被恶意修改,可以按照少数服从多数的规则被识别出来, 例如区块链节点组114通过描点111发现区块链节点组124存储的区块链与区块链节点组 114存储的区块链不一样,则三个区块链节点组114、124和134相互核对下区块链,如果区块链节点组124与区块链节点组114和区块链节点组134存储的区块链是不同的,则认为区块链节点组124存储的区块链是异常的。这样,同一通道中的所有区块链节点组参与维护一个区块链。
下面结合图3描述本申请实施例提供的生成新区块的流程。该流程包括步骤S31、步骤S32、步骤S33、步骤S34、步骤S35和步骤S36。
步骤S31,客户端向内部区块链节点112和内部区块链节点122发送交易请求。
该交易请求携带了通道140的标识。
客户端可以访问通道140中的区块链节点组。可选地,管理平台为该客户端下发了可以访问通道140中的区块链节点组的权限证书。这样,该客户端可以使用该权限证书访问通道140中的区块链节点组。
假如参与当前合约事项的参与方包括区块链节点组114和区块链节点组124,在客户端向内部区块链节点112发送的交易请求中,携带了访问区块链节点组114的权限证书;在客户端向内部区块链节点122发送的交易请求中,携带了访问区块链节点组124的权限证书。
步骤S32,内部区块链节点112和内部区块链节点122模拟执行该交易请求所指定的交易,生成模拟交易记录,并对该模拟交易记录背书。
具体地,内部区块链节点112和内部区块链节点122部署对应该交易的链代码,各自可以执行该链代码来实现真实交易。但步骤S32中,内部区块链节点112和内部区块链节点122并未真实执行该链代码中的真实交易,而是模拟执行该交易,并生成模拟交易记录,该模拟交易记录包括执行该交易的执行结果。
该链代码可以指定对该交易的模拟交易记录背书所使用的背书策略。该背书策略指定参与对该模拟交易记录背书的背书组织,该背书策略指定的背书组织包括区块链节点组 114和区块链节点组124。区块链节点组114和区块链节点组124各自存储的链代码均包括该背书策略,内部区块链节点112和内部区块链节点122各自根据该背书策略对各自的模拟交易记录实现背书。
内部区块链节点112和内部区块链节点122分别向客户端发送各自背书后的模拟交易记录。
步骤S33,客户端接收内部区块链节点112和内部区块链节点122分别反馈的背书后的模拟交易记录。
客户端分别接收内部区块链节点112和内部区块链节点122反馈的背书后的模拟交易记录。如果只收到内部区块链节点112和内部区块链节点122中的一个区块链节点的反馈,则客户端等待另一个区块链节点的反馈。待客户端接收到内部区块链节点112和内部区块链节点122分别反馈的模拟交易记录之后,客户端将内部区块链节点112和内部区块链节点122分别反馈的模拟交易记录合并为一个模拟交易记录,因此合并后的该模拟交易记录包含内部区块链节点112的背书和内部区块链节点122的背书。后续客户端向共识节点发送合并后的该模拟交易记录。
步骤S34,客户端向共识组织160的共识节点发送背书后的模拟交易记录。
对于单个交易,多个经过背书的模拟交易记录被合并为一个模拟交易记录后,客户端都会将该合并后的模拟交易记录发送至该共识节点。
对于该通道140中的多个交易,每个交易的模拟交易记录都会被客户端发送至该共识节点。
步骤S35,该共识节点接收所述客户端发送的模拟交易记录,并对接收到的多个交易的多个模拟交易记录排序,根据排序后的该多个模拟交易记录构造新区块,并和其他共识节点同步该新区块。
该共识节点不断接收属于通道140的交易记录,例如接收一个客户端或者不同客户端在不同时间点发送的多个模拟交易记录。在该共识节点每次接收到一个模拟交易记录时,共识组织根据共识算法对该模拟交易记录进行验证,并在该共识节点存储验证通过的模拟交易记录。该共识节点对存储的通道140的所有模拟交易记录排序,例如共识节点按照接收每个模拟交易记录的时间对该多个模拟交易记录排序。
可选地,在已排序的该通道140的多个模拟交易记录达到预设数据量时,共识节点构造包括排序的该多个模拟交易记录的新区块,该新区块属于通道140。
共识组织160中的共识节点之间同步该新区块。即该生成该新区块的共识节点,将该新区块的副本发送至共识组织160中的其他共识节点,其他共识节点存储该新区块的副本。
步骤S36,每个区块链节点组的主控点分别从与该主控点连接的共识节点获取该新区块,验证该新区块的背书。
在一个实施方式中,区块链节点组134中的主控点133从与该主控点133连接的共识节点164获取该新区块,并验证该新区块的背书是否符合背书策略。区块链节点组114中的主控点113从与该主控点113连接的共识节点161获取该新区块,并验证该新区块的背书是否符合背书策略。
步骤S37,每个区块链节点组的主控点在该新区块通过背书验证后,向该区块链节点组中的内部区块链节点发送该新区块。
从而,该内部区块链节点将该新区块添加到该区块链节点组存储的区块链中,该新区块中的模拟交易记录转化为真实交易记录。另外,参与背书的区块链节点执行该新区块中的真实交易记录所记录的交易。
举例说明,区块链节点组134中的主控点133向该内部区块链节点132发送该新区块,该内部区块链节点132将该新区块添加到区块链节点组134存储的区块链。区块链节点组 114中的主控点113向内部区块链节点112发送该新区块,该内部区块链节点112不仅将该新区块添加到区块链节点组114存储的区块链,还执行该新区块中的交易记录所记录的交易中由该内部区块链节点112执行的部分动作。例如,如果该交易为跨银行转账,内部区块链节点112为转账方,内部区块链节点122为收款方,则内部区块链节点112执行转账操作。
假设在创建通道140时,将至少一个租户的区块链节点组加入该通道。该至少一个租户包括租户A,该至少一个租户不包括租户B;具体地,租户A的区块链节点组114已加入通道140,租户B没有任何区块链节点组加入通道140。在创建通道140后,本申请提供的方法可以实现在通道140中加入租户B的区块链节点组,从而该租户B的区块链节点组参与该区块链的维护。
图4提供了将租户B的区块链节点组加入通道140的一种可能实现架构。如图4所示,在图2所示区块链系统的基础上,所述架构还进一步包括管理节点170,用于管理所有租户的执行节点。租户的执行节点,用于按照管理节点的指示在该租户的资源隔离区内执行操作,例如部署区块链节点组;该执行节点部署在该租户的资源隔离区,例如租户A的执行节点1101部署在租户A的资源隔离区110。
管理节点170可以部署在管理平台上。该管理平台可以部署在一个服务器上,或者分布式部署在多个服务器上。本申请中的服务器可以是公有云中的服务器,或者可以是私有云中的服务器。该管理节点170可以管理所有通道(例如通道140)。管理节点170与所有租户的执行节点(例如执行节点1101、执行节点1201、执行节点1301)均通信连接,从而管理节点170可以通过每个租户的执行节点管理该租户的区块链节点组。
下面结合图5描述本申请提供的维护区块链的方法,该方法用于将租户B的区块链节点组124加入通道140,该方法包括步骤S51到步骤S61。
步骤S51,管理节点170接收将租户B加入通道140的请求。
步骤S51所述的请求可以包括将租户B加入通道140所必要的信息。在一个实施方式中,该请求包括租户B的标识和通道140的标识。该请求还可以包括加入该通道140的权限证书。可选地,该请求还可以包括该通道140维护的区块链的信息,例如该通道140维护该区块链所使用的安全算法,该区块链支持的共识算法,该区块链支持的Hyperledger Fabric的版本号。维护该区块链的信息可以是租户B通过该请求向管理节点170发送的。可替代地,维护该区块链的信息也可以存储在管理节点170中的,即该请求中也可以不包括该通道140维护的区块链的信息。
可选地,管理节点170可以邀请租户B加入通道140,该邀请携带将租户B加入通道140所必要的信息(例如租户B的标识和通道140的标识)。租户B可以根据该信息,选择是否需要加入该通道140;根据选择结果,租户B向管理节点170反馈接受该邀请,或者反馈不加入通道140。
可选地,租户B可以请求管理节点170将租户B加入通道140。在一个实施方式中,租户A向租户B发送加入该通道140的邀请,该邀请包括将租户B加入通道140所必要的信息。租户B响应该邀请,并向管理节点170发送加入该通道140的请求,该请求携带将租户B加入通道140所必要的信息。
可选地,在创建通道140时,租户B和租户C均未加入通道140。在创建通道140后,如果管理节点170接收到将租户B加入通道140的请求,还接收到将租户C加入通道140 的请求,则管理节点170串行响应这两个请求。例如,先响应将租户B加入通道140的请求,并执行本申请提供的方法将租户B加入通道140,然后再响应将租户C加入通道140 的请求。
本方法中,步骤S51为可选步骤,管理节点170可以根据租户的请求触发将租户B加入通道140的操作,也可以直接触发将租户B加入通道140的操作。
本申请中,将租户加入通道,具体是指将租户的区块链节点组加入该通道。
步骤S52,管理节点170指示租户B的执行节点1201在租户B的资源隔离区120中部署用于加入该通道140的区块链节点组。
租户B的执行节点1201部署在资源隔离区120中,该执行节点1201可以在资源隔离区120中部署区块链节点组。
管理节点170与租户B的执行节点1201之间建立有通信连接,这样管理节点170与执行节点1201之间可以进行数据传输。步骤S52中,该管理节点170指示租户B的执行节点1201的实现方式可以是消息或者指令,在此不限定指示的具体实现方式。
可选地,管理节点170响应在步骤S51接收的请求,并指示租户B的执行节点1201在租户B的资源隔离区120中部署用于加入该通道140的区块链节点组。
可选地,在步骤S52中,该管理节点170向租户B的执行节点1201发送部署区块链节点组的指示时,该指示还可以携带该通道140维护的区块链的信息,例如该信息可以包括如下的一种或多种:维护该区块链所使用的安全算法、该区块链支持的共识算法、该区块链支持的Hyperledger Fabric的版本号。这样,租户B的执行节点1201可以按照该区块链的信息,部署适合维护该区块链的区块链节点组。
步骤S53,租户B的执行节点1201在租户B的资源隔离区120中部署用于加入该通道140的区块链节点组124。
部署该区块链节点组124的方式可以包括两种实现方式。实现方式一,在资源隔离区 120新建区块链节点组124,例如在资源隔离区120中部署新容器,该新容器运行提供该区块链节点组124的实例。实现方式二,如果资源隔离区120已经部署一个或多个区块链节点组,从已经部署的一个或多个区块链节点组中选择区块链节点组,选择的区块链节点组作为加入通道140的区块链节点组124。
具体地,租户B的执行节点1201在资源隔离区120中部署的该区块链节点组124包括:锚点121、内部区块链节点122和主控点123。
在该执行节点1201部署完该区块链节点组124后,运行该区块链节点组124。
步骤S54,租户B的执行节点1201向管理节点170反馈已经部署用于加入通道140的区块链节点组124。
在一个实施方式中,租户B的执行节点1201可以向管理节点170发送消息,该消息包括区块链节点组124的标识,该消息指示该区块链节点组124为租户B用于加入通道 140的区块链节点组。
在一个实施方式中,位于管理平台的管理节点170,可以直接查询区块链节点组124 的标识,以及查询到该区块链节点组124为租户B用于加入通道140的区块链节点组。
本方法中,步骤S54为本申请的可选步骤。管理节点170可以等待租户B的执行节点1201反馈已经部署区块链节点组124后再执行步骤S55,即可以由该执行节点1201的反馈触发步骤S55的执行;另外,管理节点170可以边等待执行节点1201的反馈,边执行步骤S55。可替代地,管理节点170还可以不等待执行节点1201的反馈,直接执行步骤 S55。
步骤S55,管理节点170获取通道140的新的通道配置信息。
本申请所述的通道配置信息可以包括通道140的标识,还可以包括通道140所包括的所有区块链节点组的配置信息。
可选地,每个区块链节点组的配置信息包括:该区块链节点组的操作权限,该区块链节点组的权限证书,该区块链节点组使用的安全算法。
该区块链节点组的操作权限包括:该区块链节点组的最高管理权限,操作该区块链节点组的数据的读权限和写权限。在一个实施方式中,该新的通道配置信息指示为该区块链节点组124配置该区块链节点组124的最高管理权限。该新的通道配置信息指示为该区块链节点组124配置读/写该区块链节点组124的数据的读权限和写权限;这样,该区块链节点组124可以读/写该区块链组124管理的区块链。
可选地,该区块链节点组的权限证书包括:管理该区块链节点组的最高管理权限的证书,该区块链节点组的根证书,该区块链节点组通信所使用的根证书。可选地,该区块链节点组的根证书为客户端访问该区块链节点组的权限证书。可选地,该区块链节点组通信所使用的根证书可以用于:建立该区块链节点组中的锚节点、内部区块链节点和主控点之间的通信连接,建立该区块链节点组的锚节点与通道140中其他区块链节点组的锚节点之间的通信连接,和建立该区块链节点组的主控点与共识节点之间的通信连接。可选地,基于该区块链节点组通信所使用的根证书建立的通信连接,为需要使用该根证书鉴权的通信连接。可选地,该区块链节点组通信所使用的根证书可以是基于安全传输层协议(transport layer security,TLS)通信的根证书。
该区块链节点组使用的安全算法包括:防篡改区块的算法(例如哈希算法)。举例,对于区块链中的相邻两个区块,使用该哈希算法计算前一个区块的哈希值,并将该哈希值存储在后一个的区块中;这样,可以通过该哈希值发现该前一个区块的数据是否被恶意修改。可选地,如果该区块链节点组还参与背书,则该区块链节点组使用的安全算法还包括:防止对该区块链节点组背书后的交易记录进行篡改的算法(例如哈希算法)。从而,对于共识节点从该区块链节点组接收按照该算法处理后的交易记录,防止该交易记录中的交易信息在共识节点中泄露。
可选地,本申请所述的通道配置信息还可以包括:通道140的权限策略。
该通道140的权限策略指定通道140中具有管理权限的租户;例如,该权限策略指定对通道140具有最高管理权限的租户;例如,该权限策略可以指定对通道140具有读通道配置信息的读权限的租户;例如,该权限策略指定对通道140具有写通道配置信息的写权限的租户。可选地,如果租户A为创建通道140的发起方,则该通道140的权限策略,可以指定租户A具有管理通道140的最高管理权限,可以指定租户A具有读通道配置信息的读权限,可以指定租户A具有写通道配置信息的写权限。
可选地,本申请所述的通道配置信息还可以包括:该通道配置信息的版本号。
可选地,该管理节点170可以获取包括所有区块链节点组的通道140的通道配置信息。由于是管理节点170指示租户B部署的区块链节点组124,因此该管理节点170获取的通道配置信息包括区块链节点组124的通道配置信息,即该管理节点170获取的通道配置信息是通道140的新的通道配置信息。
步骤S56,管理节点170向租户A的执行节点1101发送该新的通道配置信息。
租户A的执行节点1101部署在资源隔离区110中。
管理节点170与租户A的执行节点1101之间建立有通信连接,这样管理节点170与执行节点1101之间可以进行数据传输。从而,该管理节点170可以向租户A的执行节点 1101发送该新的通道配置信息。
步骤S57,租户A的执行节点1101接收该新的通道配置信息,并获取通道140的旧的通道配置信息。
该旧的通道配置信息包括在区块链节点组124未加入通道140之前通道140的通道配置信息。可见,该旧的通道配置信息包括已加入通道140的所有区块链节点组的配置信息,但该旧的通道配置信息不包括区块链节点组124的配置信息。
另外,该旧的通道配置信息还包括通道140的标识。
可选地,租户A的执行节点1101通过主控点113从共识组织160获取通道140的该旧的通道配置信息。例如,租户A的执行节点1101通过主控点113从共识节点161获取通道140的该旧的通道配置信息。
步骤S58,租户A的执行节点1101生成通道140的增量配置信息。
租户A的执行节点1101可以计算管理节点170获取的该通道140的新的通道配置信息与租户A的执行节点1101获取的该通道140的旧的通道配置信息之间的差量,并在增量配置信息记录该差量。因此,该增量配置信息包括该新的通道配置信息与该旧的通道配置信息之间的差量,即该增量配置信息包括区块链节点组124的配置信息。该增量配置信息还可以包括通道140的标识。可选地,该增量配置信息还可以包括:新的通道配置信息的版本号、旧的通道配置信息的版本号。
在一个实施方式中,提供一种数据结构来记录通道配置信息。该数据结构包括如下字段:记录通道140的标识的字段、记录通道140所包括的所有区块链节点组的配置信息的字段、记录通道140的权限策略的字段、记录版本号的字段。增量配置信息作为新的通道配置信息与旧的通道配置信息的差量,仍记录在该数据结构中。由于在新的通道配置信息与旧的通道配置信息之间已加入通道140的所有区块链节点组的配置信息是相同的,因此在记录该增量配置信息的数据结构中记录该已加入通道140的所有区块链节点组的配置信息的字段为空,并记录区块链节点组124的配置信息;如果在新的通道配置信息与旧的通道配置信息之间通道140的权限策略也是相同的,则在记录该增量配置信息的数据结构中记录通道140的权限策略的字段为空,如果新的通道配置信息与旧的通道配置信息记录的通道140的权限策略不相同,则在记录该增量配置信息的数据结构中记录租户B具有的权限;在记录该增量配置信息的数据结构中记录新的通道配置信息的版本号、旧的通道配置信息的版本号;在记录该增量配置信息的数据结构中记录通道140的标识。
步骤S59,租户A的执行节点1101向共识组织发送该增量配置信息。
具体地,租户A的执行节点1101向与区块链节点组114连接的共识节点161发送该增量配置信息。
本申请将该增量配置信息作为一个交易记录,因为该增量配置信息也需要已加入通道140的租户的共识。具体地,租户A的执行节点1101向主控点113发送该增量配置信息,该主控点113将该增量配置信息向共识节点161发送。
共识节点161接收该增量配置信息,并将该增量配置信息作为一个交易记录。按照处理交易记录的方式,共识组织160按照通道140的共识算法对该增量配置信息进行验证,共识节点161保存验证通过的该增量配置信息。
共识节点161生成包括该增量配置信息的区块。一种可能实现中,该增量配置信息的数据量达到生成一个区块的数据量,共识节点161生成只记录该增量配置信息的区块。一种可能实现中,该增量配置信息的数据量未达到生成一个区块的数据量,共识节点161将该增量配置信息和通道140的其他交易记录一起生成一个区块。在另一种可能实现中,该增量配置信息的数据量超过生成一个区块的数据量,共识节点161将该增量配置信息划分入多个区块。可选地,在生成该多个区块时,首先按照生成区块所需的数据量将该增量配置信息划分为多份数据,除了最后一份数据,其它份数据等于生成区块所需的数据量,从而将最后一份数据与通道140的其他交易记录一起生成一个区块,针对其它份数据分别生成一个区块。
共识组织160在共识节点间同步共识节点161生成的包括该增量配置信息的区块。例如,共识节点161将该区块的副本发送至共识节点163,共识节点163存储该区块。
已加入通道140的每个区块链节点组可以从与该个区块链节点组连接的共识节点获取到包括该增量配置信息的区块,并将该区块加入到本区块链节点组存储的区块链中。从而已加入通道140的所有区块链节点组达成同意区块链节点组124加入通道140的共识。举例说明,区块链节点组114的主控点113可以从共识节点161获取包括该增量配置信息的区块,并将该区块加入到该区块链节点组114存储的区块链。
步骤S60,管理节点170指示租户B的执行节点1201按照增量配置信息将租户B的区块链节点组124加入通道140。
管理节点170与租户B的执行节点1201之间建立有通信连接,这样管理节点170可以指示租户B的执行节点1201按照增量配置信息将区块链节点组124加入通道140。具体的指示方式,本申请不做限定;例如,管理节点170向租户B的执行节点1201发送消息,该消息指示租户B的执行节点1201按照增量配置信息将区块链节点组124加入通道140。
可选地,管理节点170在执行节点1201按照增量配置信息将区块链节点组124加入通道140时,还具体指示租户B的执行节点1201从共识组织获取包括该增量配置信息的区块。相应地,租户B的执行节点1201可以通过主控点123从与主控点123通信连接的共识节点163获取该区块(包括该增量配置信息)。
步骤S61,租户B的执行节点1201从共识组织获取包括增量配置信息的区块,并根据该增量配置信息将区块链节点组124加入通道140。
具体地,租户B的执行节点1201通过主控点123从与主控点123通信连接的共识节点163获取该区块(包括该增量配置信息)。可选地,主控点123与共识节点163之间的通信连接,为主控点123根据共识节点163的地址请求与共识节点163建立的;并且,该通信连接是未使用区块链节点组124用于建立通信的根证书建立的,即该通信连接不是使用该根证书建立的加密的通信连接。
租户B的执行节点1201根据增量配置信息中的区块链节点组124的配置信息,配置区块链节点组124。具体地,该执行节点1201为区块链节点组124配置该区块链节点组 124的操作权限。区块链节点组124存储该区块链节点组124的权限证书,该执行节点1201 根据该权限证书为该区块链节点组124配置最高管理权限。该执行节点1201为区块链节点组124配置使用该区块链节点组124的根证书对访问该区块链节点组124的请求(例如交易请求)做认证的功能。该执行节点1201为区块链节点组124配置使用该区块链节点组124通信所使用的根证书建立内外部的通信连接的功能。区块链节点组124存储区块链节点组124使用的安全算法,该安全算法可以包括一种或多种哈希算法;该执行节点1201 为区块链节点组124配置使用防篡改区块的哈希算法计算区块的哈希值的功能,该执行节点1201为区块链节点组124配置使用防篡改交易记录的哈希算法对背书的交易记录进行处理的功能。
在按照增量配置信息配置区块链节点组124之后,租户B的执行节点1201可以执行如下三个操作。
操作一,租户B的执行节点1201可以指示该锚点121使用用于建立通信的根证书与已加入该通道140的其他区块链节点组的锚点(例如租户A的区块链节点组114的锚点 111)建立通信连接。在租户B的区块链节点组124加入该通道140后,租户B的区块链节点组124的描点121可以从该其他区块链节点组(例如区块链节点组114)获取在租户 B的区块链节点组124加入该通道140之前的区块链。后续,区块链节点组124的内部区块链节点122可以在该区块链的基础上添加从共识组织160获取的新区块。
操作二,租户B的执行节点1201使用用于建立通信的根证书建立锚点121、主控点123和内部区块链节点122之间的通信连接。后续,在锚点121、主控点123和内部区块链节点122之间可以进行数据传输。操作二为本方法的可选步骤,租户B的执行节点1201 可以用该根证书建立锚点121、主控点123和内部区块链节点122之间的通信连接;或者,租户B的执行节点1201可以使用其它方式建立锚点121、主控点123和内部区块链节点 122之间的通信连接,即不使用该根证书来建立锚点121、主控点123和内部区块链节点 122之间的通信连接。
操作三,租户B的执行节点1201指示主控点123使用用于建立通信的根证书与共识组织160中的共识节点163建立通信连接。这样,该主控点123可以从共识节点163获取属于通道140的新区块,并将该新区块发送至内部区块链节点122,内部区块链节点122 将该新区块添加到该区块链中。操作三为本方法的可选步骤,主控点123可以使用该根证书与共识节点163建立加密的通信连接;或者,主控点123可以不使用该根证书,直接与共识节点163建立非加密的通信连接。
可选地,在增量配置信息中,用于区块链节点组124建立通信的根证书可以是基于安全传输层协议(transport layer security,TLS)通信的根证书。
可选地,如果增量配置信息中的通道140的权限策略记录了租户B的权限,则按照该权限配置租户B。
可选地,在区块链节点组124加入通道140之后,如果存在需要内部区块链节点122参与背书的合约事项,则区块链节点组124更新执行该合约事项的链代码,包括更新该链代码记录的背书策略;更新的背书策略指定了区块链节点组124和需要参与背书的其他区块链节点组。区块链节点组124(具体可以是内部区块链节点122)重新加载该更新的链代码。这样,内部区块链节点122对执行该合约事项所得的交易记录会按照更新的背书策略进行背书。
另外,需要与区块链节点组124同时参与背书的其他区块链节点组仍需要更新各自的链代码,并重新加载各自更新的链代码,更新的链代码记录的背书策略指定了区块链节点组124和该其他区块链节点组。这样,该其他区块链节点组可以与区块链节点组124同时参与背书。
可选地,为更新合约事项的背书策略,可以由人为更新新执行该合约事项的链代码,替代租户的执行节点更新执行该合约事项的链代码,该链代码包括该背书策略。
装置
本申请提供一种维护区块链的装置,该装置可以是本申请所述的第二租户(即租户A)的执行节点(即租户A的执行节点1101)。该装置包括的功能单元用于实现上述维护区块链的方法中由该第二租户的执行节点执行的步骤;本申请对在该装置中如何划分功能单元不做限定,下面实例性地提供一种功能单元的划分,如图6所示。
如图6所示的维护区块链的装置600,包括:
接收单元601,用于接收管理节点(即管理节点170)发送的通道的新的通道配置信息,所述通道对应一个区块链,所述新的通道配置信息包括:第一租户(例如租户B)的用于加入所述通道的目标区块链节点组(即区块链节点组124)的配置信息,已加入所述通道(即通道140)的所有区块链节点组(包括租户A的区块链节点组114) 的配置信息,以及所述通道的标识;
获取单元602,用于获取所述通道的旧的通道配置信息,所述旧的通道配置信息包括所述通道的标识和已加入所述通道的所有区块链节点组的配置信息;
生成单元603,用于根据所述新的通道配置信息和所述旧的通道配置信息生成所述通道的增量配置信息,所述增量配置信息包括所述通道的标识和所述目标区块链节点组的配置信息,所述增量配置信息不包括已加入所述通道的所有区块链节点组的配置信息;
发送单元604,用于将所述增量配置信息发送至共识组织(即共识组织160);
所述获取单元602,用于从所述共识组织获取包括所述增量配置信息的区块;
添加单元605,用于将所述区块添加至已加入所述通道的区块链节点组所存储的区块链。
可选地,所述目标区块链节点组的配置信息还包括:所述目标区块链节点组的操作权限,所述目标区块链节点组的权限证书,和所述目标区块链节点组使用的安全算法。
可选地,所述装置600包括:
更新单元606,用于对于需要所述目标区块链节点组参与背书的合约事项,在用于执行所述合约事项的链代码中更新所述合约事项对应的背书策略,更新后的背书策略指定所述目标区块链节点组参与对执行所述合约事项所得的交易记录背书。
本申请提供一种维护区块链的装置,该装置可以是本申请所述的第一租户(即租户B)的执行节点(即租户B的执行节点1201)。该装置包括的功能单元用于实现上述维护区块链的方法中由该第一租户的执行节点执行的步骤;本申请对在该装置中如何划分功能单元不做限定,下面实例性地提供一种功能单元的划分,如图7所示。
如图7所示的维护区块链的装置700,包括:
处理单元701,用于在第一租户(即租户B)的资源隔离区(即资源隔离区120) 部署用于加入通道(即通道140)的目标区块链节点组(即区块链节点组124),所述通道对应一个区块链;
获取单元702,用于获取包括所述通道的增量配置信息的区块,所述增量配置信息包括所述通道的标识和所述第一租户的所述目标区块链节点组的配置信息,所述增量配置信息不包括已加入所述通道的所有区块链节点组的配置信息;
所述处理单元701,用于按照所述增量配置信息将所述第一租户的所述目标区块链节点组加入所述通道;
添加单元703,用于将所述区块添加至所述目标区块链节点组存储的区块链。
可选地,所述获取单元702,用于从共识组织(即共识组织160)获取包括所述增量配置信息的区块。
可选地,所述目标区块链节点组的配置信息包括:所述目标区块链节点组的操作权限,所述目标区块链节点组的权限证书,和所述目标区块链节点组使用的安全算法。
可选地,所述处理单元701,用于在所述第一租户的资源隔离区创建所述第一租户的所述目标区块链节点组,或者用于从所述第一租户的资源隔离区中已创建的区块链节点组中,确定用于加入所述通道的目标区块链节点组。
可选地,所述装置700包括:
更新单元704,用于对于需要所述目标区块链节点组参与背书的合约事项,在用于执行所述合约事项的链代码中更新所述合约事项对应的背书策略,更新后的背书策略指定所述目标区块链节点组参与对执行所述合约事项所得的交易记录背书。
本申请提供一种维护区块链的装置,该装置可以是本申请所述的管理节点(即管理节点170)。该装置包括的功能单元用于实现上述维护区块链的方法中由该管理节点执行的步骤;本申请对在该装置中如何划分功能单元不做限定,下面实例性地提供一种功能单元的划分,如图7所示。
如图8所示的维护区块链的装置800,装置800包括:
处理单元801,用于指示第一租户(即租户B)的执行节点(即执行节点1201)在所述第一租户的资源隔离区(即资源隔离区120)部署用于加入通道(即通道140) 的目标区块链节点组(即区块链节点组124),所述通道对应一个区块链;
获取单元802,用于获取所述通道的新的通道配置信息,所述新的通道配置信息包括:所述目标区块链节点组的配置信息,已加入所述通道的所有区块链节点组的配置信息,以及所述通道的标识;所述已加入所述通道的所有区块链节点组包括第二租户(即租户A)的区块链节点组(即区块链节点组114);
发送单元803,用于向所述第二租户的执行节点(即执行节点1101)发送所述新的通道配置信息;
所述处理单元801,用于指示所述第一租户的执行节点按照所述通道的增量配置信息将所述第一租户的所述目标区块链节点组加入所述通道,所述增量配置信息包括所述通道的标识和所述目标区块链节点组的配置信息,所述增量配置信息不包括已加入所述通道的所有区块链节点组的配置信息,所述增量配置信息根据所述新的通道配置信息与所述通道的旧的通道配置信息得到,所述旧的通道配置信息包括所述通道的标识和已加入所述通道的所有区块链节点组的配置信息。
可选地,所述处理单元801,用于指示所述第一租户的执行节点从共识组织(即共识组织160)获取包括所述增量配置信息的区块。
可选地,所述目标区块链节点组的配置信息包括:所述目标区块链节点组的操作权限,所述目标区块链节点组的权限证书,和所述目标区块链节点组使用的安全算法。
租户的执行节点(例如第一租户的执行节点、第二租户的执行节点)或者管理节点,可以部署在一个服务器上,或者分布式地部署在多个服务器上。租户的执行节点或者管理节点可以部署在同一个服务器上或者部署在不同服务器上。下面示例性地提供该服务器的一种可能的基本硬件架构,如图9所示。
参见图9,服务器900包括处理器901、存储器902、通信接口903和总线904。
服务器900中,处理器901的数量可以是一个或多个,图1仅示意了其中一个处理器901。可选地,处理器901可以是中央处理器(central processing unit,CPU) 或者ARM处理器。如果服务器900具有多个处理器901,多个处理器901的类型可以不同,或者可以相同。可选地,服务器900的多个处理器901还可以集成为多核处理器。
存储器902存储计算机指令;例如,该计算机指令包括链代码;例如,该计算机指令用于实现本申请提供的方法中的各个步骤;例如,该计算机指令用于实现本申请提供的装置600或装置700或者装置800包括的各功能单元。
存储器902可以是以下存储介质的任一种或任一种组合:非易失性存储器(non-volatile memory,NVM)(例如只读存储器(read only memory,ROM)、固态硬盘(SolidState Drives,SSD)、机械硬盘、磁盘、磁盘整列),易失性存储器(volatile memory)。
通信接口903可以是以下器件的任一种或任一种组合:网络接口(例如以太网接口)、无线网卡等具有网络接入功能的器件。
通信接口903用于服务器900与其他设备(例如服务器)进行数据通信。
图9用一条粗线表示总线904。处理器901、存储器902和通信接口903通过总线904连接。这样,处理器901可以通过总线904访问存储器902,以及通过总线904 利用通信接口903与其他设备(例如服务器)进行数据交互。
可选地,服务器900执行存储器902中的计算机指令,在服务器900上实现本申请提供的维护区块链的方法中由执行节点执行的步骤或者由管理节点执行的步骤,或者在服务器900上实现本申请提供的装置600或装置700或者装置800。
本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当服务器900的处理器901执行该计算机指令时,该服务器900执行本申请提供的维护区块链的方法中由第一租户的执行节点执行的步骤,或者该服务器执行该方法中由第二租户的执行节点执行的步骤,或者该服务器执行该方法中由管理节点执行的步骤。
本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,该计算机指令用于实现装置600或者装置700或者装置800。
本申请提供一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。服务器的处理器可以从计算机可读存储介质读取并执行该计算机指令,使得该服务器执行本申请提供的维护区块链的方法中由第一租户的执行节点执行的步骤,或者使得服务器执行该方法中由第二租户的执行节点执行的步骤,或者使得服务器执行该方法中由管理节点执行的步骤。
本申请提供一种计算机程序产品,该计算机程序产品包括的计算机指令用于实现装置600或者装置700或者装置800。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。
Claims (28)
1.一种维护区块链的方法,其特征在于,所述方法包括:
接收管理节点发送的通道的新的通道配置信息,所述通道对应一个区块链,所述新的通道配置信息包括:第一租户的用于加入所述通道的目标区块链节点组的配置信息,已加入所述通道的所有区块链节点组的配置信息,以及所述通道的标识;
获取所述通道的旧的通道配置信息,所述旧的通道配置信息包括所述通道的标识和已加入所述通道的所有区块链节点组的配置信息;
根据所述新的通道配置信息和所述旧的通道配置信息生成所述通道的增量配置信息,所述增量配置信息包括所述通道的标识和所述目标区块链节点组的配置信息,所述增量配置信息不包括已加入所述通道的所有区块链节点组的配置信息;
将所述增量配置信息发送至共识组织;
从所述共识组织获取包括所述增量配置信息的区块;
将所述区块添加至已加入所述通道的区块链节点组所存储的区块链。
2.根据权利要求1所述的方法,其特征在于,所述目标区块链节点组的配置信息还包括:
所述目标区块链节点组的操作权限,
所述目标区块链节点组的权限证书,和
所述目标区块链节点组使用的安全算法。
3.根据权利要求1或2所述的方法,其特征在于,所述方法包括:
对于需要所述目标区块链节点组参与背书的合约事项,在用于执行所述合约事项的链代码中更新所述合约事项对应的背书策略,更新后的背书策略指定所述目标区块链节点组参与对执行所述合约事项所得的交易记录背书。
4.一种维护区块链的方法,其特征在于,所述方法包括:
在第一租户的资源隔离区部署用于加入通道的目标区块链节点组,所述通道对应一个区块链;
获取包括所述通道的增量配置信息的区块,所述增量配置信息包括所述通道的标识和所述第一租户的所述目标区块链节点组的配置信息,所述增量配置信息不包括已加入所述通道的所有区块链节点组的配置信息;
按照所述增量配置信息将所述第一租户的所述目标区块链节点组加入所述通道;
将所述区块添加至所述目标区块链节点组存储的区块链。
5.根据权利要求4所述的方法,其特征在于,所述获取包括所述通道的增量配置信息的区块包括:
从共识组织获取包括所述增量配置信息的区块。
6.根据权利要求4或5所述的方法,其特征在于,所述目标区块链节点组的配置信息包括:
所述目标区块链节点组的操作权限,
所述目标区块链节点组的权限证书,和
所述目标区块链节点组使用的安全算法。
7.根据权利要求4至6任一项所述的方法,其特征在于,所述在第一租户的资源隔离区部署用于加入通道的目标区块链节点组,包括:
在所述第一租户的资源隔离区创建所述第一租户的所述目标区块链节点组;或者,
从所述第一租户的资源隔离区中已创建的区块链节点组中,确定用于加入所述通道的目标区块链节点组。
8.根据权利要求4至7任一项所述的方法,其特征在于,所述方法包括:
对于需要所述目标区块链节点组参与背书的合约事项,在用于执行所述合约事项的链代码中更新所述合约事项对应的背书策略,更新后的背书策略指定所述目标区块链节点组参与对执行所述合约事项所得的交易记录背书。
9.一种维护区块链的方法,其特征在于,所述方法包括:
指示第一租户的执行节点在所述第一租户的资源隔离区部署用于加入通道的目标区块链节点组,所述通道对应一个区块链;
获取所述通道的新的通道配置信息,所述新的通道配置信息包括:所述目标区块链节点组的配置信息,已加入所述通道的所有区块链节点组的配置信息,以及所述通道的标识;所述已加入所述通道的所有区块链节点组包括第二租户的区块链节点组;
向所述第二租户的执行节点发送所述新的通道配置信息;
指示所述第一租户的执行节点按照所述通道的增量配置信息将所述第一租户的所述目标区块链节点组加入所述通道,所述增量配置信息包括所述通道的标识和所述目标区块链节点组的配置信息,所述增量配置信息不包括已加入所述通道的所有区块链节点组的配置信息,所述增量配置信息根据所述新的通道配置信息与所述通道的旧的通道配置信息得到,所述旧的通道配置信息包括所述通道的标识和已加入所述通道的所有区块链节点组的配置信息。
10.根据权利要求9所述的方法,其特征在于,所述指示所述第一租户的执行节点按照所述通道的增量配置信息将所述目标区块链节点组加入所述通道包括:
指示所述第一租户的执行节点从共识组织获取包括所述增量配置信息的区块。
11.根据权利要求9或10所述的方法,其特征在于,所述目标区块链节点组的配置信息包括:
所述目标区块链节点组的操作权限,
所述目标区块链节点组的权限证书,和
所述目标区块链节点组使用的安全算法。
12.一种维护区块链的装置,其特征在于,所述装置包括:
接收单元,用于接收管理节点发送的通道的新的通道配置信息,所述通道对应一个区块链,所述新的通道配置信息包括:第一租户的用于加入所述通道的目标区块链节点组的配置信息,已加入所述通道的所有区块链节点组的配置信息,以及所述通道的标识;
获取单元,用于获取所述通道的旧的通道配置信息,所述旧的通道配置信息包括所述通道的标识和已加入所述通道的所有区块链节点组的配置信息;
生成单元,用于根据所述新的通道配置信息和所述旧的通道配置信息生成所述通道的增量配置信息,所述增量配置信息包括所述通道的标识和所述目标区块链节点组的配置信息,所述增量配置信息不包括已加入所述通道的所有区块链节点组的配置信息;
发送单元,用于将所述增量配置信息发送至共识组织;
所述获取单元,还用于从所述共识组织获取包括所述增量配置信息的区块;
添加单元,用于将所述区块添加至已加入所述通道的区块链节点组所存储的区块链。
13.根据权利要求12所述的装置,其特征在于,所述目标区块链节点组的配置信息还包括:
所述目标区块链节点组的操作权限,
所述目标区块链节点组的权限证书,和
所述目标区块链节点组使用的安全算法。
14.根据权利要求12或13所述的装置,其特征在于,所述装置还包括:
更新单元,用于对于需要所述目标区块链节点组参与背书的合约事项,在用于执行所述合约事项的链代码中更新所述合约事项对应的背书策略,更新后的背书策略指定所述目标区块链节点组参与对执行所述合约事项所得的交易记录背书。
15.一种维护区块链的装置,其特征在于,所述装置包括:
处理单元,用于在第一租户的资源隔离区部署用于加入通道的目标区块链节点组,所述通道对应一个区块链;
获取单元,用于获取包括所述通道的增量配置信息的区块,所述增量配置信息包括所述通道的标识和所述第一租户的所述目标区块链节点组的配置信息,所述增量配置信息不包括已加入所述通道的所有区块链节点组的配置信息;
所述处理单元,还用于按照所述增量配置信息将所述第一租户的所述目标区块链节点组加入所述通道;
添加单元,用于将所述区块添加至所述目标区块链节点组存储的区块链。
16.根据权利要求15所述的装置,其特征在于,
所述获取单元,用于从共识组织获取包括所述增量配置信息的区块。
17.根据权利要求15或16所述的装置,其特征在于,所述目标区块链节点组的配置信息包括:
所述目标区块链节点组的操作权限,
所述目标区块链节点组的权限证书,和
所述目标区块链节点组使用的安全算法。
18.根据权利要求15至17任一项所述的装置,其特征在于,
所述处理单元,用于在所述第一租户的资源隔离区创建所述第一租户的所述目标区块链节点组,或者用于从所述第一租户的资源隔离区中已创建的区块链节点组中,确定用于加入所述通道的目标区块链节点组。
19.根据权利要求15至18任一项所述的装置,其特征在于,所述装置还包括:
更新单元,用于对于需要所述目标区块链节点组参与背书的合约事项,在用于执行所述合约事项的链代码中更新所述合约事项对应的背书策略,更新后的背书策略指定所述目标区块链节点组参与对执行所述合约事项所得的交易记录背书。
20.一种维护区块链的装置,其特征在于,所述装置包括:
处理单元,用于指示第一租户的执行节点在所述第一租户的资源隔离区部署用于加入通道的目标区块链节点组,所述通道对应一个区块链;
获取单元,用于获取所述通道的新的通道配置信息,所述新的通道配置信息包括:所述目标区块链节点组的配置信息,已加入所述通道的所有区块链节点组的配置信息,以及所述通道的标识;所述已加入所述通道的所有区块链节点组包括第二租户的区块链节点组;
发送单元,用于向所述第二租户的执行节点发送所述新的通道配置信息;
所述处理单元,还用于指示所述第一租户的执行节点按照所述通道的增量配置信息将所述第一租户的所述目标区块链节点组加入所述通道,所述增量配置信息包括所述通道的标识和所述目标区块链节点组的配置信息,所述增量配置信息不包括已加入所述通道的所有区块链节点组的配置信息,所述增量配置信息根据所述新的通道配置信息与所述通道的旧的通道配置信息得到,所述旧的通道配置信息包括所述通道的标识和已加入所述通道的所有区块链节点组的配置信息。
21.根据权利要求20所述的装置,其特征在于,
所述处理单元,还用于指示所述第一租户的执行节点从共识组织获取包括所述增量配置信息的区块。
22.根据权利要求20或21所述的装置,其特征在于,所述目标区块链节点组的配置信息包括:
所述目标区块链节点组的操作权限,
所述目标区块链节点组的权限证书,和
所述目标区块链节点组使用的安全算法。
23.一种服务器,其特征在于,包括处理器和存储器;
所述存储器,用于存储计算机指令;
所述处理器,用于执行所述存储器存储的计算机指令,使得所述服务器执行权利要求1至3任一项所述的维护区块链的方法。
24.一种服务器,其特征在于,包括处理器和存储器;
所述存储器,用于存储计算机指令;
所述处理器,用于执行所述存储器存储的计算机指令,使得所述服务器执行权利要求4至8任一项所述的维护区块链的方法。
25.一种服务器,其特征在于,包括处理器和存储器;
所述存储器,用于存储计算机指令;
所述处理器,用于执行所述存储器存储的计算机指令,使得所述服务器执行权利要求9至11任一项所述的维护区块链的方法。
26.一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令指示服务器执行权利要求1至3任一项所述的维护区块链的方法。
27.一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令指示服务器执行权利要求4至8任一项所述的维护区块链的方法。
28.一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令指示服务器执行权利要求9至11任一项所述的维护区块链的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2019/081181 WO2020001117A1 (zh) | 2018-06-30 | 2019-04-03 | 维护区块链的方法和装置、服务器和计算机可读存储介质 |
EP19825082.1A EP3731494B1 (en) | 2018-06-30 | 2019-04-03 | Blockchain maintaining method and apparatus, server, and computer-readable storage medium |
US17/000,874 US20200387503A1 (en) | 2018-06-30 | 2020-08-24 | Blockchain Maintenance Method and Apparatus, Server, and Computer-Readable Storage Medium |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2018107062488 | 2018-06-30 | ||
CN201810706248 | 2018-06-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109246179A true CN109246179A (zh) | 2019-01-18 |
CN109246179B CN109246179B (zh) | 2021-06-01 |
Family
ID=65072765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810806654.1A Active CN109246179B (zh) | 2018-06-30 | 2018-07-20 | 维护区块链的方法和装置、服务器和计算机可读存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20200387503A1 (zh) |
EP (1) | EP3731494B1 (zh) |
CN (1) | CN109246179B (zh) |
WO (1) | WO2020001117A1 (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109933629A (zh) * | 2019-03-15 | 2019-06-25 | 腾讯科技(深圳)有限公司 | 数据同步方法、装置、计算机设备以及可读存储介质 |
CN110008263A (zh) * | 2019-02-20 | 2019-07-12 | 顺丰科技有限公司 | Hyperledger fabric集群模式下的动态组织扩展方法和系统 |
CN110290168A (zh) * | 2019-05-08 | 2019-09-27 | 深圳壹账通智能科技有限公司 | 数据发送方法、装置、服务器及存储介质 |
CN110442456A (zh) * | 2019-08-06 | 2019-11-12 | 上海浦东发展银行股份有限公司信用卡中心 | 一种基于Hyperledger-fabric的多通道的负载均衡方法 |
CN110555682A (zh) * | 2019-09-10 | 2019-12-10 | 苏州阿尔山数字科技有限公司 | 基于联盟链的多通道实现方法 |
CN110599181A (zh) * | 2019-09-26 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置和设备及存储介质 |
CN110620695A (zh) * | 2019-09-29 | 2019-12-27 | 重庆小雨点小额贷款有限公司 | 一种数据处理方法及相关设备 |
WO2020001117A1 (zh) * | 2018-06-30 | 2020-01-02 | 华为技术有限公司 | 维护区块链的方法和装置、服务器和计算机可读存储介质 |
CN111064711A (zh) * | 2019-11-27 | 2020-04-24 | 朱培培 | 基于区块链的数据流检测方法、装置及服务器 |
CN111291060A (zh) * | 2020-01-14 | 2020-06-16 | 腾讯科技(深圳)有限公司 | 一种管理区块链节点的方法、装置及计算机可读介质 |
CN111383018A (zh) * | 2020-05-28 | 2020-07-07 | 支付宝(杭州)信息技术有限公司 | 在联盟链网络中创建节点组、基于节点组的交易方法 |
CN111611619A (zh) * | 2020-05-26 | 2020-09-01 | 牛津(海南)区块链研究院有限公司 | 一种基于联盟链的溯源方法、装置、设备及可读存储介质 |
CN111628886A (zh) * | 2020-04-14 | 2020-09-04 | 苏宁金融科技(南京)有限公司 | 私有云环境下组建区块链网络的方法、装置、计算机设备 |
CN111666332A (zh) * | 2019-03-05 | 2020-09-15 | 国际商业机器公司 | 自动演进的数据库背书策略 |
CN113824674A (zh) * | 2020-06-19 | 2021-12-21 | 株式会社理光 | 联盟链式数据结构网络管理方法、管理节点及介质 |
WO2023088135A1 (zh) * | 2021-11-22 | 2023-05-25 | 中兴通讯股份有限公司 | 数据通信方法及其装置、存储介质、程序产品 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109033405B (zh) * | 2018-08-03 | 2020-09-08 | 华为技术有限公司 | 维护区块链的方法和装置、服务器和计算机可读存储介质 |
JP7062571B2 (ja) * | 2018-10-05 | 2022-05-06 | 株式会社日立製作所 | 組織管理支援システム、組織管理支援方法、および、組織管理支援装置 |
CN112492006B (zh) * | 2018-10-31 | 2023-12-05 | 创新先进技术有限公司 | 一种基于区块链的节点管理方法和装置 |
CN112804233B (zh) * | 2021-01-15 | 2023-05-02 | 欧冶云商股份有限公司 | 一种面向区块链多通道的区块打包方法、装置及存储介质 |
CN113612809B (zh) * | 2021-05-13 | 2023-11-14 | 南京欣网互联网络科技有限公司 | 一种基于PaaS平台的BaaS架构下fabric链码外部调用方法 |
CN113098984B (zh) * | 2021-06-02 | 2021-08-31 | 支付宝(杭州)信息技术有限公司 | 基于注册机制形成多层区块链系统的方法和区块链系统 |
JP6967211B1 (ja) * | 2021-07-22 | 2021-11-17 | 直樹 柴田 | 違法な取引を防止しつつ匿名ユーザの参加も許容する暗号資産の取引のための完全分散型ブロックチェーンシステム及びコンピュータープログラム |
CN113347050B (zh) * | 2021-08-04 | 2021-11-02 | 支付宝(杭州)信息技术有限公司 | 区块链节点退出节点集合的方法及装置 |
CN114928558B (zh) * | 2022-06-14 | 2023-12-12 | 上海万向区块链股份公司 | 基于区块链的运维方法和系统 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105430767A (zh) * | 2016-01-17 | 2016-03-23 | 罗轶 | 智行包 |
US20170214699A1 (en) * | 2016-01-26 | 2017-07-27 | Bank Of America Corporation | System for conversion of an instrument from a non-secured instrument to a secured instrument in a process data network |
CN107040594A (zh) * | 2017-04-12 | 2017-08-11 | 山大地纬软件股份有限公司 | 基于pbft的许可区块链节点准入的方法及装置 |
WO2017148527A1 (en) * | 2016-03-03 | 2017-09-08 | Nec Europe Ltd. | Method for managing data in a network of nodes |
CN107171829A (zh) * | 2017-04-24 | 2017-09-15 | 杭州趣链科技有限公司 | 一种基于bft共识算法实现的动态节点管理方法 |
CN107483181A (zh) * | 2017-08-28 | 2017-12-15 | 北京金股链科技有限公司 | 合同管理方法、装置及终端 |
CN107683489A (zh) * | 2015-06-26 | 2018-02-09 | 英特尔公司 | 用于在受信任执行环境中执行加密操作的系统、装置和方法 |
CN107682308A (zh) * | 2017-08-16 | 2018-02-09 | 北京航空航天大学 | 基于区块链潜信道技术的电子证据保存系统 |
US20180101560A1 (en) * | 2016-10-07 | 2018-04-12 | International Business Machines Corporation | Establishing overlay trust consensus for blockchain trust validation system |
CN107947980A (zh) * | 2017-11-23 | 2018-04-20 | 上海壹账通金融科技有限公司 | 分布式系统操作方法及系统 |
WO2018115567A1 (en) * | 2016-12-19 | 2018-06-28 | Nokia Technologies Oy | Method and apparatus for private data transfer between parties |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10320843B1 (en) * | 2017-12-08 | 2019-06-11 | Symbiont.Io, Inc. | Methods, systems, and devices for encrypted electronic storage and confidential network transfer of private data through a trustless distributed ledger technology system |
US10701054B2 (en) * | 2018-01-31 | 2020-06-30 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing super community and community sidechains with consent management for distributed ledger technologies in a cloud based computing environment |
US10834095B2 (en) * | 2018-05-17 | 2020-11-10 | International Business Machines Corporation | Post-commit validation in a distributed ledger |
CN109246179B (zh) * | 2018-06-30 | 2021-06-01 | 华为技术有限公司 | 维护区块链的方法和装置、服务器和计算机可读存储介质 |
-
2018
- 2018-07-20 CN CN201810806654.1A patent/CN109246179B/zh active Active
-
2019
- 2019-04-03 WO PCT/CN2019/081181 patent/WO2020001117A1/zh unknown
- 2019-04-03 EP EP19825082.1A patent/EP3731494B1/en active Active
-
2020
- 2020-08-24 US US17/000,874 patent/US20200387503A1/en active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107683489A (zh) * | 2015-06-26 | 2018-02-09 | 英特尔公司 | 用于在受信任执行环境中执行加密操作的系统、装置和方法 |
CN105430767A (zh) * | 2016-01-17 | 2016-03-23 | 罗轶 | 智行包 |
US20170214699A1 (en) * | 2016-01-26 | 2017-07-27 | Bank Of America Corporation | System for conversion of an instrument from a non-secured instrument to a secured instrument in a process data network |
WO2017148527A1 (en) * | 2016-03-03 | 2017-09-08 | Nec Europe Ltd. | Method for managing data in a network of nodes |
US20180101560A1 (en) * | 2016-10-07 | 2018-04-12 | International Business Machines Corporation | Establishing overlay trust consensus for blockchain trust validation system |
WO2018115567A1 (en) * | 2016-12-19 | 2018-06-28 | Nokia Technologies Oy | Method and apparatus for private data transfer between parties |
CN107040594A (zh) * | 2017-04-12 | 2017-08-11 | 山大地纬软件股份有限公司 | 基于pbft的许可区块链节点准入的方法及装置 |
CN107171829A (zh) * | 2017-04-24 | 2017-09-15 | 杭州趣链科技有限公司 | 一种基于bft共识算法实现的动态节点管理方法 |
CN107682308A (zh) * | 2017-08-16 | 2018-02-09 | 北京航空航天大学 | 基于区块链潜信道技术的电子证据保存系统 |
CN107483181A (zh) * | 2017-08-28 | 2017-12-15 | 北京金股链科技有限公司 | 合同管理方法、装置及终端 |
CN107947980A (zh) * | 2017-11-23 | 2018-04-20 | 上海壹账通金融科技有限公司 | 分布式系统操作方法及系统 |
Non-Patent Citations (1)
Title |
---|
朱涛;姚翔;许玉壮;周钰: "《基于Fabric的跨境汇款追踪平台实现》", 《信息安全学报》 * |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020001117A1 (zh) * | 2018-06-30 | 2020-01-02 | 华为技术有限公司 | 维护区块链的方法和装置、服务器和计算机可读存储介质 |
CN110008263A (zh) * | 2019-02-20 | 2019-07-12 | 顺丰科技有限公司 | Hyperledger fabric集群模式下的动态组织扩展方法和系统 |
CN111666332A (zh) * | 2019-03-05 | 2020-09-15 | 国际商业机器公司 | 自动演进的数据库背书策略 |
CN111666332B (zh) * | 2019-03-05 | 2024-03-15 | 国际商业机器公司 | 自动演进的数据库背书策略 |
CN109933629A (zh) * | 2019-03-15 | 2019-06-25 | 腾讯科技(深圳)有限公司 | 数据同步方法、装置、计算机设备以及可读存储介质 |
CN110290168A (zh) * | 2019-05-08 | 2019-09-27 | 深圳壹账通智能科技有限公司 | 数据发送方法、装置、服务器及存储介质 |
WO2020224243A1 (zh) * | 2019-05-08 | 2020-11-12 | 深圳壹账通智能科技有限公司 | 数据发送方法、装置、服务器及存储介质 |
CN110442456A (zh) * | 2019-08-06 | 2019-11-12 | 上海浦东发展银行股份有限公司信用卡中心 | 一种基于Hyperledger-fabric的多通道的负载均衡方法 |
CN110442456B (zh) * | 2019-08-06 | 2023-02-28 | 上海浦东发展银行股份有限公司信用卡中心 | 一种基于Hyperledger-fabric的多通道的负载均衡方法 |
CN110555682B (zh) * | 2019-09-10 | 2023-04-07 | 苏州阿尔山数字科技有限公司 | 基于联盟链的多通道实现方法 |
CN110555682A (zh) * | 2019-09-10 | 2019-12-10 | 苏州阿尔山数字科技有限公司 | 基于联盟链的多通道实现方法 |
CN110599181A (zh) * | 2019-09-26 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置和设备及存储介质 |
CN110599181B (zh) * | 2019-09-26 | 2021-05-11 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置和设备及存储介质 |
CN110620695A (zh) * | 2019-09-29 | 2019-12-27 | 重庆小雨点小额贷款有限公司 | 一种数据处理方法及相关设备 |
CN110620695B (zh) * | 2019-09-29 | 2022-11-15 | 重庆小雨点小额贷款有限公司 | 一种数据处理方法及相关设备 |
CN111064711A (zh) * | 2019-11-27 | 2020-04-24 | 朱培培 | 基于区块链的数据流检测方法、装置及服务器 |
CN111291060A (zh) * | 2020-01-14 | 2020-06-16 | 腾讯科技(深圳)有限公司 | 一种管理区块链节点的方法、装置及计算机可读介质 |
CN111291060B (zh) * | 2020-01-14 | 2023-10-27 | 腾讯科技(深圳)有限公司 | 一种管理区块链节点的方法、装置及计算机可读介质 |
CN111628886A (zh) * | 2020-04-14 | 2020-09-04 | 苏宁金融科技(南京)有限公司 | 私有云环境下组建区块链网络的方法、装置、计算机设备 |
CN111611619A (zh) * | 2020-05-26 | 2020-09-01 | 牛津(海南)区块链研究院有限公司 | 一种基于联盟链的溯源方法、装置、设备及可读存储介质 |
CN111611619B (zh) * | 2020-05-26 | 2024-02-02 | 牛津(海南)区块链研究院有限公司 | 一种基于联盟链的溯源方法、装置、设备及可读存储介质 |
CN111383018A (zh) * | 2020-05-28 | 2020-07-07 | 支付宝(杭州)信息技术有限公司 | 在联盟链网络中创建节点组、基于节点组的交易方法 |
CN113824674A (zh) * | 2020-06-19 | 2021-12-21 | 株式会社理光 | 联盟链式数据结构网络管理方法、管理节点及介质 |
WO2023088135A1 (zh) * | 2021-11-22 | 2023-05-25 | 中兴通讯股份有限公司 | 数据通信方法及其装置、存储介质、程序产品 |
Also Published As
Publication number | Publication date |
---|---|
EP3731494B1 (en) | 2022-07-27 |
US20200387503A1 (en) | 2020-12-10 |
CN109246179B (zh) | 2021-06-01 |
EP3731494A1 (en) | 2020-10-28 |
EP3731494A4 (en) | 2021-04-07 |
WO2020001117A1 (zh) | 2020-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109246179A (zh) | 维护区块链的方法和装置、服务器和计算机可读存储介质 | |
CN109033405A (zh) | 维护区块链的方法和装置、服务器和计算机可读存储介质 | |
CN109040271B (zh) | 一种分布式环境下的网络设备完整性保护方法 | |
US11403605B1 (en) | Systems, methods, and program products for a distributed digital asset network with rapid transaction settlements | |
CN110868439B (zh) | 一种区块链系统 | |
US10965472B2 (en) | Secure bootstrap for a blockchain network | |
CN108389615A (zh) | 一种基于区块链技术的孕婴追溯存证系统及方法 | |
CN110348830A (zh) | 一种基于区块链的网络系统、认证方法、设备及存储介质 | |
CN110502927A (zh) | 一种信息处理方法及相关装置 | |
US11405198B2 (en) | System and method for storing and managing keys for signing transactions using key of cluster managed in trusted execution environment | |
WO2019141984A1 (en) | Interaction between blockchains | |
CN107800538A (zh) | 一种自助设备远程密钥分发方法 | |
CN110149304A (zh) | 一种适用于联盟链的支持身份可追踪的高效匿名认证方法和系统 | |
WO2019170814A1 (en) | Data transaction system and method | |
CN106886722A (zh) | 大数据信息处理方法及装置 | |
Hao et al. | A blockchain-based cross-domain and autonomous access control scheme for internet of things | |
He et al. | A novel cryptocurrency wallet management scheme based on decentralized multi-constrained derangement | |
Zaman et al. | A multilayered semi-permissioned blockchain based platform for peer to peer energy trading | |
CN110071966A (zh) | 基于云平台的区块链组网及数据处理方法 | |
KR102294569B1 (ko) | 블록체인 네트워크를 구축할 수 있는 블록체인 관리시스템 | |
Xie et al. | Cross-Chain-Based Trustworthy Node Identity Governance in Internet of Things | |
Sahi et al. | Self-sovereign identity in semi-permissioned blockchain networks leveraging ethereum and hyperledger fabric | |
Mishra et al. | VaccineChain: A checkpoint assisted scalable blockchain based secure vaccine supply chain with selective revocation | |
APEH et al. | Implementing a Secured Offline Blockchain Based Electronic Voting System | |
CN114900534B (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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220225 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Patentee after: Huawei Cloud Computing Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |