WO2023077796A1 - 骨干节点接入方法和区块链系统 - Google Patents

骨干节点接入方法和区块链系统 Download PDF

Info

Publication number
WO2023077796A1
WO2023077796A1 PCT/CN2022/097228 CN2022097228W WO2023077796A1 WO 2023077796 A1 WO2023077796 A1 WO 2023077796A1 CN 2022097228 W CN2022097228 W CN 2022097228W WO 2023077796 A1 WO2023077796 A1 WO 2023077796A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
voting
blockchain system
backbone
super
Prior art date
Application number
PCT/CN2022/097228
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 中国信息通信研究院
Publication of WO2023077796A1 publication Critical patent/WO2023077796A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1046Joining mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/30Decision processes by autonomous network management units using voting and bidding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • H04L2209/463Electronic voting
    • 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

Definitions

  • the present disclosure relates to blockchain technology, in particular, to a backbone node access method and a blockchain system.
  • Blockchain technology is a ledger technology jointly maintained by multiple parties. It is composed of consensus mechanism, cryptographic algorithm, network routing, contract script and other technologies. It has the technical characteristics of distributed credibility, difficult to tamper, and multi-party maintenance. These technical characteristics make the blockchain considered one of the most disruptive technologies since the popularization of the Internet, and has attracted great attention from all parties around the world.
  • the multi-level blockchain network composed of nodes involves the dynamic access and exit of nodes.
  • an automatic access mechanism for backbone nodes is required.
  • Embodiments of the present disclosure provide a backbone node access method and a blockchain system, so as to realize dynamic access of backbone nodes.
  • a backbone node access method including:
  • the first node in the first blockchain system receives the access request of the backbone node in the second blockchain system, determines the voting node in the first blockchain system, and requests the voting node to Access requests to vote, wherein the voting node is a super node, and both the first node and the backbone node are blockchain nodes;
  • the voting node feeds back the voting result
  • the first node determines to approve the access request according to the voting result, it determines a second node from at least one super node of the first blockchain system, and sends an anchor message to the second node , the anchor message is used to indicate that the second node is anchored with the backbone node;
  • the second node anchors with the backbone node based on the anchor message, so that the backbone node accesses the first blockchain system, and the second blockchain system becomes the first zone
  • a blockchain system includes a first blockchain system and at least one second blockchain system, the first blockchain system includes a first node and a super node, the second blockchain system includes a backbone node;
  • the first node, the super node, and the backbone node interact through the method described in any embodiment of the present disclosure, so that the backbone node can access the first blockchain system, and the backbone node
  • the second blockchain system where it is located becomes the slave chain system of the first blockchain system
  • the first blockchain system is the main chain system of the second blockchain system where the backbone node is located.
  • the first node of the first blockchain system determines the first block after receiving the access request of the backbone node in the second blockchain system
  • the voting node in the chain system requests the voting node to vote for the access request;
  • the voting node feedbacks the voting result;
  • the first node confirms the approval of the access request according to the voting result, it determines the second node in the first blockchain system,
  • the second node anchors with the backbone node based on the anchor message so that the backbone node can access the first blockchain system
  • the blockchain system becomes the slave chain system of the first blockchain system
  • the first blockchain system becomes the main chain system of the second blockchain system.
  • the embodiments of the present disclosure help the backbone node to access effectively and securely, and also help to improve the security of the slave chain system where the backbone node is located after the
  • Figure 1 shows a schematic diagram of the architecture of a block chain system provided by an embodiment of the present disclosure
  • FIG. 2 shows a schematic flowchart of a backbone node access method provided by an embodiment of the present disclosure
  • FIG. 3 shows a schematic flowchart of another backbone node access method provided by an embodiment of the present disclosure
  • FIG. 4 shows a schematic diagram of the architecture of another blockchain system provided by an embodiment of the present disclosure
  • FIG. 5 shows a schematic flowchart of another backbone node access method provided by an embodiment of the present disclosure
  • FIG. 6 shows a schematic diagram of sub-steps of step S306 shown in FIG. 5;
  • FIG. 7 shows a flow chart of a backbone node access method in a specific scenario provided by an embodiment of the present disclosure
  • Fig. 8 shows a schematic diagram of the blockchain system architecture before backbone node access using the backbone node access method provided in the embodiment of the present disclosure
  • FIG. 9 shows a schematic diagram of the blockchain system architecture provided in the embodiment of the present disclosure after backbone node access is performed using the backbone node access method
  • Fig. 10 shows a schematic flowchart of another backbone node access method provided by an embodiment of the present disclosure.
  • plural may refer to two or more than two, and “at least one” may refer to one, two or more than two.
  • the term "and/or" in the disclosure is only an association relationship describing associated objects, indicating that there may be three relationships, for example, A and/or B may indicate: A exists alone, A and B exist simultaneously, There are three cases of B alone.
  • the character "/" in the present disclosure generally indicates that the contextual objects are an "or" relationship.
  • Embodiments of the present disclosure may be applied to electronic devices such as terminal devices, computer systems, servers, etc., which may operate with numerous other general purpose or special purpose computing system environments or configurations.
  • Examples of well known terminal devices, computing systems, environments and/or configurations suitable for use with electronic devices such as terminal devices, computer systems, servers include, but are not limited to: personal computer systems, server computer systems, thin clients, thick client Computers, handheld or laptop devices, microprocessor-based systems, set-top boxes, programmable consumer electronics, networked personal computers, minicomputer systems, mainframe computer systems, and distributed cloud computing technology environments including any of the foregoing, etc.
  • Electronic devices such as terminal devices, computer systems, servers, etc. may be described in the general context of computer system-executable instructions, such as program modules, being executed by the computer system.
  • program modules may include routines, programs, objects, components, logic, data structures, etc., that perform particular tasks or implement particular abstract data types.
  • the computer system/server can be practiced in distributed cloud computing environments where tasks are performed by remote processing devices that are linked through a communications network.
  • program modules may be located in both local and remote computing system storage media including storage devices.
  • the multi-level blockchain network composed of nodes involves the dynamic access and exit of nodes.
  • an automatic generation mechanism of backbone nodes is required.
  • the present disclosure provides a backbone node generation method, so that the backbone nodes in the second blockchain system can access the first blockchain system, and the second blockchain system where the backbone nodes are located can become the first blockchain system.
  • the slave chain system of the block chain system, and the first block chain system can become the main chain system of the second block chain system where the backbone node is located.
  • FIG. 1 shows a schematic architecture diagram of a blockchain system 100 provided by an embodiment of the present disclosure.
  • the blockchain system 100 is a master-slave chain structure, that is, a "1+N" master-slave chain architecture.
  • the blockchain system includes a first blockchain system 110 and at least one second blockchain system, such as 120A and 120B.
  • the first blockchain system includes one first node and more than one supernode.
  • the first blockchain system 110 shown in FIG. 1 includes a first node 111 , a supernode 112 and a supernode 113 .
  • Each second blockchain system includes a backbone node and at least one service node. For example, in the scenario shown in FIG.
  • the second blockchain system 120A includes a backbone node 120A-1, a service node 120A-2 and a service node 120A -3
  • the second blockchain system 120B includes a backbone node 120B-1, a service node 120B-2 and a service node 120B-3.
  • the backbone node of the second blockchain system can be anchored with a super node of the first blockchain system, so that the backbone node can access the first blockchain system, and the second blockchain system becomes the first blockchain system
  • the blockchain generated by the main chain system can be called the main chain, and the blockchain generated by any slave chain system can be considered as the slave chain.
  • different backbone nodes anchor different super nodes.
  • the backbone node is used to synchronize the data of the slave chain system to the supervisory node of the main chain system.
  • the slave chain system performs a cross-chain interaction process with the main chain system through the backbone node.
  • Different slave chain systems include different backbone nodes, or at least two slave chain systems share one backbone node. The structures of any two slave chain systems are the same, or different.
  • the main chain system that is, the first blockchain system
  • its basic functions include ensuring the efficient operation of the chain group, and the service function escorts the healthy development of the entire chain group ecology.
  • Nodes with certification authority provide certification services for nodes or logos; provide supervision services and security monitoring services for each blockchain to ensure the legality of each node in the entire chain group structure Compliance and operational security; the main chain is open to the outside world for application services, service nodes can freely enter or exit the main chain to enjoy the open services of the main chain, and promote the improvement of enterprise capabilities.
  • the main chain system includes multiple super nodes and 1 supervisory node.
  • the super node is responsible for implementing the consensus of the main chain system, and has functions such as data custody, cross-chain gateway, qualification review, and chain group management; the super node provides a trusted computing environment, and runs the oracle service based on trusted computing hardware; the super node acquires External data, after verification, can provide trusted data services to the outside world.
  • All nodes in the chain group can apply to become super node candidates and have the right to be elected as super nodes.
  • the super node is responsible for the construction of the node group, manages the data synchronization authority of the freely accessible service node, and improves the overall service capability of the main chain system.
  • the supervisory node is responsible for legal compliance supervision of the entire chain group user and node data and behavior, and disposes of violations, such as shutting down services, restricting permissions, controlling traffic, marking untrustworthy users, etc.; at the same time, supervising nodes Nodes with management authority, such as nodes and backbone nodes, conduct qualification review and trusted certification to ensure the credibility of key nodes.
  • the main chain system has basic functions and service functions.
  • the basic functions include but are not limited to: pluggable architecture, high-performance consensus mechanism, high-reliability smart contract, privacy protection, encryption mechanism, self-governance, isomorphism Heterogeneous link access, incentive mechanism.
  • Service functions include but are not limited to: digital identity, trusted authentication service, multi-identity root zone management, identification registration and resolution, custody service, public service, interface service, and cross-chain.
  • the supervision node also has but not limited to the following functions: data content supervision, node behavior supervision, super node qualification review, backbone node qualification review, application violation handling, node violation handling, super node certification , backbone node authentication.
  • super nodes also have but are not limited to the following functions: public data management, user/node identity authentication, external public services, node group construction and management, access authentication from the chain, chain group management , contract management, trusted computing environment, big data analysis, operation monitoring, main chain consensus, cross-chain gateway, providing trusted data services, and providing oracle services based on trusted hardware.
  • the supervision nodes and super nodes based on the main chain can realize a shared interactive platform, monitoring and supervision services, equal cooperation and governance, and ecological construction and operation.
  • the slave chain system can be the second blockchain system. Its basic function is to ensure the efficient operation of the subordinate chain system of the backbone node.
  • the service function provides guarantee for the normal development of the slave chain system business and the healthy development of the industrial ecology. For example: according to different business scenarios, the secondary chain supports its specific personalized business activities and supports its independent execution of consensus.
  • the second blockchain system is connected to the first blockchain system.
  • the system creates an isomorphic slave chain system; the other is that the second blockchain system develops an interface to access the first blockchain system according to the interface specification of the first blockchain system, for example, the slave chain system is based on the interface of the main chain system Standardize the development interface to access the main chain system.
  • Access from the chain system needs to submit an application to the main chain system, and connect with the main chain system through the backbone node.
  • the slave chain system can use the public services or resources of the entire chain group, and can also deploy personalized applications or smart contracts according to the needs. For example, according to the trust level of the backbone nodes, different data query permissions can be opened for the backbone nodes, so that they have different trust Level backbone nodes subscribe to different services from the main chain system.
  • the secondary chain system can be a basic secondary chain system, a regional secondary chain system, or an industry secondary chain system.
  • the slave chain system may include one backbone node and multiple service nodes.
  • the backbone node can have the functions of anchoring the main chain system, consensus of the slave chain system, supervision of the slave chain system, and smart contract deployment.
  • the supervisory responsibility is that the supervisory nodes of the main chain system assign local supervisory departments to participate in supervisory activities.
  • the slave chain system can perform cross-chain interaction with the main chain system through the backbone nodes of the slave chain system.
  • Multiple slave chain systems can share a backbone node, and multiple slave chain systems can each include a backbone node.
  • slave chain system can also include consensus nodes, which are only used for consensus.
  • the slave chain system also has basic functions and service functions.
  • the basic functions include but are not limited to: pluggable architecture, high-performance consensus mechanism, highly reliable smart contract, privacy protection, encryption mechanism, self-governance, master Chain interconnection and incentive mechanism.
  • Service functions include but are not limited to: digital identity, trusted authentication service, multi-identity fusion management, identification registration analysis, personalized customization service, external service, interface service, and cross-chain.
  • the backbone node also has but not limited to the following functions: anchoring the main chain system, slave chain system management, node authority management in the slave chain system, slave chain system consensus, external service, Smart contract customization, pluggable component configuration, and participation in chain group voting.
  • the consensus node also has but not limited to the following functions: smart contract customization, synchronization of slave chain system data, external service provision, slave chain consensus, execution of specific business activities, and participation in chain group voting.
  • the service node also has but not limited to the following functions: participating in the voting chain group, synchronizing slave chain data, ordering smart contracts, providing public services externally, using chain group public services, and executing specific businesses Activity.
  • FIG. 2 it shows a schematic flowchart of a backbone node access method provided by an embodiment of the present disclosure, which can be applied to the blockchain system 100 shown in FIG. 1 .
  • the steps included in the method are described below.
  • the first node in the first blockchain system receives the access request of the backbone node in the second blockchain system, determines the voting node in the first blockchain system, and requests the voting node to Voting is performed on the access request, wherein the voting node is a super node, and both the first node and the backbone node are blockchain nodes.
  • the backbone node is a backbone node that is not currently connected to the first blockchain system 110, and is located in any second blockchain system.
  • the backbone node 120A-1 in the second blockchain system 120A when it is not connected to the first blockchain system 110, it can send a connection to the first node 111 of the first blockchain system 110. input request.
  • the first node 111 receives the access request, it can call the voting node list of the first blockchain system 110 to determine the voting nodes in the first blockchain system 110 .
  • the voting nodes in this embodiment are all super nodes. Then, the first node may initiate a voting request to the voting node, so that each voting node feeds back its own voting result on the access request.
  • S101 may be executed by the first blockchain system in the blockchain system.
  • the voting node In response to the voting request initiated by the first node, the voting node gives a voting result for the access request, and the voting result can be fed back to the first node directly or indirectly.
  • S102 may be executed by the first blockchain system in the blockchain system.
  • the first node determines to approve the access request according to the voting result, it determines a second node from at least one super node of the first blockchain system, and sends an anchor message to the second node.
  • the anchor message is used to indicate that the second node is anchored with the backbone node.
  • the second node refers to the super node used to anchor with the backbone node in the first blockchain system.
  • the first node may determine whether to approve the access request based on the voting result.
  • the first node may determine whether to approve the access request based on a voting result obtained within a preset time period after the voting request is initiated. In other words, if a voting node has not responded to the voting result after the preset period of time, it will be considered as an abstention. It can be understood that the preset time length here may be regarded as a voting time length for the access request.
  • the first node may select a supernode from at least one supernode in the first blockchain system as the second node, and send an anchor message to the second node, which may include The node information of the second node, the node information of the backbone node, and an instruction indicating anchoring.
  • S103 may be executed by the first blockchain system in the blockchain system.
  • the second node anchors with the backbone node based on the anchor message, so that the backbone node can access the first blockchain system, the second blockchain system becomes the slave chain system of the first blockchain system, and the first block chain system The block chain system becomes the main chain system of the second block chain system.
  • the second node may determine, based on the anchor message, that the nodes participating in the anchoring include the second node and the backbone node, and then anchor the second node and the backbone node.
  • anchoring here can mean that the second node synchronizes the local ledger to the backbone node. In one example, it can be to synchronize the public data in the genesis block and subsequent blocks in the local ledger to the backbone node. This embodiment does not limit this.
  • the backbone node When the backbone node is anchored to the second node, that is, when the second node synchronizes the local ledger to the backbone node, the backbone node becomes a blockchain node in the first blockchain system. In other words, the backbone node is successfully connected to the first blockchain system.
  • the second blockchain system where the backbone node is located becomes the slave chain system of the first blockchain system
  • the first blockchain system becomes the second blockchain system where the backbone node is located.
  • the effective and safe access of the backbone nodes to the main chain system can be guaranteed, and the security of the slave chain system where the backbone nodes are located can also be guaranteed after access.
  • S104 may be executed by the first blockchain system in the blockchain system.
  • the first node may be a super node in the first blockchain system.
  • the first node 111 shown in FIG. 1 may be a super node.
  • the first node 111 receives the access request of the backbone node, it can participate in voting for the access request together with other super nodes 112 and 113 .
  • the backbone node access method may include the steps shown in FIG. 3 .
  • a first node in the first blockchain system receives an access request from a backbone node in the second blockchain system.
  • the first node 111 may be any super node in the first blockchain system.
  • each super node in the first blockchain system can have a corresponding production time period, each super node can be responsible for the block within the production time period corresponding to the node Pack. Therefore, the first node 111 may be a super node responsible for block packaging in the current production time period in the first blockchain system.
  • the access request may include fields such as node type (Node_type), node owner (Node_owner), node ID (Node_ID), account address (Address), IP address, public key, and signature.
  • the value of the aforementioned fields may be of string type.
  • the node type may be the type of the backbone node sending the access request
  • the node owner may be the identity information of the owner of the backbone node sending the access request.
  • the owner here may be, for example, a specific enterprise.
  • the node owner or the corresponding value can be the enterprise code or organization code of the specific enterprise.
  • the node ID can be the ID of the backbone node sending the access request
  • the account address can be the blockchain account address of the backbone node.
  • S201 may be executed by the first blockchain system in the blockchain system.
  • different access conditions may be set for a backbone node that is accessed for the first time and a backbone node that is not accessed for the first time.
  • the non-first access backbone node here refers to the backbone node that has successfully connected to the first blockchain system and then exited.
  • a first backbone node list and a second backbone node list may be maintained in the first blockchain system.
  • a backbone node such as backbone node 120A-1
  • the backbone node 120A- The node information of 1 is added to the first backbone node list.
  • a backbone node such as backbone node 120A-1
  • search for the node information of the backbone node 120A-1 from the first backbone node list if found, delete it from the first backbone node list node information of the backbone node 120A-1, and add the node information of the backbone node 120A-1 to the second backbone node list.
  • the node information here may include identity information of the node, such as IP address and/or public key.
  • the data in the second backbone node list can be cleaned up regularly, for example, the node information in the second backbone node list whose adding time meets the conditions is cleaned up every first cycle,
  • the condition here may be, for example, that the interval between the added time and the current time is greater than the second period.
  • the second period is greater than the first period.
  • the first period may be one week
  • the second period may be one month, that is, the node information added one month ago in the second backbone node list is cleaned up every other week.
  • the first node may access the second backbone node list to determine whether the node information of the sending node of the currently received access request exists in the second backbone node list, and if so, determine the sending node (that is, the current The backbone node to be connected) has connected to the first blockchain system. If not, then further search the first backbone node list, if the node information of the sending node does not exist in the first backbone node list, then it is determined that the sending node has not accessed the first blockchain system.
  • S202 may be executed by the first blockchain system in the blockchain system.
  • the first node obtains the reputation value of the backbone node sending the access request from the history record of the backbone node, and obtains the vote corresponding to the reputation value Rate.
  • the node information of the backbone node may also include the reputation value of the backbone node.
  • the reputation value of the backbone nodes that have been connected to the first blockchain system and then withdrawn can be stored in the second backbone node list as part of the node information.
  • the reputation value of a backbone node can be calculated in different ways.
  • the reputation value of a backbone node can be calculated based on the backbone node's activity rate a, reported rate v, and timeout response rate r. Exemplarily, it can be obtained by weighting and summing the activity rate a, the reported rate v, and the overtime response rate r of the backbone node, wherein the weight of the activity rate a is, for example, 1, and the weight of the reported rate v and the overtime response rate r Both are negative numbers, and the sum of the weights of the reported rate v and the overtime response rate r is -1. For example, the weight of the reported rate v is -0.4, and the weight of the overtime response rate r is -0.6.
  • the calculation formula of reputation value can be expressed as:
  • a represents the activity rate
  • v represents the reported rate
  • r represents the overtime response rate
  • a the number of submitted transactions/the total number of super node consensuses
  • the number of submitted transactions may be the number of transactions submitted by the backbone node in the first blockchain system.
  • multiple rounds of consensus may be initiated, and supernodes as voting nodes will vote to determine whether consensus is reached.
  • the total number of supernode consensus times may be the total number of consensus rounds performed by supernodes in the first blockchain system.
  • v reported times/total reported times, where the reported times may be the number of backbone nodes reported, and the total reported times may be the sum of the reported times of all nodes in the first blockchain system. It can be understood that smart contracts for recording and processing reporting information can be deployed in the first blockchain system.
  • r timeout response times/total timeout response times
  • supermarket response times refers to the timeout response times of backbone nodes
  • total timeout response times can be the number of all blockchain nodes in the first blockchain system The sum of timeout responses.
  • the first blockchain system may also have a corresponding relationship between the reputation value and the voting rate, for example, it may be stored in the ledger, or it may be stored on the supervisory node.
  • the corresponding relationship between the reputation value and the voting rate can be set as required, for example, the corresponding relationship between the reputation level and the voting rate can be set, so as to determine the voting rate corresponding to the reputation value according to the reputation level to which the reputation value belongs.
  • the reputation value Based on the expression of the reputation value above, it can be determined that its value is within [-1,1].
  • four reputation levels of the reputation value can be determined according to the value of the reputation value, such as excellent, good, medium, Difference. Exemplarily, if the reputation value is at [-1,0], it can be determined that the reputation level of the reputation value is poor (or unqualified); if the reputation value is at (0,0.3], it can be determined that the reputation level of the reputation value is Medium; if the reputation value is in (0,0.6], it can be determined that the reputation level of the reputation value is good; if the reputation value is in (0.6,1], it can be determined that the reputation level of the reputation value is excellent. It can be understood that the aforementioned settings The number of reputation levels and the setting conditions of each reputation level are examples, and are not intended to limit the protection scope of the present disclosure.
  • the voting rate corresponding to the poor reputation level can be 100%. In other words, if a backbone node has been connected to the first blockchain system and then exited, its reputation level is poor. If it requests to access the first blockchain system again, Successful access requires the consent of all voting nodes.
  • the voting rate corresponding to the reputation level can be 60%. In other words, if a backbone node has been connected to the first blockchain system and then exited, its reputation level is medium. If it applies to access the first blockchain system again, Successful access must be obtained with the consent of 60% of the voting nodes.
  • the voting rate of a good credit rating can be 50%; the voting rate of an excellent credit rating can be 50%.
  • the voting time for the access request (for example, the aforementioned preset time period) can be increased, for example, can be doubled.
  • voting rates and additional conditions corresponding to each reputation level are examples and are not intended to limit the scope of protection of the present disclosure.
  • the reputation value of the backbone node can be obtained through the following calculation formula:
  • Reputation value bytes_sent/(bytes_down+1).
  • the reputation value can also be called the sharing rate, where bytes_sent can represent the transaction volume submitted by the backbone node to the first blockchain system (ie, the main chain system); bytes_down can represent the transaction volume downloaded by the backbone node from the first blockchain system Trading volume.
  • bytes_sent can represent the transaction volume submitted by the backbone node to the first blockchain system (ie, the main chain system); bytes_down can represent the transaction volume downloaded by the backbone node from the first blockchain system Trading volume.
  • the voting rate P of the second access can be obtained by the following expression:
  • b represents reputation value. It can be seen that when b decreases, the voting rate P of the secondary access will also decrease.
  • step S207 the backbone node has not accessed the first blockchain system
  • S204-S209 described below can be directly executed, wherein, when both judgment results in step S207 are yes, the first node It may be determined that the access request is approved, and S212-S213 described below is further performed.
  • S203 may be executed by the first blockchain system in the blockchain system.
  • S204 determine the voting nodes in the first blockchain system, and request the voting nodes to vote for the access request, wherein the first node is a super node, and the voting nodes include the first node in the first blockchain system except the first node of super nodes.
  • S204 may be executed by the first blockchain system in the blockchain system.
  • At least some (that is, some or all) super nodes in the first blockchain system except the first node can be determined as voting nodes.
  • the first node receives the access request Afterwards, the access request can be forwarded to the determined voting node, so that the voting node can feed back the voting result for the access request.
  • the voting result fed back by the voting node may be directly fed back to the first node.
  • the first node determines whether to approve the access request according to the obtained voting result, which may be specifically implemented through steps S203-S210.
  • S205 may be executed by the first blockchain system in the blockchain system.
  • the first node determines the first quantity, the second quantity and the third quantity according to the obtained voting result, and determines the sum of the first quantity, the second quantity and the third quantity, the first quantity is the agreed backbone in the voting result
  • the number of votes for node access the second number is the number of votes against the access of backbone nodes in the voting result
  • the third number is the number of votes that have not been fed back within the preset time period in the voting result (that is, the number of voting nodes that abstain from voting ).
  • the sum of the first quantity, the second quantity and the third quantity represents the quantity of all nodes participating in voting.
  • S206 may be executed by the first blockchain system in the blockchain system.
  • S207 Determine whether the first quantity is greater than the sum of the second quantity and the third quantity, and whether the sum of the first quantity and the second quantity is greater than the third quantity.
  • S207 may be executed by the first blockchain system in the blockchain system.
  • the first node re-requests the voting node to vote for the access request.
  • the number of abstaining voting nodes is too large, for example, when the number of abstaining voting nodes is greater than the number of non-abstaining voting nodes, that is, the number of abstaining voting nodes is greater than the number of voting results that express agreement and the number of voting results that express opposition When the sum is reached, a new round of voting can be initiated.
  • S208 may be executed by the first blockchain system in the blockchain system.
  • the sum of the first quantity and the second quantity is greater than the third quantity, which means that the number of voting nodes abstaining from voting is small, in other words, the number of voting nodes that have not abstained meets the requirement.
  • the time condition for the backbone node that sends the access request (that is, the current applicant) to initiate the access request next time can also be set.
  • the interval period can be set. After the interval period, the current applicant Only resent access requests can be processed.
  • S209 may be executed by the first blockchain system in the blockchain system.
  • S210 may be executed by the first blockchain system in the blockchain system.
  • the first node determines to approve the access request.
  • the current applicant when the number of voting nodes that have not abstained from voting meets the requirements, and the number of voting results that agree also meets the requirements, if the current applicant is the backbone node applying for access for the first time, it can directly confirm and approve its access request, thereby implementing Subsequent S212 and S213. If the current applicant is a backbone node that is not applying for access for the first time (for example, twice, three times or more), it can be further judged whether the voting result of the current applicant's access request satisfies the requirements of the current applicant's reputation value. If the corresponding voting rate is met, it is determined to approve the access request of the current applicant.
  • S211 may be executed by the first blockchain system in the blockchain system.
  • the first node determines the second node from the super nodes of the first blockchain system, and sends an anchor message to the second node.
  • the anchor message is used to indicate that the second node is anchored with the backbone node.
  • S212 may be executed by the first blockchain system in the blockchain system.
  • the second node anchors with the backbone node based on the anchor message, so that the backbone node can access the first blockchain system, the second blockchain system becomes the slave chain system of the first blockchain system, and the first block chain system The block chain system becomes the main chain system of the second block chain system.
  • S213 may be executed by the first blockchain system in the blockchain system.
  • the backbone node can be dynamically connected to the first blockchain system safely and effectively, so that the second blockchain system becomes a slave chain system of the first blockchain system, and The first blockchain system becomes the main chain system of the second blockchain system.
  • the backbone node can be dynamically connected to the first blockchain system safely and effectively, so that the second blockchain system becomes a slave chain system of the first blockchain system, and The first blockchain system becomes the main chain system of the second blockchain system.
  • obstacles can be added to some malicious backbone nodes that repeatedly try to access, thereby further improving the security of the backbone node access process.
  • the target super node when any backbone node successfully accesses the first blockchain system and anchors with the target super node, the target super node can generate a digital identity for the backbone node, and the digital identity can be Including the following information of the following backbone nodes:
  • Node_ID node ID, this node ID is globally unique
  • Node_type node type
  • Node_owner node owner
  • IP the IP address of the node
  • Publickey node public key
  • Key_type public key type
  • ChainID The ID of the slave chain system connected to the backbone node. It is understandable that there may be one or more ChainIDs here, and this ID can be used to provide chain discovery and chain addressing functions;
  • Node reputation value Node reputation value can be modified by super nodes, and its specific calculation method can refer to the various calculation methods given above.
  • the reputation value of the backbone node can be obtained through the following calculation formula:
  • Reputation value number of slave chain systems accessed by backbone nodes/number of global slave chain systems.
  • the supernode can receive the report information of the backbone node from the external smart contract, and each time it receives a piece of report information for the backbone node, it can update the reputation value of the backbone node according to the preset method.
  • the preset method here may be, for example, reducing the reputation value of the backbone node by a preset ratio, or subtracting the preset value from the current reputation value of the backbone node, which is not limited in this embodiment.
  • the backbone node when a new secondary chain system is connected to the backbone node, the backbone node can trigger the smart contract to update the ChainID in the digital identity of the node, specifically, in the digital identity of the backbone node Add the ChainID of the new slave chain system for other slave chain systems to discover the new slave chain system.
  • the action of adding ChainID can automatically trigger the update of the reputation value of the backbone node.
  • Reputation value number of slave chain systems accessed by backbone nodes/number of global slave chain systems-number of times backbone nodes do evil/evil times in the entire network.
  • the super node has the right to remove the slave chain system.
  • the ChainID of the slave chain system will be deleted from the digital identity of the backbone node connected to the slave chain system.
  • the first smart contract may also be deployed in the first blockchain system.
  • the backbone node may send a report verification request to the first blockchain system a first time in advance, and the report verification request carries the node ID of the backbone node.
  • the report verification request carries the node ID of the backbone node.
  • any super node of the first blockchain system receives the report verification request, it determines the backbone node corresponding to the node ID in the report verification request as the target backbone node;
  • the smart contract periodically obtains the report information for the target backbone node from the preset authoritative server, and counts the number of reported information obtained. When the number reaches the preset threshold, the node ID of the target backbone node is added to the forbidden list .
  • a super node in the first blockchain system when a super node in the first blockchain system receives an access request, it can first query whether the node ID carried in the access request exists in the forbidden list through the first smart contract, and if not, request the second Voting nodes in a blockchain system vote for the access request.
  • the first blockchain system can be deployed with a second smart contract, and the second smart contract is used for each backbone node connected to the first blockchain system to obtain the report information within the second period of time, and count the number of reported information obtained, and when the number reaches the preset threshold, the backbone node will be withdrawn from the first blockchain system.
  • first duration and the second duration in this embodiment may be the same or different.
  • the first smart contract and the second smart contract may be the same smart contract or different smart contracts, which is not limited in this embodiment.
  • the first node may be a supervisory node in the first blockchain system.
  • the blockchain system 200 includes a first blockchain system 210, a second blockchain system 220A, and a second blockchain system 220B.
  • the first blockchain system 210 includes supervisory nodes 211, super nodes 212, super nodes 213, and super nodes 214
  • the second blockchain system 220A includes backbone nodes 220A-1, service nodes 220A-2, service nodes 220A- 3.
  • the second blockchain system 220B includes backbone node 220B-1, service node 220B-2 and service node 220B-3.
  • the first node 211 may forward it to a super node as a voting node for subsequent voting.
  • the flow of the backbone node access method provided by another embodiment of the present disclosure will be described below with reference to the scenario shown in FIG. 4 .
  • the method may include the steps shown in FIG. 5 .
  • the supervisory node of the first blockchain system receives the access request of the backbone node in the second blockchain system, for example, the supervisory node receives the access request of any backbone node in the second blockchain system, the backbone Nodes are blockchain nodes.
  • S301 may be executed by the first blockchain system in the blockchain system.
  • the supervisory node determines a super node in the first blockchain system as a verification node, and at least some of the super nodes in the first blockchain system except the verification node are voting nodes.
  • the supervision node may serve as the first node.
  • the backbone node is located in a second blockchain system, the first blockchain system includes a supervisory node and at least one super node, and the voting node can be a super node in the first blockchain system.
  • a super node in the first blockchain system may be determined as a verification node, and all other super nodes in the first blockchain system except the verification node may be determined as voting nodes.
  • a supernode in the first blockchain system can be determined as a verification node, and a preset number of supernodes among the remaining supernodes in the first blockchain system except the verification node can be determined as voting node. This embodiment does not limit this.
  • S302 may be executed by the first blockchain system in the blockchain system.
  • the first blockchain system may perform subsequent anchoring processing in response to the access request.
  • the anchoring process here can be understood as judging whether the backbone node that sends the access request (that is, the current applicant) meets the access conditions based on the access request, and anchoring the current applicant after determining that the current applicant meets the access conditions .
  • the anchoring process here may involve operations performed by multiple blockchain nodes (such as supervisory nodes, voting nodes, etc.), and specifically can be implemented by smart contracts deployed on the multiple blockchain nodes.
  • the smart contract is used to anchor the backbone node.
  • the smart contract can be activated by the supervisory node, and then the smart contract can be used to anchor and connect the backbone node to the global network.
  • the smart contract stipulates the access conditions of the backbone nodes and provides the ability to interact with the outside world to judge the validity of the information submitted by the backbone nodes. After passing the verification, the voting mechanism will be triggered to initiate voting to other nodes, collect voting results, and Feedback the voting results to the supervisory nodes.
  • any supernode in the first blockchain system publishes the smart contract for deploying the backbone node on the first blockchain system, and after the supervision node deploys the smart contract, activate the smart contract . Therefore, in this step, after receiving the access request of the backbone node, the supervisory node of the first blockchain system can implement S302 and S303 based on the smart contract, that is, determine the voting node and request the voting node to vote for the access request.
  • the access request includes first information
  • the first information may include data values of one or more of the following data items: the applied node type, the node authority, the applied enterprise type (such as the government, Or, enterprise), organization code, applicant identity, contact information, public key, parameters, service address.
  • the first information is related information of the backbone node that sends the access request, that is, related information of the backbone node applying for access to the first blockchain system.
  • the access request may also add the identification information of the super node that the backbone node (current applicant) intends to anchor.
  • the voting node can feed back the voting result, which can be specifically realized through the following steps S304-S306.
  • S303 may be executed by the first blockchain system in the blockchain system.
  • the voting node generates a first voting result, signs the first voting result with the private key of the voting node, and sends the first voting result and the obtained signature information to the verification node.
  • S304 may be executed by the first blockchain system in the blockchain system.
  • the verification node verifies the signature information through the public key of the voting result. If the verification is passed, the first voting result is counted, for example, the number of votes for each voting option in the first voting result is counted, that is, the backbone node in the first voting result is counted. The number of votes for the access request of the backbone node, the number of votes for the access request of the backbone node, and the number of votes that have not been fed back within the preset time period.
  • the voting result generated by any voting node for the access request may be regarded as the first voting result.
  • the voting node can call the smart contract to verify whether the access request meets the preset access conditions, and then generate the first voting result according to the verification result.
  • Each blockchain node has an asymmetric key pair, including a private key and a public key corresponding to each other.
  • the voting node also has a private key and a public key.
  • the voting node can sign the first voting result with the private key of the voting node to obtain a signature information. It can be seen that there is a corresponding relationship between the signature information here and the voting node (super node).
  • the voting node can send the signature information and the first voting result to the verification node.
  • the verification node can verify the signature information through the public key of the voting node, and if the verification is passed, the first voting result corresponding to the signature information will be counted. If the verification fails, the first voting result corresponding to the signature information is not counted, or the first voting result corresponding to the signature information is counted as invalid voting.
  • S305 may be executed by the first blockchain system in the blockchain system.
  • the verification node feeds back a second voting result to the supervisory node based on the statistical first voting result, where the second voting result is to approve the access request or not to approve the access request.
  • a verification node is a super node, specifically a super node of a non-voting node.
  • the first voting result counted by the verification node is the first voting result that the signature information passes the verification. It can be understood that the number of first voting results counted by the verification nodes is less than or equal to the number of voting nodes.
  • the second voting result may be a voting result finally determined by the verification node based on the counted first voting result, which is used to indicate whether to approve the access request of the backbone node.
  • the second voting result fed back by the verification node to the supervision node is to approve the access request; otherwise, The second voting result fed back by the verification node to the supervision node is not to approve the access request.
  • it corresponds to a preset threshold of 100%.
  • S306 may be executed by the first blockchain system in the blockchain system.
  • S306 may be implemented through the sub-steps shown in FIG. 6 .
  • the backbone node here refers to the current applicant, that is, the backbone node that sends the access request.
  • S306-1 may be executed by the first blockchain system in the blockchain system.
  • S306-2 may be executed by the first blockchain system in the blockchain system.
  • the second voting result fed back by the verification node to the supervision node is that the access request is not approved.
  • the aforementioned preset threshold can be flexibly set as required. For example, it can be any value between 60%-70%, such as 65%. This embodiment does not limit this.
  • S306-3 may be executed by the first blockchain system in the blockchain system.
  • the verification node may also send a verified signature set, that is, a set of verified signature information, to the supervisory node.
  • the supervisory node determines a super node corresponding to each signature information in the signature set, and determines a super node from the determined super nodes as the second node.
  • each signature information has a corresponding relationship with voting nodes, and voting nodes are all super nodes. Therefore, the supervisory node can first determine the super node corresponding to each signature information in the signature set.
  • the supervision node can determine the anchored super node according to the signature set. For example, select a super node corresponding to a signature from the signature set as the anchor super node, that is, the second node. Alternatively, a super node whose position is closest to the backbone node (current applicant) and whose signature information is in the signature set may be selected as the second node. Alternatively, a supernode corresponding to a signature is selected from the signature set according to the principle of random election as the second node.
  • the backbone node may designate the super node that it wants to anchor.
  • the access request sent by it includes the target identity information of the super node that the backbone node wants to anchor.
  • the super node indicated by the target identity information in the input request is used as the second node.
  • the second node can be determined in the above manner, or the super node closest to the backbone node can be directly selected from the super nodes included in the first blockchain system as the second node ; Or, according to the principle of random election, a super node is determined from the first blockchain system as the second node.
  • S307 may be executed by the first blockchain system in the blockchain system.
  • the supervisory node sends an anchor message to the second node, where the anchor message is used to indicate that the second node is anchored with the backbone node.
  • S308 may be executed by the first blockchain system in the blockchain system.
  • the second node anchors with the backbone node based on the anchor message, so that the backbone node accesses the first blockchain system and the second blockchain system becomes the slave chain system of the first blockchain system, and the first block The chain system becomes the main chain system of the second blockchain system.
  • the anchoring between any super node and the backbone node in the embodiment of the present disclosure may be that the super node synchronizes the ledger in the first blockchain system to the backbone node, so that the backbone node can access the first blockchain system.
  • the second blockchain system where the backbone node is located can become the slave chain system of the first blockchain system, and the first blockchain system can become the main chain system of the second blockchain system.
  • the ledger synchronization process can be accelerated and fast anchoring can be achieved.
  • S309 may be executed by the first blockchain system in the blockchain system.
  • verification can also be performed, for example:
  • the second node generates second information according to the node information of the backbone node, and sends the second information to the supervision node.
  • the data items of the second information are the same as those of the first information.
  • the first information includes the applied node type, node authority, applied enterprise type, organization code, applicant identity, and contact information.
  • the data values in the first information are all data values that need to be added.
  • the second information also includes the applied node type, node authority, applied enterprise type, organization code, applicant identity, and contact information.
  • the data value of the second information at this time is the actual real data value.
  • the supervisory node compares whether the data values of the same data items in the second information and the first information are the same.
  • the backbone node actually connected to the first blockchain system has the same node information as the backbone node to be connected to the first blockchain system.
  • the nodes are the same. Therefore, if the backbone node is connected correctly, the supervisory node can generate a key pair, send the key pair to the backbone node, and broadcast the second information and the node information of the backbone node to the entire network, and transfer the supervision right of the backbone node to the second node.
  • the node information of the backbone node of the second blockchain system may be: IP address and/or public key information.
  • the above key pair is not sent to supernodes. This key pair is used for encryption of data transmission from the chain system. Because the backbone node is a node in the slave chain system, the key pair is sent directly to the backbone node, and the super node does not know the key pair, which will make the main chain system unable to see the data content in the slave chain system, ensuring that the slave chain system data security.
  • the supervisory node can also generate a symmetric public key and provide it to the backbone nodes and specific super nodes.
  • the backbone node can use the public key in the symmetric public key pair to encrypt and transmit the non-public data, and submit the encrypted non-public data to the first blockchain system.
  • only the above-mentioned specific super nodes can view the non-public data, while other backbone nodes or other super nodes cannot view it.
  • the specific super node will discard the specific public key of the backbone node.
  • the group symmetric key can be generated by the super nodes in the first blockchain system, and the encrypted transmission of data can be performed between all super nodes through the group symmetric key.
  • the supernode 213 can encrypt the first data that needs to be transmitted to other supernodes (such as 212 and 214) through the group symmetric cipher to obtain the second data;
  • a blockchain system 210 publishes the second data, and the supernodes 212 and 214 that receive the second data can decrypt the second data through the group symmetric key to obtain the first data.
  • other blockchain nodes in the first blockchain system cannot decrypt the second data.
  • the group symmetric key is updated.
  • the anchored super node can derive an asymmetric key for the backbone node based on the current group symmetric key. key.
  • the backbone node can encrypt the data to be transmitted through the asymmetric key derived by the anchored super node.
  • Any super node in the first blockchain system can decrypt the encrypted data sent by the backbone node based on the current group symmetric key when receiving the data encrypted by the asymmetric key. It can be understood that when a super node uses the group symmetric key before updating to decrypt the data encrypted by the updated asymmetric key, the decryption cannot be successful, which can further ensure the security of data transmission and reduce the risk of leakage.
  • FIG. 7 uses FIG. 7 as an example to describe again the backbone node access method provided by an embodiment of the present disclosure.
  • Smart contracts are configured on the supervisory nodes of the main chain system.
  • the smart contract is issued by any super node on the main chain system and deployed on the supervision node.
  • the function of the smart contract is to deploy the backbone node.
  • the supervision node After receiving the access request, the supervision node sends the access request to the voting node in order to vote on the main chain system.
  • the voting process is implemented by voting nodes and verification nodes.
  • verification nodes are super nodes
  • voting nodes are all super nodes on the main chain system except verification nodes.
  • the voting nodes are some of the super nodes on the main chain system except the verification nodes.
  • Voting nodes can be determined through the corresponding smart contract deployed.
  • the voting node votes on the request to become a backbone node, and adds the signature of the voting node.
  • the voting node reviews the information in the access request of the backbone node, according to the pre-defined review rules in the smart contract, reviews whether the rules are met, and votes.
  • the voting node signs the voting result with the private key of the node, and the verification node uses the public key of the voting node to verify whether the signature is correct.
  • the verification node counts the number of signatures that the voting result agrees with, and if the ratio of this number to the total number of feedback voting results is greater than the preset threshold (such as 60%), then feedback confirmation information to the supervisory node.
  • the preset threshold such as 60%
  • the confirmation information includes but is not limited to: voting results, signature collection, URL, authority, information that can be supervised, and signature verification information.
  • the supervisory node determines whether the node can become a backbone node based on the confirmation information fed back by the verification node. If it is confirmed, the supervisory node will confirm the signature and send the information confirmed by the signature to the anchored super node (the anchored super node Nodes can apply for anchored super nodes for backbone nodes, or randomly selected super nodes).
  • the supervisory node judges whether the backbone node can be generated based on the predefined backbone node construction criteria in the smart contract and the collected signature information.
  • the information confirmed by the signature can be the certificate approved to become the backbone node
  • the super node After receiving the confirmation information sent by the supervision node, the super node will build the backbone node.
  • the provision of backbone node construction needs to meet the predefined technical performance requirements, and after passing the anchor super node certification, the certificate will be issued.
  • the backbone node After the backbone node is established successfully, the backbone node sends a completed message to the super node.
  • the backbone node will send a performance qualification certificate issued by the review agency to the anchored super node.
  • the super node sends the completed information to the supervisory node, and the supervisory node checks the information, and if the verification results are consistent, a key pair is generated.
  • the verification process is to match the relevant information of the backbone node after completion with the relevant information of the backbone node at the time of application for establishment.
  • the relevant information of the backbone node at the time of application for establishment describes how many base stations are physically established, and the completed information also describes how many base stations are physically established. How many base stations are established, if the number of two base stations is the same, it is considered a match, and if they are different, it is considered a mismatch.
  • the supervisory node sends the key pair to the backbone node, and broadcasts the basic information, IP address, and public key information of the backbone node to the entire network and records them in the ledger.
  • the key pair is not sent to the supernode. This key pair is used for encryption of data transmission from the chain system. Because the backbone node is a node on the slave chain system, the key pair is sent directly to the backbone node, and the super node does not know the key pair, which will make the main chain system unable to see the data content in the slave chain system, ensuring that the slave chain Data Security.
  • the information on the chain can include the following information of the backbone node: node type, identity information of the node owner, node ID, account address, IP address, status field, public key, signature, reputation value, reputation value smart contract ID, voting signature, etc. All the foregoing information may be string-type information.
  • the supervision node transfers the anchoring and supervision of the backbone node to the super node.
  • the supervisory nodes of the main chain system configure smart contracts.
  • the backbone node sends a request to the supervisory node.
  • the supervisory node After receiving the request, the supervisory node sends the request to the voting node to vote on the main chain system.
  • the voting process is implemented by voting nodes and verification nodes.
  • the verification node is a super node (such as super node 3), and the voting nodes are all nodes on the main chain system (such as voting node 1, voting node 2, and voting node 4).
  • Voting node 1, voting node 2, and voting node 4 vote for the request to become a backbone node, and add the signature of the voting node.
  • the super node 3 counts the voting result as the number of signatures agreed, and if the ratio of this number to the total number of feedback voting results is greater than the preset threshold (such as 60%), it will feed back confirmation information to the supervisory node.
  • the preset threshold such as 60%
  • the supervisory node determines whether the node can become a backbone node based on the confirmation information fed back by the verification node. If it is confirmed, the supervisory node confirms the signature and sends the signature-confirmed information to the super node 3.
  • the super node 3 builds the backbone node after receiving the confirmation message sent by the supervision node.
  • the backbone node After the backbone node is established successfully, the backbone node sends the completion information to the super node 3
  • the super node 3 sends the completed information to the supervisory node, and the supervisory node checks the information, and if the verification results are consistent, a key pair is generated.
  • the supervisory node sends the key pair to the backbone node.
  • the supervision node transfers the anchoring and supervision of the backbone nodes to the super node 3 to form a blockchain system with the structure shown in Figure 9.
  • the supervision node of the first blockchain system receives the access request of the backbone node, determines the voting node, and requests the voting node to vote for the access request, wherein the backbone node is located in the second blockchain system, the first blockchain system includes a supervisory node and at least one supernode, and the voting node is a supernode; the voting node feeds back the voting result to the supervisory node; after the supervisory node determines the approval request according to the voting result, it determines the anchored supernode, Send a message anchored with the backbone node to the anchored super node; the anchored super node anchors with the backbone node based on the message, so that the second blockchain system where the backbone node is located becomes the slave chain system of the first blockchain system , and the first blockchain system becomes the main chain system of the second blockchain system.
  • This method not only ensures the effective and safe generation of the backbone node, but also ensures the security of the slave chain system where the slave chain system where the
  • FIG. 10 exemplarily shows a schematic flowchart of a backbone node access method provided by another embodiment of the present disclosure. The steps included in the method are introduced below.
  • the supervisory node of the first blockchain system receives an access request from any backbone node in the second blockchain system, and sets at least one super node in the first blockchain system as a voting node, for example, setting the All super nodes in a block chain system are determined as voting nodes, the first block chain system includes a supervision node and at least one super node, and the backbone nodes are block chain nodes.
  • the supervision node may serve as the first node in the foregoing embodiments.
  • Each super node in the first blockchain system has a corresponding production time period, and is used for block packaging within the corresponding production time period.
  • the packaged block can be broadcast to all other super nodes in the first blockchain system, and all other super nodes will confirm the block.
  • the confirmation is passed, the block can be considered irreversible and added to the blockchain corresponding to the first blockchain system.
  • At least one super node is elected from the backup super nodes.
  • At least one super node can perform block packaging (that is, generate blocks) in multiple consecutive time periods according to a preset sequence. Taking 3 supernodes as an example, the 3 supernodes can carry out block packaging in three consecutive time periods according to the preset order. The block packaging is carried out in the period t2, and the super node 3 carries out the block packaging in the time period t3.
  • S401 may be executed by the first blockchain system in the blockchain system.
  • the supervisory node queries the first super node in the first blockchain system, and forwards the access request to the first super node, where the first super node is used in the first blockchain system for the current production period A super node for block packaging.
  • S402 may be executed by the first blockchain system in the blockchain system.
  • the first super node votes for the access request, and obtains a first voting result.
  • S403 may be executed by the first blockchain system in the blockchain system.
  • the first supernode adds the access request to the block body of the latest packaged target block, and broadcasts the target block with the access request added to the first block chain system A second super node, where the second super node is a super node in the first blockchain system other than the first super node.
  • the first super node may also be called a production node.
  • super node 2 may be the first super node, while other super nodes are all second super nodes.
  • super node 1 may be the first super node, while other super nodes are all second super nodes.
  • super node 3 may be the first super node, while the other super nodes are all the second super nodes.
  • the first super node currently being used to package the block can be determined from at least one super node, and then access The request is forwarded to the first super node, and the first super node carries the access request in the packaged target block, and broadcasts to other super nodes (ie, the second super node).
  • the access request can be added as a transaction data to the block body of the target block.
  • the access request can be used as the first transaction data in the block body of the target block. It can be understood that when an access request is inserted into the target block, the field for setting the amount of transaction data in the target block may not be modified, so that when each second supernode receives the target block, it identifies and extracts After the access request is issued, the access request (the first transaction data) in the target block can be deleted, and then the target block can be confirmed, so as to avoid the confirmation of the target block due to the insertion of the access request process affects.
  • the first super node and at least one second super node can obtain the access request, for example, each second super node can obtain the access request and vote on it.
  • the voting operation of the first supernode and the operation of inserting the access request to the target block by the first supernode can be executed in parallel.
  • the access request may carry a preset tag, and the preset tag is associated with a smart contract, and the smart contract is set with a verification mechanism for backbone node access, for example, the prerequisites that backbone node access needs to meet Set access conditions, such as the conditions that the technical performance of the backbone nodes needs to meet.
  • the first super node may verify whether the backbone node satisfies the preset access condition according to the information in the access request, and then obtain the first voting result according to the verification result. If the backbone node satisfies the preset access condition, the first voting result is passed, otherwise it is not passed.
  • At least one second supernode can verify whether the backbone node satisfies the preset access condition according to the access request extracted from the target block, for example, each second supernode can extract The outgoing access request verifies whether the backbone node satisfies the preset access condition, and then obtains the second voting result according to the verification result. If the backbone node meets the preset access condition, the second voting result is passed, otherwise it is not passed.
  • S404 may be executed by the first blockchain system in the blockchain system.
  • At least one second super node returns the second voting result for the access request to the first super node in the confirmation result for the target block, for example, each second super node returns the second voting result for the access request The voting result is returned to the first super node in the confirmation result for the target block
  • At least one second supernode can insert the obtained second voting result into the preset position of the confirmation result for the target block, for example, each second supernode can insert the obtained second voting result into the confirmation result for the target block preset position and return to the first super node.
  • the first super node may intercept the second voting result from the preset position of the obtained information.
  • S405 may be executed by the first blockchain system in the blockchain system.
  • the first super node sends the first voting result and the second voting result to the supervision node.
  • the first super node may send the first voting result and each second voting result to the supervisory node.
  • S406 may be executed by the first blockchain system in the blockchain system.
  • the supervisory node approves the access request when 2/3 of the first voting result and each of the second voting results are passed.
  • S407 may be executed by the first blockchain system in the blockchain system.
  • the supervisory node determines the second node from the super nodes of the first blockchain system, and sends an anchor message to the second node.
  • the anchor message is used to indicate that the second node is compatible with the access request.
  • the backbone node that requests access in the network is anchored.
  • S408 may be executed by the first blockchain system in the blockchain system.
  • the second node anchors with the backbone node based on the anchor message, so that the backbone node requested in the access request accesses the first blockchain system, and the second blockchain system becomes the first blockchain system
  • S409 may be executed by the first blockchain system in the blockchain system.
  • the access verification of the backbone nodes is integrated into the blockchain confirmation process, which reduces the possibility of malicious backbone node access, in other words, increases the security of backbone node access.
  • the embodiments of the present disclosure may be provided as methods, systems, or computer program products. Accordingly, the present disclosure can take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the present disclosure may take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) having computer-usable program code embodied therein.
  • computer-usable storage media including but not limited to disk storage, CD-ROM, optical storage, etc.
  • These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing apparatus to operate in a specific manner, such that the instructions stored in the computer-readable memory produce an article of manufacture comprising instruction means, the instructions
  • the device realizes the function specified in one or more procedures of the flowchart and/or one or more blocks of the block diagram.

Abstract

一种骨干节点接入方法和区块链系统,骨干节点接入方法包括:第一区块链系统的第一节点接收第二区块链系统的骨干节点的接入请求,确定投票节点,并请求投票节点针对接入请求进行投票;投票节点反馈投票结果;第一节点根据获得的投票结果确定批准接入请求后,确定第二节点,向第二节点发送锚定消息;第二节点基于锚定消息与骨干节点锚定,以使骨干节点接入第一区块链系统,第二区块链系统成为第一区块链系统的从链系统,并且第一区块链系统成为第二区块链系统的主链系统。本公开实施例有助于骨干节点有效安全接入,还有助于提升接入后该骨干节点所在从链系统的安全性。

Description

骨干节点接入方法和区块链系统
本公开要求在2021年11月04日提交中国专利局、申请号为CN202111297094.X、发明名称为“骨干节点接入方法和区块链系统”的中国专利申请的优先权,其全部内容通过引用结合在本公开中。
技术领域
本公开涉及区块链技术,具体地,涉及一种骨干节点接入方法和区块链系统。
背景技术
区块链技术是一种多方共同维护的账本技术,由共识机制、密码算法、网络路由、合约脚本等多种技术融合组成,具有分布式可信、难篡改、多方维护等技术特点。这些技术特点使得区块链被认为是互联网普及以来最具颠覆性的技术之一,受到全球各方的高度关注。
由节点构成的多层级区块链网络,涉及到节点的动态接入和退出,为了维护网络治理的公开性及网络服务的稳定性,需要骨干节点的自动接入机制。
发明内容
本公开实施例中提供了一种骨干节点接入方法和区块链系统,以实现骨干节点动态接入。
根据本公开实施例的一个方面,提供了一种骨干节点接入方法,包括:
第一区块链系统中的第一节点接收第二区块链系统中的骨干节点的接入请求,确定所述第一区块链系统中的投票节点,并请求所述投票节点针对所述接入请求进行投票,其中,所述投票节点为超级节点,所述第一节点和所述骨干节点均为区块链节点;
所述投票节点反馈投票结果;
所述第一节点在根据所述投票结果确定批准所述接入请求后,从所述第一区块链系统的至少一个超级节点中确定第二节点,向所述第二节点发送锚定消息,所述锚定消息用于指示所述第二节点与所述骨干节点锚定;
所述第二节点基于所述锚定消息与所述骨干节点锚定,以使所述骨干节点接入所述第一区块链系统,所述第二区块链系统成为所述第一区块链系统的从链系统,且所述第一区块链系统成为所述第二区块链系统的主链系统。
根据本公开实施例的另一个方面,提供一种区块链系统,所述区块链系统包括第一区块链系统和至少一个第二区块链系统,所述第一区块链系统包括第一节点和超级节点,所述第二区块链系统包括骨干节点;
所述第一节点、所述超级节点以及所述骨干节点通过本公开任一实施例所述的方法进行交互,以使所述骨干节点接入所述第一区块链系统,所述骨干节点所在第二区块链系统成为所述第一区块链系统的从链系统,所述第一区块链系统为所述骨干节点所在第二区块链系统的主链系统。
基于本公开上述实施例提供的骨干节点接入方法和区块链系统,第一区块链系统的第一节点接收第二区块链系统中骨干节点的接入请求后,确定第一区块链系统中的投票节点,并请求投票节点针对接入请求进行投票;投票节点反馈投票结果;第一节点根据投票结果确定批准接入请求后,确定第一区块链系统中的第二节点,并向第二节点发送锚定消息,用以指示第二节点与骨干节点锚定;第二节点基于锚定消息与骨干节点锚定,以使骨干节点接入第一区块链系统,第二区块链系统成为第一区块链系统的从链系统,并且第一区块链系统成为第二区块链系统的主链系统。本公开实施例有助于骨干节点有效安全接入,还有助于提升接入后该骨干节点所在从链系统的安全性。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同描述一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图:
图1示出了本公开实施例提供的一种区块链系统的架构示意图;
图2示出了本公开实施例提供的一种骨干节点接入方法的流程示意图;
图3示出了本公开实施例提供的另一种骨干节点接入方法的流程示意图;
图4示出了本公开实施例提供的另一种区块链系统的架构示意图;
图5示出了本公开实施例提供的另一种骨干节点接入方法的流程示意图;
图6示出了图5所示步骤S306的子步骤示意图;
图7示出了本公开实施例提供的一种具体场景下的骨干节点接入方法流程图;
图8示出了本公开实施例中提供的采用骨干节点接入方法进行骨干节点接入之前的区块链系统架构示意图;
图9示出了本公开实施例中提供的采用骨干节点接入方法进行骨干节点接入之后的区块链系统架构示意图;
图10示出了本公开实施例提供的又一种骨干节点接入方法的流程示意图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
另外,公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。
本公开实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统、服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
由节点构成的多层级区块链网络,涉及到节点的动态接入和退出,为了维护网络治理的公开性及网络服务的稳定性,需要骨干节点的自动生成机制。
基于此,本公开提供一种骨干节点生成方法,使得第二区块链系统中的骨干节点,可以接入第一区块链系统,并且骨干节点所在第二区块链系统可以成为第一区块链系统的从链系统,而第一区块链系统可以成为骨干节点所在第二区块链系统的主链系统。下面对该方案的内容进行详细介绍。
请参照图1,图1示出了本公开实施例提供的一种区块链系统100的架构示意图。该区块链系统100是一个主从链结构,即“1+N”主从链架构。具体的,如图1所示,该区块链系统包括一个第一区块链系统110和至少一个第二区块链系统,第二区块链系统例如120A和120B。详细地,第一区块链系统包括1个第一节点和一个以上超级节点,例如,图1所示的第一区块链系统110包括第一节点111、超级节点112和超级节点113。每个第二区块链系统包括1个骨干节点和至少一个服务节点,例如图1所示场景中,第二区块链系统120A包括骨干节点120A-1、服务节点120A-2和服务节点120A-3,第二区块链系统120B包括骨干节点120B-1、服务节点120B-2和服务节点120B-3。
第二区块链的骨干节点可以与第一区块链系统的一个超级节点锚定,从而使骨干节点接入第一区块 链系统,而第二区块链系统成为第一区块链系统的从链系统,第一区块链系统则成为第二区块链系统的主链系统。相应地,主链系统产生的区块链可以称为主链,任一从链系统产生的区块链则可以认为是从链。
其中,不同骨干节点锚定的超级节点不同。骨干节点,用于向主链系统的监管节点同步其所在从链系统的数据。从链系统通过该骨干节点与主链系统执行跨链交互过程。不同从链系统包括的骨干节点互不相同,或者,至少两个从链系统共用一个骨干节点。任意两个从链系统的结构相同,或者,不同。
1、主链系统
主链系统,即第一区块链系统,其基础功能包括保证链群高效运行,服务功能为整个链群生态的健康发展保驾护航。如为整个链群结构提供公共服务,培育生态蓬勃发展;为各个区块链提供跨链交易平台及规范,促进数据共享、共融;为各行业提供托管服务,保证数据不可篡改和可恢复;提供可信认证,保证节点及其数据跨域可信性,拥有认证权限的节点对节点或标识提供认证服务;为各区块链提供监管服务和安全监测服务,确保整个链群结构中各节点合法合规性和运行安全性;主链对外开放应用服务,服务节点可自由进入或退出主链享受主链开放服务,促进企业能力提升。
主链系统中包括多个超级节点和1个监管节点。
1)超级节点
超级节点负责执行主链系统的共识,同时具备数据托管、跨链网关、资质审核、链群管理等功能;超级节点提供可信计算环境,基于可信计算硬件来运行预言机服务;超级节点获取外部数据,经过核验后可对外提供可信数据服务。
链群中所有节点可申请成为超级节点候选人,并拥有超级节点被选举权。
超级节点负责节点群建设,针对自由接入的服务节点数据同步权限进行管理,提升主链系统整体服务能力。
2)监管节点
监管节点负责对整个链群用户和节点数据、行为进行合法合规监管,并对违法违规行为进行处置,如关停服务、限制权限、控制流量、不可信用户标记等;同时,监管节点对超级节点和骨干节点等具有管理权限的节点进行资质审核和可信认证,确保关键节点的可信性。
本公开实施例中,主链系统具有基础功能和服务功能,其中基础功能包括但不限于:可插拔架构,高性能共识机制,高可靠智能合约,隐私保护,加密机制,自治理,同构异构链接入,激励机制。服务功能包括但不限于:数字身份,可信认证服务,多标识根区管理,标识注册解析,托管服务,公共服务,接口服务,跨链。
监管节点除了具有上述基础功能和服务功能之外,还具有但不限于如下功能:数据内容监管,节点行为监管,超级节点资质审核,骨干节点资质审核,应用违规处置,节点违规处置,超级节点认证,骨干节点认证。
超级节点除了具有上述基础功能和服务功能之外,还具有但不限于如下功能:公共数据管理,用户/节点身份认证,对外公共服务,节点群建设与管理,从链准入认证,链群管理,合约管理,可信计算环境,大数据分析,运行监测,主链共识,跨链网关,提供可信数据服务,基于可信硬件提供预言机服务。
基于主链的监管节点和超级节点,可以实现共享交互平台,监测监管服务,平等协作共治,生态建设运营。
2、从链系统
从链系统,可以是第二区块链系统,其基础功能是保证骨干节点下属从链系统高效运行,服务功能为从链系统业务正常开展、产业生态良性发展提供保障。例如:根据业务场景不同,从链支持其具体的个性化业务活动,并支持其独立执行共识。
第二区块链系统接入第一区块链系统。第二区块链系统成为第一区块链系统的从链系统的方式可以分为两种:一种是基于第一区块链系统创建同构的第二区块链系统,例如基于主链系统创建同构的从链系统;另一种是第二区块链系统根据第一区块链系统的接口规范开发接口接入第一区块链系统,例如从链系统根据主链系统的接口规范开发接口接入主链系统。
从链系统接入需要向主链系统递交申请,并通过骨干节点与主链系统对接。
从链系统可使用整个链群的公共服务或资源,也可以根据需求部署个性化应用或智能合约,例如,可以根据骨干节点的信任级别,为骨干节点开放不同的数据查询权限,使得具有不同信任级别的骨干节点从主链系统订阅不同的服务。
从链系统可以为基础从链系统,也可以为区域性的从链系统,还可以为行业从链系统等。
本公开实施例中,从链系统可以包括一个骨干节点和多个服务节点。
1)骨干节点
骨干节点可以具有锚定主链系统、从链系统共识、从链系统监管、智能合约部署等功能。
其中,监管职责是由主链系统的监管节点指派地方监管部门参与监管活动。
从链系统可以通过从链系统的骨干节点与主链系统执行跨链交互过程。
多个从链系统之间可以共用一个骨干节点,多个从链系统也可以各自包括一个骨干节点。
2)服务节点
执行具体业务活动,其权限由骨干节点统一分配管理。
除此之外,从链系统还可以包括共识节点,该共识节点仅用于进行共识。
本公开实施例中,从链系统也具有基础功能和服务功能,其中基础功能包括但不限于:可插拔架构,高性能共识机制,高可靠智能合约,隐私保护,加密机制,自治理,主链互联互通,激励机制。服务功能包括但不限于:数字身份,可信认证服务,多标识融合管理,标识注册解析,个性化定制服务,对外服务,接口服务,跨链。
骨干节点除了具有上述基础功能和服务功能之外,还具有但不限于如下功能:锚定主链系统,从链系统管理,从链系统中的节点权限管理,从链系统共识,对外提供服务,智能合约订制,可插拔组件配置,参与链群投票。
共识节点除了具有上述基础功能和服务功能之外,还具有但不限于如下功能:智能合约订制,同步从链系统数据,对外提供服务,从链共识,执行具体业务活动,参与链群投票。
服务节点除了具有上述基础功能和服务功能之外,还具有但不限于如下功能:参与投票链群,同步从链数据,智能合约订制,对外提供公共服务,使用链群公共服务,执行具体业务活动。
基于从链系统的骨干节点、共识节点和服务节点,可以实现业务自治,独立共识,服务订制,公共资源共享。
参见图2,其中示出了本公开一实施例提供的骨干节点接入方法的流程示意图,该方法可以应用于图1所示的区块链系统100中。下面对该方法包括的步骤进行阐述。
S101,第一区块链系统中的第一节点接收第二区块链系统中的骨干节点的接入请求,确定所述第一区块链系统中的投票节点,并请求所述投票节点针对所述接入请求进行投票,其中,所述投票节点是超级节点,第一节点和所述骨干节点均为区块链节点。
其中,骨干节点是当前未接入第一区块链系统110的骨干节点,其位于任一第二区块链系统中。例如图1所示,当第二区块链系统120A中的骨干节点120A-1为接入第一区块链系统110时,其可以向第一区块链系统110的第一节点111发送接入请求。第一节点111在接收到接入请求时,可以调用第一区块链系统110的投票节点名单,以确定第一区块链系统110中的投票节点。示例性地,本实施例中的投票节点均为超级节点。然后,第一节点可以向投票节点发起投票请求,以使各个投票节点分别反馈各自对接入请求的投票结果。
在本公开的一个示例中,S101可以由区块链系统中第一区块链系统执行。
S102,投票节点反馈投结果。
投票节点响应于第一节点发起的投票请求,给出针对接入请求的投票结果,该投票结果可以通过直接或间接的方式反馈给第一节点。
在本公开的一个示例中,S102可以由区块链系统中第一区块链系统执行。
S103,第一节点在根据投票结果确定批准接入请求后,从第一区块链系统的至少一个超级节点中确定第二节点,向第二节点发送锚定消息。其中,锚定消息用于指示第二节点与骨干节点锚定。
其中,第二节点是指第一区块链系统中用于与骨干节点锚定的超级节点。
一种可选的实施方式中,第一节点可以在获得投票结果后,基于投票结果确定是否批准接入请求。
另一种可选的实施方式中,第一节点可以基于在发起投票请求后预设时长内获得的投票结果,来确定是否批准接入请求。换言之,如果一个投票节点在超出预设时长之后还没有反馈投票结果,则视为其弃权。可以理解,这里的预设时长可以为视为针对接入请求的投票时间长度。
在确定批准接入请求之后,第一节点可以从第一区块链系统的至少一个超级节点中选择一个超级节点作为第二节点,并向第二节点发送锚定消息,该锚定消息可以包括第二节点的节点信息、骨干节点的节点信息以及表示锚定的指令。
在本公开的一个示例中,S103可以由区块链系统中第一区块链系统执行。
S104,第二节点基于锚定消息与骨干节点锚定,以使骨干节点接入第一区块链系统,第二区块链系统成为第一区块链系统的从链系统,且第一区块链系统成为第二区块链系统的主链系统。
实施过程中,第二节点可以基于锚定消息确定参与锚定的节点包括第二节点和骨干节点,进而将第二节点与骨干节点锚定。可以理解,这里的锚定可以是指第二节点将本地账本同步给骨干节点,一个例子中,可以是将本地账本中的创世区块和后续区块中的可公开数据同步给骨干节点。本实施例对此没有限制。
当骨干节点与第二节点锚定之后,也就是当第二节点将本地账本同步给骨干节点之后,骨干节点即成为第一区块链系统中的一个区块链节点。换言之,骨干节点成功接入第一区块链系统,此时,骨干节点所在第二区块链系统成为第一区块链系统的从链系统,第一区块链系统成为骨干节点所在第二区块链系统的主链系统。
值得说明的是,图2所示流程中第一节点和投票节点所执行的步骤均可以由智能合约实现,这里的智能合约是由第一区块链系统中的监管节点发布并激活的。
通过图2所示方法,可以保证骨干节点有效安全接入主链系统,还可以保证接入后骨干节点所在从链系统的安全性。
在本公开的一个示例中,S104可以由区块链系统中第一区块链系统执行。
请再次参照图1,本发明实施例的一种实施方式中,第一节点可以是第一区块链系统中的一个超级节点。 例如图1所示的第一节点111可以是超级节点。这样,第一节点111在接收到骨干节点的接入请求时,可以和另外的超级节点112和超级节点113一起参与针对该接入请求的投票。下面结合此场景,对本公开一实施例提供的骨干节点接入方法的流程进行阐述,该骨干节点接入方法可以包括图3所示的步骤。
S201,第一区块链系统中的第一节点接收第二区块链系统中的骨干节点的接入请求。
本实施例的一种实施方式中,第一节点111可以是第一区块链系统中的任意一个超级节点。本实施例的另一种实施方式中,考虑到第一区块链系统中的每个超级节点可以具有对应的生产时间段,每个超级节点可以在本节点对应的生产时间段内负责区块打包。因此,第一节点111可以是第一区块链系统中在当前生产时间段内负责区块打包的超级节点。
可选地,接入请求例如可以包括节点类型(Node_type)、节点拥有者(Node_owner)、节点ID(Node_ID)、账户地址(Address)、IP地址、公钥、签名等字段。前述字段的值可以是string类型。其中,节点类型可以是发送接入请求的骨干节点的类型,节点拥有者可以是发送接入请求的骨干节点的拥有者的身份信息,这里的拥有者例如可以是特定企业,对应地,节点拥有者对应的值可以是该特定企业的企业代码或组织机构代码。节点ID则可以是发送接入请求的骨干节点的ID,账户地址可以是该骨干节点的区块链账户地址。
实施过程中,关于第一节点接收接入请求的具体实现,可以参照上文对S101的描述,在此不再赘述。
在本公开的一个示例中,S201可以由区块链系统中第一区块链系统执行。
S202,确定发出接入请求点的骨干节点是否接入过第一区块链系统。
本实施例中,可以针对首次接入的骨干节点和非首次接入的骨干节点设置不同的接入条件。这里的非首次接入的骨干节点,是指之前成功接入第一区块链系统后又退出的骨干节点。
示例性地,第一区块链系统中可以维护有第一骨干节点列表和第二骨干节点列表,当一个骨干节点(例如骨干节点120A-1)成功接入后,可以将该骨干节点120A-1的节点信息添加到第一骨干节点列表中。当一个骨干节点(例如骨干节点120A-1)退出第一区块链系统时,从第一骨干节点列表中查找骨干节点120A-1的节点信息,如果查找到,从第一骨干节点列表中删除骨干节点120A-1的节点信息,并将骨干节点120A-1的节点信息添加到第二骨干节点列表中。这里的节点信息可以包括节点的身份信息,例如IP地址和/或公钥。
可以理解,为了减少第二骨干节点列表的数据量,可以定期清理第二骨干节点列表中的数据,比如,每间隔第一周期对第二骨干节点列表中添加时间满足条件的节点信息进行清理,这里的条件例如可以是添加时间与当前时间之间的间隔大于第二周期。其中,第二周期大于第一周期。举例来说,第一周期可以是一个周,第二周期可以是一个月,也就是每隔一个周对第二骨干节点列表内在一个月之前添加的节点信息进行清理。
在S202中,第一节点可以访问第二骨干节点列表,以确定当前接收的接入请求的发送节点的节点信息是否存在于该第二骨干节点列表中,若是,则确定该发送节点(即当前待接入的骨干节点)接入过第一区块链系统。若否,则进一步查找第一骨干节点列表,如果第一骨干节点列表中也不存在该发送节点的节点信息,则确定该发送节点没有接入过第一区块链系统。
在本公开的一个示例中,S202可以由区块链系统中第一区块链系统执行。
S203,若发送接入请求的骨干节点接入过第一区块链系统,则第一节点从骨干节点的历史记录中获取发送接入请求的骨干节点的信誉值,并获取信誉值对应的投票率。
本实施例中,对于接入过第一区块链系统的骨干节点,骨干节点的节点信息还可以包括骨干节点信誉值。换言之,接入过第一区块链系统后又退出的骨干节点,其信誉值可以作为节点信息的一部分存储在第二骨干节点列表中。
本实施例中,一个骨干节点的信誉值可以有不同的计算方式。
一种实施方式中,一个骨干节点的信誉值可以基于该骨干节点的活跃率a、被举报率v以及超时响应率r计算得到。示例性地,可以通过对骨干节点的活跃率a、被举报率v以及超时响应率r加权求和得到,其中,活跃率a的权重例如为1,被举报率v和超时响应率r的权重均为负数,且被举报率v和超时响应率r的权重之和为-1,比如被举报率v的权重为-0.4,超时响应率r的权重为-0.6。在此情况下,信誉值的计算式可以表示为:
信誉值=a-0.6v-0.4r。
其中,a表示活跃率,v表示被举报率,r表示超时响应率。
可选地,a=提交交易次数/超级节点共识总次数,提交交易次数可以是骨干节点在第一区块链系统中提交的交易次数。在第一区块链系统中,可能会发起多轮共识,由作为投票节点的超级节点进行投票以确定是否达成共识。对应地,超级节点共识总次数可以是第一区块链系统中的超级节点所进行的共识的总轮数。
可选地,v=被举报次数/总举报次数,其中,被举报次数可以是骨干节点被举报的次数,总举报次数可以是第一区块链系统中所有节点的被举报次数之和。可以理解,第一区块链系统中可以部署有用于记录和处理举报信息的智能合约。
可选地,r=超时响应次数/总超时响应次数,其中,超市响应次数是指骨干节点发生的超时响应次数, 总超时响应次数则可以是第一区块链系统中所有区块链节点的超时响应次数之和。
可选地,第一区块链系统中还可以设置有信誉值和投票率的对应关系,例如可以保存在账本中,又如可以保存在监管节点上。其中,信誉值和投票率的对应关系可以根据需要进行设置,例如,可以设置信誉等级和投票率的对应关系,从而按照信誉值所属信誉等级确定该信誉值对应的投票率。
基于上述的信誉值的表达式可以确定其取值处于[-1,1]内,一个例子中,可以按照信誉值的取值确定出信誉值的4个信誉等级,例如优、良、中、差。示例性地,如果信誉值处于[-1,0],可以确定该信誉值的信誉等级为差(或不合格);如果信誉值处于(0,0.3],可以确定该信誉值的信誉等级为中;如果信誉值处于(0,0.6],可以确定该信誉值的信誉等级为良;如果信誉值处于(0.6,1],可以确定该信誉值的信誉等级为优。可以理解,前述设置的信誉等级的数量及每个信誉等级的设置条件,均为示例,并非用于限制本公开的保护范围。
信誉等级差对应的投票率可以是100%,换言之,如果一个接入过第一区块链系统又退出的骨干节点,其信誉等级为差,若其再次请求接入第一区块链系统,需获得所有投票节点的同意方能成功接入。
信誉等级中对应的投票率可以是60%,换言之,如果一个接入过第一区块链系统又退出的骨干节点,其信誉等级为中,若其再次申请接入第一区块链系统,需获得60%的投票节点的同意方能成功接入。此外,信誉等级为良的投票率可以是50%;信誉等级为优的投票率可以是50%,与此同时信誉等级为优的骨干节点,其再次申请接入第一区块链系统时,其接入请求的投票时间(例如,上述的预设时长)可以增加,例如可以延长一倍。
可以理解,上述的与各个信誉等级对应的投票率及附加条件,均为举例说明,并非用于限制本公开的保护范围。
另一种实施方式中,骨干节点的信誉值可以通过如下计算式获得:
信誉值=bytes_sent/(bytes_down+1)。
其中,信誉值也可以称为共享率,其中,bytes_sent可以表示骨干节点向第一区块链系统(即主链系统)提交的交易量;bytes_down可以表示骨干节点从第一区块链系统下载的交易量。当骨干节点只接受数据而不提交交易时,其信誉值会直线下降。
在此情况下,接入过第一区块链系统又退出后,其二次接入的投票率P可以通过如下表达式获得:
P=1-1/(1+e 6-3b)
其中,b表示信誉值。可以看出,当b降低时,二次接入的投票率P也会降低。
可选地,若骨干节点没有接入过所述第一区块链系统,则可以直接执行下文描述的S204-S209,其中,当步骤S207中的两个判断结果均为是时,第一节点可以确定批准所述接入请求,并进一步执行下文描述的S212-S213。
在本公开的一个示例中,S203可以由区块链系统中第一区块链系统执行。
S204,确定第一区块链系统中的投票节点,并请求投票节点针对接入请求进行投票,其中,第一节点为超级节点,投票节点包括第一区块链系统中除第一节点之外的超级节点。
在本公开的一个示例中,S204可以由区块链系统中第一区块链系统执行。
S205,投票节点反馈投票结果。
实施过程中,可以将第一区块链系统中除第一节点之外的至少部分(即部分或全部)超级节点都确定为投票节点,在此情况下,第一节点在接收到接入请求后,可以将接入请求转发给所确定的投票节点,以使投票节点反馈针对接入请求的投票结果。对应地,投票节点反馈的投票结果可以直接反馈给第一节点。
本公开实施例中,第一节点根据获得的投票结果确定是否批准接入请求,具体可以通过步骤S203-S210实现。
在本公开的一个示例中,S205可以由区块链系统中第一区块链系统执行。
S206,第一节点根据获得的投票结果确定第一数量、第二数量和第三数量,并确定第一数量、第二数量和第三数量的和值,第一数量是该投票结果中同意骨干节点接入的投票数量,第二数量是该投票结果中反对骨干节点接入的投票数量,第三数量是该投票结果中未在预设时长内反馈的投票数量(即,弃权的投票节点数量)。
其中,第一数量、第二数量和第三数量的和值表示的是参与投票的所有节点的数量。
在本公开的一个示例中,S206可以由区块链系统中第一区块链系统执行。
S207,判断第一数量是否大于第二数量与第三数量之和,第一数量与第二数量之和是否大于第三数量。
在本公开的一个示例中,S207可以由区块链系统中第一区块链系统执行。
S208,若第一数量与第二数量之和不大于第三数量,则第一节点重新请求投票节点针对该接入请求进行投票。
实施过程中,如果弃权的投票节点数量过多,比如当弃权的投票节点数量大于未弃权的投票节点数量时,也就是弃权的投票节点数量大于表示同意的投票结果数量与表示反对的投票结果数量之和时,可以 重新发起一轮投票。
在本公开的一个示例中,S208可以由区块链系统中第一区块链系统执行。
S209,若第一数量与所述第二数量之和大于所述第三数量,并且若所述第一数量不大于所述第二数量与所述第三数量之和,则确定不批准该接入请求,并设置该骨干节点下一次发起接入请求的间隔周期。
其中,第一数量与第二数量之和大于第三数量表示弃权的投票节点数量较少,换言之,未弃权的投票节点数量满足要求。与此同时,如果表示同意的投票结果数量没有超过表示反对的投票结果数量与弃权的投票节点数量之和,则可以确定接入请求不被批准。可选地,此时还可以设置发送所述接入请求的骨干节点(即当前申请者)下一次发起接入请求的时间条件,例如可以设置所述间隔周期,当前申请者在该间隔周期之后重新发送的接入请求才可以被处理。
在本公开的一个示例中,S209可以由区块链系统中第一区块链系统执行。
S210,若第一数量大于第二数量与第三数量之和,且第一数量与第二数量之和大于第三数量,则进一步判断第一数量与该和值的商是否达到投票率。
在本公开的一个示例中,S210可以由区块链系统中第一区块链系统执行。
S211,若第一数量与所述和值的商达到投票率,则第一节点确定批准接入请求。
实施过程中,当未弃权的投票节点数量满足要求,同时表示同意的投票结果数量也满足要求时,如果当前申请者是首次申请接入的骨干节点,可以直接确定批准其接入请求,从而执行后续的S212和S213。如果当前申请者是非首次(如,二次、三次或更多次)申请接入的骨干节点,则可以进一步判断针对当前申请者的接入请求的投票结果,是否满足当前申请者的信誉值所对应的投票率,如果满足,则确定批准当前申请者的接入请求。
在本公开的一个示例中,S211可以由区块链系统中第一区块链系统执行。
S212,第一节点从第一区块链系统的各超级节点中确定第二节点,向第二节点发送锚定消息。其中,锚定消息用于指示第二节点与骨干节点锚定。
在本公开的一个示例中,S212可以由区块链系统中第一区块链系统执行。
S213,第二节点基于锚定消息与骨干节点锚定,以使骨干节点接入第一区块链系统,第二区块链系统成为第一区块链系统的从链系统,且第一区块链系统成为第二区块链系统的主链系统。
在本公开的一个示例中,S213可以由区块链系统中第一区块链系统执行。
其中,S212和S213的详细实现过程,与前述实施例中的S103和S104类似,具体可以参照前文描述,在此不再赘述。
通过本实施例提供的骨干节点接入方法,可以安全有效地实现骨干节点动态接入第一区块链系统,以使第二区块链系统成为第一区块链系统的从链系统,而第一区块链系统成为第二区块链系统的主链系统。此外,通过限制非首次申请接入的骨干节点的准入条件,可以为一些恶意的反复尝试接入的骨干节点增加障碍,从而进一步提高了骨干节点的接入过程的安全性。
可选地,本实施例中,当任一骨干节点成功接入第一区块链系统,并与目标超级节点锚定时,目标超级节点可以为该骨干节点生成一数字身份,所述数字身份可以包括如下骨干节点的如下信息:
Node_ID:节点ID,这个节点ID是全局唯一的;
Node_type:节点类型;
Node_owner:节点所有者;
Account:节点账户;
IP:节点的IP地址;
Publickey:节点公钥;
Key_type:公钥类型;
ChainID:骨干节点接入的从链系统的ID,可以理解,这里的ChainID可能有一个或多个,此ID可以用于提供链发现、链寻址的功能;
Chain_reputation:节点信誉值,节点信誉值可以由超级节点触发修改,其具体计算方式可以参照上文给出的多种计算方式。除此之外,考虑到骨干节点可以接入多个从链系统,而骨干节点接入的从链系统越多,表示它的可信度越高。基于此,骨干节点的信誉值可以通过如下计算式获得:
信誉值=骨干节点接入的从链系统的数量/全局从链系统数量。
本实施例中,超级节点可以接收外部智能合约对于骨干节点的举报信息,每接收到针对骨干节点的一条举报信息,可以按照预设方式更新该骨干节点的信誉值。这里的预设方式例如可以是,按预设比例降低该骨干节点的信誉值,又比如可以是从骨干节点当前的信誉值中减去预设值,本实施例对此没有限制。
可选地,本实施例中,当有新的从链系统接入骨干节点时,骨干节点可以触发智能合约更新本节点的数字身份中的ChainID,具体而言,是在骨干节点的数字身份中增加所述新的从链系统的ChainID,以供其他从链系统发现该新的从链系统。并且,增加ChainID的动作可以自动触发骨干节点的信誉值的更新,具体计算方式可以如下式:
信誉值=骨干节点接入的从链系统的数量/全局从链系统数量-骨干节点作恶次数/全网作恶次数。
同时,超级节点具有剔除从链系统的权利,当一个从链系统被剔除时,从该从链系统所接入的骨干节点的数字身份中删除该从链系统的ChainID。
可选地,本实施例中,第一区块链系统中还可以部署有第一智能合约。对于至少一个需要接入第一区块链系统的骨干节点,该骨干节点可以提前第一时长向第一区块链系统发送举报验证请求,该举报验证请求携带有骨干节点的节点ID。第一区块链系统的任一超级节点接收到举报验证请求时,将该举报验证请求中的节点ID对应的骨干节点确定为目标骨干节点;从当前时刻起,在第一时长内通过第一智能合约周期性地从预设的权威服务器获取针对目标骨干节点的举报信息,并统计获取到的举报信息的数量,当该数量达到预设阈值时,将目标骨干节点的节点ID加入禁入名单。
进一步地,第一区块链系统中的超级节点在接收到接入请求时,可以先通过第一智能合约查询该接入请求携带的节点ID是否存在于禁入名单中,如果否,再请求第一区块链系统中的投票节点针对该接入请求进行投票。
类似地,第一区块链系统可以部署有第二智能合约,第二智能合约用于针对已接入第一区块链系统的每个骨干节点,从权威机构服务器获取该骨干节点在当前时刻之前第二时长内的举报信息,并统计获取到的举报信息的数量,当该数量达到所述预设阈值时,将该骨干节点退出第一区块链系统。
值得说明的是,本实施例中的第一时长和第二时长可以相同,也可以不同。第一智能合约和第二智能合约可以是同一个智能合约,也可以是不同的智能合约,本实施例对此没有限制。
请再次参照图1,本发明实施例的另一种实施方式中,第一节点可以是第一区块链系统中的监管节点。例如图4所示,区块链系统200包括一个第一区块链系统210和第二区块链系统220A和第二区块链系统220B。其中,第一区块链系统210包括监管节点211以及超级节点212、超级节点213和超级节点214,第二区块链系统220A包括骨干节点220A-1以及服务节点220A-2、服务节点220A-3、服务节点220A-4和服务节点220A-5,第二区块链系统220B包括骨干节点220B-1以及服务节点220B-2和服务节点220B-3。在此场景下,第一节点211接收到任一骨干节点的接入请求时,可以转发给作为投票节点的超级节点进行后续投票。
下面结合图4所示场景,对本公开另一实施例提供的骨干节点接入方法的流程进行阐述,该方法可以包括图5所示的步骤。
S301,第一区块链系统的监管节点接收第二区块链系统中的骨干节点的接入请求,例如监管节点接收任一第二区块链系统中的骨干节点的接入请求,该骨干节点为区块链节点。
在本公开的一个示例中,S301可以由区块链系统中第一区块链系统执行。
S302,该监管节点确定第一区块链系统中的一个超级节点为验证节点,将第一区块链系统中除验证节点外的其余超级节点中的至少超级部分为投票节点。
本实施例中,监管节点可以充当第一节点。骨干节点位于一个第二区块链系统中,第一区块链系统包括一个监管节点和至少一个超级节点,投票节点可以为第一区块链系统中的超级节点。一个例子中,可以将第一区块链系统中的一个超级节点确定为验证节点,而第一区块链系统中除验证节点外的其余所有超级节点确定为投票节点。另一个例子中,可以将第一区块链系统中的一个超级节点确定为验证节点,而将第一区块链系统中除验证节点外的其余超级节点中预设数量个超级节点确定为投票节点。本实施例对此没有限制。
在本公开的一个示例中,S302可以由区块链系统中第一区块链系统执行。
S303,请求所述投票节点针对该接入请求进行投票。
本实施例中,第一区块链系统可以响应于接入请求,而进行后续的锚定处理。这里的锚定处理可以理解为基于接入请求判断发送该接入请求的骨干节点(即当前申请者)是否满足接入条件,以及在确定当前申请者满足接入条件后,对其进行锚定。
这里的锚定处理可能涉及到由多个区块链节点(如监管节点、投票节点等)执行的操作,具体可以由部署在所述多个区块链节点上的智能合约实现。该智能合约用于实现骨干节点锚定,可以由监管节点对该智能合约进行激活,进而通过该智能合约进行锚定以及将骨干节点接入全局网络。智能合约约定了骨干节点的接入条件,并提供与外界进行交互的能力,用以判断骨干节点提交信息的有效性,通过验证后将触发投票机制,向其他节点发起投票,收集投票结果,并将投票结果反馈给监管节点。
示例性地,由第一区块链系统中的任一超级节点在第一区块链系统上发布用于部署骨干节点的所述智能合约,监管节点部署所述智能合约后,激活该智能合约。因此,本步骤中,第一区块链系统的监管节点接收骨干节点的接入请求后,可以基于该智能合约实现S302和S303,即确定投票节点,并请求投票节点针对接入请求进行投票。
可选地,本实施例中,接入请求包括第一信息,第一信息可以包括如下一种或多种数据项的数据值:申请的节点类型、节点权限、申请的企业类型(如政府,或者,企业)、组织机构代码、申请人身份、联系方式、公钥、参数、服务地址。可以理解,第一信息是发送接入请求的骨干节点的相关信息,也就是申请接入第一区块链系统的骨干节点的相关信息。
进一步地,接入请求还可以加入该骨干节点(当前申请者)欲锚定的超级节点的标识信息。
然后,投票节点可以反馈投票结果,具体可以通过如下的S304-S306实现。
在本公开的一个示例中,S303可以由区块链系统中第一区块链系统执行。
S304,投票节点生成第一投票结果,通过投票节点的私钥对第一投票结果签名,并将所述第一投票结果和获得的签名信息发送至所述验证节点。
在本公开的一个示例中,S304可以由区块链系统中第一区块链系统执行。
S305,验证节点通过投票结果的公钥对签名信息进行验证,若验证通过则统计第一投票结果,例如通过第一投票结果中各个投票选项的投票数量,即统计第一通票结果中同意骨干节点的接入请求的投票数量、反对骨干节点的接入请求的投票数量,以及未在预设时长内反馈的投票数量。
本实施例中,任意一个投票节点针对接入请求生成的投票结果,均可以视为第一投票结果。投票节点可以调用智能合约来验证接入请求是否符合预设接入条件,进而依据验证的结果来生成第一投票结果。
每个区块链节点具有一非对称密钥对,包括相互对应的私钥和公钥。投票节点作为一个区块链节点,也具有私钥和公钥。详细地,为了保证投票结果反馈的安全性,投票节点获得第一投票结果后,可以通过投票节点的私钥对第一投票结果进行签名,获得一签名信息。可以看出,可以看出,这里的签名信息与投票节点(超级节点)之间具有对应关系。投票节点可以将签名信息以及第一投票结果发送至验证节点。验证节点,可以通过投票节点的公钥对签名信息进行验证,若验证通过则对该签名信息所对应的第一投票结果进行统计。若验证不通过则不统计该签名信息对应的第一投票结果,或者,将该签名信息对应的第一投票结果统计为投票无效。
在本公开的一个示例中,S305可以由区块链系统中第一区块链系统执行。
S306,验证节点基于统计的所述第一投票结果,向监管节点反馈第二投票结果,所述第二投票结果为批准该接入请求或者不批准所述接入请求。
如上所述的,验证节点为超级节点,具体为非投票节点的一个超级节点。
在S306中,验证节点统计的第一投票结果为签名信息通过验证的第一投票结果。可以理解,验证节点统计的第一投票结果的数量小于或等于投票节点数量。本实施例中,第二投票结果可以是验证节点基于所统计的第一投票结果最终确定出的投票结果,其用于表征是否批准骨干节点的接入请求。
一种实施方式中,可以在所有投票节点的投票均有效,且所有投票结果中均允许骨干节点接入的情况下,验证节点向监管节点反馈的第二投票结果为批准接入请求,否则,验证节点向监管节点反馈的第二投票结果为不批准接入请求。在此例子中,相当于预设阈值为100%。
在本公开的一个示例中,S306可以由区块链系统中第一区块链系统执行。
另一种实施方式中,S306可以通过图6所示子步骤实现。
S306-1,基于统计的第一投票结果,确定验证通过的投票结果中允许骨干节点接入的投票结果数量。
这里的骨干节点是指当前申请者,也就是发送接入请求的骨干节点。
在本公开的一个示例中,S306-1可以由区块链系统中第一区块链系统执行。
S306-2,若允许骨干节点接入的投票数量与投票节点总数量的商达到预设阈值,则验证节点向监管节点反馈的第二投票结果为批准该接入请求。
在本公开的一个示例中,S306-2可以由区块链系统中第一区块链系统执行。
S306-3,若允许骨干节点接入的投票结果数量与投票节点总数量的商没有达到该预设阈值,则验证节点向监管节点反馈的第二投票结果为不批准该接入请求。
上述预设阈值可以根据需要灵活设置。比如,可以是60%-70%之间的任意值,例如65%。本实施例对此没有限制。
在本公开的一个示例中,S306-3可以由区块链系统中第一区块链系统执行。
本实施例中,验证节点向监管节点发送第二投票结果的同时,验证节点还可以发送验证通过的签名集合,也就是验证通过的签名信息所组成的集合,给监管节点。
S307,监管节点确定签名集合中的每个签名信息所对应的超级节点,从所确定的超级节点中确定一个超级节点作为第二节点。
如上所述的,每个签名信息与投票节点有对应关系,而投票节点都是超级节点。因此,监管节点可以首先确定签名集合中的每个签名信息所对应的超级节点。
若验证节点发送了验证通过的签名集合,则监管节点可以根据签名集合确定锚定的超级节点。如从签名集合中选择一个签名对应的超级节点为锚定的超级节点,也就是第二节点。或者,可以选择一个与骨干节点(当前申请者)位置最近,且其签名信息在签名集合中的超级节点为第二节点。或者,根据随机选举原则从签名集合中选择一个签名对应的超级节点为第二节点。
值得说明的是,一些情况下,骨干节点可能指定了希望锚定的超级节点,对应地,其发送的接入请求中包括该骨干节点欲锚定的超级节点的目标身份信息,则可以将接入请求中的目标身份信息所指示的超级节点作为第二节点。当接入请求中不包括目标身份信息时,可以按照上述方式确定第二节点,也可以直 接从第一区块链系统包括的各超级节点中选择与骨干节点位置最近的超级节点作为第二节点;或者,根据随机选举原则从第一区块链系统中确定一个超级节点作为第二节点。
在本公开的一个示例中,S307可以由区块链系统中第一区块链系统执行。
S308,监管节点向第二节点发送锚定消息,锚定消息用于指示第二节点与骨干节点锚定。
在本公开的一个示例中,S308可以由区块链系统中第一区块链系统执行。
S309,第二节点基于锚定消息与骨干节点锚定,以使骨干节点接入第一区块链系统第二区块链系统成为第一区块链系统的从链系统,并且第一区块链系统成为第二区块链系统的主链系统。
可以理解,本公开实施例中任一超级节点与骨干节点的锚定,可以是该超级节点将第一区块链系统中的账本同步给骨干节点,以使骨干节点接入第一区块链系统。如此,骨干节点所在的第二区块链系统即可成为第一区块链系统的从链系统,而第一区块链系统可以成为第二区块链系统的主链系统。而通过选择与骨干节点位置最近的超级节点来与骨干节点锚定,可以加快账本同步过程,实现快速锚定。
在本公开的一个示例中,S309可以由区块链系统中第一区块链系统执行。
另外,在第二节点基于锚定消息与骨干节点锚定之后,还可以进行验证,例如:
第二节点根据骨干节点的节点信息生成第二信息,将第二信息发送至监管节点。
其中,第二信息的数据项与第一信息相同。如第一信息包括申请的节点类型、节点权限、申请的企业类型、组织机构代码、申请人身份、联系方式。此时的第一信息中的数据值均为需要加入的数据值。第二信息也包括申请的节点类型、节点权限、申请的企业类型、组织机构代码、申请人身份、联系方式。此时的第二信息的数据值是实际后的真实数据值。
监管节点对比第二信息与第一信息相同数据项的数据值是否相同。
若相同,则说明实际接入第一区块链系统的骨干节点与欲接入第一区块链系统的骨干节点具有相同的节点信息,换言之,实际接入的骨干节点和欲接入的骨干节点相同。因此,骨干节点接入正确,则监管节点可以生成密钥对,将密钥对发送给骨干节点,并将第二信息以及骨干节点的节点信息在全网广播后,将骨干节点的监管权移交给第二节点。
其中,第二区块链系统的骨干节点的节点信息可以为:IP地址和/或公钥信息。
值得说明的是,上述密钥对并不发送给超级节点。该密钥对用于从链系统上数据传输的加密。因为骨干节点为从链系统中的节点,密钥对直接发送骨干节点,超级节点并不知晓该密钥对,会使得主链系统看不到从链系统中的数据内容,保证了从链系统中数据的安全。
此外,在一种实施方式中,第二区块链系统的骨干节点接入第一区块链系统后,也可以由监管节点生成对称公钥,并提供给骨干节点和特定的超级节点。骨干节点可以使用对称公钥对中的公钥进行非公开数据的加密传输,并将加密的非公开数据提交至第一区块链系统。在此情况下,只有上述特定的超级节点可以查看该非公开数据,而其他骨干节点或其他超级节点均不能查看。对应地,当骨干节点退出第一区块链系统时,特定超级节点将会舍弃该骨干节点的特定公钥。
在另一种实施方式中,可以由第一区块链系统中的超级节点生成群组对称密钥,所有超级节点之间可以通过群组对称密钥进行数据的加密传输。示例性地,以图3所示场景为例,超级节点213可以通过群组对称密码对需要传输给其他超级节点(如212和214)的第一数据进行加密,得到第二数据;然后在第一区块链系统210中发布第二数据,接收到第二数据的超级节点212和214均可通过群组对称密钥解密第二数据,获得第一数据。而第一区块链系统中的其他区块链节点则无法解密第二数据。
进一步地,当第一区块链系统中的任一超级节点退出,或者当任一超级节点接入第一区块链系统时,更新群组对称密钥。
进一步地,当任一骨干节点接入第一区块链系统,并与某一超级节点锚定后,锚定的超级节点可以基于当前的群组对称密钥,为该骨干节点派生出非对称密钥。该骨干节点可以通过锚定的超级节点派生的非对称密钥对需要传输的数据进行加密。第一区块链系统中的任一超级节点在接收到经非对称密钥加密的数据时,均可基于当前的群组对称密钥对该骨干节点发送的加密数据进行解密。可以理解,当一个超级节点使用更新前的群组对称密钥,解密经更新后的非对称密钥加密的数据时,无法解密成功,从而可以进一步确保数据传输的安全性,降低泄密的风险。
下面以图7为例,对本公开一实施例提供的骨干节点接入方法进行再次说明。
1、主链系统的监管节点上配置智能合约。
该智能合约由任一超级节点在主链系统上发布,部署在监管节点上,该智能合约的功能为部署骨干节点。
只有监管节点有权限对该智能合约进行激活,进而锚定以及建骨干节点。
2、当从链系统上一个节点欲成为骨干节点,或者新从链系统接入时,其向监管节点发送接入请求。
3、监管节点接收到接入请求后,向投票节点发送该接入请求,以便在主链系统上进行投票。
示例性地,投票过程由投票节点和验证节点实现。
其中,验证节点是超级节点,投票节点是主链系统上的除验证节点外的所有超级节点。或者,投票节 点是主链系统上除验证节点外的部分超级节点。
投票节点可以通过部署的相应的智能合约进行确定。
1)投票节点针对成为骨干节点的请求进行投票,加上该投票节点的签名。
例如,投票节点审核骨干节点接入请求中的信息,根据智能合约中预定义的评审规则,评审是否符合规则,并进行投票。
2)投票节点投票后将投票结果发送给验证节点。
投票节点用节点的私钥签名投票结果,验证节点使用投票节点的公钥验证签名是否正确。
3)验证节点统计投票结果是同意的签名数量,如果该数量占反馈投票结果的总数量的比值大于预设阈值(如60%),则向监管节点反馈确认信息。
其中,该确认信息包括但不限于:投票结果,签名合集,网址,权限,可被监管信息,签名验证信息。
4、监管节点基于验证节点反馈的确认信息确定该节点是否可以成为骨干节点,如果确认可以,则监管节点进行签名确认,并把经过签名确认的信息发送给锚定的超级节点(锚定的超级节点可以为骨干节点申请锚定的超级节点,或者是随机选取的超级节点)。
例如,监管节点基于智能合约中预定义的骨干节点建设准则,和收集上来的签名信息,判断是否可以生成该骨干节点。
经过签名确认的信息可以为批准成为骨干节点的证书
5、超级节点在接收到监管节点发送的确认信息之后,建设该骨干节点。
如提供骨干节点建设需要满足预定义的技术性能要求,并通过锚定的超级节点认证合格后,发布证书。
6、该骨干节点建立成功之后,该骨干节点向该超级节点发送建成后信息。
如通过评审机构的测试后,认为骨干节点建立成功,此时骨干节点向锚定的超级节点发送由评审机构颁发的性能合格证书。
7、超级节点将建成后信息发送给监管节点,监管节点对该信息进行核对,如果核对结果一致,则生成密钥对。
其中核对的过程为将建成后的骨干节点相关信息与申请建立时的骨干节点相关信息进行匹配,如申请建立时骨干节点相关信息描述了物理上建立多少个基站,建成信息中也描述了物理上建立多少个基站,如果两个基站数量相同,则认为匹配,如果不同,则认为不匹配。
8、监管节点将密钥对发送给该骨干节点,并将骨干节点的基本信息、IP地址、公钥信息在全网广播,计入账本。
此处,密钥对并不发送给超级节点。该密钥对用于从链系统上数据传输的加密。因为骨干节点为从链系统上的节点,密钥对直接发送骨干节点,超级节点并不知晓该密钥对,会使得主链系统上看不到从链系统中的数据内容,保证了从链数据的安全。
示例性地,上链的信息可以包括骨干节点的如下信息:节点类型、节点拥有者的身份信息、节点ID、账户地址、IP地址、状态字段、公钥、签名、信誉值、信誉值智能合约ID、投票签名等。前述信息均可以是string类型的信息。
9、监管节点将骨干节点的锚定及监管移交给超级节点。
下面图8为例,对本提案提供的方法进行举例说明:
1、主链系统的监管节点配置智能合约。
2、当新从链系统接入时,骨干节点向监管节点发送请求。
3、监管节点接收到请求后,向投票节点发送该请求,以便在主链系统上进行投票。
投票过程由投票节点和验证节点实现。
其中,验证节点是超级节点(如超级节点3),投票节点是主链系统上的所有节点(如投票节点1、投票节点2、投票节点4)。
1)投票节点1、投票节点2、投票节点4针对成为骨干节点的请求进行投票,加上该投票节点的签名。
2)投票节点1、投票节点2、投票节点投票后将投票结果发送给超级节点3。
3)超级节点3统计投票结果是同意的签名数量,如果该数量占反馈投票结果的总数量的比值大于预设阈值(如60%),则向监管节点反馈确认信息。
4、监管节点基于验证节点反馈的确认信息确定该节点是否可以成为骨干节点,如果确认可以,则监管节点进行签名确认,并把经过签名确认的信息发送给超级节点3。
5、超级节点3在接收到监管节点发送的确认信息之后,建设该骨干节点。
6、该骨干节点建立成功之后,该骨干节点向该超级节点3发送建成后信息
7、超级节点3将建成后信息发送给监管节点,监管节点对该信息进行核对,如果核对结果一致,则生成密钥对。
8、监管节点将密钥对发送给该骨干节点。
9、监管节点将骨干节点的锚定及监管移交给超级节点3,形成如图9所示结构的区块链系统。
本实施例提供的方法,第一区块链系统的监管节点接收骨干节点的接入请求,确定投票节点,并请 求投票节点针对接入请求进行投票,其中,该骨干节点位于第二区块链系统,第一区块链系统包括一个监管节点和至少一个超级节点,投票节点为超级节点;投票节点向监管节点反馈投票结果;监管节点根据投票结果确定批准请求后,确定锚定的超级节点,向锚定的超级节点发送与骨干节点锚定的消息;锚定的超级节点基于消息与骨干节点锚定,以使骨干节点所在第二区块链系统成为第一区块链系统的从链系统,而第一区块链系统成为第二区块链系统的主链系统,本方法不仅保证了骨干节点有效安全生成,还保证了生成后该骨干节点所在从链系统的安全性。
请参照图10,其中示例性地示出了本公开另一实施例提供的骨干节点接入方法的流程示意图。下面对该方法包括的步骤进行介绍。
S401,第一区块链系统的监管节点接收任一第二区块链系统中的骨干节点的接入请求,将第一区块链系统中的至少一个超级节点设置为投票节点,例如将第一区块链系统中的所有超级节点均确定为投票节点,第一区块链系统包括一个监管节点和至少一个超级节点,骨干节点为区块链节点。
本实施例中,监管节点可以充当前述实施例中的第一节点。第一区块链系统中的每个超级节点具有对应的生产时间段,并用于在对应的生产时间段内进行区块打包。打包的区块可以被广播至第一区块链系统中其他所有超级节点,由其他所有超级节点对该区块进行确认,当第一区块链系统中2/3以上超级节点对该区块确认通过时,即可认为该区块是不可逆的,并将其添加到第一区块链系统所对应的区块链上。
在第一区块链系统中,至少一个超级节点是从备用超级节点中选举产生的。至少一个超级节点可以按照预设顺序分别在连续的多个时间段中进行区块打包(即产生区块)。以3个超级节点为例,3个超级节点可以按照预设顺序分别在连续的3个时间段内进行区块打包,例如超级节点2在时间段t1内进行区块打包,超级节点1在时间段t2内进行区块打包,超级节点3则在时间段t3内进行区块打包。
在本公开的一个示例中,S401可以由区块链系统中第一区块链系统执行。
S402,监管节点查询第一区块链系统中的第一超级节点,将接入请求转发至第一超级节点,第一超级节点为所述第一区块链系统中用于在当前生产时间段内进行区块打包的超级节点。
在本公开的一个示例中,S402可以由区块链系统中第一区块链系统执行。
S403,所述第一超级节点针对所述接入请求进行投票,获得第一投票结果。
在本公开的一个示例中,S403可以由区块链系统中第一区块链系统执行。
S404,所述第一超级节点将所述接入请求添加至最新打包的目标区块的区块体内,并将添加有接入请求的目标区块广播至所述第一区块链系统中的第二超级节点,所述第二超级节点是所述第一区块链系统中除所述第一超级节点之外的超级节点。
实际应用中,第一超级节点也可以称为生产节点。示例性地,在上述的时间段t1内,超级节点2可以是第一超级节点,而其他超级节点均为第二超级节点。在上述的时间段t2内,超级节点1可以是第一超级节点,而其他超级节点均为第二超级节点。在上述的时间段t3内,超级节点3可以是第一超级节点,而其他超级节点均为第二超级节点。
由于一个超级节点打包的区块会被广播至其他超级节点进行确认,因此,本实施例中,可以从至少一个超级节点中确定当前正用于打包区块的第一超级节点,进而将接入请求转发给第一超级节点,由第一超级节点将接入请求携带在所打包的目标区块中,并广播至其他超级节点(即第二超级节点)。
示例性地,接入请求可以作为一个交易数据被添加到目标区块的区块体中。具体地,接入请求可以作为目标区块的区块体中的第一个交易数据。可以理解,在向目标区块中插入接入请求时,目标区块中用于设置交易数据数量的字段可以不用修改,如此,当每个第二超级节点收到目标区块,从中识别并提取出接入请求后,可以将目标区块中的接入请求(第一个交易数据)删除,然后再进行对目标区块的确认,从而避免因为接入请求的插入而对目标区块的确认过程造成影响。可以理解,上述向目标区块插入接入请求,以及每个第二超级节点收到目标区块,从中提取出接入请求后,再将目标区块中第一个交易数据删除的操作,可以作为智能合约部署在第一区块链系统中。
基于上述流程,第一超级节点以及至少一个第二超级节点可以得到接入请求,例如每个第二超级节点均可以获得接入请求,并对其进行投票。其中,第一超级节点的投票操作,与第一超级节点向目标区块插入接入请求的操作,可以并行执行。
可选地,接入请求中可以携带有预设标签,该预设标签与一智能合约关联,该智能合约中设置有针对骨干节点接入的验证机制,例如,骨干节点接入需要满足的预设接入条件,例如骨干节点的技术性能需要满足的条件等。
实施过程中,第一超级节点可以根据接入请求中的信息验证骨干节点是否满足所述预设接入条件,进而依据验证结果获得第一投票结果。如果骨干节点满足预设接入条件,则第一投票结果为通过,否则为不通过。
类似地,至少一个第二超级节点可以根据从目标区块中提取出的接入请求验证骨干节点是否满足所述预设接入条件,例如每个第二超级节点可以根据从目标区块中提取出的接入请求验证骨干节点是否满足所述预设接入条件,进而依据验证结果获得第二投票结果。如果骨干节点满足所述预设接入条件,则该 第二投票结果为通过,否则为不通过。
在本公开的一个示例中,S404可以由区块链系统中第一区块链系统执行。
S405,至少一个第二超级节点将针对接入请求的第二投票结果携带在针对目标区块的确认结果中返回给第一超级节点,例如每个第二超级节点将针对接入请求的第二投票结果携带在针对目标区块的确认结果中返回给第一超级节点
至少一个第二超级节点可以将获得的第二投票结果插入针对目标区块的确认结果的预设位置,例如每个第二超级节点可以将获得的第二投票结果插入针对目标区块的确认结果的预设位置,并返回给第一超级节点。对应地,第一超级节点可以从获得的信息的预设位置截取出第二投票结果。
在本公开的一个示例中,S405可以由区块链系统中第一区块链系统执行。
S406,第一超级节点将第一投票结果和所述第二投票结果发送给监管节点。
本实施例中,第一超级节点在获得各第二投票结果后,可以将第一投票结果和各第二投票结果一并发送给监管节点。
在本公开的一个示例中,S406可以由区块链系统中第一区块链系统执行。
S407,监管节点在所述第一投票结果和各所述第二投票结果中存在2/3的投票结果为通过时,批准接入请求。
一个例子中,假如第一投票结果和各第二投票结果加起来总共有21个投票结果,那当其中存在14个投票结果为通过时,则可以确定批准接入请求。
在本公开的一个示例中,S407可以由区块链系统中第一区块链系统执行。
S408,监管节点在确定批准接入请求后,从第一区块链系统的超级节点中确定第二节点,向第二节点发送锚定消息,锚定消息用于指示第二节点与接入请求中请求接入的骨干节点锚定。
在本公开的一个示例中,S408可以由区块链系统中第一区块链系统执行。
S409,第二节点基于所述锚定消息与骨干节点锚定,以使接入请求中请求接入的骨干节点接入第一区块链系统,第二区块链系统成为第一区块链系统的从链系统,并且第一区块链系统成为第二区块链系统的主链系统。
在本公开的一个示例中,S409可以由区块链系统中第一区块链系统执行。
本实施例中,S408和S409的实现过程与前述实施例中的S103和S104类似,具体可以参照对上述实施例的详细描述,在此不再赘述
图10所示实施例,将骨干节点的接入验证融合到区块上链确认过程中,降低了恶意骨干节点接入的可能性,换言之,增加了骨干节点接入的安全性。
本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本公开的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开范围的所有变更和修改。
显然,本领域的技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。

Claims (18)

  1. 一种骨干节点接入方法,其特征在于,包括:
    第一区块链系统中的第一节点接收第二区块链系统中的骨干节点的接入请求,确定所述第一区块链系统中的投票节点,并请求所述投票节点针对所述接入请求进行投票,其中,所述投票节点为超级节点,所述第一节点和所述骨干节点均为区块链节点;
    所述投票节点反馈投票结果;
    所述第一节点在根据所述投票结果确定批准所述接入请求后,从所述第一区块链系统的至少一个超级节点中确定第二节点,向所述第二节点发送锚定消息,所述锚定消息用于指示所述第二节点与所述骨干节点锚定;
    所述第二节点基于所述锚定消息与所述骨干节点锚定,以使所述骨干节点接入所述第一区块链系统,所述第二区块链系统成为所述第一区块链系统的从链系统,且所述第一区块链系统成为所述第二区块链系统的主链系统。
  2. 根据权利要求1所述的方法,其特征在于,所述第一节点为所述第一区块链系统中的一个超级节点,所述投票节点包括所述第一区块链系统中除所述第一节点之外的超级节点。
  3. 根据权利要求2所述的方法,其特征在于,所述根据所述投票结果确定批准所述接入请求,包括:
    所述第一节点根据所述投票结果确定第一数量、第二数量和第三数量,所述第一数量是所述投票结果中同意所述骨干节点接入的投票数量,所述第二数量是所述投票结果中反对所述骨干节点接入的投票数量,所述第三数量是所述投票结果中未在预设时长内反馈的投票数量;
    若所述第一数量大于所述第二数量与所述第三数量之和,则确定批准所述接入请求。
  4. 根据权利要求3所述的方法,其特征在于,所述方法还包括:
    若所述第一数量与所述第二数量之和小于所述第三数量,则所述第一节点重新请求所述投票节点针对所述接入请求进行投票。
  5. 根据权利要求3所述的方法,其特征在于,所述方法还包括:
    所述第一节点在确定不批准所述接入请求的情况下,设置所述骨干节点下一次发起所述接入请求的间隔周期。
  6. 根据权利要求3-5任一项所述的方法,其特征在于,在确定所述第一区块链系统中的投票节点之前,所述方法还包括:
    确定所述骨干节点是否接入过所述第一区块链系统;
    若所述骨干节点接入过所述第一区块链系统,则从所述骨干节点的历史记录中获取所述骨干节点的信誉值,并获取所述信誉值对应的投票率;
    在所述根据获得的投票结果确定第一数量、第二数量和第三数量之后,在所述确定批准所述接入请求之前,还包括:
    确定所述第一数量、所述第二数量与所述第三数量的和值,若所述第一数量与所述和值的商达到所述投票率,则确定批准所述接入请求。
  7. 根据权利要求6所述的方法,其特征在于,所述信誉值基于所述骨干节点的活跃率、被举报率以及超时响应率计算得到,其中,所述活跃率是所述骨干节点提交交易的次数与所述第一区块链系统中超级节点的共识总次数的比值,所述被举报率是所述骨干节点的被举报次数与所述第一区块链系统的总举报次数的比值,所述超时响应率是所述骨干节点的超时响应次数与所述第一区块链系统的总超时响应次数的比值。
  8. 根据权利要求1所述的方法,其特征在于,所述第一节点为所述第一区块链系统中的监管节点。
  9. 根据权利要求8所述的方法,其特征在于,所述接入请求包括第一信息,所述第一信息包括如下一种或多种数据项的数据值:申请的节点类型、节点权限、申请的企业类型、组织机构代码、申请人身份和联系方式。
  10. 根据权利要求1所述的方法,其特征在于,所述确定所述第一区块链系统中的投票节点,包括:
    确定所述第一区块链系统中的一个超级节点为验证节点,并确定所述区块链中除所述验证节点外的其余超级节点均为投票节点;或者,
    确定所述第一区块链系统中的一个超级节点为验证节点,并确定所述区块链中除所述验证节点外预设数量个其余超级节点为投票节点;
    所述投票节点反馈投票结果,包括:
    所述投票节点生成第一投票结果,通过所述投票节点的私钥对所述第一投票结果进行签名,并将所述第一投票结果和所述签名信息发送至所述验证节点;
    所述验证节点通过所述投票节点的公钥对所述签名信息进行验证,若验证通过则统计所述第一投票结果;
    所述验证节点基于统计的所述第一投票结果,向所述第一节点反馈第二投票结果。
  11. 根据权利要求10所述的方法,其特征在于,所述验证节点基于统计的所述第一投票结果,向所述第一节点反馈第二投票结果,包括:
    基于所述统计的第一投票结果,确定验证通过的投票结果中允许所述骨干节点接入的投票结果数量;
    若允许所述骨干节点接入的投票结果数量与投票节点总数量的商达到预设阈值,则所述验证节点向所述第一节点反馈的第二投票结果为批准所述接入请求,否则,所述验证节点向所述第一节点反馈的第二投票结果为不批准所述接入请求。
  12. 根据权利要求11所述的方法,其特征在于,所述方法还包括:
    所述验证节点将签名集合与所述第二投票结果一并反馈给所述第一节点,所述签名集合包括通过验证的各签名信息;
    所述从所述第一区块链系统的至少一个超级节点中确定第二节点,包括:
    所述第一节点确定所述签名集合中的至少一个签名信息所对应的超级节点;
    从所确定的各超级节点中,将与所述骨干节点位置最近的超级节点确定为所述第二节点;或者,根据随机选举原则,从所确定的各超级节点中确定一超级节点所述第二节点。
  13. 根据权利要求1所述的方法,其特征在于,所述从所述第一区块链系统的至少一个超级节点中确定第二节点,包括:
    从所述第一区块链系统中,将与所述骨干节点位置最近的超级节点确定为所述第二节点;或者,
    根据随机选举原则,从所述第一区块链系统的超级节点中随机选举所述第二节点。
  14. 根据权利要求9所述的方法,其特征在于,在所述第二节点基于所述锚定消息与所述骨干节点锚定之后,所述方法还包括:
    所述第二节点根据所述骨干节点的节点信息生成第二信息,将所述第二信息发送至所述第一节点;所述第二信息与第一信息具有相同的数据项;
    所述第一节点对比所述第二信息与所述第一信息之间相同数据项的数据值是否相同;
    若所述第二信息与所述第一信息之间相同数据项的数据值相同,则所述第一节点生成密钥对,将所述密钥对发送给所述骨干节点,并将所述第二信息以及所述骨干节点的节点信息在全网广播后,将所述骨干节点的监管权移交给所述第二节点;其中,所述骨干节点的节点信息为:IP地址和/或公钥信息。
  15. 根据权利要求8所述的方法,其特征在于,所述第一区块链系统中的每个超级节点具有对应的生产时间段,并用于在对应的生产时间段内进行区块打包;所述确定所述第一区块链系统中的投票节点,并请求所述投票节点针对所述接入请求进行投票,包括:
    所述第一节点将所述第一区块链系统中的至少一个超级节点均确定为投票节点,并查询所述第一区块链系统中的第一超级节点,将所述接入请求转发至所述第一超级节点,所述第一超级节点为所述第一区块链系统中用于在当前生产时间段内进行区块打包的超级节点;
    所述第一超级节点针对所述接入请求进行投票,获得第三投票结果;
    所述第一超级节点将所述接入请求添加至最新打包的目标区块的区块体内,并将添加有所述接入请 求的目标区块广播至所述第一区块链系统中的第二超级节点,所述第二超级节点是所述第一区块链系统中除所述第一超级节点之外的超级节点;
    至少一个第二超级节点将针对所述接入请求的第四投票结果携带在针对所述目标区块的确认结果中返回给所述第一超级节点;
    所述第一超级节点将所述第三投票结果和所述第四投票结果发送给所述第一节点。
  16. 根据权利要求15所述的方法,其特征在于,所述接入请求中包含预设标签,所述第一区块链系统中的至少一个超级节点通过如下方式获得所述第三投票结果或所述第四投票结果:
    根据所述预设标签,调用所述预设标签对应的智能合约,验证所述接入请求是否满足预设接入条件,并根据验证结果获得所述第三投票结果或所述第四投票结果。
  17. 根据权利要求15或16所述的方法,其特征在于,所述第一节点根据获得的投票结果确定批准所述接入请求,包括:
    若所述第三投票结果和所述第四投票结果中存在2/3的投票结果表征同意接入所述接入请求,则所述第一节点确定批准所述接入请求。
  18. 一种区块链系统,其特征在于,所述区块链系统包括第一区块链系统和至少一个第二区块链系统,所述第一区块链系统包括第一节点和超级节点,所述第二区块链系统包括骨干节点;
    所述第一节点、所述超级节点以及所述骨干节点通过权利要求1-17中任意一项所述的方法进行交互,以使所述骨干节点接入所述第一区块链系统,所述骨干节点所在第二区块链系统成为所述第一区块链系统的从链系统,所述第一区块链系统为所述骨干节点所在第二区块链系统的主链系统。
PCT/CN2022/097228 2021-11-04 2022-06-06 骨干节点接入方法和区块链系统 WO2023077796A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202111297094.X 2021-11-04
CN202111297094.XA CN113726913B (zh) 2021-11-04 2021-11-04 骨干节点接入方法和区块链系统

Publications (1)

Publication Number Publication Date
WO2023077796A1 true WO2023077796A1 (zh) 2023-05-11

Family

ID=78686677

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/097228 WO2023077796A1 (zh) 2021-11-04 2022-06-06 骨干节点接入方法和区块链系统

Country Status (2)

Country Link
CN (1) CN113726913B (zh)
WO (1) WO2023077796A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117527266A (zh) * 2024-01-05 2024-02-06 杭州趣链科技有限公司 异步网络共识方法、装置、电子设备及可读存储介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113726913B (zh) * 2021-11-04 2022-04-01 中国信息通信研究院 骨干节点接入方法和区块链系统
CN117544472B (zh) * 2024-01-08 2024-03-22 中国信息通信研究院 分布式网络的节点管理方法、装置、电子设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108280646A (zh) * 2018-01-19 2018-07-13 中国科学院软件研究所 基于联盟链的区块链组链方法及区块链系统
CN110868308A (zh) * 2018-08-28 2020-03-06 傲为信息技术(江苏)有限公司 一种区块链网络接入方法及系统
WO2020173499A1 (zh) * 2019-02-26 2020-09-03 白杰 基于公链的区块链子链创建方法及系统
CN111683118A (zh) * 2020-05-16 2020-09-18 中信银行股份有限公司 基于区块链的共识方法、装置、主节点设备及从节点设备
CN113726913A (zh) * 2021-11-04 2021-11-30 中国信息通信研究院 骨干节点接入方法和区块链系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106411503B (zh) * 2016-11-28 2019-11-08 中国银行股份有限公司 区块链投票记账模式的记账方法及系统、投票及记账节点
CN111741114B (zh) * 2020-06-24 2023-05-16 陈鹏 基于区块链的可监管跨链交互系统、方法及设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108280646A (zh) * 2018-01-19 2018-07-13 中国科学院软件研究所 基于联盟链的区块链组链方法及区块链系统
CN110868308A (zh) * 2018-08-28 2020-03-06 傲为信息技术(江苏)有限公司 一种区块链网络接入方法及系统
WO2020173499A1 (zh) * 2019-02-26 2020-09-03 白杰 基于公链的区块链子链创建方法及系统
CN111683118A (zh) * 2020-05-16 2020-09-18 中信银行股份有限公司 基于区块链的共识方法、装置、主节点设备及从节点设备
CN113726913A (zh) * 2021-11-04 2021-11-30 中国信息通信研究院 骨干节点接入方法和区块链系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117527266A (zh) * 2024-01-05 2024-02-06 杭州趣链科技有限公司 异步网络共识方法、装置、电子设备及可读存储介质

Also Published As

Publication number Publication date
CN113726913A (zh) 2021-11-30
CN113726913B (zh) 2022-04-01

Similar Documents

Publication Publication Date Title
EP4120114A1 (en) Data processing method and apparatus, smart device and storage medium
CN109302415B (zh) 一种认证方法、区块链节点及存储介质
Samaniego et al. Zero-trust hierarchical management in IoT
CN109450910B (zh) 基于区块链的数据共享方法、数据共享网络及电子设备
WO2023077796A1 (zh) 骨干节点接入方法和区块链系统
WO2023077794A1 (zh) 区块链访问权限控制方法和系统、设备、程序及介质
KR102566892B1 (ko) 블록체인 합의 방법, 디바이스 및 시스템
CN111291060B (zh) 一种管理区块链节点的方法、装置及计算机可读介质
CN112527912B (zh) 基于区块链网络的数据处理方法、装置及计算机设备
US11765225B2 (en) Systems and methods for microservice execution load balancing in virtual distributed ledger networks
KR102569409B1 (ko) 가상 분산 원장 네트워크를 위한 시스템 및 방법
CN110061887B (zh) 一种基于区块链的流量统计方法、装置和设备
CN110111102A (zh) 一种基于区块链技术的虚拟交通卡系统及发行交易方法
CN112152778B (zh) 一种节点管理方法、装置、及电子设备
US11838406B2 (en) Systems and methods for control-data plane partitioning in virtual distributed ledger networks
US11763298B2 (en) Systems and methods for hybrid synchronization in virtual distributed ledger networks
Le et al. A lightweight block validation method for resource-constrained iot devices in blockchain-based applications
CN110599144B (zh) 一种区块链节点的入网方法以及装置
CN113783899B (zh) 节点退出方法和区块链系统
Cong et al. DTNB: A blockchain transaction framework with discrete token negotiation for the delay tolerant network
CN113259130B (zh) 一种交易数据处理方法、装置、设备以及介质
Karthick et al. Modeling and verifying a resource allocation algorithm for secure service migration for commercial cloud systems
Sunny et al. Towards a lightweight blockchain platform for critical infrastructure protection
CN116112506A (zh) 基于联盟链系统的交易信息处理方法、装置、介质及设备
Dule et al. Privacy preservation modelling for securing image data using novel ethereum-based ecosystem

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: 22888832

Country of ref document: EP

Kind code of ref document: A1