WO2020024607A1 - 维护区块链的方法和装置、服务器和计算机可读存储介质 - Google Patents

维护区块链的方法和装置、服务器和计算机可读存储介质 Download PDF

Info

Publication number
WO2020024607A1
WO2020024607A1 PCT/CN2019/081212 CN2019081212W WO2020024607A1 WO 2020024607 A1 WO2020024607 A1 WO 2020024607A1 CN 2019081212 W CN2019081212 W CN 2019081212W WO 2020024607 A1 WO2020024607 A1 WO 2020024607A1
Authority
WO
WIPO (PCT)
Prior art keywords
channel
blockchain node
node group
tenant
blockchain
Prior art date
Application number
PCT/CN2019/081212
Other languages
English (en)
French (fr)
Inventor
张煜
王磊
郝利鹏
张子怡
Original Assignee
华为技术有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to EP19844896.1A priority Critical patent/EP3817291B1/en
Publication of WO2020024607A1 publication Critical patent/WO2020024607A1/zh
Priority to US17/166,860 priority patent/US11811910B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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/3239Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3263Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements

Definitions

  • the present application relates to the field of computers, and in particular, to a method and device for maintaining a blockchain, a server, and a computer-readable storage medium.
  • a blockchain (blockchain or blockchain) is a chained data structure that is maintained in a distributed database by multiple peer blockchain nodes.
  • Blockchains can be divided into public blockchains, consortium blockchains, and private blockchains.
  • the public chain refers to a blockchain that has no access restrictions, and anyone can read and send transactions, and transactions can obtain valid confirmations and can participate in its consensus process.
  • a private chain refers to a blockchain whose write permissions are controlled by an organization. Only members (either individuals or organizations) confirmed by the organization can write data in the blockchain.
  • the alliance chain refers to a blockchain in which multiple organizations (hereinafter referred to as members of the alliance chain) participate in management together. Each member runs one or more nodes, and each node is called a participant of the alliance chain. The alliance chain only allows nodes among members to read and send transactions, and collectively record transaction data.
  • the alliance chain and the private chain are collectively referred to as the permission chain.
  • the members of the permission chain are determined by the management personnel when the alliance chain or the private chain is initialized. Deleting new members requires the management personnel to re-plan or create the alliance chain or the private chain, which is complicated to implement.
  • this application provides a method, a device, and a server for maintaining a blockchain, which can implement the maintenance of dynamically quitting the blockchain node group of an old tenant (ie, a member) from the blockchain.
  • the present application provides a method for maintaining a blockchain.
  • the application scenario of the method multiple tenants each have at least one blockchain node group, and each tenant can add part or all of the blockchain node groups it has to the channel.
  • the multiple tenants include a first tenant and a second tenant, and the target blockchain node group of the first tenant has joined the channel.
  • This channel is used to maintain a blockchain; specifically, the blockchain node groups in the channel each store the blockchain and participate in the maintenance of the blockchain; exiting the channel will no longer update the locally stored blocks Chain, withdraw from participating in the maintenance of the blockchain.
  • This method is used to implement the target block chain node group of the first tenant to exit the channel.
  • the management node instructs the execution node of the first tenant to stop running the target blockchain node group. Accordingly, the execution node of the first tenant stops running the target blockchain node group in the resource isolation zone of the first tenant. In this way, the target blockchain node group stops working in the channel, such as obtaining a new block from a consensus organization.
  • the management node obtains the configuration information of the target blockchain node group, and sends the configuration information of the target blockchain node group to the execution node of the second tenant.
  • the execution node of the second tenant obtains the channel configuration information of the channel from the consensus organization.
  • the channel configuration information includes the identifier of the channel and the configuration information of all blockchain node groups that have joined the channel. All the blockchain node groups of the channel include the target blockchain node group.
  • the execution node of the second tenant generates the channel adjustment information of the channel according to the channel configuration information and the configuration information of the target blockchain node group received from the management node.
  • the channel adjustment information includes the channel configuration information and The difference between the configuration information of the target blockchain node group, that is, the channel adjustment information includes all of the blockchain node groups of all the blockchain node groups that have been added to the channel except the target blockchain node group. Configuration information.
  • the channel adjustment information also includes an identification of the channel.
  • the execution node of the second tenant sends the channel adjustment information to the consensus organization; the consensus organization generates a block including the channel adjustment information.
  • the second tenant's block chain node group that has joined the channel obtains the block including the channel adjustment information from the consensus organization, and adds the block to the block chain stored by the block chain node group .
  • the blockchain node group of the second tenant that has joined the channel records the channel adjustment information in the blockchain, and the channel adjustment information records the channel configuration when the target blockchain node group is withdrawn from the channel.
  • recording the channel adjustment information in the blockchain indicates that the channel adjustment information is a consensus that other tenants in the channel agree to quit the first tenant from the channel.
  • the blockchain node group that has joined the channel can obtain the channel adjustment information from the consensus node, and in the blockchain node group The channel adjustment information is stored in the maintained blockchain.
  • the blockchain node groups that have joined the channel each record in their own maintained blockchain the consent of the first tenant to withdraw from the channel. consensus.
  • the target blockchain node group of the first tenant refers to each blockchain node group that the first tenant has joined the channel.
  • the withdrawal of the target blockchain node group of the first tenant from the channel means that each blockchain node group that the first tenant has joined the channel has exited the channel. This can remove the first tenant from participating in the maintenance of the channel.
  • the configuration information of the target blockchain node group includes: the operation authority of the target blockchain node group, the authority certificate of the target blockchain node group, and the target blockchain The security algorithm used by the node group.
  • the operation authority of the target blockchain node group is used to configure the target blockchain node group to have authority to operate the data of the blockchain node group (for example, read authority / write authority / highest authority).
  • the authority certificate of the target blockchain node group includes: a certificate that manages the highest administrative authority of the target blockchain node group, a root certificate of the target blockchain node group, and a root used by the target blockchain node group for communication. certificate. Only through these authority certificates can the target blockchain node group be operated / accessed.
  • the security algorithm used by the target blockchain node group includes an algorithm (such as a hash algorithm) for tamper-resistant blocks. This can prevent malicious modification of transaction records in the block.
  • an algorithm such as a hash algorithm
  • the security algorithm used by the target blockchain node group may further include an algorithm (such as a hash algorithm) to prevent tampering with the transaction records endorsed by the blockchain node group.
  • Sending the transaction record processed by the algorithm to the consensus node can prevent the transaction information in the transaction record from leaking in the consensus node.
  • the channel adjustment information further includes a permission policy of the channel.
  • the channel's permission policy specifies tenants with administrative permissions in the channel. Subsequently, a tenant with management rights can read / write channel configuration information, and the tenant can also invite other tenants to join the channel.
  • the channel adjustment information further includes: a version number of the channel adjustment information and a version number of the channel configuration information.
  • the execution node of the second tenant is used to execute the
  • the endorsement strategy corresponding to the contract item is updated in the chain code of the contract item.
  • the updated endorsement policy specifies that the target blockchain node group does not participate in the endorsement of the transaction records obtained from the execution of the contract matters.
  • the execution node of the other tenant is in the chain code for executing the contract.
  • Update the endorsement strategy corresponding to this contract matter specifies that the target blockchain node group does not participate in the endorsement of the transaction records obtained from the execution of the contract matters.
  • the management node sends a request to withdraw the first tenant from the channel to all tenants other than the first tenant who have joined the channel; the management node receives the Feedback from all the tenants of the channel except the first tenant to the request; the management node reached a consensus on all feedback to exit the first tenant from the channel according to a consensus policy. In this way, among all the tenants that the management node organization has joined the channel, the tenants other than the first tenant reach a consensus on removing the first tenant from the channel.
  • the management node when a virus exists in the resource quarantine area of the first tenant, the management node generates a request to exit the first tenant from the channel. This avoids affecting the maintenance of the blockchain when the target blockchain node group of the first tenant is infected with the virus.
  • the present application provides a device for maintaining a blockchain, which includes multiple functional units that are deployed in an execution node of a first tenant, so that the execution node of the first tenant executes the first aspect or The steps performed by the execution node of the first tenant in the method for maintaining a blockchain provided by any possible design of the first aspect.
  • This application provides another device for maintaining a blockchain, which includes multiple functional units that are deployed in an execution node of a second tenant, so that the execution node of the second tenant executes the first aspect or the first aspect
  • the steps performed by the execution node of the second tenant in the method for maintaining the blockchain provided by any possible design provided.
  • This application also provides another device for maintaining a blockchain, which includes multiple functional units that are deployed in a management node, so that the management node performs the maintenance provided by the first aspect or any possible design of the first aspect. The steps performed by the management node in the method of the blockchain.
  • the present application provides a server including a processor and a memory.
  • the memory stores computer instructions; the processor executes the computer instructions stored in the memory, so that the server executes the first aspect or any possible design provided by the first aspect of the method for maintaining a blockchain, which is executed by an execution node of a first tenant.
  • Step or cause the server to perform the steps performed by the second tenant's execution node in the method for maintaining the blockchain in the first aspect or any possible design provided by the first aspect, or cause the server to perform the first aspect or any of the first aspect It is possible to design the steps performed by the management node in the provided method for maintaining the blockchain.
  • the computer instructions stored in the memory are used to implement a functional unit in any one of the devices for maintaining a blockchain provided by the second aspect.
  • a computer-readable storage medium stores computer instructions.
  • the server executes the first aspect or any possible design of the first aspect.
  • the steps performed by the execution node of the first tenant in the method of maintaining the blockchain, or the server executes the first aspect or any possible design provided by the first aspect of the method of maintaining the blockchain by the execution node of the second tenant.
  • the steps executed, or the server executes the steps performed by the management node in the method for maintaining a blockchain provided by the first aspect or any possible design provided by the first aspect.
  • the computer instructions stored in the computer-readable storage medium are used to implement a functional unit in any device for maintaining a blockchain provided by the second aspect.
  • a computer program product includes computer instructions stored in a computer-readable storage medium.
  • the processor of the server may read and execute the computer instructions from the computer-readable storage medium, so that the server executes the execution node of the first aspect in the method for maintaining a blockchain provided by the first aspect or any possible design of the first aspect.
  • the steps executed, or the server executes the steps performed by the execution node of the second tenant in the method for maintaining the blockchain in the first aspect or any possible design provided by the first aspect, or causes the server to execute the first aspect or the first aspect
  • the computer instructions in the computer program product are used to implement a functional unit in any one of the devices for maintaining a blockchain provided by the second aspect.
  • FIG. 1 is a schematic diagram of a channel provided by this application.
  • FIG. 2 is a schematic diagram of a blockchain system provided by this application.
  • FIG. 3 is a schematic flowchart of a process of generating a new block provided by the present application.
  • FIG. 4 is another schematic diagram of a blockchain system provided by the present application.
  • FIG. 5 is a schematic flowchart of a method for maintaining a blockchain provided by this application.
  • FIG. 6 is a schematic diagram of a logical structure of a device 600 for maintaining a blockchain provided by this application;
  • FIG. 7 is a schematic diagram of a logical structure of a device 700 for maintaining a blockchain provided by this application;
  • FIG. 8 is a schematic diagram of a logical structure of a device 800 for maintaining a blockchain provided by this application;
  • FIG. 9 is a schematic diagram of a hardware structure of a server 900 provided by the present application.
  • Contract Record one or more contract matters. Each contract item specifies a transaction completed by multiple participants and the multiple participants; for example, a user transfers money between two banks, and these two banks act as two participants to complete the transfer of the transaction together.
  • Transaction Any activity or event that can be recorded, such as medical events, identity management, documentation, food source tracking, transfer payments, voting, etc.
  • a transaction record corresponding to the transaction is generated.
  • Blockchain It can be a chained data structure maintained in a distributed database by multiple peer blockchain node groups. Each blockchain stores all transaction records for one or more contracts.
  • Block A data unit in a blockchain. Each block records one or more endorsed transaction records. Multiple blocks are connected in series according to the order of occurrence to obtain the blockchain. Optionally, each block in the blockchain can generally include the hash value, time stamp, and transaction record of the previous block.
  • Blockchain nodes Peer nodes involved in maintaining the blockchain. Each blockchain node stores all transaction records of the blockchain.
  • the manager of the blockchain node that is, the individual or organization involved in the management of the blockchain. Members can also be referred to as users or tenants, and are collectively referred to below as tenants. Each tenant has independent resources (such as computing resources and storage resources), and all transaction records in a blockchain are stored on the blockchain nodes of each tenant in the blockchain.
  • Resource quarantine area When each tenant participates in the blockchain, they need to apply for a certain amount of resources (including network resources, computing resources, storage resources, etc.) to deploy blockchain nodes. This resource can be leased or own. . In this application, the resources allocated for each tenant are divided into a resource isolation zone. The resource quarantine of multiple tenants is isolated from each other. Unless otherwise configured, a tenant cannot access another tenant across the resource quarantine.
  • resources including network resources, computing resources, storage resources, etc.
  • Business organization When a tenant provides business, the tenant can also be called a business organization.
  • the tenant is an organization and different departments of the tenant provide different services, each department of the tenant may also be referred to as a business organization. That is, in this application, a tenant may own one or more business organizations, and each business organization provides at least one business.
  • Blockchain node group The structure involved in blockchain management in this application. Each business organization provides one or more blockchain node groups. Each blockchain node group can participate in the maintenance of a blockchain.
  • Channel A dedicated "subnet” for communication between two or more tenants to enable private and confidential transactions and to establish a cross-tenant blockchain.
  • the channels and blockchains in this application correspond one-to-one.
  • a channel can consist of multiple members, an anchor for each member, a shared ledger (also known as a blockchain), a chaincode, and an ordering service node (also known as a consensus Node) definition.
  • Consensus The blockchain is a distributed (decentralized) system with a history that can be traced back, cannot be tampered with, and solves the problem of mutual trust between multiple parties. Distributed systems are bound to face consistency problems, and the process of solving consistency problems is called consensus.
  • Consensus nodes At present, consensus is achieved through consensus algorithms. Nodes that implement consensus algorithms are called consensus nodes.
  • Consensus organization Consists of all consensus nodes, used to achieve consensus and ordering of transaction records.
  • FIG. 1 is a schematic diagram of a channel provided by an embodiment of the present application.
  • This application allocates a resource isolation zone 110, a resource isolation zone 120, and a resource isolation zone 130 to multiple tenants (tenant A, tenant B, and tenant C are shown in FIG. 1).
  • resources in the resource isolation area 110, the resource isolation area 120, and the resource isolation area 130 are isolated from each other.
  • the resources in a resource quarantine can be allocated by the public cloud, or they can be obtained from the private data center of the corresponding tenant.
  • the resource quarantine area can be configured as a virtual private cloud (VPC) to achieve resource isolation between different tenants through different VPCs.
  • VPC virtual private cloud
  • the data center implements the isolation of resources between different tenants.
  • tenant A includes business organization 118 and business organization 119; tenant B includes business organization 128; and tenant C includes business organization 138.
  • Each business organization deploys at least one blockchain node group based on business requirements, and each blockchain node group provides or participates in at least one business.
  • business organization 118 deploys blockchain node group 117; business organization 119 deploys blockchain node group 116, blockchain node group 115, and blockchain node group 114; business organization 128 deploys blockchain node group 124 and zone Blockchain node group 126; business organization 138 deploys blockchain node group 134 and blockchain node group 136.
  • the business organization in each resource quarantine area joins the channel with the blockchain node group as the granularity, and realizes the access between the tenants through the channel, thereby realizing the data transmission between different tenants. That is, if different blockchain node groups of multiple tenants join the same channel, all the blockchain node groups in the channel can communicate with each other.
  • the block chain node group 117, the block chain node group 116, the block chain node group 126, and the block chain node group 136 have all joined the channel 150, then the block chain node group 117, block chain The node group 116, the blockchain node group 126, and the blockchain node group 136 can communicate with each other within the channel 150.
  • FIG. 1 the block chain node group 117, the block chain node group 116, the block chain node group 126, and the blockchain node group 136 can communicate with each other within the channel 150.
  • the block chain node group 114, block chain node group 124, and block chain node group 134 have all joined the channel 140, then the block chain node group 114, block chain node group 124, and block The link node groups 134 can communicate with each other within the channel 140.
  • Blockchain node groups between different tenants who have not joined the same channel cannot communicate with each other. All blockchain node groups joining the same channel can manage the same blockchain and can see the same transaction records. Whether the interworking between different blockchain node groups of the same tenant is configured by the tenant is beyond the scope of this application.
  • blockchain node groups of different business organizations of different tenants can join the same channel.
  • blockchain node groups in different business organizations of the same tenant in this application can join the same channel.
  • tenant A is a bank
  • the investment management department (business organization 118) of tenant A deploys a blockchain node group 117
  • the audit and supervision department (business organization 119) of tenant A deploys a blockchain node group 116, a blockchain node group 117 and blockchain node group 116 both join channel 150 (ledger channel, corresponding to the ledger blockchain)
  • the investment management department and audit supervision department are involved in the maintenance of the ledger blockchain
  • the investment management department can be in the blockchain
  • the investment record is written, and the audit and supervision department can verify whether the investment record is legal and increase the security of the transaction.
  • the tenant can also set the blockchain node group of a certain business organization to not join any channels, and only handle the internal business of the tenant.
  • the blockchain node group 115 of tenant A does not join any channels.
  • the blockchain system includes a consensus organization 160 and three blockchain node groups 114, 124, and 134. These three blockchain node groups 114, 124, and 134 join the channel 140 at the same time. As shown in Figure 1, the blockchain node groups (114, 124, and 134) are deployed in different resource isolation zones.
  • Each blockchain node group includes three types of blockchain nodes: anchors, internal blockchain nodes, and leading peers.
  • the anchor point is used to communicate with other blockchain node groups in the same channel;
  • the internal blockchain node is used to store transaction records;
  • the master control point is used to communicate with the consensus node corresponding to the blockchain node group.
  • the anchor point and the master control point can further be used to store transaction records.
  • the blockchain node group 114 in the resource isolation area 110 includes an anchor point 111, an internal blockchain node 112, and a master control point 113.
  • the block chain node group 124 in the resource isolation zone 120 includes an anchor point 121, an internal block chain node 122, and a master control point 123.
  • the block chain node group 134 in the resource isolation zone 130 includes an anchor point 131 and an internal block chain. Node 132 and master control point 133.
  • the three types of blockchain nodes in a blockchain node group may be deployed on the same physical device, or may be deployed on different physical devices.
  • two or more functions may also be performed by the same blockchain node.
  • any combination of the anchor point 111, the internal blockchain node 112, and the master control point 113 can be deployed on the same physical or logical blockchain node; for example, anchor point 111, The internal blockchain node 112 and the master control point 113 are deployed on the same blockchain node A, then the blockchain node A can communicate with other blockchain node groups, store transaction records, and also interact with the block.
  • the consensus nodes corresponding to the chain node group 114 communicate.
  • Anchor communicates with other blockchain node groups in the same channel, specifically, the anchor communicates with anchors in other blockchain node groups in the same channel.
  • the anchor point 111 can communicate with the anchor point 121, so that the blockchain node group 114 can communicate with the blockchain node group 124 in the channel 140 through the anchor point 111.
  • peer-to-peer (P2P) communication is established between anchor points of the same channel based on the gossip protocol.
  • the master control point of a blockchain node group communicates with a consensus node corresponding to the blockchain node group, the master control point can obtain a new block to be verified from the consensus node.
  • the master control points of different blockchain node groups can be connected to the same consensus node, or they can be connected to different consensus nodes separately. Taking FIG. 2 as an example, the master control point 113 is connected to the consensus node 161, the master control point 123 is connected to the consensus node 163, and the master control point 133 is connected to the consensus node 164.
  • the consensus organization 160 includes all consensus nodes. Each consensus node can receive the endorsed transaction record, and then jointly process the transaction record according to the consensus algorithm and other consensus nodes in the consensus organization 160 to generate a consensus result on the transaction record.
  • the consensus organization 160 can serve multiple channels at the same time, that is, the transaction records in the multiple channels are processed separately according to the consensus algorithm.
  • the consensus nodes in the consensus organization 160 may generate blocks for one or more transaction records in the same channel. This block can be synchronized between the consensus nodes of the consensus organization 160. For example, the consensus node 161 generates a block and sends a copy of the block to the consensus node 162, the consensus node 163, and the consensus node 164, the consensus node 162, and the consensus node 163. The and consensus nodes 164 store the respective received copies.
  • the consensus organization 160 is deployed in a public cloud.
  • all consensus nodes included in the consensus organization 160 are deployed in a resource isolation zone in the public cloud.
  • Each blockchain node group in a channel corresponding to a blockchain stores a blockchain separately, and is responsible for the update of the respective stored blockchain.
  • the blockchain node group 114, the blockchain node group 124, and the blockchain node group 134 each store a blockchain.
  • the blockchain stored by the blockchain node group 114, the blockchain node group 124, and the blockchain node group 134 includes blocks generated by executing the same contract.
  • the three blockchain node groups 114, 124, and 134 respectively obtain the new block from the three connected consensus nodes 161, 163, and 164, and add the new block to their respective stored In the blockchain.
  • the blockchains stored by all the blockchain node groups in the same channel are the same. If the blockchain stored by a small number of blockchain node groups in the same channel is maliciously modified, it can be identified according to the rules that a majority obeys the majority.
  • the blockchain is not the same as the blockchain stored in the blockchain node group 114, then the three blockchain node groups 114, 124, and 134 check the blockchain with each other. If the blockchain node group 124 and the blockchain node group 114 and the blockchain node group 134 store different blockchains, the blockchain stored by the blockchain node group 124 is considered to be abnormal. In this way, all blockchain node groups in the same channel participate in maintaining a blockchain.
  • the following describes a process of generating a new block provided by an embodiment of the present application with reference to FIG. 3.
  • the flow includes steps S31, S32, S33, S34, S35, and S36.
  • step S31 the client sends a transaction request to the internal blockchain node 112 and the internal blockchain node 122.
  • the transaction request carries the identity of the channel 140.
  • the client can access the blockchain node group in the channel 140.
  • the management platform issues a permission certificate for the client to access the blockchain node group in the channel 140. In this way, the client can use the permission certificate to access the blockchain node group in the channel 140.
  • the transaction request sent by the client to the internal blockchain node 112 carries the permission to access the blockchain node group 114 Certificate; the transaction request sent by the client to the internal blockchain node 122 carries the permission certificate for accessing the blockchain node group 124.
  • step S32 the internal blockchain node 112 and the internal blockchain node 122 simulate and execute the transaction specified by the transaction request, generate a simulated transaction record, and endorse the simulated transaction record.
  • the internal blockchain node 112 and the internal blockchain node 122 deploy a chain code corresponding to the transaction, and each of them can execute the chain code to implement a real transaction.
  • the internal blockchain node 112 and the internal blockchain node 122 did not actually execute the real transaction in the chain code, but simulated the execution of the transaction and generated a simulated transaction record.
  • the simulated transaction record includes the execution of the The execution result of the transaction.
  • the chain code can specify the endorsement strategy used to endorse the simulated transaction records of the transaction.
  • the endorsement policy specifies an endorsement organization that participates in endorsing the simulated transaction record.
  • the endorsement organization specified by the endorsement policy includes a blockchain node group 114 and a blockchain node group 124.
  • the chain code stored by the blockchain node group 114 and the blockchain node group 124 each includes the endorsement strategy.
  • the internal blockchain node 112 and the internal blockchain node 122 each endorse their simulated transaction records according to the endorsement strategy. .
  • the internal blockchain node 112 and the internal blockchain node 122 respectively send the endorsed simulated transaction records to the client.
  • step S33 the client receives the endorsed simulated transaction records fed back by the internal blockchain node 112 and the internal blockchain node 122, respectively.
  • the client receives the endorsed simulated transaction records fed back by the internal blockchain node 112 and the internal blockchain node 122, respectively. If feedback is received from only one of the internal blockchain nodes 112 and 122, the client waits for feedback from the other blockchain node. After the client receives the simulated transaction records fed back by the internal blockchain node 112 and the internal blockchain node 122, the client merges the simulated transaction records fed back by the internal blockchain node 112 and the internal blockchain node 122 into A simulated transaction record, so the combined simulated transaction record contains the endorsement of the internal blockchain node 112 and the endorsement of the internal blockchain node 122. The subsequent client sends the merged simulated transaction record to the consensus node.
  • step S34 the client sends an endorsed simulated transaction record to the consensus node of the consensus organization 160.
  • the client will send the merged simulated transaction record to the consensus node.
  • the simulated transaction records of each transaction will be sent by the client to the consensus node.
  • Step S35 The consensus node receives the simulated transaction records sent by the client, sorts the multiple simulated transaction records of the received multiple transactions, constructs a new block according to the sorted multiple simulated transaction records, and constructs a new block with other The consensus node synchronizes the new block.
  • the consensus node continuously receives transaction records belonging to the channel 140, for example, multiple simulated transaction records sent by a client or different clients at different time points. Each time the consensus node receives a simulated transaction record, the consensus organization verifies the simulated transaction record according to the consensus algorithm, and stores the verified simulated transaction record in the consensus node. The consensus node sorts all the simulated transaction records of the stored channel 140. For example, the consensus node sorts the multiple simulated transaction records according to the time when each simulated transaction record is received.
  • the consensus node constructs a new block including the plurality of simulated transaction records that is sorted, and the new block belongs to the channel 140.
  • the new block is synchronized between the consensus nodes in the consensus organization 160. That is, the consensus node that generates the new block sends a copy of the new block to other consensus nodes in the consensus organization 160, and other consensus nodes store copies of the new block.
  • step S36 the master control point of each blockchain node group respectively obtains the new block from the consensus node connected to the master control point, and verifies the endorsement of the new block.
  • the master control point 133 in the blockchain node group 134 obtains the new block from the consensus node 164 connected to the master control point 133 and verifies whether the endorsement of the new block conforms to the endorsement policy.
  • the master control point 113 in the blockchain node group 114 obtains the new block from the consensus node 161 connected to the master control point 113 and verifies whether the endorsement of the new block conforms to the endorsement policy.
  • step S37 the master control point of each blockchain node group sends the new block to the internal blockchain nodes in the blockchain node group after the new block passes the endorsement verification.
  • the internal blockchain node adds the new block to the blockchain stored by the blockchain node group, and the simulated transaction records in the new block are converted into real transaction records.
  • the endorsed blockchain nodes execute transactions recorded in the real transaction records in the new block.
  • the master control point 133 in the blockchain node group 134 sends the new block to the internal blockchain node 132, and the internal blockchain node 132 adds the new block to the area stored by the blockchain node group 134 Block chain.
  • the master control point 113 in the blockchain node group 114 sends the new block to the internal blockchain node 112.
  • the internal blockchain node 112 not only adds the new block to the blockchain stored by the blockchain node group 114, Part of the actions performed by the internal blockchain node 112 in the transactions recorded in the transaction records in the new block are also performed. For example, if the transaction is a cross-bank transfer, the internal blockchain node 112 is the transferor, and the internal blockchain node 122 is the payee, the internal blockchain node 112 performs the transfer operation.
  • a blockchain node group of multiple tenants is added to the channel.
  • the multiple tenants include tenant A, tenant B, and tenant C; that is, the blockchain node group 114 of tenant A, the blockchain node group 124 of tenant B, and the blockchain node group 134 of tenant C have all joined the channel 140.
  • the method provided in this application can implement the withdrawal of the blockchain node group 124 of the tenant B in the channel 140, so that the blockchain node group 124 of the tenant B exits the blockchain corresponding to the channel 140. maintain.
  • FIG. 4 provides a possible implementation architecture for withdrawing the blockchain node group of the tenant B from the channel 140.
  • the architecture further includes a management node 170 for managing execution nodes of all tenants.
  • the execution node of the tenant is used to perform operations in the resource isolation zone of the tenant according to the instruction of the management node 170, such as deploying a blockchain node group; the execution node is deployed in the resource isolation zone of the tenant, such as the execution node of tenant A 1101 is deployed in the resource isolation area 110 of the tenant A.
  • the management node 170 may be deployed on a management platform.
  • the management platform can be deployed on one server or distributed on multiple servers.
  • the server in this application may be a server in a public cloud, or may be a server in a private cloud.
  • the management node 170 may manage all channels (for example, channel 140).
  • the management node 170 is in communication connection with the execution nodes of all tenants (for example, the execution node 1101, the execution node 1201, and the execution node 1301), so that the management node 170 can manage the tenant node group of the tenant through the execution node of each tenant.
  • the method for maintaining a blockchain provided by the present application is described below with reference to FIG. 5.
  • the method is used to remove the blockchain node group 124 of the tenant B from the channel 140.
  • the method includes steps S51 to S61.
  • step S51 the management node 170 sends a request to all tenants except the tenant B to remove the tenant B from the channel 140.
  • the request includes the identity of tenant B and the identity of channel 140.
  • All tenants except tenant B refer to all tenants except tenant B among all tenants corresponding to all blockchain node groups that have joined the channel 140.
  • this application is not limited. An example is provided below.
  • Scenario example There is a malicious virus in the resource quarantine area 120 of the tenant B, causing the blockchain node group 124 to fail to perform transactions on the contract matters in the channel 140.
  • the container deployed in the resource quarantine 120 runs malicious virus code.
  • the blockchain node group 124 deployed in the resource quarantine zone 120 has been maliciously modified or has been invaded by a malicious virus, causing the certificate used to sign the transaction record in the blockchain node group 124 to be tampered with, or resulting in the use of the block
  • the port of the chain node group 124 receiving the client's transaction request is maliciously closed.
  • the container runs a malicious virus.
  • the malicious virus obtains the capability of cap_dac_override through the application, and then triggers the open_by_handle_at system call. Through this system call, it traverses all file paths and brute-forces each file in each file path.
  • Handle file handle access the file through the handle file handle, steal / destroy the data in the file.
  • the management node 170 may directly generate a request to withdraw the tenant B from the channel 140 without any condition triggering the action of generating the request.
  • step S52 the management node 170 receives feedback from all tenants except the tenant B on the request, and reaches a consensus on all feedbacks according to a consensus strategy.
  • the consensus strategy may be a strategy that obeys the majority. Therefore, if most tenants feedback and agree to remove tenant B from channel 140, a consensus is reached to remove tenant B from channel 140.
  • the consensus policy may specify the tenants who need to obtain consent.
  • the blockchain node group 114 of tenant A, the blockchain node group 124 of tenant B, and the blockchain node group 124 of tenant C have all joined the channel 140; the consensus policy can specify that both tenant A and tenant C need to be obtained at the same time Can only reach the consensus of removing tenant B from channel 140.
  • the consensus policy may specify that only the consent of the tenant A is needed to reach the consensus of removing the tenant B from the channel 140.
  • management node 170 executes step S53 to stop tenant B's blockchain node group 124 in channel 140 to prevent blockchain node group 124 from continuing to participate in the blockchain of this channel 140 Maintenance.
  • the specific implementation of the tenant joining the channel 140 is that at least one blockchain node group of a plurality of blockchain node groups owned by the tenant joins the channel 140.
  • the tenant exiting the channel 140 means that all the blockchain node groups that the tenant has joined the channel 140 exit the channel 140.
  • the management node 170 may perform the action of stopping the blockchain node group 124 in step S53 without first obtaining the consensus of the tenant. Therefore, steps S51 and S52 are optional steps in this application.
  • step S53 the management node 170 instructs the execution node 1201 of the tenant B to stop running the blockchain node group 124.
  • the execution node 1201 of the tenant B is deployed in the resource isolation area 120.
  • the execution node 1201 of the tenant B may be deployed on one server in the resource isolation zone 120 or distributedly deployed on multiple servers in the resource isolation zone 120.
  • a communication connection is established between the management node 170 and the execution node 1201 of the tenant B, so that data can be transmitted between the management node 170 and the execution node 1201 of the tenant B.
  • the management node 170 indicates that the implementation of the execution node 1201 of the tenant B may be a message or an instruction, and the specific implementation of the instruction is not limited herein; the message or instruction may carry the identifier of the blockchain node group 124.
  • step S54 the execution node 1201 of the tenant B stops running the blockchain node group 124 in the resource isolation zone 120 of the tenant B.
  • the execution node 1201 of the tenant B can perform the following two operations to stop the blockchain node group 124.
  • the execution node 1201 of the tenant B may instruct the anchor point 121 to disconnect the communication connection with the anchor points of other blockchain node groups in the channel 140 (for example, the anchor point 111 of the blockchain node group 114 of the tenant A). Subsequently, the blockchain node 122 of the blockchain node group 124 no longer interacts with other blockchain node groups in the channel 140.
  • the execution node 1201 of the tenant B instructs the master control point 123 to disconnect the communication connection with the consensus node 163. In this way, the master control point 123 no longer obtains a new block belonging to the channel 140 from the consensus node 163.
  • the execution node 1201 of the tenant B stops the blockchain node group 124
  • the execution node 1201 of the tenant B also stops the anchor point 121, the master control point 123, and the blockchain node 122 inside the blockchain node group 124. Communication connection. In this way, data transmission cannot be continued between the anchor point 121, the master control point 123, and the blockchain node 122.
  • step S55 the management node 170 obtains the configuration information of the blockchain node group 124.
  • the management node 170 stores the configuration information of the blockchain node group 124 in the channel 140, so the management node 170 can obtain the configuration information of the blockchain node group 124.
  • the management node 170 stores channel configuration information of the channel 140, and the channel configuration information records configuration information of all blockchain node groups in the channel 140. Therefore, the management node 170 can obtain the configuration information of the blockchain node group 124 in the channel 140.
  • step S56 the management node 170 sends an instruction to the execution node 1101 of the tenant A to withdraw the blockchain node group 124 from the channel 140.
  • the indication carries the identity of the channel 140 and the identity of the blockchain node group 124, and also carries the configuration information of the blockchain node group 124.
  • the management node 170 indicates that the implementation of the execution node 1101 of the tenant A may be a message or an instruction, and the specific implementation of the instruction is not limited herein; the message or instruction may carry the identifier of the blockchain node group 124.
  • step S57 the execution node 1101 of the tenant A obtains the channel configuration information of the channel 140.
  • the channel configuration information of the channel 140 may include: an identifier of the channel 140, and configuration information of all blockchain node groups included in the channel 140. At this time, the channel configuration information includes configuration information of the blockchain node group 124.
  • the configuration information of each blockchain node group includes: the operation authority of the blockchain node group, the authority certificate of the blockchain node group, and the security algorithm used by the blockchain node group.
  • the operation permission of the blockchain node group includes: the highest management permission of the blockchain node group, and the read and write permissions of the data of the operation of the blockchain node group.
  • the channel configuration information indicates that the blockchain node group 124 is configured with the highest management authority of the blockchain node group 124.
  • the channel configuration information indicates that the blockchain node group 124 is configured to read / write data read and write permissions of the blockchain node group 124; thus, the blockchain node group 124 can read / write the blockchain.
  • the permission certificate of the blockchain node group includes: a certificate that manages the highest management authority of the blockchain node group, a root certificate of the blockchain node group, and a root used by the blockchain node group for communication. certificate.
  • the root certificate of the blockchain node group is a permission certificate for a client to access the blockchain node group.
  • the root certificate used for the blockchain node group communication may be used to: establish a communication connection between the anchor node, the internal blockchain node, and the master control point in the blockchain node group to establish the zone A communication connection between the anchor node of the block chain node group and anchor nodes of other block chain node groups in the channel 140, and a communication connection between the master control point of the block chain node group and the consensus node.
  • the communication connection established based on the root certificate used for the blockchain node group communication is a communication connection that requires authentication using the root certificate.
  • the root certificate used in the blockchain node group communication may be a root certificate based on a transport layer security (TLS) communication.
  • TLS transport layer security
  • the security algorithms used by the blockchain node group include: tamper-resistant algorithms (such as hash algorithms). For example, for two adjacent blocks in the blockchain, use the hash algorithm to calculate the hash value of the previous block and store the hash value in the latter block; this way, you can use this The hash value finds out whether the data of the previous block has been maliciously modified.
  • the security algorithm used by the blockchain node group further includes: an algorithm that prevents tampering with the transaction records endorsed by the blockchain node group (such as hashing) algorithm). Therefore, the consensus node receives the transaction records processed according to the algorithm from the blockchain node group to prevent the transaction information in the transaction records from leaking in the consensus nodes.
  • the channel configuration information described in this application may further include: a permission policy of the channel 140.
  • the permission policy of the channel 140 specifies the tenants with management rights in the channel 140; for example, the permission policy specifies the tenant with the highest management permission for the channel 140; for example, the permission policy may specify that the channel 140 has read permissions to read the channel configuration information For example, the permission policy specifies a tenant that has write permission on the channel 140 to write channel configuration information.
  • the permission policy of the channel 140 may specify that the tenant A has the highest management authority for the management channel 140, and may specify that the tenant A has the read permission to read the channel configuration information. Specifies that tenant A has write permission to write channel configuration information.
  • the channel configuration information described in this application may further include: a version number of the channel configuration information.
  • the execution node 1101 of the tenant A may obtain the channel configuration information of the channel 140 from the consensus organization 160 (for example, the consensus node 161), and the channel configuration information includes the configuration information of the blockchain node group 124.
  • step S58 the execution node of the tenant A generates channel adjustment information of the channel 140.
  • the execution node 1101 of the tenant A can calculate the difference between the channel configuration information of the channel 140 and the configuration information of the blockchain node group 124 obtained by the management node 170, and record the difference in the channel adjustment information. Therefore, the channel adjustment information includes the difference between the channel configuration information and the configuration information of the blockchain node group 124, that is, the channel adjustment information does not include the configuration information of the blockchain node group 124, and the channel adjustment information includes Configuration information of all the blockchain node groups in the channel 140 except the blockchain node group 124 of the tenant B.
  • the channel adjustment information may further include an identification of the channel 140.
  • the channel adjustment information may further include: a version number of the channel adjustment information and a version number of the channel configuration information.
  • a data structure is provided to record channel configuration information.
  • the data structure includes the following fields: a field that records the identification of the channel 140, a field that records the configuration information of all blockchain node groups included in the channel 140, a field that records the permission policy of the channel 140, and a field that records the version number.
  • the channel adjustment information includes the difference between the channel configuration information and the configuration information of the blockchain node group 124. This application still uses this data structure to record the channel adjustment information.
  • the configuration information of the blockchain node group 124 included in the channel configuration information obtained from the consensus organization 160 is the same as the configuration information of the blockchain node group 124 sent by the management node 170 to the execution node 1101 of the tenant A; therefore
  • the field for recording the configuration information of the blockchain node group 124 in the data structure for recording the channel adjustment information is empty; that is, the data for recording the channel adjustment information is used to record the blockchain node group except for the tenant B in channel 140 in the data structure for recording the channel adjustment information.
  • the version number of the channel adjustment information is recorded in a data structure that records the channel adjustment information, and the version number of the channel configuration information of the channel 140 obtained from the consensus organization 160 may also be recorded.
  • the identification of the channel 140 is recorded in the data structure in which the channel adjustment information is recorded.
  • step S59 the execution node 1101 of the tenant A sends the channel adjustment information to the consensus organization 160.
  • the execution node 1101 of the tenant A sends the channel adjustment information to the consensus node 161 connected to the blockchain node group 114.
  • This application uses the channel adjustment information as a transaction record, because the channel adjustment information needs to be recorded in the blockchain corresponding to the channel 140, that is, the tenants who have joined the channel 140 except the tenant B are recorded in the blockchain. Consensus for all tenants. Specifically, the execution node 1101 of the tenant A sends the channel adjustment information to the master control point 113, and the master control point 113 sends the channel adjustment information to the consensus node 161.
  • the consensus node 161 receives the channel adjustment information, and uses the channel adjustment information as a transaction record. In the manner of processing transaction records, the consensus organization 160 verifies the channel adjustment information according to the consensus algorithm of the channel 140, and the consensus node 161 saves the channel adjustment information that has passed the verification.
  • the consensus node 161 generates a block including the channel adjustment information.
  • the data amount of the channel adjustment information reaches the data amount of generating one block, and the consensus node 161 generates a block that records only the channel adjustment information.
  • the data amount of the channel adjustment information does not reach the data amount of generating a block, and the consensus node 161 generates a block together with the channel adjustment information and other transaction records of the channel 140.
  • the amount of data of the channel adjustment information exceeds that of generating a block, and the consensus node 161 divides the channel adjustment information into multiple blocks.
  • the channel adjustment information is first divided into multiple pieces of data according to the amount of data required to generate the blocks. Except for the last piece of data, the other pieces of data are equal to those required to generate the blocks. The amount of data, so that the last piece of data together with other transaction records of channel 140 generates a block, and a block is generated for each other piece of data.
  • the consensus organization 160 synchronizes the blocks generated by the consensus node 161 including the channel adjustment information among the consensus nodes. For example, the consensus node 161 sends a copy of the block to the consensus node 164, and the consensus node 164 stores the block.
  • each blockchain node group that has joined channel 140 can obtain the channel adjustment information from the consensus node connected to the blockchain node group. And add the block to the blockchain stored by this blockchain node group.
  • all other blockchain node groups that have joined the channel 140 can consensus to withdraw the blockchain node group 124 from the channel 140 through blockchain maintenance.
  • the channel node group 114 of the tenant A and the blockchain node group 134 of the tenant C are also included.
  • the master control point 113 of the blockchain node group 114 of the tenant A may obtain a block including the channel adjustment information from the consensus node 161, and add the block to the blockchain stored in the blockchain node group 114.
  • the master control point 133 of the blockchain node group 134 may obtain a block including the channel adjustment information from the consensus node 164, and add the block to the blockchain stored by the blockchain node group 134.
  • the blockchain node group 114 of the tenant A and the blockchain node group 134 of the tenant C record the consensus of removing the blockchain node group 124 from the channel 140 in the respective blockchains, that is, the records of the tenant A and the tenant C The consensus of removing the blockchain node group 124 from the channel 140 is reached.
  • steps S53 and S54 may be performed before steps S55 to S59, or performed simultaneously with steps S55 to S59, or performed later than steps S55 to S59.
  • step S60 the management node 170 sends an instruction to update the endorsement policy to the execution node 1101 of the tenant A.
  • the node 170 executes step S60 to send an instruction to the execution node 1101 of the tenant A to update the endorsement policy.
  • steps S60 and S61 are optional steps of the method.
  • step S60 is an optional step.
  • the tenant's execution node updates the endorsement policy, which can be triggered by the management node 170 or by the tenant's execution node itself.
  • step S61 the execution node 1101 of the tenant A updates the endorsement policy.
  • the execution node 1101 of the tenant A updates and executes the contract matter
  • the chain code includes the endorsement policy for updating the record of the chain code; the updated endorsement policy specifies the blockchain node group (including the blockchain node group 114, but not the blockchain node group 124) that needs to participate in the endorsement.
  • the block chain node group 114 (specifically, the internal block chain node 112) reloads the updated chain code. In this way, the subsequent blockchain node group 124 does not participate in endorsing the transaction records obtained by executing the contract matters.
  • the blockchain node group 134 can update the endorsement strategy similar to the blockchain node group 114. Therefore, in the channel 140, the blockchain node group of other tenants other than the blockchain node group 124 of the tenant B can adopt an update method similar to that of the blockchain node group 114 to update the endorsement policy to update the endorsement policy.
  • the blockchain node group of other tenants may also be an instruction sent by the management node 170 to trigger the update of the endorsement policy.
  • the chain code of the new execution of the contract matter is artificially updated, instead of the execution node of the tenant, the chain code of the execution of the contract matter is updated.
  • This application provides a device for maintaining a blockchain.
  • the device may be an execution node of the second tenant (ie, tenant A) described in this application (ie, execution node 1101 of tenant A).
  • the functional unit included in the device is used to implement the steps performed by the execution node of the second tenant in the method for maintaining a blockchain described above; this application does not limit how to divide the functional unit in the device, and an example is provided below as an example. The division of these functional units is shown in Figure 6.
  • the apparatus 600 for maintaining a blockchain as shown in FIG. 6 includes:
  • the receiving unit 601 is configured to receive configuration information of a target blockchain node group (ie, a blockchain node group 124) of a first tenant (ie, tenant B) sent by a management node;
  • a processing unit 602 configured to obtain channel configuration information of a channel from a consensus organization (that is, the consensus organization 160), where the channel (that is, channel 140) corresponds to a blockchain, and the channel configuration information includes an identifier of the channel and a joined Configuration information of all blockchain node groups of the channel, and all blockchain node groups that have joined the channel include the target blockchain node group;
  • the processing unit 602 is configured to generate channel adjustment information of the channel according to the channel configuration information and the configuration information of the target blockchain node group received from the management node.
  • the channel adjustment information includes: The channel identifier and configuration information of a blockchain node group except for the target blockchain node group in all blockchain node groups that have been added to the channel;
  • the processing unit 602 is further configured to obtain a block including the channel adjustment information from the consensus organization, and add the block to a blockchain stored in a blockchain node group that has joined the channel.
  • the configuration information of the target blockchain node group includes:
  • the security algorithm used by the target blockchain node group is the security algorithm used by the target blockchain node group.
  • the processing unit 602 is configured to update an endorsement policy corresponding to the contract matter in a chain code for executing the contract matter for a contract matter requiring the target blockchain node group to participate in endorsement,
  • the updated endorsement policy specifies that the target blockchain node group does not participate in the endorsement of transaction records obtained by executing the contract matters.
  • the device may be an execution node of the first tenant (ie, tenant B) described in this application (ie, execution node 1201 of tenant B).
  • the functional unit included in the device is used to implement the steps performed by the execution node of the first tenant in the method for maintaining a blockchain described above; this application does not limit how to divide the functional unit in the device, and an example is provided below as an example. The division of these functional units is shown in Figure 7.
  • the apparatus 700 for maintaining a blockchain shown in FIG. 7 includes:
  • the receiving unit 701 is configured to receive an instruction from a management node (ie, the management node 170) to stop running a target blockchain node group (ie, a blockchain node group 124) that has joined a channel (ie, channel 140), and the channel corresponds A blockchain
  • the processing unit 702 is configured to stop running the target blockchain node group in the resource isolation zone (that is, the resource isolation zone 120) of the first tenant (namely, the tenant B).
  • the device may be a management node (ie, the management node 170) described in this application.
  • the functional unit included in the device is used to implement the steps performed by the management node in the method for maintaining a blockchain described above.
  • This application does not limit how to divide the functional unit in the device. The following provides an example of a functional unit. Division, as shown in Figure 7.
  • a device 800 for maintaining a blockchain includes:
  • a processing unit 802 configured to instruct an execution node (that is, execution node 1201) of the first tenant (that is, tenant B) to stop running the joined channel (that is, the channel) in the resource isolation zone (that is, the resource isolation zone 120) of the first tenant 140) target blockchain node group (blockchain node group 124), the channel corresponds to a blockchain;
  • the processing unit 802 is configured to obtain configuration information of the target blockchain node group
  • a sending unit 801 is configured to send the configuration information of the target blockchain node group to an execution node (ie, execution node 1101) of a second tenant (ie, tenant A).
  • the configuration information of the target blockchain node group includes:
  • the security algorithm used by the target blockchain node group is the security algorithm used by the target blockchain node group.
  • the sending unit 801 is configured to send a request to withdraw the first tenant from the channel to tenants other than the first tenant among all tenants who have joined the channel;
  • the processing unit 802 is configured to receive feedback on the request from tenants other than the first tenant among all tenants who have joined the channel, and reach all feedbacks in accordance with a consensus policy to withdraw the first tenant from the Channel consensus.
  • the processing unit 802 is configured to generate a request to exit the first tenant from the channel when a virus exists in a resource quarantine area of the first tenant.
  • the device further includes:
  • the processing unit 802 is configured to instruct the execution node of the first tenant to update an endorsement strategy corresponding to the contract matter for a contract matter that requires the target blockchain node group to participate in the endorsement, and the updated endorsement strategy specifies an endorsement policy.
  • the target blockchain node group does not participate in endorsing the transaction records obtained from the execution of the contract matters.
  • the execution node of the tenant (for example, the execution node of the first tenant and the execution node of the second tenant) or the management node may be deployed on one server or distributed on multiple servers.
  • the tenant execution node or management node can be deployed on the same server or on different servers.
  • the following provides an example of a possible basic hardware architecture of the server, as shown in FIG. 9.
  • the server 900 includes a processor 901, a memory 902, a communication interface 903, and a bus 904.
  • the number of processors 901 may be one or more, and FIG. 1 illustrates only one of the processors 901.
  • the processor 901 may be a central processing unit (CPU) or an ARM processor. If the server 900 has multiple processors 901, the types of the multiple processors 901 may be different, or may be the same. Optionally, the multiple processors 901 of the server 900 may also be integrated into a multi-core processor.
  • the memory 902 stores computer instructions; for example, the computer instructions include a chain code; for example, the computer instructions are used to implement each step in the method provided by the present application; for example, the computer instructions are used to implement the apparatus 600 or the apparatus 700 provided in the present application. Or each functional unit included in the device 800.
  • the memory 902 may be any one or any combination of the following storage media: non-volatile memory (NVM) (for example, read-only memory (ROM), solid state drives (Solid State Drives, SSD), mechanical hard disks, magnetic disks, and entire arrays of disks), volatile memory (volatile memory).
  • NVM non-volatile memory
  • ROM read-only memory
  • SSD solid state drives
  • mechanical hard disks magnetic disks, and entire arrays of disks
  • volatile memory volatile memory
  • the communication interface 903 may be any one or any combination of the following devices: a network interface (such as an Ethernet interface), a wireless network card, and other devices having a network access function.
  • the communication interface 903 is used for data communication between the server 900 and other devices (for example, a server).
  • FIG. 9 shows the bus 904 with a thick line.
  • the processor 901, the memory 902, and the communication interface 903 are connected through a bus 904.
  • the processor 901 can access the memory 902 through the bus 904, and use the communication interface 903 to perform data interaction with other devices (for example, servers) through the bus 904.
  • the server 900 executes the computer instructions in the memory 902, and the steps performed by the execution node or the steps performed by the management node in the method for maintaining a blockchain provided by the present application are implemented on the server 900, or implemented on the server 900 The device 600 or the device 700 or the device 800 provided in the present application.
  • the application provides a computer-readable storage medium.
  • the computer-readable storage medium stores computer instructions.
  • the server 900 executes a method for maintaining a blockchain provided by the application. Steps performed by the execution node of the first tenant in the method, or the server performs steps performed by the execution node of the second tenant in the method, or the server performs steps performed by the management node in the method.
  • the present application provides a computer-readable storage medium.
  • the computer-readable storage medium stores computer instructions, and the computer instructions are used to implement the device 600 or the device 700 or the device 800.
  • the application provides a computer program product including computer instructions, the computer instructions being stored in a computer-readable storage medium.
  • the processor of the server may read and execute the computer instructions from the computer-readable storage medium, so that the server executes the steps performed by the execution node of the first tenant in the method for maintaining a blockchain provided in this application, or causes the server to execute the The steps performed by the execution node of the second tenant in the method, or cause the server to perform the steps performed by the management node in the method.
  • This application provides a computer program product, and the computer program product includes computer instructions for implementing the device 600 or the device 700 or the device 800.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

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中的资源互相隔离。一个资源隔离区中的资源可以是由公有云分配的,也可以是从对应租户的私有的数据中心中获取的。当资源隔离区中的资源是由公有云分配时,该资源隔离区可以配置为虚拟专有云(virtual private 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和租户C;即租户A的区块链节点组114、租户B的区块链节点组124和租户C的区块链节点组134都已加入通道140。在创建通道140后,本申请提供的方法可以实现在通道140中退出租户B的区块链节点组124,从而该租户B的区块链节点组124退出对该通道140对应的区块链的维护。
图4提供了将租户B的区块链节点组退出通道140的一种可能实现架构。如图4所示,在图2所示区块链***的基础上,所述架构还进一步包括管理节点170,用于管理所有租户的执行节点。租户的执行节点,用于按照管理节点170的指示在该租户的资源隔离区内执行操作,例如部署区块链节点组;该执行节点部署在该租户的资源隔离区,例如租户A的执行节点1101部署在租户A的资源隔离区110。
管理节点170可以部署在管理平台上。该管理平台可以部署在一个服务器上,或者分布式部署在多个服务器上。本申请中的服务器可以是公有云中的服务器,或者可以是私有云中的服务器。该管理节点170可以管理所有通道(例如通道140)。管理节点170与所有租户的执行节点(例如执行节点1101、执行节点1201、执行节点1301)均通信连接,从而管理节点170可以通过每个租户的执行节点管理该租户的区块链节点组。
下面结合图5描述本申请提供的维护区块链的方法,该方法用于将租户B的区块链节点组124退出通道140,该方法包括步骤S51到步骤S61。
步骤S51,管理节点170向除了租户B以外的所有租户发送将租户B退出通道140的请求。该请求包括租户B的标识和通道140的标识。
除了租户B以外的所有租户是指:在已加入该通道140的所有区块链节点组所对应的所 有租户中,除了租户B以外的所有租户。
可选地,对于触发管理节点170发送将租户B退出通道140的请求的场景,本申请不做限定。下面举例提供一种场景。
场景举例,租户B的资源隔离区120存在恶意病毒,导致区块链节点组124无法在通道140中对合约事项执行交易。例如,该资源隔离区120部署的容器运行恶意病毒代码。例如,该资源隔离区120部署的区块链节点组124被恶意修改或者已经被恶意病毒入侵,导致区块链节点组124中用于对交易记录签名的证书被篡改,或者导致用于区块链节点组124接收客户端的交易请求的端口被恶意关闭。
一种可能的攻击方式,容器运行恶意病毒,该恶意病毒通过应用获取cap_dac_override的能力,然后触发open_by_handle_at这个***调用,通过这个***调用遍历所有文件路径,并暴力破解每个文件路径下的每个文件的handle文件句柄,通过该handle文件句柄访问文件,窃取/破坏该文件中的数据。
可选地,管理节点170可以直接生成将租户B退出通道140的请求,不需要任何条件触发生成该请求的动作。
步骤S52,管理节点170接收除了租户B以外的所有租户对该请求的反馈,按照共识策略对所有反馈达成共识。
可选地,共识策略可以是少数服从多数的策略。因此,如果多数租户反馈同意将租户B退出通道140,则达成将租户B退出通道140的共识。
可选地,对于达成将租户B退出通道140的共识,共识策略可以指定需要获得同意的租户。举例说明,租户A的区块链节点组114、租户B的区块链节点组124和租户C的区块链节点组124都已加入通道140;共识策略可以指定需要同时获得租户A和租户C的同意才能达成将租户B退出通道140的共识。举例说明,如果租户A是通道140的发起方,共识策略可以指定只需要获得租户A的同意便能达成将租户B退出通道140的共识。
在达成将租户B退出通道140的共识之后,管理节点170执行步骤S53在通道140中停止租户B的区块链节点组124,避免区块链节点组124继续参与对该通道140的区块链的维护。
本申请中,租户加入通道140的具体实现是:租户具有的多个区块链节点组中至少一个区块链节点组加入该通道140。租户退出通道140,是指将该租户已加入该通道140的所有区块链节点组均退出通道140。
可选地,管理节点170执行步骤S53停止区块链节点组124的动作可以不需要先得到租户的共识,因此步骤S51和步骤S52为本申请的可选步骤。
步骤S53,管理节点170指示租户B的执行节点1201停止运行区块链节点组124。
租户B的执行节点1201部署在资源隔离区120中。可选地,租户B的执行节点1201可以部署在资源隔离区120中的一个服务器上,或者分布式部署在资源隔离区120中的多个服务器上。
管理节点170与租户B的执行节点1201之间建立有通信连接,这样管理节点170与租户B的执行节点1201之间可以进行数据传输。步骤S53中,该管理节点170指示租户B的执行节点1201的实现方式可以是消息或者指令,在此不限定指示的具体实现方式;该消息或者指令可以携带该区块链节点组124的标识。
步骤S54,租户B的执行节点1201停止在租户B的资源隔离区120中运行区块链节点组124。
具体地,租户B的执行节点1201可以执行如下两个操作来停止区块链节点组124。
操作一,租户B的执行节点1201可以指示锚点121断开与通道140中的其它区块链节点组的锚点(例如租户A的区块链节点组114的锚点111)的通信连接。后续,区块链节点组124的区块链节点122不再与通道140中的其它区块链节点组交互数据。
操作二,租户B的执行节点1201指示主控点123断开与共识节点163的通信连接。这样,该主控点123不再从共识节点163获取属于通道140的新区块。
可选地,租户B的执行节点1201在停止区块链节点组124时,租户B的执行节点1201还停止区块链节点组124内部的锚点121、主控点123和区块链节点122之间的通信连接。这样,在锚点121、主控点123和区块链节点122之间不能继续进行数据传输。
步骤S55,管理节点170获取区块链节点组124的配置信息。
管理节点170存储有区块链节点组124在该通道140中的配置信息,因此管理节点170可以获取该区块链节点组124的配置信息。
可选地,管理节点170存储有通道140的通道配置信息,该通道配置信息记录有该通道140中所有区块链节点组的配置信息。因此,管理节点170可以获取该通道140中区块链节点组124的配置信息。
步骤S56,管理节点170向租户A的执行节点1101发送将区块链节点组124退出通道140的指示。该指示携带有通道140的标识和该区块链节点组124的标识,还携带有区块链节点组124的配置信息。
管理节点170与租户A的执行节点1101之间建立有通信连接,这样管理节点170与租户A的执行节点1101之间可以进行数据传输。步骤S56中,该管理节点170指示租户A的执行节点1101的实现方式可以是消息或者指令,在此不限定指示的具体实现方式;该消息或者指令可以携带该区块链节点组124的标识。
步骤S57,租户A的执行节点1101获取通道140的通道配置信息。
该通道140的通道配置信息可以包括:通道140的标识、通道140包括的所有区块链节点组的配置信息。此时,该通道配置信息包括区块链节点组124的配置信息。
可选地,每个区块链节点组的配置信息包括:该区块链节点组的操作权限,该区块链节点组的权限证书,该区块链节点组使用的安全算法。
该区块链节点组的操作权限包括:该区块链节点组的最高管理权限,操作该区块链节点组的数据的读权限和写权限。在一个实施方式中,该通道配置信息指示为该区块链节点组124配置该区块链节点组124的最高管理权限。该通道配置信息指示为该区块链节点组124配置读/写该区块链节点组124的数据的读权限和写权限;这样,该区块链节点组124可以读/写该区块链组124管理的区块链。
可选地,该区块链节点组的权限证书包括:管理该区块链节点组的最高管理权限的证书,该区块链节点组的根证书,该区块链节点组通信所使用的根证书。可选地,该区块链节点组的根证书为客户端访问该区块链节点组的权限证书。可选地,该区块链节点组通信所使用的根证书可以用于:建立该区块链节点组中的锚节点、内部区块链节点和主控点之间的通信连接,建立该区块链节点组的锚节点与通道140中其他区块链节点组的锚节点之间的通信连接, 和建立该区块链节点组的主控点与共识节点之间的通信连接。可选地,基于该区块链节点组通信所使用的根证书建立的通信连接,为需要使用该根证书鉴权的通信连接。可选地,该区块链节点组通信所使用的根证书可以是基于安全传输层协议(transport layer security,TLS)通信的根证书。
该区块链节点组使用的安全算法包括:防篡改区块的算法(例如哈希算法)。举例,对于区块链中的相邻两个区块,使用该哈希算法计算前一个区块的哈希值,并将该哈希值存储在后一个的区块中;这样,可以通过该哈希值发现该前一个区块的数据是否被恶意修改。可选地,如果该区块链节点组还参与背书,则该区块链节点组使用的安全算法还包括:防止对该区块链节点组背书后的交易记录进行篡改的算法(例如哈希算法)。从而,对于共识节点从该区块链节点组接收按照该算法处理后的交易记录,防止该交易记录中的交易信息在共识节点中泄露。
可选地,本申请所述的通道配置信息还可以包括:通道140的权限策略。
该通道140的权限策略指定通道140中具有管理权限的租户;例如,该权限策略指定对通道140具有最高管理权限的租户;例如,该权限策略可以指定对通道140具有读通道配置信息的读权限的租户;例如,该权限策略指定对通道140具有写通道配置信息的写权限的租户。可选地,如果租户A为创建通道140的发起方,则该通道140的权限策略,可以指定租户A具有管理通道140的最高管理权限,可以指定租户A具有读通道配置信息的读权限,可以指定租户A具有写通道配置信息的写权限。
可选地,本申请所述的通道配置信息还可以包括:该通道配置信息的版本号。
步骤S57中,该租户A的执行节点1101可以从共识组织160(例如共识节点161)获取通道140的通道配置信息,该通道配置信息包括该区块链节点组124的配置信息。
步骤S58,租户A的执行节点生成通道140的通道调整信息。
租户A的执行节点1101可以计算该通道140的通道配置信息与管理节点170获取的区块链节点组124的配置信息之间的差量,并在通道调整信息记录该差量。因此,通道调整信息包括该通道配置信息与该区块链节点组124的配置信息之间的差量,即该通道调整信息不包括区块链节点组124的配置信息,并且该通道调整信息包括在通道140中除了租户B的区块链节点组124以外的所有区块链节点组的配置信息。该通道调整信息还可以包括通道140的的标识。可选地,该通道调整信息还可以包括:该通道调整信息的版本号、通道配置信息的版本号。
在一个实施方式中,提供一种数据结构来记录通道配置信息。该数据结构包括如下字段:记录通道140的标识的字段、记录通道140所包括的所有区块链节点组的配置信息的字段、记录通道140的权限策略的字段、记录版本号的字段。通道调整信息包括通道配置信息与区块链节点组124的配置信息的差量,本申请仍采用该数据结构记录该通道调整信息。从共识组织160获取的通道配置信息中包括的区块链节点组124的配置信息,与管理节点170向租户A的执行节点1101发送的区块链节点组124的配置信息,是相同的;因此在记录该通道调整信息的数据结构中记录该区块链节点组124的配置信息的字段为空;即在记录该通道调整信息的数据结构中记录通道140中除了租户B的区块链节点组124以外的所有区块链节点组的配置信息。在记录该通道调整信息的数据结构中记录该通道调整信息的版本号,还可以记录从共识组织160获取通道140的通道配置信息的版本号。在记录该通道调整信息的数据结 构中记录通道140的标识。
步骤S59,租户A的执行节点1101向共识组织160发送该通道调整信息。
具体地,租户A的执行节点1101向与区块链节点组114连接的共识节点161发送该通道调整信息。
本申请将该通道调整信息作为一个交易记录,因为该通道调整信息需要记录在该通道140对应的区块链中,即在该区块链中记录已加入通道140的租户中除了租户B以外的所有租户的共识。具体地,租户A的执行节点1101向主控点113发送该通道调整信息,该主控点113将该通道调整信息向共识节点161发送。
共识节点161接收该通道调整信息,并将该通道调整信息作为一个交易记录。按照处理交易记录的方式,共识组织160按照通道140的共识算法对该通道调整信息进行验证,共识节点161保存验证通过的该通道调整信息。
共识节点161生成包括该通道调整信息的区块。一种可能实现中,该通道调整信息的数据量达到生成一个区块的数据量,共识节点161生成只记录该通道调整信息的区块。一种可能实现中,该通道调整信息的数据量未达到生成一个区块的数据量,共识节点161将该通道调整信息和通道140的其他交易记录一起生成一个区块。在另一种可能实现中,该通道调整信息的数据量超过生成一个区块的数据量,共识节点161将该通道调整信息划分入多个区块。可选地,在生成该多个区块时,首先按照生成区块所需的数据量将该通道调整信息划分为多份数据,除了最后一份数据,其它份数据等于生成区块所需的数据量,从而将最后一份数据与通道140的其他交易记录一起生成一个区块,针对其它份数据分别生成一个区块。
共识组织160在共识节点间同步共识节点161生成的包括该通道调整信息的区块。例如,共识节点161将该区块的副本发送至共识节点164,共识节点164存储该区块。
通道140中,除了租户B的区块链节点组124以外,其他已加入通道140的每个区块链节点组可以从与该个区块链节点组连接的共识节点获取到包括该通道调整信息的区块,并将该区块加入到本区块链节点组存储的区块链中。从而,该其他已加入通道140的所有区块链节点组可以通过区块链维护将区块链节点组124退出通道140的共识。
举例说明,通道140中,除了租户B的区块链节点组124以外,还包括租户A的区块链节点组114和租户C的区块链节点组134。租户A的区块链节点组114的主控点113可以从共识节点161获取包括该通道调整信息的区块,并将该区块加入到该区块链节点组114存储的区块链。区块链节点组134的主控点133可以从共识节点164获取包括该通道调整信息的区块,并将该区块加入到该区块链节点组134存储的区块链。这样,租户A的区块链节点组114和租户C的区块链节点组134在各自的区块链中记录了将区块链节点组124退出通道140的共识,即租户A和租户C记录了将区块链节点组124退出通道140的共识。
本申请中,步骤S53和步骤S54可以先于步骤S55到步骤S59执行,或者与步骤S55到步骤S59同时执行,或者晚于步骤S55到步骤S59执行。
步骤S60,管理节点170向租户A的执行节点1101发送更新背书策略的指示。
在租户B的区块链节点组124退出通道140之后,如果存在需要区块链节点组124和区块链节点组114共同参与背书的合约事项,则需要更新该合约事项对应的背书策略,管理节点170执行步骤S60向租户A的执行节点1101发送更新该背书策略的指示。
在区块链节点组124退出通道140之后,如果不存在需要区块链节点122参与背书的合 约事项,则不需要更新背书策略,因此步骤S60和步骤S61都为本方法的可选步骤。
本申请中,步骤S60为可选步骤。租户的执行节点更新背书策略,可以是由管理节点170触发,也可以是该租户的执行节点自己触发。
步骤S61,租户A的执行节点1101更新背书策略。
具体地,在区块链节点组124退出通道140之后,如果存在需要区块链节点组124和区块链节点组114共同参与背书的合约事项,则租户A的执行节点1101更新执行该合约事项的链代码,包括更新该链代码记录的背书策略;更新的背书策略指定了需要参与背书的区块链节点组(包括区块链节点组114,但不包括区块链节点组124)。区块链节点组114(具体可以是内部区块链节点112)重新加载该更新的链代码。这样,后续区块链节点组124不参与对执行该合约事项所得的交易记录进行背书。
如果存在需要区块链节点组124和区块链节点组134共同参与背书的合约事项,区块链节点组134可以做与区块链节点组114类似的背书策略更新。因此,通道140中,除了租户B的区块链节点组124以外的其他租户的区块链节点组,可以采用类似区块链节点组114更新背书策略的更新方式,更新背书策略。可选地,除了租户B的区块链节点组124以外的其他租户的区块链节点组,也可以是由管理节点170发送的指示触发对背书策略的更新。
可选地,由人为更新新执行该合约事项的链代码,替代租户的执行节点更新执行该合约事项的链代码。
装置
本申请提供一种维护区块链的装置,该装置可以是本申请所述的第二租户(即租户A)的执行节点(即租户A的执行节点1101)。该装置包括的功能单元用于实现上述维护区块链的方法中由该第二租户的执行节点执行的步骤;本申请对在该装置中如何划分功能单元不做限定,下面实例性地提供一种功能单元的划分,如图6所示。
如图6所示的维护区块链的装置600,包括:
接收单元601,用于接收管理节点发送的第一租户(即租户B)的目标区块链节点组(即区块链节点组124)的配置信息;
处理单元602,用于从共识组织(即共识组织160)获取通道的通道配置信息,所述通道(即通道140)对应一个区块链,所述通道配置信息包括所述通道的标识和已加入所述通道的所有区块链节点组的配置信息,所述已加入所述通道的所有区块链节点组包括所述目标区块链节点组;
所述处理单元602,用于根据所述通道配置信息和从所述管理节点接收的所述目标区块链节点组的配置信息生成所述通道的通道调整信息,所述通道调整信息包括:所述通道的标识和已加入所述通道的所有区块链节点组中除了所述目标区块链节点组以外的区块链节点组的配置信息;
发送单元603,用于向所述共识组织发送所述通道调整信息;
所述处理单元602,还用于从所述共识组织获取包括所述通道调整信息的区块,将所述区块添加至已加入所述通道的区块链节点组所存储的区块链。
可选地,所述目标区块链节点组的配置信息包括:
所述目标区块链节点组的操作权限,
所述目标区块链节点组的权限证书,和
所述目标区块链节点组使用的安全算法。
可选地,所述处理单元602,用于对于需要所述目标区块链节点组参与背书的合约事项,在用于执行所述合约事项的链代码中更新所述合约事项对应的背书策略,更新后的背书策略指定所述目标区块链节点组不参与对执行所述合约事项所得的交易记录背书。
本申请提供一种维护区块链的装置,该装置可以是本申请所述的第一租户(即租户B)的执行节点(即租户B的执行节点1201)。该装置包括的功能单元用于实现上述维护区块链的方法中由该第一租户的执行节点执行的步骤;本申请对在该装置中如何划分功能单元不做限定,下面实例性地提供一种功能单元的划分,如图7所示。
如图7所示的维护区块链的装置700,包括:
接收单元701,用于接收管理节点(即管理节点170)发送的停止运行已加入通道(即通道140)的目标区块链节点组(即区块链节点组124)的指示,所述通道对应一个区块链;
处理单元702,用于停止在第一租户(即租户B)的资源隔离区(即资源隔离区120)运行所述目标区块链节点组。
本申请提供一种维护区块链的装置,该装置可以是本申请所述的管理节点(即管理节点170)。该装置包括的功能单元用于实现上述维护区块链的方法中由该管理节点执行的步骤;本申请对在该装置中如何划分功能单元不做限定,下面实例性地提供一种功能单元的划分,如图7所示。
如图8所示的维护区块链的装置800,装置800包括:
处理单元802,用于指示第一租户(即租户B)的执行节点(即执行节点1201)在所述第一租户的资源隔离区(即资源隔离区120)中停止运行已加入通道(即通道140)的目标区块链节点组(区块链节点组124),所述通道对应一个区块链;
所述处理单元802,用于获取所述目标区块链节点组的配置信息;
发送单元801,用于向第二租户(即租户A)的执行节点(即执行节点1101)发送所述目标区块链节点组的配置信息。
可选地,所述目标区块链节点组的配置信息包括:
所述目标区块链节点组的操作权限,
所述目标区块链节点组的权限证书,和
所述目标区块链节点组使用的安全算法。
可选地,所述发送单元801,用于向已加入所述通道的所有租户中除了所述第一租户以外的租户发送将所述第一租户退出所述通道的请求;
所述处理单元802,用于接收已加入所述通道的所有租户中除了所述第一租户以外的租户对所述请求的反馈,按照共识策略对所有反馈达成将所述第一租户退出所述通道的共识。
可选地,所述处理单元802,用于在所述第一租户的资源隔离区存在病毒时,生成将 所述第一租户退出所述通道的请求。
可选地,所述装置还包括:
所述处理单元802,用于对于需要所述目标区块链节点组参与背书的合约事项,指示所述第一租户的执行节点更新所述合约事项对应的背书策略,更新后的背书策略指定所述目标区块链节点组不参与对执行所述合约事项所得的交易记录背书。
租户的执行节点(例如第一租户的执行节点、第二租户的执行节点)或者管理节点,可以部署在一个服务器上,或者分布式地部署在多个服务器上。租户的执行节点或者管理节点可以部署在同一个服务器上或者部署在不同服务器上。下面示例性地提供该服务器的一种可能的基本硬件架构,如图9所示。
参见图9,服务器900包括处理器901、存储器902、通信接口903和总线904。
服务器900中,处理器901的数量可以是一个或多个,图1仅示意了其中一个处理器901。可选地,处理器901可以是中央处理器(central process ing unit,CPU)或者ARM处理器。如果服务器900具有多个处理器901,多个处理器901的类型可以不同,或者可以相同。可选地,服务器900的多个处理器901还可以集成为多核处理器。
存储器902存储计算机指令;例如,该计算机指令包括链代码;例如,该计算机指令用于实现本申请提供的方法中的各个步骤;例如,该计算机指令用于实现本申请提供的装置600或装置700或者装置800包括的各功能单元。
存储器902可以是以下存储介质的任一种或任一种组合:非易失性存储器(non-volatile memory,NVM)(例如只读存储器(read only memory,ROM)、固态硬盘(Solid State 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 (20)

  1. 一种维护区块链的方法,其特征在于,所述方法包括:
    接收管理节点发送的第一租户的目标区块链节点组的配置信息;
    从共识组织获取通道的通道配置信息,所述通道对应一个区块链,所述通道配置信息包括所述通道的标识和已加入所述通道的所有区块链节点组的配置信息,所述已加入所述通道的所有区块链节点组包括所述目标区块链节点组;
    根据所述通道配置信息和从所述管理节点接收的所述目标区块链节点组的配置信息生成所述通道的通道调整信息,所述通道调整信息包括:所述通道的标识和已加入所述通道的所有区块链节点组中除了所述目标区块链节点组以外的区块链节点组的配置信息;
    向所述共识组织发送所述通道调整信息;
    从所述共识组织获取包括所述通道调整信息的区块;
    将所述区块添加至已加入所述通道的区块链节点组所存储的区块链。
  2. 根据权利要求1所述的方法,其特征在于,所述目标区块链节点组的配置信息包括:
    所述目标区块链节点组的操作权限,
    所述目标区块链节点组的权限证书,和
    所述目标区块链节点组使用的安全算法。
  3. 根据权利要求1或2所述的方法,其特征在于,所述方法包括:
    对于需要所述目标区块链节点组参与背书的合约事项,在用于执行所述合约事项的链代码中更新所述合约事项对应的背书策略,更新后的背书策略指定所述目标区块链节点组不参与对执行所述合约事项所得的交易记录背书。
  4. 一种维护区块链的方法,其特征在于,所述方法包括:
    指示第一租户的执行节点在所述第一租户的资源隔离区中停止运行已加入通道的目标区块链节点组,所述通道对应一个区块链;
    获取所述目标区块链节点组的配置信息,向第二租户的执行节点发送所述目标区块链节点组的配置信息。
  5. 根据权利要求4所述的方法,其特征在于,所述目标区块链节点组的配置信息包括:
    所述目标区块链节点组的操作权限,
    所述目标区块链节点组的权限证书,和
    所述目标区块链节点组使用的安全算法。
  6. 根据权利要求4或5所述的方法,其特征在于,所述方法包括:
    向已加入所述通道的所有租户中除了所述第一租户以外的租户发送将所述第一租户退出所述通道的请求;
    接收已加入所述通道的所有租户中除了所述第一租户以外的租户对所述请求的反馈;
    按照共识策略对所有反馈达成将所述第一租户退出所述通道的共识。
  7. 根据权利要求6所述的方法,其特征在于,所述方法包括:
    在所述第一租户的资源隔离区存在病毒时,生成将所述第一租户退出所述通道的请求。
  8. 根据权利要求4至7任一项所述的方法,其特征在于,所述方法包括:
    对于需要所述目标区块链节点组参与背书的合约事项,指示所述第一租户的执行节点更新所述合约事项对应的背书策略,更新后的背书策略指定所述目标区块链节点组不参与对执行所述合约事项所得的交易记录背书。
  9. 一种维护区块链的装置,其特征在于,所述装置包括:
    接收单元,用于接收管理节点发送的第一租户的目标区块链节点组的配置信息;
    处理单元,用于从共识组织获取通道的通道配置信息,所述通道对应一个区块链,所述通道配置信息包括所述通道的标识和已加入所述通道的所有区块链节点组的配置信息,所述已加入所述通道的所有区块链节点组包括所述目标区块链节点组;
    所述处理单元,用于根据所述通道配置信息和从所述管理节点接收的所述目标区块链节点组的配置信息生成所述通道的通道调整信息,所述通道调整信息包括:所述通道的标识和已加入所述通道的所有区块链节点组中除了所述目标区块链节点组以外的区块链节点组的配置信息;
    发送单元,用于向所述共识组织发送所述通道调整信息;
    所述处理单元,还用于从所述共识组织获取包括所述通道调整信息的区块,将所述区块添加至已加入所述通道的区块链节点组所存储的区块链。
  10. 根据权利要求9所述的装置,其特征在于,所述目标区块链节点组的配置信息包括:
    所述目标区块链节点组的操作权限,
    所述目标区块链节点组的权限证书,和
    所述目标区块链节点组使用的安全算法。
  11. 根据权利要求9或10所述的装置,其特征在于,
    所述处理单元,用于对于需要所述目标区块链节点组参与背书的合约事项,在用于执行所述合约事项的链代码中更新所述合约事项对应的背书策略,更新后的背书策略指定所述目标区块链节点组不参与对执行所述合约事项所得的交易记录背书。
  12. 一种维护区块链的装置,其特征在于,所述装置包括:
    处理单元,用于指示第一租户的执行节点在所述第一租户的资源隔离区中停止运行已加入通道的目标区块链节点组,所述通道对应一个区块链;
    所述处理单元,用于获取所述目标区块链节点组的配置信息;
    发送单元,用于向第二租户的执行节点发送所述目标区块链节点组的配置信息。
  13. 根据权利要求12所述的装置,其特征在于,所述目标区块链节点组的配置信息包括:
    所述目标区块链节点组的操作权限,
    所述目标区块链节点组的权限证书,和
    所述目标区块链节点组使用的安全算法。
  14. 根据权利要求12或13所述的装置,其特征在于,
    所述发送单元,用于向已加入所述通道的所有租户中除了所述第一租户以外的租户发送将所述第一租户退出所述通道的请求;
    所述处理单元,用于接收已加入所述通道的所有租户中除了所述第一租户以外的租户对所述请求的反馈,按照共识策略对所有反馈达成将所述第一租户退出所述通道的共识。
  15. 根据权利要求14所述的装置,其特征在于,
    所述处理单元,用于在所述第一租户的资源隔离区存在病毒时,生成将所述第一租户退出所述通道的请求。
  16. 根据权利要求12至15任一项所述的装置,其特征在于,所述装置还包括:
    所述处理单元,用于对于需要所述目标区块链节点组参与背书的合约事项,指示所述第一租户的执行节点更新所述合约事项对应的背书策略,更新后的背书策略指定所述目标区块链节点组不参与对执行所述合约事项所得的交易记录背书。
  17. 一种服务器,其特征在于,包括处理器和存储器;
    所述存储器,用于存储计算机指令;
    所述处理器,用于执行所述存储器存储的计算机指令,使得所述服务器执行权利要求1至3任一项所述的维护区块链的方法。
  18. 一种服务器,其特征在于,包括处理器和存储器;
    所述存储器,用于存储计算机指令;
    所述处理器,用于执行所述存储器存储的计算机指令,使得所述服务器执行权利要求4至8任一项所述的维护区块链的方法。
  19. 一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令指示服务器执行权利要求1至3任一项所述的维护区块链的方法。
  20. 一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令指示服务器执行权利要求4至8任一项所述的维护区块链的方法。
PCT/CN2019/081212 2018-08-03 2019-04-03 维护区块链的方法和装置、服务器和计算机可读存储介质 WO2020024607A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP19844896.1A EP3817291B1 (en) 2018-08-03 2019-04-03 Block chain maintenance method and device, server, and computer readable storage medium
US17/166,860 US11811910B2 (en) 2018-08-03 2021-02-03 Blockchain maintenance method and apparatus, server, and computer-readable storage medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201810877867.3 2018-08-03
CN201810877867.3A CN109033405B (zh) 2018-08-03 2018-08-03 维护区块链的方法和装置、服务器和计算机可读存储介质

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/166,860 Continuation US11811910B2 (en) 2018-08-03 2021-02-03 Blockchain maintenance method and apparatus, server, and computer-readable storage medium

Publications (1)

Publication Number Publication Date
WO2020024607A1 true WO2020024607A1 (zh) 2020-02-06

Family

ID=64648358

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/081212 WO2020024607A1 (zh) 2018-08-03 2019-04-03 维护区块链的方法和装置、服务器和计算机可读存储介质

Country Status (4)

Country Link
US (1) US11811910B2 (zh)
EP (1) EP3817291B1 (zh)
CN (1) CN109033405B (zh)
WO (1) WO2020024607A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11018852B2 (en) * 2018-12-21 2021-05-25 International Business Machines Corporation Blockchain trust anchor
US11663348B2 (en) 2018-12-21 2023-05-30 International Business Machines Corporation Dynamic entitlement for blockchain data

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109033405B (zh) * 2018-08-03 2020-09-08 华为技术有限公司 维护区块链的方法和装置、服务器和计算机可读存储介质
US11348101B2 (en) * 2018-12-19 2022-05-31 International Business Machines Corporation Post-settlement processes
US11720545B2 (en) 2018-12-19 2023-08-08 International Business Machines Corporation Optimization of chaincode statements
CN110874493A (zh) * 2018-12-29 2020-03-10 厦门安妮股份有限公司 一种基于区块链的企业数据防篡改的方法
US11394544B2 (en) * 2019-01-07 2022-07-19 Aitivity Inc. Validation of blockchain activities based on proof of hardware
CN109753304A (zh) * 2019-01-16 2019-05-14 中化能源科技有限公司 基于联盟链的多通道动态化生成的实现方法
US11269858B2 (en) 2019-03-26 2022-03-08 International Business Machines Corporation Information management in a decentralized database including a fast path service
US11398895B2 (en) 2019-03-26 2022-07-26 International Business Machines Corporation Information management in a decentralized database including a fast path service
US11418322B2 (en) * 2019-03-26 2022-08-16 International Business Machines Corporation Information management in a decentralized database including a fast path service
CN109992285B (zh) * 2019-04-02 2022-09-16 杭州秘猿科技有限公司 区块链代码块独立升级方法、装置及电子设备
CN110247894B (zh) * 2019-05-16 2021-06-18 中国联合网络通信集团有限公司 一种识别伪造handle服务器的方法及装置
US11196771B2 (en) * 2019-07-16 2021-12-07 International Business Machines Corporation Multi-domain blockchain network with data flow control
CN110602234B (zh) * 2019-09-20 2021-10-26 腾讯科技(深圳)有限公司 区块链网络节点管理方法、装置、设备以及存储介质
JP6852776B1 (ja) * 2019-11-26 2021-03-31 ダイキン工業株式会社 ブロックチェーンシステム、プログラム及びネットワーク接続装置
CN111147253B (zh) * 2019-12-23 2021-11-16 联想(北京)有限公司 信息处理方法、装置、电子设备及存储介质
US11362826B2 (en) * 2020-03-18 2022-06-14 International Business Machines Corporation Endorsement process for non-deterministic application
CN111669267B (zh) * 2020-05-15 2024-02-20 西安纸贵互联网科技有限公司 区块链的共识机制配置及背书策略配置方法
CN111405074B (zh) * 2020-06-08 2020-09-08 南京邮电大学 一种基于混合链的数据中心网络故障诊断和自动配置方法
CN114124943A (zh) * 2020-08-14 2022-03-01 北京金山云网络技术有限公司 区块链节点的处理方法、装置及***、电子装置
CN113010409B (zh) * 2020-09-16 2023-09-15 腾讯科技(深圳)有限公司 智能合约测试方法及装置、电子设备、存储介质
CN113098982B (zh) * 2021-06-02 2021-08-10 支付宝(杭州)信息技术有限公司 区块链消息的传输方法及装置
CN113407996A (zh) * 2021-06-28 2021-09-17 湖南大学 一种分布式账本自主可控的隐私保护***及其集群架构
CN113868341B (zh) * 2021-12-03 2022-03-18 深圳市名竹科技有限公司 联盟链的预期共识方法
CN115695440A (zh) * 2022-09-20 2023-02-03 天翼电子商务有限公司 一种基于gossip通信的分布式区块链BaaS***
CN117217848B (zh) * 2023-11-08 2024-01-26 深圳海辰储能科技有限公司 一种储能交易方法、装置和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107040594A (zh) * 2017-04-12 2017-08-11 山大地纬软件股份有限公司 基于pbft的许可区块链节点准入的方法及装置
CN107171829A (zh) * 2017-04-24 2017-09-15 杭州趣链科技有限公司 一种基于bft共识算法实现的动态节点管理方法
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
CN109033405A (zh) * 2018-08-03 2018-12-18 华为技术有限公司 维护区块链的方法和装置、服务器和计算机可读存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10366204B2 (en) 2015-08-03 2019-07-30 Change Healthcare Holdings, Llc System and method for decentralized autonomous healthcare economy platform
CN106452785B (zh) * 2016-09-29 2019-05-17 财付通支付科技有限公司 区块链网络、分支节点及区块链网络应用方法
WO2018069566A1 (en) * 2016-10-14 2018-04-19 Nokia Technologies Oy Method, device and system for validating sensitive user data transactions within trusted circle
WO2018073482A1 (en) * 2016-10-18 2018-04-26 Nokia Technologies Oy Accession control for network nodes
WO2018132108A1 (en) * 2017-01-13 2018-07-19 Visa International Service Association Techniques for secure blockchain management
US10944546B2 (en) * 2017-07-07 2021-03-09 Microsoft Technology Licensing, Llc Blockchain object interface
CN107360001B (zh) * 2017-07-26 2021-12-14 创新先进技术有限公司 一种数字证书管理方法、装置和***
CN107464117B (zh) * 2017-08-04 2021-06-22 平安科技(深圳)有限公司 基于区块链的数据管理方法及区块链***
US10764142B2 (en) * 2017-11-16 2020-09-01 International Business Machines Corporation Clustered application management with a blockchain
CN108256864B (zh) * 2018-02-13 2019-06-07 中链科技有限公司 一种区块链之间的跨链联盟的建立及通信方法、***
WO2019174048A1 (zh) 2018-03-16 2019-09-19 华为技术有限公司 容器逃逸检测方法、装置、***及存储介质
US10831530B2 (en) * 2018-06-13 2020-11-10 International Business Machines Corporation Secure consensus-based endorsement for self-monitoring blockchain
CN109246179B (zh) * 2018-06-30 2021-06-01 华为技术有限公司 维护区块链的方法和装置、服务器和计算机可读存储介质
US11227057B2 (en) * 2018-11-08 2022-01-18 International Business Machines Corporation Membership access management of a database

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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共识算法实现的动态节点管理方法
CN109033405A (zh) * 2018-08-03 2018-12-18 华为技术有限公司 维护区块链的方法和装置、服务器和计算机可读存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11018852B2 (en) * 2018-12-21 2021-05-25 International Business Machines Corporation Blockchain trust anchor
US11663348B2 (en) 2018-12-21 2023-05-30 International Business Machines Corporation Dynamic entitlement for blockchain data

Also Published As

Publication number Publication date
CN109033405B (zh) 2020-09-08
US20210160058A1 (en) 2021-05-27
EP3817291B1 (en) 2023-05-31
EP3817291A1 (en) 2021-05-05
CN109033405A (zh) 2018-12-18
EP3817291A4 (en) 2021-09-01
US11811910B2 (en) 2023-11-07

Similar Documents

Publication Publication Date Title
WO2020024607A1 (zh) 维护区块链的方法和装置、服务器和计算机可读存储介质
WO2020001117A1 (zh) 维护区块链的方法和装置、服务器和计算机可读存储介质
CN110868439B (zh) 一种区块链***
CN109040271B (zh) 一种分布式环境下的网络设备完整性保护方法
CN108876599B (zh) 一种扶贫贷款管理***
CN110769035B (zh) 一种区块链资产发行方法、平台、业务节点及存储介质
US11126458B2 (en) Method, apparatus, and electronic device for resource allocation based on blockchain
US11962681B2 (en) Symmetric encryption for private smart contracts among multiple parties in a private peer-to-peer network
CN110597832A (zh) 基于区块链网络的政务信息处理方法、装置、电子设备及存储介质
US11188920B2 (en) Autocommit transaction management in a blockchain network
CN114128214B (zh) 用于配置区块链的安全层
US11689616B2 (en) Optimization of delivery of blocks
WO2021135744A1 (zh) 用于区块链节点的数据同步方法及装置
US11184395B1 (en) Cross-network identity provisioning
US20230039643A1 (en) Cross-chain collaborative governance system, method and device and storage medium
US12014361B2 (en) Systems and methods for improved hot wallet security
JP7304963B2 (ja) プログラム、データ認証方法、およびコンピュータ装置
CN111683058A (zh) 一种基于区块链的数据存储***及其存储方法
WO2019142884A1 (ja) ブロック検証装置、ブロック検証方法、及びプログラム
CN112654972A (zh) 具有受限交易的区块链设置
WO2020042929A1 (zh) 一种区块链***
WO2024045552A1 (zh) 一种数据处理方法及相关设备
Li et al. Cloudshare: towards a cost-efficient and privacy-preserving alliance cloud using permissioned blockchains
KR102294569B1 (ko) 블록체인 네트워크를 구축할 수 있는 블록체인 관리시스템
CN114900534B (zh) 一种基于区块链技术的大数据监管方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19844896

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2019844896

Country of ref document: EP

Effective date: 20210128