WO2021088421A1 - 区块链系统及其运行方法、装置及设备 - Google Patents

区块链系统及其运行方法、装置及设备 Download PDF

Info

Publication number
WO2021088421A1
WO2021088421A1 PCT/CN2020/103961 CN2020103961W WO2021088421A1 WO 2021088421 A1 WO2021088421 A1 WO 2021088421A1 CN 2020103961 W CN2020103961 W CN 2020103961W WO 2021088421 A1 WO2021088421 A1 WO 2021088421A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
consensus
candidate
founding
transaction
Prior art date
Application number
PCT/CN2020/103961
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 WO2021088421A1 publication Critical patent/WO2021088421A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Definitions

  • This document relates to the field of blockchain technology, in particular to a blockchain system and its operating method, device and equipment.
  • Blockchain is a distributed accounting system, and the consensus mechanism ensures the consistency and correctness of the ledger data in different nodes.
  • the consensus verification process of the public chain a large number of nodes are usually required to participate, which inevitably reduces the efficiency of the consensus.
  • the consensus verification process of the alliance chain a number of fixed nodes are usually pre-selected to participate in the consensus verification. Other nodes that want to participate in consensus verification cannot participate in consensus verification.
  • the embodiment of this specification provides a blockchain system.
  • the blockchain system includes at least one founding node and multiple candidate consensus nodes.
  • the founding node selects a consensus node that performs consensus verification on the first transaction from the candidate consensus nodes based on a preset consensus node selection rule.
  • the candidate consensus node after being selected as the consensus node by the initiating node, serves as the consensus node of the first transaction, and performs consensus verification processing on the first transaction.
  • One or more embodiments of this specification provide a method for operating a blockchain system.
  • the method includes the initiating node selecting a consensus node that performs consensus verification on the first transaction from candidate consensus nodes based on a preset consensus node selection rule based on the first transaction submitted to the blockchain.
  • the selected candidate consensus node performs consensus verification processing on the first transaction.
  • One or more embodiments of this specification provide a block chain operation device, which is applied to the founding node of a block chain system.
  • the device includes a selection module, according to the first transaction submitted to the blockchain, based on a preset consensus node selection rule, select a consensus node that performs consensus verification on the first transaction from the candidate consensus nodes to pass the selected consensus node
  • the candidate consensus node performs consensus verification processing on the first transaction.
  • One or more embodiments of this specification provide a blockchain operating device, including a processor.
  • the device also includes a memory arranged to store computer-executable instructions.
  • the processor selects from candidate consensus nodes to perform consensus verification on the first transaction based on a preset consensus node selection rule based on the first transaction submitted to the blockchain The consensus node in order to pass the selected candidate consensus node to perform consensus verification processing on the first transaction.
  • One or more embodiments of this specification provide a storage medium for storing computer-executable instructions.
  • the computer-executable instructions are executed, according to the first transaction submitted to the blockchain, based on a preset consensus node selection rule, a consensus node that performs consensus verification on the first transaction is selected from candidate consensus nodes, to Perform consensus verification processing on the first transaction through the selected candidate consensus node.
  • Fig. 1 is a schematic diagram of a scenario of a blockchain system provided by one or more embodiments of this specification;
  • Figure 2 is a schematic diagram of the composition of a blockchain system provided by one or more embodiments of this specification;
  • FIG. 3 is a schematic diagram of the first flow of a method for operating a blockchain system provided by one or more embodiments of this specification;
  • FIG. 4 is a schematic diagram of a process for adding a user according to one or more embodiments of this specification
  • FIG. 5 is a schematic diagram of a process for creating a candidate consensus node according to one or more embodiments of this specification
  • FIG. 6 is a schematic diagram of a process for creating a data node according to one or more embodiments of this specification
  • FIG. 7 is a schematic diagram of a second flow of a method for operating a blockchain system provided by one or more embodiments of this specification.
  • FIG. 8 is a schematic diagram of the process of selecting consensus nodes for consensus verification processing provided by one or more embodiments of this specification.
  • FIG. 9 is a schematic diagram of the module composition of a blockchain operating device provided by one or more embodiments of this specification.
  • FIG. 10 is a schematic structural diagram of a blockchain operation device provided by one or more embodiments of this specification.
  • One or more embodiments of this specification provide a blockchain system and its operating method, device, and equipment.
  • Multiple candidate consensus nodes in the system have the right to be selected as consensus nodes, and they are selected as consensus nodes. It can participate in the consensus when it is not selected as a consensus node. Therefore, the founding node in the system can select the consensus node that performs consensus verification on the first transaction from the candidate consensus nodes based on the first transaction submitted to the blockchain and based on the preset consensus node selection rules; the one selected by the founding node The candidate consensus node, as the consensus node of the first transaction, performs consensus verification processing on the first transaction.
  • the consensus node that performs consensus verification on the first transaction can be dynamically selected from the candidate consensus nodes, so that each candidate consensus node has the opportunity to participate in the consensus verification, and the dynamic balance of the consensus nodes participating in the consensus verification is maintained; And there is no need for a large number of consensus nodes to participate in consensus verification, which improves the efficiency of consensus verification.
  • Figure 1 is a schematic diagram of the application scenario of the blockchain system provided by one or more embodiments of this specification.
  • the scenario includes: at least one founding node (only one is shown in Figure 1) and multiple candidate consensuses Node, multiple data nodes, and user terminal equipment; among them, the user’s terminal equipment accesses any one of the aforementioned nodes to submit the first transaction to the blockchain through the accessed node.
  • the terminal equipment The accessed node is called the submission node;
  • the user's terminal device can be a mobile phone, a tablet computer, a desktop computer, a portable notebook computer, etc. (only the mobile phone is shown in FIG. 1).
  • the founding node will The first transaction, based on the preset consensus node selection rules, select the consensus node that performs consensus verification on the first transaction from the candidate consensus nodes; the candidate consensus node, after being selected as the consensus node by the initiating node, is used as the consensus of the first transaction The node performs consensus verification processing on the first transaction.
  • each candidate consensus node has the opportunity to participate in the consensus verification, maintaining the dynamic balance of the consensus nodes participating in the consensus verification; and there is no need for a large number of consensus nodes.
  • Consensus nodes participate in consensus verification, which improves the efficiency of consensus verification and the balance of consensus.
  • Figure 2 is a schematic diagram of the composition of a blockchain system provided by one or more embodiments of this specification, as shown in Figure 2.
  • the system includes: at least one founding node 101 and multiple candidate consensus nodes 102; the founding node 101 selects pairs from candidate consensus nodes based on the first transaction submitted to the blockchain and based on the preset consensus node selection rules The consensus node for the first transaction to perform consensus verification; the candidate consensus node 102, after being selected as the consensus node by the initiating node, acts as the consensus node of the first transaction, and performs consensus verification processing on the first transaction.
  • the candidate consensus node has the right to be selected as a consensus node.
  • the founding node can dynamically select the consensus node that performs consensus verification on the first transaction from the candidate consensus nodes, so that each candidate consensus node has the opportunity to participate in the consensus verification, and maintains the dynamic balance of the consensus nodes participating in the consensus verification; and there is no need for a large number of consensus nodes.
  • Consensus nodes participate in consensus verification, which improves the efficiency of consensus verification.
  • the founding user is first selected, based on the preset digital identity information distribution rules, the founding user is assigned digital identity information, and the third verifiable statement is issued to the founding user based on the digital identity information of the founding user (English Full name: Verifiable Credential, abbreviation: VC), where digital identity information can also be called distributed identity (full English name: Decentralized Identifiers, abbreviation: DID), and the third verifiable statement is used to prove that the founding user is authorized to create the founding node permission.
  • the digital identity information of the founding user English Full name: Verifiable Credential, abbreviation: VC
  • digital identity information can also be called distributed identity (full English name: Decentralized Identifiers, abbreviation: DID)
  • the third verifiable statement is used to prove that the founding user is authorized to create the founding node permission.
  • the founding user creates at least one founding node 101 based on the third verifiable statement, and assigns digital identity information to the founding node 101 based on the preset digital identity information distribution rules, and the founding node 101 forms the original blockchain system; the founding node 101 has the ability to add nodes, delete nodes, select candidate consensus nodes from the added nodes, select consensus nodes from candidate consensus nodes that perform consensus verification on the first transaction submitted to the blockchain, participate in consensus, and be an added node Configure initial GAS and other permissions.
  • the digital identity information distribution rules can be set according to needs in practical applications, such as randomly generating a character string composed of one or more types of characters among numbers, letters, and special symbols.
  • the first transaction mentioned above can be a transaction submitted to the blockchain by a node in the blockchain after receiving the user’s transaction submission request. It can be one or more transactions of a user. Or it can be multiple transactions for multiple users.
  • users can request to join the block chain system as needed to deploy the corresponding nodes in the block chain system, or access the blocks through existing nodes connected to the block chain system chain.
  • a user needs to join the blockchain system, he can operate his terminal device to send a system join request to the founding node 101.
  • the founding node 101 receives the system join request sent by the user’s terminal device, and adds to the The terminal device of the user of the blockchain system sends a second verifiable statement; wherein the second verifiable statement is used to prove that the user is granted the right to access the blockchain system.
  • the founding node 101 receives the system joining request sent by the user's terminal device, and assigns digital identity information to the user, and according to the digital identity information of the founding node 101, the digital identity information assigned to the user, and the validity of the verifiable statement to be generated Information such as the time period and the validity field that characterizes the state of the verifiable statement is generated to generate the second verifiable statement; the second verifiable statement is sent to the user's terminal device to prove that the user is granted access to the blockchain system, That is, the user has been added to the blockchain system, and the user request is successful.
  • the founding node 101 adds users to the blockchain system, it also configures initial GAS for users added to the blockchain system, so that users can pay for GAS fees when they transact business or enjoy services based on the blockchain And so on.
  • the first creation request is used to request the creation of a candidate consensus node to participate in consensus verification when the initiating node is selected as a consensus node; correspondingly: the initiating node 101 receives the first creation request sent by the user’s terminal device, if the first creation request is determined A second verifiable statement included in the creation request is legal, and the number of current candidate consensus nodes does not reach the preset number threshold, then candidate consensus node 102 is created; candidate consensus node 102 created by founding node 101 is synchronized on the blockchain Blockchain data.
  • the founding node 101 receives the first creation request sent by the user's terminal device, and obtains the second verifiable claim from the first creation request; the founding node 101 determines the second verifiable claim according to the valid period included in the second verifiable claim Whether the statement is in a valid state, if the second verifiable statement is in an invalid state, the second verifiable statement is determined to be illegal, and the request failure result is sent to the user's terminal device; if the second verifiable statement is in a valid state, the founding node 101 Use your own public key to verify the signature data included in the second verifiable statement.
  • the second verifiable statement is determined to be illegal, and the request failure result is sent to the user's terminal device; if the verification is passed, the first verifiable statement is determined to be invalid. 2.
  • the verifiable claim is legal.
  • the saved candidate consensus node information table determine the number of current candidate consensus nodes, and determine whether the number of current candidate consensus nodes reaches the preset number threshold. If the preset number threshold is reached, the request is determined If it fails, send the request failure result to the user's terminal device; if the preset number threshold is not reached, create a candidate consensus node, endorse the created candidate consensus node, and update the candidate consensus node information table.
  • the founding node 101 has a candidate consensus node information table, and the candidate consensus node information table records the information of each candidate consensus node, such as ip address, port number, etc.; the number threshold can be set according to actual needs. Set, for example, 36.
  • the founding node can create candidate consensus nodes based on user requests to meet users' needs for participating in consensus verification.
  • the created candidate consensus node needs to synchronize the blockchain data in the current blockchain; optional, created
  • the candidate consensus node sends a synchronization request to some or all of the existing nodes in the blockchain system to obtain blockchain data from the existing nodes in the blockchain system.
  • the node that receives the synchronization request first determines the second verifiable hold of the user The number of claims, including the second verifiable claim in a valid state and the second verifiable claim in an invalid state; if the user holds a second verifiable claim, the validity period is read from the second verifiable claim, And send the block chain data within the valid period in plain text, and the block chain data outside the valid period in cipher text to the corresponding candidate consensus node, so that the candidate consensus node can synchronize the blockchain data; if the user If you hold multiple second verifiable claims, determine the valid period of each second verifiable claim in turn, and convert the blockchain data within the valid period in plain text, and block chain outside the valid period in cipher text.
  • the data is sent to the corresponding candidate consensus node to enable the candidate consensus node to synchronize the blockchain data; thus, the candidate consensus node created by the founding node 101 synchronizes the blockchain data in the valid period in plain text, Synchronizing the blockchain data outside the valid period in the form of ciphertext not only ensures that the candidate consensus node created by the founding node 101 has a complete "ledger", it also ensures the privacy and security of the blockchain data.
  • the blockchain system in the embodiment of this specification also includes a data node, which can store data in the blockchain or read data from the blockchain. After the user requests to join the blockchain system successfully, if he wants to become a node with read and write permissions for blockchain data, he can operate his terminal device to send a second creation request to the founding node 101 based on the second verifiable statement.
  • the second creation request is used to request the creation of a data node; correspondingly: the originating node 101 receives the second creation request sent by the user's terminal device, and if it is determined that the second verifiable statement included in the second creation request is legal, then the data node is created ; The data node created by the founding node 101 synchronizes the blockchain data on the blockchain.
  • the process by which the founding node 101 determines that the second verifiable claim included in the second creation request is legal please refer to the aforementioned process for the founding node 101 to determine that the second verifiable claim included in the first creation request is legal;
  • the data node created by the founding node 101 For the process of synchronizing the blockchain data on the blockchain, please refer to the process of synchronizing the blockchain data on the blockchain by the candidate consensus node created by the founding node 101; the repetition will not be repeated here.
  • the data node in the embodiment of this specification is different from the candidate consensus node.
  • the data node only has the authority to read and write blockchain data, and does not have the authority to be selected as a consensus node, that is, the founding node 101 is selecting When consensus nodes are selected, they will not be selected from the data nodes, and the data nodes will not have the opportunity to participate in the consensus.
  • the privilege escalation method can be used to upgrade the data node to a candidate consensus node, and the upgraded node will be It will be recorded in the candidate consensus node information table of the founding node 101, and when the transaction consensus is subsequently carried out, the node may be selected as a consensus node.
  • the specific method of upgrading a data node to a candidate consensus node can be: the founding node 101 issues a fourth verifiable statement to the data node, and the fourth verifiable statement is used to prove that the data node is upgraded to a candidate consensus node and has Select as the authority of the consensus node.
  • the founding node 101 if the current candidate consensus is determined If the number of nodes does not reach the preset number threshold, based on the preset candidate consensus node selection rules, candidate consensus nodes 102 are selected from nodes other than the founding node to ensure that high-quality consensus-capable nodes can participate in consensus verification .
  • candidate consensus nodes and candidate consensus node selection rules can be set according to actual needs; candidate consensus node selection rules, such as the selection of candidate consensus nodes based on the qualifications, credits, and the number of GAS held by the users of the nodes. node.
  • the founding node 101 selects the candidate consensus node 102, it can be selected according to a preset frequency, that is, the candidate consensus node is regularly replaced to ensure the dynamic update of the candidate consensus verification node; it can also be based on the status of the transaction to be agreed, such as The number of transactions in the transaction pool, or the operation of the transaction submission node, determines whether to replace the candidate consensus node for the transaction that is currently pending consensus.
  • the preset candidate consensus node selection rules are used to reselect candidate consensus nodes.
  • the founding node 101 also participates in consensus verification as a consensus node; that is, in the consensus process, at least one founding node 101 and the selected candidate consensus node jointly perform consensus.
  • the founding node 101 according to the preset first consensus node selection rule, select N consensus nodes from the founding node 101 and the candidate consensus node 102 that perform consensus verification on the first transaction; where N is greater than 1 and not An integer greater than the total number of founding nodes 101 and candidate consensus nodes 102; the selected consensus node includes at least one founding node 101 and at least one candidate consensus node 102; the founding node 101 and candidate consensus node 102, after being selected as consensus nodes, As the consensus node of the first transaction, they jointly conduct consensus verification processing on the first transaction.
  • the founding node 101 obtains the response time of each founding node 101 and each candidate consensus node 102 to the preset instruction; according to the obtained response time, from the founding node 101 and the candidate consensus node 102, select N pairs of A consensus node for consensus verification of transactions; wherein, the preset instruction is sent by the submitting node that submits the first transaction, and the submitting node can be any type of node in the blockchain system.
  • the number of founding nodes and candidate consensus nodes participating in the consensus is determined based on the response time.
  • the technical idea is as follows: In the first case, if a large number of candidate consensus nodes are better than the founding node in response time, then A larger number of candidate consensus nodes participating in the consensus can be selected, a smaller number or only one founding node participating in the consensus can be selected; in the second case, if the response time is better than the founding node, there are few or no candidate consensus nodes , The number of founding nodes participating in the consensus can be increased, and a smaller number or only one candidate consensus node participating in the consensus can be selected; in other cases, if the response time is better than the number of candidate consensus nodes of the founding node, it is between the above Between the first case and the second case, you can consider a balanced selection of the founding nodes and candidate consensus nodes participating in the consensus.
  • the founding node 101 obtains the response time of each founding node 101 to obtain the first response time set, and selects the first preset number of response times from the response times of the multiple candidate consensus nodes 102 in ascending order , To obtain the second response time set; and, if the response time in the second response time set, the response time that meets the first condition is A, then select the smallest first target response from the first response time set Time, select N-1 second target response times from the combination of second candidate response times in ascending order; set the founding node 101 corresponding to the first target response time and the candidate consensus corresponding to the second target response time
  • the node 102 is determined to be a consensus node that performs consensus verification on the first transaction.
  • the response time in the second response time set, the response time that meets the first condition is B
  • the smallest two first target response times are selected from the first response time set, and the second candidate response time combination is based on Select N-2 second target response times in order from small to large; determine the founding node 101 corresponding to the first target response time and the candidate consensus node 102 corresponding to the second target response time as the consensus on the first transaction Verified consensus node.
  • two second target response times are selected in the order from small to large, that is, the consensus node includes two founding nodes 101 and two candidate consensus nodes 102.
  • select the smallest three first target response times from the first response time set and select the smallest response time from the second candidate
  • a second target response time is selected in the order from small to large, that is, the consensus node includes three founding nodes 101 and one candidate consensus node 102.
  • the submitting node After the submitting node sends a preset instruction to the blockchain system, it records the response time of each founding node and each candidate consensus node to return response data, and sends the recorded response time to the founding node 101, so that the founding node 101
  • the node 101 selects a consensus node that performs consensus verification on the first transaction from the founding node 101 and the candidate consensus node 102 according to the response time; wherein, the preset instruction is, for example, a ping instruction.
  • the consensus node that performs consensus verification on the first transaction is determined, and the candidate consensus node relatively close to the submitting node can be selected as the consensus node Consensus nodes, and because the submission nodes of different first transactions are usually different, the candidate consensus nodes selected to participate in the consensus verification are also different each time, so that each candidate consensus node has the opportunity to participate in the consensus verification, which satisfies each candidate consensus.
  • the need for nodes to participate in consensus verification realizes the dynamic balance of consensus nodes participating in consensus verification; in addition, the number of nodes participating in consensus verification is greatly reduced, which improves the efficiency of consensus verification.
  • the founding node 101 targets the selected candidate consensus nodes to participate in the consensus verification process.
  • the node 102 adjusts the participation weight of the candidate consensus node to participate in the consensus verification.
  • the founding node 102 records the response time of the selected candidate consensus node 102 to the preset instruction; according to the recorded response time of the candidate consensus node and the number of candidate consensus nodes participating in consensus verification, adjust the corresponding candidate consensus node participating in consensus verification Participation weight.
  • the number of recorded response times of the candidate consensus node is the number of times the candidate consensus node participates in consensus verification.
  • the above formula for calculating participation weight W is an implementation method of this specification.
  • the formula can be adjusted according to the operating conditions and requirements of the blockchain system. For example, the response time and the number of times H can be multiplied by Corresponding coefficients, so that the calculation results can be more compatible with the system operation.
  • the number of users and candidate consensus nodes will continue to increase; and with the continuous operation of the blockchain system, the number of candidate consensus nodes selected as consensus nodes for consensus verification of transactions will also continue increase.
  • the candidate consensus nodes in the blockchain system have a relatively high overall value. Strong stability and credibility; at this time, the founding node 101 can no longer participate in consensus verification in the subsequent transaction consensus verification process, and it is responsible for selecting a certain number of candidate consensus nodes as the consensus nodes of the transaction, and consensus on the transaction verification.
  • the founding node 101 is based on the participation weight of each candidate consensus node 102 and according to the preset second consensus node
  • the selection rule is to select a consensus node that performs consensus verification on the first transaction from the candidate consensus nodes 102.
  • the founding node 101 sorts the participation weights of each candidate consensus node 102, and selects a second preset number of target participation weights from the ranking results in descending order, and assigns the candidate consensus corresponding to the target participation weights
  • the node is determined to be the consensus node that performs consensus verification on the first transaction. From the calculation formula of the aforementioned participation weight, it can be seen that when the candidate consensus node participates in consensus verification the fewer times, the greater the value of the calculated participation weight, therefore, the greater the probability of being selected as a consensus node.
  • the candidate consensus nodes with fewer participation times are selected first, thereby realizing the dynamic balance of the consensus nodes participating in the consensus verification.
  • the founding node 101 determines the number of nodes included in the blockchain system; when the number of nodes included in the blockchain system reaches the first number but not the second number, the second number is greater than The first number, it is determined that the blockchain system meets the first operating condition; the founding node 101 first selects candidate consensus nodes from nodes other than the founding node according to the preset candidate consensus node selection rules, and according to the preset first consensus Node selection rules, from the founding node 101 and the candidate consensus node 102, select N consensus nodes that perform consensus verification on the first transaction; when the number of nodes included in the blockchain system reaches the second number, and/or a certain number When the total number of candidate consensus nodes participating in the consensus reaches a certain value, it is determined that the blockchain system meets the second operating condition
  • the founding node serves as the consensus to verify the first transaction submitted to the blockchain. node.
  • both the first quantity and the second quantity can be set according to actual needs.
  • the candidate consensus nodes 102 selected by the founding node 101 for consensus verification of the first transaction are often different, and in order to make it clear that the selected candidate consensus nodes have consensus on the first transaction Verification authority.
  • the founding node 101 sends a first verifiable statement to the selected candidate consensus node 102, where the first verifiable statement is used to prove that the selected candidate consensus node 102 is The authority to perform consensus verification on the first transaction is granted; the selected candidate consensus node 102 performs consensus verification processing on the first transaction based on the received first verifiable statement.
  • the founding node 101 generates the first verifiable statement based on its own digital identity information, the digital identity information of the selected candidate consensus node 102, the granted authority information, and the valid period of the verifiable statement to be generated, and Send the first verifiable statement to the selected candidate consensus node 102; when the selected candidate consensus node 102 receives the first verifiable statement, it determines that it is granted the authority to conduct consensus on the first transaction, and performs the first transaction Consensus verification.
  • the founding node 101 revokes the corresponding first verifiable statement, that is, the corresponding first verifiable statement.
  • the state of the verifiable statement is set to an invalid state to prevent the currently selected candidate consensus node 102 from performing consensus verification on other transactions based on the first verifiable statement.
  • the consensus authority of the corresponding candidate consensus node can be flexibly controlled based on the first verifiable statement.
  • multiple candidate consensus nodes have the authority to be selected as consensus nodes. They can participate in consensus only when they are selected as consensus nodes, and they are not selected as consensus nodes.
  • the consensus node does not participate in the consensus. Therefore, the founding node in the system can select the consensus node that performs consensus verification on the first transaction from the candidate consensus nodes based on the first transaction submitted to the blockchain and based on the preset consensus node selection rules; the one selected by the founding node
  • the candidate consensus node as the consensus node of the first transaction, performs consensus verification processing on the first transaction.
  • each candidate consensus node has the opportunity to participate in the consensus verification, and the dynamic balance of the consensus nodes participating in the consensus verification is maintained; Consensus nodes participate in consensus verification, which improves the efficiency of consensus verification.
  • Figure 3 is a method provided by one or more embodiments of this specification
  • the schematic flow diagram of the operation method of the blockchain system is shown in Figure 3.
  • the method includes the following steps: Step S202, the founding node selects the rules from the candidate nodes based on the preset consensus node selection rules according to the first transaction submitted to the blockchain The consensus node that performs consensus verification on the first transaction is selected from the consensus nodes; step S204, the selected candidate consensus node performs consensus verification processing on the first transaction.
  • the first transaction can be a transaction submitted to the blockchain by a node in the blockchain after receiving the user's transaction submission request. It can be one or more transactions of a user, or it can be multiple transactions. Multiple transactions by users.
  • a candidate consensus node has the authority to be selected as a consensus node, and can participate in consensus only when it is selected as a consensus node, and does not participate in consensus when it is not selected as a consensus node.
  • the founding node dynamically selects the consensus node that performs the consensus verification of the first transaction from the candidate consensus nodes, so that each candidate consensus node has the opportunity to participate in the consensus verification, and maintains the dynamic balance of the consensus nodes participating in the consensus verification; and there is no need for a large number of consensus nodes.
  • Consensus nodes participate in consensus verification, which improves the efficiency of consensus verification.
  • the initial blockchain system is built by the founding node, and the founding node has the ability to add nodes, delete nodes, select candidate consensus nodes from the added nodes, and select pairs from candidate consensus nodes to submit to the blockchain.
  • the first transaction performs the consensus verification of the consensus node, participates in the consensus, and configures the initial GAS and other permissions for the added node.
  • users can request to join the block chain system as needed to deploy nodes in the block chain system, or access the block chain through existing nodes connected to the block chain system.
  • his terminal device can be operated to send a system joining request to the founding node.
  • the corresponding method further includes: step S300, the founding node receives the system joining request sent by the user's terminal device , Send a second verifiable statement to the terminal device of the user added to the blockchain system; where the second verifiable statement is used to prove that the user is granted the right to access the blockchain system.
  • step S300 includes step S300-2 to step S300-6.
  • step S300-2 the initiating node receives the system joining request sent by the user's terminal device; in one or more embodiments of this specification, the system joining request includes the user information of the user to be added; after step S300-2, it may also include: According to the user information, the identity of the user to be added is verified. If the verification passes, step S300-4 is executed, and if the verification fails, the request failure result is sent to the corresponding terminal device, so that the terminal device displays the request failure information.
  • Step S300-4 the founding node allocates digital identity information to the user, and generates a second verifiable statement based on the allocated digital identity information, where the second verifiable statement is used to prove that the user is granted access to the blockchain system; Yes, the founding node generates a second verifiable statement based on its own digital identity information, digital identity information allocated to users, the validity period of the verifiable statement to be generated, and the validity field that characterizes the state of the verifiable statement.
  • Step S300-6 the founding node sends a second verifiable statement to the user's terminal device, so that the user can access the blockchain system based on the second verifiable statement; wherein, the founding node sends the second verifiable statement to the user's terminal device, To prove that the user is granted access to the blockchain system, that is, the user has been added to the blockchain system, and the user request is successful.
  • the founding node adds users to the blockchain system, it also includes: configuring initial GAS for users added to the blockchain system, so that users can charge for GAS when they conduct business or enjoy services based on the blockchain Payment and other operations.
  • step S402 In order to dynamically balance the consensus nodes participating in consensus verification in the blockchain system, breaking the conventional method of selecting a large number of consensus nodes by nodes with the right to choose or performing consensus verification by fixed consensus nodes, in one or more embodiments of this specification , Gives users the right to choose independently.
  • the user requests to join the blockchain system successfully, if the user wants to participate in consensus verification, he can operate his terminal device to send the first creation request to the founding node based on the second verifiable statement.
  • a candidate consensus node is created by request, and participates in consensus verification when the candidate consensus node is selected as a consensus node by the initiating node; correspondingly, as shown in FIG. 5, the method further includes step S402 to step S406.
  • Step S402 The initiating node receives a first creation request sent by the user's terminal device, where the first creation request is used to request the creation of a candidate consensus node, and the first creation request includes a second verifiable statement.
  • step S404 if the initiating node determines that the second verifiable statement included in the first creation request is legal and the number of current candidate consensus nodes has not reached the preset number threshold, it creates a candidate consensus node.
  • the founding node receives the first creation request sent by the user's terminal device, obtains the second verifiable claim from the first creation request, and determines whether the second verifiable claim is in a valid state according to the validity period included in the second verifiable claim If the second verifiable claim is in an invalid state, the second verifiable claim is determined to be illegal, and the request failure result is sent to the user's terminal device; if the second verifiable claim is in a valid state, the founding node uses the public key of the founding node The signature data included in the second verifiable statement is verified.
  • the second verifiable statement is determined to be illegal, and the request failure result is sent to the user's terminal device; if the verification is passed, the second verifiable statement is determined to be legitimate , Determine the number of current candidate consensus nodes according to the saved candidate consensus node information table, and determine whether the current number of candidate consensus nodes reaches the preset number threshold. If the preset number threshold is reached, the request is determined to be failed, and the request to send fails The result is given to the user's terminal device; if the preset number threshold is not reached, a candidate consensus node is created, the candidate consensus node is endorsed, and the candidate consensus node information table is updated.
  • the candidate consensus node information table stored in the founding node, and the candidate consensus node information table records the information of each candidate consensus node, such as ip address, port number, etc.; the number threshold can be set according to needs in actual applications , For example, 36.
  • the founding node can create candidate consensus nodes based on user requests to meet users' needs for participating in consensus verification.
  • step S406 the candidate consensus node created by the founding node synchronizes the blockchain data on the blockchain.
  • the candidate consensus node created by the founding node sends a synchronization request to some or all of the existing nodes of the blockchain system, thereby obtaining blockchain data from the existing nodes of the blockchain system; further, some considerations Based on business needs, users may have joined and exited the blockchain system before.
  • the node that receives the synchronization request first determines the number of second verifiable claims held by the user, including The second verifiable claim in the valid state and the second verifiable claim in the invalid state; if the user holds a second verifiable claim, the validity period is read from the second verifiable claim, and it will be valid in clear text
  • the block chain data within the time period, the block chain data outside the valid period is sent to the corresponding candidate consensus node in the form of cipher text, so that the candidate consensus node can synchronize the blockchain data; if the user holds multiple second For verifiable claims, the valid period of each second verifiable claim is determined in turn, and the blockchain data in each valid period is sent in plain text, and the blockchain data outside each valid period is sent to the corresponding in cipher text.
  • Candidate consensus nodes to enable candidate consensus nodes to synchronize blockchain data thus, candidate consensus nodes created by the founding node synchronize the blockchain data within the valid period in plaintext, and synchronize in ciphertext.
  • the blockchain data outside the valid period not only ensures that the candidate consensus node created by the founding node has a complete "ledger", but also ensures the privacy and security of the blockchain data.
  • the blockchain system in the embodiment of this specification also includes a data node that can store data in the blockchain or read data from the blockchain.
  • a data node that can store data in the blockchain or read data from the blockchain.
  • Step S502 the originating node receives a second creation request sent by the user's terminal device, where the second creation request is used to request the creation of the data node, and the second creation request includes a second verifiable statement; step S504, if the originating node determines If the second verifiable statement included in the second creation request is legal, the data node is created; wherein, if the initiating node determines that the second verifiable statement included in the second creation request is legal, please refer to the relevant description in step S404. The repetition will not be repeated here.
  • step S506 the data node created by the founding node synchronizes the blockchain data on the blockchain.
  • the process of synchronizing the blockchain data on the blockchain by the created data node is similar to the process of synchronizing the blockchain data on the blockchain by the candidate consensus node created above. You can refer to the above-mentioned related description, and the repetition is here No longer.
  • step S202 it further includes: It is determined that the current number of candidate consensus nodes does not reach the preset number threshold, based on the preset candidate consensus node selection rules, candidate consensus nodes are selected from nodes other than the founding node to ensure the dynamic update of candidate consensus verification nodes. This enables high-quality nodes with consensus capabilities to participate in consensus verification.
  • candidate consensus nodes can be set according to actual needs; candidate consensus node selection rules, such as the qualifications, credits, and the number of GAS held by the users of the nodes Wait for the selection of candidate consensus nodes.
  • the founding node when it selects candidate consensus nodes, it can be selected according to a preset frequency, that is, the consensus node is regularly replaced; it can also be based on the status of the transaction to be agreed, such as the number of transactions in the transaction pool, or the number of transaction submission nodes. Operation status, determine whether to replace the candidate consensus node for the transaction that is currently waiting for consensus.
  • the preset candidate consensus node selection rules are used to reselect candidate consensus nodes.
  • the founding node After the candidate consensus node is selected, in one or more embodiments of this specification, the founding node also participates in consensus verification as a consensus node; that is, in the consensus process, at least one founding node and the selected candidate consensus node jointly carry out a consensus.
  • step S202 based on the preset consensus node selection rule, the consensus node that performs consensus verification on the first transaction is selected from the candidate consensus nodes, including: Step F, according to the preset first consensus node selection rule, from the founding node Nodes and candidate consensus nodes select N consensus nodes that perform consensus verification on the first transaction; where N is an integer greater than 1 and not greater than the total number of founding nodes and consensus nodes; the selected consensus node includes at least one founding node and At least one candidate consensus node; specifically, the founding node obtains the response time of each founding node and each candidate consensus node to the preset instruction, and selects N pairs from the founding node and the candidate consensus node according to the obtained response time A consensus node for consensus verification of transactions; wherein, the preset instruction is sent by the submitting node that submits the first transaction, and the submitting node can be any type of node in the blockchain system.
  • the number of founding nodes and candidate consensus nodes participating in the consensus is determined based on the response time.
  • the technical idea is as follows: In the first case, if a large number of candidate consensus nodes are better than the founding node in response time, then A larger number of candidate consensus nodes participating in the consensus can be selected, a smaller number or only one founding node participating in the consensus can be selected; in the second case, if the response time is better than the founding node, there are few or no candidate consensus nodes , The number of founding nodes participating in the consensus can be increased, and a smaller number or only one candidate consensus node participating in the consensus can be selected; in other cases, if the response time is better than the number of candidate consensus nodes of the founding node, it is between the above Between the first case and the second case, you can consider a balanced selection of the founding nodes and candidate consensus nodes participating in the consensus.
  • the founding node obtains the response time of each founding node and each candidate consensus node to the preset instruction, and according to the obtained response time, selects N from the founding node and the candidate consensus node to perform consensus verification on the first transaction
  • the consensus node includes: the founding node obtains the response time of each founding node to obtain the first response time set, and selects the first preset number of response times from the response time of multiple candidate consensus nodes in descending order, and Obtain the second response time set; and, if the response time in the second response time set meets the first condition is A, then select the smallest first target response time from the first response time set, Select N-1 second target response times from the second candidate response time combination in ascending order; determine the founding node corresponding to the first target response time and the candidate consensus node corresponding to the second target response time It is a consensus node that performs consensus verification on the first transaction.
  • the response time in the second response time set, the response time that meets the first condition is B
  • the smallest two first target response times are selected from the first response time set, and the second candidate response time combination is based on Select N-2 second target response times in order from small to large; the founding node corresponding to the first target response time and the candidate consensus node corresponding to the second target response time are determined as the consensus verification of the first transaction Consensus node.
  • the submitting node After the submitting node sends a preset instruction to the blockchain system, it records the response time of each founding node and each candidate consensus node to return response data, and sends the recorded response time to the founding node so that the founding node According to the response time, a consensus node that performs consensus verification on the first transaction is selected from the founding node and the candidate consensus node; wherein, the preset instruction is, for example, a ping instruction.
  • the candidate consensus node selected in step S204 performs consensus verification processing on the first transaction, including: the selected founding node and candidate consensus node jointly perform consensus verification processing on the first transaction.
  • the consensus node that performs consensus verification on the first transaction is determined, and the candidate consensus node relatively close to the submitting node can be selected as the consensus node .
  • the candidate consensus nodes selected to participate in the consensus verification are also different each time, so that each candidate consensus node has the opportunity to participate in the consensus verification, which meets the requirements of each candidate consensus node.
  • the need to participate in consensus verification realizes the dynamic balance of consensus nodes participating in consensus verification; moreover, the number of nodes participating in consensus verification is greatly reduced, which improves the efficiency of consensus verification.
  • step F select N consensuses that perform consensus verification on the first transaction After the node, it also includes: step Y, the initiating node adjusts the participating weight of the candidate consensus node to participate in the consensus verification for the selected candidate verification node that participates in the consensus verification process.
  • the founding node records the response time of the selected candidate consensus node to the preset instruction, and adjusts the participation weight of the corresponding candidate consensus node to participate in consensus verification according to the recorded response time of the candidate consensus node and the number of times the candidate consensus node participates in consensus verification.
  • the number of recorded response times of the candidate consensus node is the number of times the candidate consensus node participates in consensus verification.
  • the above formula for calculating participation weight W is an implementation method of this specification.
  • the formula can be adjusted according to the operating conditions and requirements of the blockchain system. For example, the response time and the number of times H can be multiplied by Corresponding coefficients, so that the calculation results can be more compatible with the system operation.
  • the number of candidate consensus nodes selected as consensus nodes to verify transactions will continue to increase.
  • the candidate consensus nodes in the blockchain system have a relatively high overall value. Strong stability and credibility; at this time, the founding node can no longer participate in consensus verification in the subsequent transaction consensus verification process, and it is responsible for selecting a certain number of candidate consensus nodes as the consensus node of the transaction, and verifying the consensus of the transaction .
  • step S202 based on the preset consensus node selection rule, the first transaction is selected from the candidate consensus nodes
  • the consensus node for consensus verification includes: based on the participation weights of multiple candidate consensus nodes, and according to a preset second consensus node selection rule, a consensus node that performs consensus verification on the first transaction is selected from the candidate consensus nodes.
  • the founding node sorts the current participation weights of each candidate consensus node, and selects the second preset number of target participation weights from the ranking results in descending order, and assigns the candidate consensus nodes corresponding to the target participation weights Determined as the consensus node for consensus verification of the first transaction. From the calculation formula of the aforementioned participation weight, it can be seen that when the candidate consensus node participates in consensus verification the fewer times, the greater the value of the calculated participation weight, therefore, the greater the probability of being selected as a consensus node. The candidate consensus nodes with fewer participation times are selected first, thereby realizing the dynamic balance of the consensus nodes participating in the consensus verification.
  • the method selects the consensus node; specifically, the method further includes: the founding node determines the number of nodes included in the blockchain system; when the number of nodes included in the blockchain system reaches the first number but not the second number, the second If the number is greater than the first number, it is determined that the blockchain system meets the first operating condition; the founding node first selects candidate consensus nodes from nodes other than the founding node according to the preset candidate consensus node selection rules, and according to the preset first Consensus node selection rules, select N consensus nodes from the founding node and candidate consensus nodes that perform consensus verification on the first transaction; when the number of nodes included in the blockchain system reaches the second number, and/or a certain number of candidates When the total number of times the consensus node participates in the consensus reaches a certain value,
  • the founding node serves as the consensus to verify the first transaction submitted to the blockchain. node.
  • both the first quantity and the second quantity can be set according to actual needs.
  • step S202 it further includes: step S203, the initiating node sends a first verifiable statement to the selected candidate consensus node, wherein the first verifiable statement It is used to prove that the selected candidate consensus node is granted the authority to perform consensus verification on the first transaction; correspondingly, step S204 includes: the selected candidate consensus node performs the first transaction on the first transaction based on the received first verifiable statement Consensus verification processing.
  • the founding node generates a verifiable statement based on its own digital identity information, the digital identity information of the selected candidate consensus node, the granted authority information, the valid period of the verifiable statement to be generated, and other information, and sends it to the selected
  • the candidate consensus node sends the first verifiable statement; when the selected candidate consensus node receives the first verifiable statement, it determines that it is granted the authority to conduct consensus on the first transaction, and performs consensus verification on the first transaction.
  • the founding node revokes the corresponding verifiable statement, that is, the state of the corresponding first verifiable statement Set to an invalid state to prevent the currently selected candidate consensus node from performing consensus verification on other transactions based on the first verifiable statement.
  • the consensus authority of the corresponding candidate consensus node can be flexibly controlled based on the first verifiable statement.
  • the founding node adds users to the blockchain system based on the system join request sent by the user in the aforementioned manner, and based on the creation request sent by the added user Create corresponding candidate consensus nodes or data nodes; and, the founding node uses different methods to select consensus nodes according to the different operating states of the blockchain system, and the consensus node pair selected by the founding node is submitted to the first of the blockchain system.
  • the transaction undergoes consensus verification processing.
  • the process of the founding node selecting the consensus node to perform the consensus verification processing is shown in FIG.
  • Step S602 The initiating node determines the number of nodes included in the blockchain system. If the number of nodes included in the blockchain system does not reach the first number, then step S604 is executed. If the number of nodes included in the blockchain system reaches the first If the number of nodes does not reach the second number, then step S606 is executed. If the number of nodes included in the blockchain system reaches the second number, and/or the total number of candidate consensus nodes participating in the consensus reaches a certain value, then step S606 is executed S616.
  • step S604 the founding node acts as a consensus node and performs consensus verification processing on the first transaction submitted to the blockchain; in step S606, if the founding node determines that the number of current candidate consensus nodes has not reached the preset number threshold, it will perform the consensus verification process according to the prediction Suppose the candidate consensus node selection rule is to select candidate consensus nodes from nodes other than the founding node.
  • step S608 the founding node selects N consensus nodes that perform consensus verification on the first transaction from the founding node and candidate consensus nodes based on the preset first consensus node selection rule based on the first transaction submitted to the blockchain; where , N is an integer greater than 1 and not greater than the total number of founding nodes and consensus nodes; the selected consensus node includes at least one founding node and at least one candidate consensus node.
  • Step S610 the initiating node sends a first verifiable statement to the selected candidate consensus node, where the first verifiable statement is used to prove that the selected candidate consensus node is granted the authority to perform consensus verification on the first transaction; step S612, The founding node adjusts the participating weight of the candidate consensus node to participate in the consensus verification for the selected candidate verification node to participate in the consensus verification process; step S614, the selected founding node and the selected candidate consensus node are used as the consensus verification for the first transaction Consensus nodes of, jointly conduct consensus verification processing on the first transaction.
  • Step S616 According to the first transaction submitted to the blockchain, the founding node selects the consensus verification of the first transaction from the candidate consensus nodes based on the participation weight of each candidate consensus node, and according to the preset second consensus node selection rule Consensus node; step S618, the founding node sends a first verifiable statement to the selected candidate consensus node, where the first verifiable statement is used to prove that the selected candidate consensus node is granted the authority to perform consensus verification on the first transaction; In step S620, the selected candidate consensus node serves as a consensus node that performs consensus verification on the first transaction, and performs consensus verification processing on the first transaction.
  • a candidate consensus node has the authority to be selected as a consensus node, and can participate in consensus only when it is selected as a consensus node, and does not participate in consensus when it is not selected as a consensus node. Therefore, the founding node can select the consensus node that performs consensus verification on the first transaction from the candidate consensus nodes based on the preset consensus node selection rules according to the first transaction submitted to the blockchain; the candidate consensus node selected by the founding node, As the consensus node of the first transaction, it performs consensus verification processing on the first transaction.
  • each candidate consensus node has the opportunity to participate in the consensus verification, and the dynamic balance of the consensus nodes participating in the consensus verification is maintained; and there is no need for a large number of consensus nodes.
  • Consensus nodes participate in consensus verification, which improves the efficiency of consensus verification.
  • FIG. 9 is a schematic diagram of the module composition of the blockchain operating device applied to the founding node provided by one or more embodiments of this specification.
  • the device includes: a selection module 701, which is based on the first submitted to the blockchain.
  • a transaction based on a preset consensus node selection rule, select a consensus node that performs consensus verification on the first transaction from among the candidate consensus nodes; to achieve consensus on the first transaction through the selected candidate consensus node Verification processing.
  • the candidate consensus node has the right to be selected as a consensus node. When it is selected as a consensus node, it can participate in the consensus. When it is not selected as a consensus node, it does not participate in the consensus;
  • the consensus node that performs the consensus verification on the first transaction is selected from the candidate consensus nodes, so that each candidate consensus node has the opportunity to participate in the consensus verification, and the dynamic balance of the consensus nodes participating in the consensus verification is maintained; and there is no need for a large number of consensus nodes to participate in the consensus verification. , Improve the efficiency of consensus verification.
  • the device further includes: a sending module; the sending module, after the selection module 701 selects a consensus node that performs consensus verification on the first transaction from among the candidate consensus nodes, sends a message to the selected candidate consensus node The node sends a first verifiable statement; so that the selected candidate consensus node performs consensus verification on the first transaction based on the first verifiable statement; wherein, the first verifiable statement is used to prove that the The selected candidate consensus node is granted the authority to perform consensus verification on the first transaction.
  • the selection module 701 selects N consensus nodes that perform consensus verification on the first transaction from the founding node and the candidate consensus node according to a preset first consensus node selection rule, and Perform consensus verification processing on the first transaction through the selected founding node and candidate consensus node; wherein, N is an integer greater than 1 and not greater than the total number of the founding node and the consensus node; the selected The consensus node includes at least one founding node and at least one candidate consensus node.
  • the selection module 701 obtains the response time of each of the founding nodes and each of the candidate consensus nodes to a preset instruction, wherein the preset instruction is issued by the submitting node that submitted the first transaction Send; and, according to the response time, select N consensus nodes that perform consensus verification on the first transaction from the founding node and the candidate consensus node.
  • the selection module 701 obtains the response time of each founding node to obtain a first response time set, and selects the first preset number from the response time of a plurality of candidate consensus nodes in descending order To obtain the second response time set; and, if the response time in the second response time set, the response time that meets the first condition is A, then select the smallest 1 from the first response time set First target response time, select N-1 second target response times from the combination of the second candidate response times in ascending order; set the founding node corresponding to the first target response time, the The candidate consensus node corresponding to the second target response time is determined to be the consensus node that performs consensus verification on the first transaction.
  • the response time in the second response time set the response time that meets the first condition is B
  • select the smallest two first target response times from the first response time set and respond from the second candidate
  • N-2 second target response times are selected in ascending order; the founding node corresponding to the first target response time and the candidate consensus node corresponding to the second target response time are determined as A consensus node that performs consensus verification on the first transaction.
  • the response time in the second response time set, the response time that meets the first condition is C
  • N-3 second target response times are selected in ascending order
  • the founding node corresponding to the first target response time and the candidate consensus node corresponding to the second target response time are determined as A consensus node that performs consensus verification on the first transaction
  • A, B, and C are integers.
  • the device further includes: an adjustment module; the adjustment module, after the selection module 701 selects N consensus nodes that perform consensus verification on the first transaction, respond to the selected consensus verification process
  • the candidate verification node adjusts the participation weight of the candidate consensus node in the consensus verification.
  • the adjustment module records the response time of the selected candidate consensus node; and adjusts the corresponding candidate according to the recorded response time of the candidate consensus node and the number of times the candidate consensus node participates in consensus verification The weight of participation of consensus nodes in consensus verification.
  • the selection module 701 based on the participation weights of the multiple candidate consensus nodes, selects from the candidate consensus nodes to perform the first transaction according to a preset second consensus node selection rule Consensus node for consensus verification.
  • the apparatus further includes: an adding module; the adding module receives a system joining request sent by a user's terminal device, and sends a second verifiable statement to the user's terminal device added to the blockchain system; Wherein, the second verifiable statement is used to prove that the user is authorized to access the blockchain system.
  • the apparatus further includes: a first creation module; the first creation module receives a first creation request sent by a terminal device of the user, wherein the first creation request is used to request the creation of a candidate consensus Node, the first creation request includes the second verifiable statement; and, if it is determined that the second verifiable statement included in the first creation request is legal and the current number of candidate consensus nodes has not reached the expected Set the number threshold, then create candidate consensus nodes.
  • a first creation module receives a first creation request sent by a terminal device of the user, wherein the first creation request is used to request the creation of a candidate consensus Node, the first creation request includes the second verifiable statement; and, if it is determined that the second verifiable statement included in the first creation request is legal and the current number of candidate consensus nodes has not reached the expected Set the number threshold, then create candidate consensus nodes.
  • the blockchain system further includes a data node, and the data node saves data in the blockchain or reads data from the blockchain;
  • the device further includes: a second creation Module; the second creation module receives a second creation request sent by the user's terminal device, wherein the second creation request is used to request creation of the data node, and the second creation request includes the first creation request 2.
  • the device further includes: a configuration module; the configuration module configures an initial GAS for users added to the blockchain system.
  • the blockchain operation device provided in one or more embodiments of this specification can select pairs from multiple candidate consensus nodes included in the system based on the first transaction submitted to the blockchain and based on preset consensus node selection rules.
  • the consensus node for consensus verification of the first transaction the candidate consensus node selected by the initiating node, as the consensus node of the first transaction, performs consensus verification processing on the first transaction. Therefore, by dynamically selecting the consensus node that performs the consensus verification of the first transaction from the candidate consensus nodes, each candidate consensus node has the opportunity to participate in the consensus verification, and the dynamic balance of the consensus nodes participating in the consensus verification is maintained; Consensus nodes participate in consensus verification, which improves the efficiency of consensus verification.
  • FIG. 10 is a schematic structural diagram of a blockchain operation device provided by one or more embodiments of this specification.
  • the blockchain running equipment may have relatively large differences due to different configurations or performances, and may include one or more processors 801 and a memory 802, and the memory 802 may store one or more storage applications Program or data.
  • the memory 802 may be short-term storage or persistent storage.
  • the application program stored in the memory 802 may include one or more modules (not shown in the figure), and each module may include a series of computer-executable instructions in the blockchain operating device.
  • the processor 801 may be configured to communicate with the memory 802, and execute a series of computer-executable instructions in the memory 802 on the blockchain running device.
  • the blockchain operation device may also include one or more power supplies 803, one or more wired or wireless network interfaces 804, one or more input and output interfaces 805, one or more keyboards 806, and so on.
  • the blockchain operating device includes a memory and one or more programs, wherein one or more programs are stored in the memory, and the one or more programs may include one or more modules, And each module may include a series of computer-executable instructions in the blockchain operating device, and the one or more programs configured to be executed by one or more processors include computer-executable instructions for performing the following: For the first transaction submitted to the blockchain, based on the preset consensus node selection rules, a consensus node that performs consensus verification on the first transaction is selected from candidate consensus nodes; The first transaction is subjected to consensus verification processing.
  • the candidate consensus node has the right to be selected as a consensus node. When it is selected as a consensus node, it can participate in the consensus. When it is not selected as a consensus node, it does not participate in the consensus;
  • the consensus node that performs the consensus verification on the first transaction is selected from the candidate consensus nodes, so that each candidate consensus node has the opportunity to participate in the consensus verification, and the dynamic balance of the consensus nodes participating in the consensus verification is maintained; and there is no need for a large number of consensus nodes to participate in the consensus verification. , Improve the efficiency of consensus verification.
  • the method further includes: sending the first verifiable candidate to the selected candidate consensus node Statement, so that the selected candidate consensus node performs consensus verification processing on the first transaction based on the received first verifiable statement; wherein, the first verifiable statement is used to prove that the selected The candidate consensus node of is granted the authority to perform consensus verification on the first transaction.
  • the selection of a consensus node that performs consensus verification on the first transaction from candidate consensus nodes based on a preset consensus node selection rule includes: according to a preset first transaction A consensus node selection rule, selecting N consensus nodes for consensus verification of the first transaction from the founding node and the candidate consensus node; to pass the selected founding node and the selected candidate Consensus nodes jointly perform consensus verification processing on the first transaction; where N is an integer greater than 1 and not greater than the total number of the founding node and the consensus node; the selected consensus node includes at least one founding node And at least one candidate consensus node.
  • the consensus node includes: obtaining the response time of each of the founding nodes and each of the candidate consensus nodes to a preset instruction, wherein the preset instruction is sent by the submitting node that submitted the first transaction; and, According to the response time, N consensus nodes that perform consensus verification on the first transaction are selected from the founding node and the candidate consensus nodes.
  • N consensus nodes that perform consensus verification on the first transaction from the founding node and the candidate consensus node It includes: obtaining the response time of each of the founding nodes to obtain a first response time set, and selecting a first preset number of response times from the response times of multiple candidate consensus nodes in ascending order to obtain the second response time.
  • the candidate consensus node is determined to be a consensus node that performs consensus verification on the first transaction.
  • the response time in the second response time set the response time that meets the first condition is B
  • select the smallest two first target response times from the first response time set and respond from the second candidate
  • N-2 second target response times are selected in ascending order; the founding node corresponding to the first target response time and the candidate consensus node corresponding to the second target response time are determined as A consensus node that performs consensus verification on the first transaction.
  • the response time in the second response time set, the response time that meets the first condition is C
  • N-3 second target response times are selected in ascending order
  • the founding node corresponding to the first target response time and the candidate consensus node corresponding to the second target response time are determined as A consensus node that performs consensus verification on the first transaction
  • A, B, and C are integers.
  • the method further includes: adjusting all the selected verification nodes to participate in the consensus verification process.
  • the participating weights of candidate consensus nodes participating in consensus verification are selected.
  • the adjusting the participation weight of the candidate consensus node participating in consensus verification includes: recording the response time of the selected candidate consensus node; and, according to the recorded The response time of the candidate consensus node and the number of times that the candidate consensus node participates in the consensus verification adjust the participation weight of the corresponding candidate consensus node to participate in the consensus verification.
  • the selection of a consensus node that performs consensus verification on the first transaction from candidate consensus nodes based on a preset consensus node selection rule includes: The participation weight of the candidate consensus node selects a consensus node that performs consensus verification on the first transaction from the candidate consensus nodes according to a preset second consensus node selection rule.
  • the method further includes: receiving a system joining request sent by the user's terminal device, and sending a second verifiable statement to the user's terminal device added to the blockchain system ; Wherein, the second verifiable statement is used to prove that the user is granted the right to access the blockchain system.
  • the method further includes: receiving a first creation request sent by the user's terminal device, where the first creation request is used to request the creation of a candidate consensus node, and The first creation request includes the second verifiable statement; if it is determined that the second verifiable statement included in the first creation request is legal and the current number of candidate consensus nodes does not reach the preset number threshold, Then create a candidate consensus node; and, the candidate consensus node created by the founding node synchronizes the blockchain data on the blockchain.
  • the blockchain system further includes a data node, and the data node saves data in the blockchain or reads data from the blockchain;
  • the method further includes: receiving a second creation request sent by the user's terminal device, wherein the second creation request is used to request creation of the data node, and the second creation request includes the second verifiable Statement; if it is determined that the second verifiable statement included in the second creation request is legal, create a data node; and, the data node created by the founding node synchronizes the blockchain on the blockchain data.
  • the second verifiable statement includes the validity period
  • the synchronization of the blockchain data on the blockchain includes: synchronizing the validity period in the form of clear text
  • the block chain data is synchronized with the block chain data outside the valid period in the form of ciphertext.
  • the method further includes: the initiating node configures an initial GAS for the user added to the blockchain system.
  • the blockchain operation equipment provided by one or more embodiments of this specification can select pairs from multiple candidate consensus nodes included in the system according to the first transaction submitted to the blockchain and based on preset consensus node selection rules.
  • the consensus node for consensus verification of the first transaction the candidate consensus node selected by the initiating node, as the consensus node of the first transaction, performs consensus verification processing on the first transaction. Therefore, by dynamically selecting the consensus node that performs the consensus verification of the first transaction from the candidate consensus nodes, each candidate consensus node has the opportunity to participate in the consensus verification, and the dynamic balance of the consensus nodes participating in the consensus verification is maintained; Consensus nodes participate in consensus verification, which improves the efficiency of consensus verification.
  • one or more embodiments of this specification also provide a storage medium for storing computer executable instructions.
  • the storage medium can be a U disk, an optical disk, a hard disk, etc.
  • the candidate consensus node has the right to be selected as a consensus node. When it is selected as a consensus node, it can participate in the consensus. When it is not selected as a consensus node, it does not participate in the consensus;
  • the consensus node that performs the consensus verification on the first transaction is selected from the candidate consensus nodes, so that each candidate consensus node has the opportunity to participate in the consensus verification, and the dynamic balance of the consensus nodes participating in the consensus verification is maintained; and there is no need for a large number of consensus nodes to participate in the consensus verification. , Improve the efficiency of consensus verification.
  • the method further includes: The consensus node sends the first verifiable statement, so that the selected candidate consensus node performs consensus verification processing on the first transaction based on the received first verifiable statement; wherein, the first verifiable statement It is used to prove that the selected candidate consensus node is granted the authority to perform consensus verification on the first transaction.
  • a consensus node that performs consensus verification on the first transaction is selected from candidate consensus nodes, It includes: selecting N consensus nodes that perform consensus verification on the first transaction from the founding node and the candidate consensus node according to a preset first consensus node selection rule; to pass the selected founding node Perform consensus verification processing on the first transaction together with the selected candidate consensus node; wherein N is an integer greater than 1 and not greater than the total number of the founding node and the consensus node; the selected The consensus node includes at least one founding node and at least one candidate consensus node.
  • N pairs are selected from the founding node and the candidate consensus node.
  • the consensus node for performing consensus verification on the first transaction includes: obtaining the response time of each of the founding nodes and each of the candidate consensus nodes to a preset instruction, wherein the preset instruction is submitted by the first transaction And, according to the response time, select N consensus nodes that perform consensus verification on the first transaction from the founding node and the candidate consensus node.
  • the consensus node for consensus verification includes: obtaining the response time of each of the founding nodes to obtain a first response time set, and selecting a first preset number from the response time of a plurality of candidate consensus nodes in descending order Response time to obtain the second response time set; and, if the response time in the second response time set, the response time that meets the first condition is A, select the smallest one from the first response time set
  • the first target response time, N-1 second target response times are selected from the combination of the second candidate response times in ascending order; the founding node and the first target response time corresponding to the first target response time are selected 2.
  • the candidate consensus node corresponding to the target response time is determined to be the consensus node that performs consensus verification on the first transaction.
  • the response time in the second response time set the response time that meets the first condition is B
  • select the smallest two first target response times from the first response time set and respond from the second candidate
  • N-2 second target response times are selected in ascending order; the founding node corresponding to the first target response time and the candidate consensus node corresponding to the second target response time are determined as A consensus node that performs consensus verification on the first transaction.
  • the response time in the second response time set, the response time that meets the first condition is C
  • N-3 second target response times are selected in ascending order
  • the founding node corresponding to the first target response time and the candidate consensus node corresponding to the second target response time are determined as A consensus node that performs consensus verification on the first transaction
  • A, B, and C are integers.
  • the method further includes: processing for the selected participating consensus verification The candidate verification node adjusts the participation weight of the candidate consensus node to participate in the consensus verification.
  • the adjusting the participation weight of the candidate consensus node in consensus verification includes: recording the response time of the selected candidate consensus node; And, according to the recorded response time of the candidate consensus node and the number of times the candidate consensus node participates in the consensus verification, the participation weight of the corresponding candidate consensus node in the consensus verification is adjusted.
  • a consensus node that performs consensus verification on the first transaction is selected from candidate consensus nodes, It includes: selecting a consensus node that performs consensus verification on the first transaction from the candidate consensus nodes based on the participation weights of the multiple candidate consensus nodes and according to a preset second consensus node selection rule.
  • the method further includes: receiving a system joining request sent by the user's terminal device, and sending the system join request to the user's terminal device added to the blockchain system.
  • the device sends a second verifiable statement; wherein the second verifiable statement is used to prove that the user is authorized to access the blockchain system.
  • the method further includes: receiving a first creation request sent by a terminal device of the user, where the first creation request is used for Request to create a candidate consensus node, the first creation request includes the second verifiable statement; if it is determined that the second verifiable statement included in the first creation request is legal, and the current number of candidate consensus nodes is not When the preset number threshold is reached, a candidate consensus node is created; and, the candidate consensus node created by the founding node synchronizes the blockchain data on the blockchain.
  • the blockchain system further includes a data node, and the data node saves data in the blockchain or downloads data from the blockchain. Reading data in the block chain; the method further includes: receiving a second creation request sent by the user's terminal device, wherein the second creation request is used to request creation of the data node, and the second creation request Including the second verifiable statement; if it is determined that the second verifiable statement included in the second creation request is legal, create a data node; and, synchronize the zone with the data node created by the initiator node Blockchain data on the blockchain.
  • the second verifiable statement includes an expiration date
  • the synchronization of the blockchain data on the blockchain includes: Synchronize the blockchain data within the valid period in the form of synchronization, and synchronize the blockchain data outside the valid period in the form of ciphertext.
  • the method further includes: the founding node configures an initial GAS for the user added to the blockchain system.
  • the computer executable instructions stored in the storage medium provided by one or more embodiments of this specification are executed by a processor, they can be based on a preset consensus node selection rule based on the first transaction submitted to the blockchain, and the system includes The consensus node that performs consensus verification on the first transaction is selected from among the multiple candidate consensus nodes; the candidate consensus node selected by the initiating node is used as the consensus node of the first transaction, and the consensus verification process is performed on the first transaction.
  • each candidate consensus node has the opportunity to participate in the consensus verification, and the dynamic balance of the consensus nodes participating in the consensus verification is maintained; Consensus nodes participate in consensus verification, which improves the efficiency of consensus verification.
  • a Programmable Logic Device (such as a Field Programmable Gate Array (FPGA)) is such an integrated circuit whose logic function is determined by the user's programming of the device.
  • HDL Hardware Description Language
  • the controller can be implemented in any suitable manner.
  • the controller can take the form of, for example, a microprocessor or a processor and a computer-readable medium storing computer-readable program codes (such as software or firmware) executable by the (micro)processor. , Logic gates, switches, application specific integrated circuits (ASICs), programmable logic controllers and embedded microcontrollers. Examples of controllers include but are not limited to the following microcontrollers: ARC625D, Atmel AT91SAM, Microchip PIC18F26K20 and Silicon Labs C8051F320, the memory controller can also be implemented as part of the memory control logic.
  • controllers in addition to implementing the controller in a purely computer-readable program code manner, it is entirely possible to program the method steps to make the controller use logic gates, switches, application-specific integrated circuits, programmable logic controllers, and embedded logic.
  • the same function can be realized in the form of a microcontroller, etc. Therefore, such a controller can be regarded as a hardware component, and the devices included in it for realizing various functions can also be regarded as a structure within the hardware component. Or even, the device for realizing various functions can be regarded as both a software module for realizing the method and a structure within a hardware component.
  • a typical implementation device is a computer.
  • the computer may be, for example, a personal computer, a laptop computer, a cell phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, a wearable device, or Any combination of these devices.
  • one or more embodiments of this specification can be provided as a method, a system, or a computer program product. Therefore, one or more embodiments of this specification may adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Moreover, this specification can take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program codes.
  • computer-usable storage media including but not limited to disk storage, CD-ROM, optical storage, etc.
  • These computer program instructions can also be stored in a computer-readable memory that can guide a computer or other programmable data processing equipment to work in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture including the instruction device.
  • the device implements the functions specified in one process or multiple processes in the flowchart and/or one block or multiple blocks in the block diagram.
  • These computer program instructions can also be loaded on a computer or other programmable data processing equipment, so that a series of operation steps are executed on the computer or other programmable equipment to produce computer-implemented processing, so as to execute on the computer or other programmable equipment.
  • the instructions provide steps for implementing the functions specified in one process or multiple processes in the flowchart and/or one block or multiple blocks in the block diagram.
  • the computing device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
  • processors CPUs
  • input/output interfaces network interfaces
  • memory volatile and non-volatile memory
  • the memory may include non-permanent memory in a computer-readable medium, random access memory (RAM) and/or non-volatile memory, such as read-only memory (ROM) or flash memory (flash RAM).
  • RAM random access memory
  • ROM read-only memory
  • flash RAM flash memory
  • Computer-readable media include permanent and non-permanent, removable and non-removable media, and information storage can be realized by any method or technology.
  • the information can be computer-readable instructions, data structures, program modules, or other data.
  • Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disc (DVD) or other optical storage, Magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices or any other non-transmission media can be used to store information that can be accessed by computing devices. According to the definition in this article, computer-readable media does not include transitory media, such as modulated data signals and carrier waves.
  • One or more embodiments of this specification may be described in the general context of computer-executable instructions executed by a computer, such as program modules.
  • program modules include routines, programs, objects, components, data structures, etc. that perform specific tasks or implement specific abstract data types.
  • One or more embodiments of this specification can also be practiced in distributed computing environments. In these distributed computing environments, tasks are performed by remote processing devices connected through a communication network. In a distributed computing environment, program modules can be located in local and remote computer storage media including storage devices.

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Engineering & Computer Science (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

一种区块链系统及其运行方法、装置及设备,其中,区块链系统包括:至少一个创始节点和多个候选共识节点;创始节点,根据提交至区块链的第一交易,基于预设的共识节点选取规则,从候选共识节点中选取对第一交易进行共识验证的共识节点(S202);候选共识节点,在被创始节点选取为共识节点后,作为第一交易的共识节点,对第一交易进行共识验证处理。

Description

区块链系统及其运行方法、装置及设备 技术领域
本文件涉及区块链技术领域,尤其涉及一种区块链系统及其运行方法、装置及设备。
背景技术
区块链是一种分布式记账系统,共识机制确保了不同节点中账本数据的一致性和正确性。当前,在公有链的共识验证过程中,通常需要大量节点参与,而这不可避免的降低了共识效率;而在联盟链的共识验证过程中,通常是预先选定数个固定节点参与共识验证,其他想要参与共识验证的节点无法参与共识验证。
发明内容
本说明书实施例提供了一种区块链系统。该区块链系统包括至少一个创始节点和多个候选共识节点。所述创始节点,根据提交至所述区块链的第一交易,基于预设的共识节点选取规则,从所述候选共识节点中选取对所述第一交易进行共识验证的共识节点。所述候选共识节点,在被所述创始节点选取为共识节点后,作为所述第一交易的共识节点,对所述第一交易进行共识验证处理。
本说明书一个或多个实施例提供了一种区块链系统的运行方法。该方法包括创始节点根据提交至区块链的第一交易,基于预设的共识节点选取规则,从候选共识节点中选取对所述第一交易进行共识验证的共识节点。被选取的所述候选共识节点,对所述第一交易进行共识验证处理。
本说明书一个或多个实施例提供了一种区块链运行装置,应用于区块链系统的创始节点。所述装置包括选取模块,根据提交至区块链的第一交易,基于预设的共识节点选取规则,从候选共识节点中选取对所述第一交易进行共识验证的共识节点,以通过被选取的所述候选共识节点,对所述第一交易进行共识验证处理。
本说明书一个或多个实施例提供了一种区块链运行设备,包括处理器。该设备还包括被安排成存储计算机可执行指令的存储器。所述计算机可执行指令在被执行时使所述处理器根据提交至区块链的第一交易,基于预设的共识节点选取规则,从候选共识节点中选取对所述第一交易进行共识验证的共识节点,以通过被选取的所述候选共识节点, 对所述第一交易进行共识验证处理。
本说明书一个或多个实施例提供了一种存储介质,用于存储计算机可执行指令。所述计算机可执行指令在被执行时根据提交至区块链的第一交易,基于预设的共识节点选取规则,从候选共识节点中选取对所述第一交易进行共识验证的共识节点,以通过被选取的所述候选共识节点,对所述第一交易进行共识验证处理。
附图说明
为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书一个或多个实施例提供的一种区块链系统的场景示意图;
图2为本说明书一个或多个实施例提供的一种区块链系统的组成示意图;
图3为本说明书一个或多个实施例提供的一种区块链系统的运行方法的第一种流程示意图;
图4为本说明书一个或多个实施例提供的一种添加用户的流程示意图;
图5为本说明书一个或多个实施例提供的一种创建候选共识节点的流程示意图;
图6为本说明书一个或多个实施例提供的一种创建数据节点的流程示意图;
图7为本说明书一个或多个实施例提供的一种区块链系统的运行方法的第二种流程示意图;
图8为本说明书一个或多个实施例提供的选取共识节点进行共识验证处理的流程示意图;
图9为本说明书一个或多个实施例提供的一种区块链运行装置的模块组成示意图;
图10为本说明书一个或多个实施例提供的一种区块链运行设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书一个或多个实施例中的技术方案,下 面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本文件的保护范围。
本说明书一个或多个实施例提供了一种区块链系统及其运行方法、装置及设备,该系统中的多个候选共识节点具有被选取为共识节点的权限,其在被选取为共识节点时,才能够参与共识,未被选取为共识节点时不参与共识。从而该系统中的创始节点能够根据提交至区块链的第一交易,基于预设的共识节点选取规则,从候选共识节点中选取对第一交易进行共识验证的共识节点;被创始节点选取的候选共识节点,作为第一交易的共识节点,对第一交易进行共识验证处理。可见,该系统中,能够动态的从候选共识节点中选取对第一交易进行共识验证的共识节点,使得各候选共识节点均有机会参与共识验证,维持了参与共识验证的共识节点的动态平衡;并且无需大量的共识节点参与共识验证,提升了共识验证的效率。
图1为本说明书一个或多个实施例提供的区块链系统的应用场景示意图,如图1所示,该场景包括:至少一个创始节点(图1中仅示出一个)、多个候选共识节点、多个数据节点和用户的终端设备;其中,用户的终端设备接入前述节点中的任意一个节点,以通过接入的节点向区块链中提交第一交易,本说明书中将终端设备接入的节点称为提交节点;用户的终端设备可以为手机、平板电脑、台式计算机、便携笔记本式计算机等(图1中仅示出手机)。
具体的,当用户(用户1和/或用户2)操作其终端设备提交待处理数据,以通过接入的提交节点向区块链中提交第一交易时,创始节点根据提交至区块链的第一交易,基于预设的共识节点选取规则,从候选共识节点中选取对第一交易进行共识验证的共识节点;候选共识节点,在被创始节点选取为共识节点后,作为第一交易的共识节点,对第一交易进行共识验证处理。由此,通过动态的从候选共识节点中选取对第一交易进行共识验证的共识节点,使得各候选共识节点均有机会参与共识验证,维持了参与共识验证的共识节点的动态平衡;并且无需大量的共识节点参与共识验证,提升了共识验证的效率和共识的平衡性。
基于上述应用场景架构,本说明书一个或多个实施例提供了一种区块链系统;图2为本说明书一个或多个实施例提供的一种区块链系统的组成示意图,如图2所示,该系 统包括:至少一个创始节点101和多个候选共识节点102;创始节点101,根据提交至区块链的第一交易,基于预设的共识节点选取规则,从候选共识节点中选取对第一交易进行共识验证的共识节点;候选共识节点102,在被创始节点选取为共识节点后,作为第一交易的共识节点,对第一交易进行共识验证处理。
本说明书一个或多个实施例中的区块链系统,候选共识节点具有被选取为共识节点的权限,其在被选取为共识节点时,才能够参与共识,未被选取为共识节点时不参与共识。从而创始节点能够动态的从候选共识节点中选取对第一交易进行共识验证的共识节点,使得各候选共识节点均有机会参与共识验证,维持了参与共识验证的共识节点的动态平衡;并且无需大量的共识节点参与共识验证,提升了共识验证的效率。
为了创建区块链系统,首先选定创始用户,基于预设的数字身份信息分配规则,为创始用户分配数字身份信息,并基于创始用户的数字身份信息为创始用户颁发第三可验证声明(英文全称:Verifiable Credential,简称:VC),其中,数字身份信息还可称为分布式身份标识(英文全称:Decentralized Identifiers,简称:DID),第三可验证声明用于证明创始用户被授予创建创始节点的权限。创始用户基于第三可验证声明,创建至少一个创始节点101,并基于预设的数字身份信息分配规则为创始节点101分配数字身份信息,该创始节点101组建成最初的区块链系统;创始节点101具有添加节点、删除节点、从已添加的节点中选取候选共识节点、从候选共识节点中选取对提交至区块链的第一交易进行共识验证的共识节点、参与共识、以及为添加的节点配置初始GAS等权限。其中,数字身份信息分配规则可以在实际应用中根据需要自行设定,例如随机生成由数字、字母、特殊符号等中的一种或多种类型的字符所组成的字符串。
需要指出的是,上述的第一交易,可以为区块链中的一个节点在接收到用户的交易提交请求后,提交至区块链的交易,可以为一个用户的一笔或多笔交易,或者也可以为多个用户的多笔交易。
在最初的区块链系统组建成功后,用户即可根据需要请求加入区块链系统,以在区块链系统中部署相应的节点,或者通过接入区块链系统的已有节点访问区块链。具体的,当用户需要加入区块链系统时,可以操作其终端设备,以向创始节点101发送系统加入请求,对应的:创始节点101,接收用户的终端设备发送的系统加入请求,向添加至区块链系统的用户的终端设备发送第二可验证声明;其中,第二可验证声明用于证明用户被授予访问区块链系统的权限。
具体的,创始节点101接收用户的终端设备发送的系统加入请求,为用户分配数字身份信息,并根据创始节点101的数字身份信息、为用户分配的数字身份信息、待生成的可验证声明的有效时段、表征可验证声明所处状态的有效性字段等信息,生成第二可验证声明;向用户的终端设备发送第二可验证声明,以证明该用户被授予访问区块链系统的访问权限,即已将该用户添加至区块链系统,用户请求成功。
进一步的,创始节点101在将用户添加至区块链系统之后,还为添加至区块链系统的用户配置初始GAS,以使用户在基于区块链办理业务或享有服务时可进行GAS费用支付等操作。
为了使区块链系统中参与共识验证的共识节点动态平衡,打破常规的由具有选择权的节点选取大量共识节点或由固定的共识节点进行共识验证的方式,本说明书一个或多个实施例中,赋予了用户自主选择的权利,当用户请求加入区块链系统成功后,若用户想要参与共识验证,则可以操作其终端设备基于第二可验证声明,向创始节点101发送第一创建请求,该第一创建请求用于请求创建候选共识节点,以在被创始节点选取为共识节点时参与共识验证;对应的:创始节点101,接收用户的终端设备发送的第一创建请求,若确定第一创建请求包括的第二可验证声明合法、且当前候选共识节点的数量未到达预设的数量阈值,则创建候选共识节点102;创始节点101创建的候选共识节点102,同步区块链上的区块链数据。
具体而言,创始节点101接收用户的终端设备发送的第一创建请求,从第一创建请求中获取第二可验证声明;创始节点101根据第二可验证声明包括的有效时段确定第二可验证声明是否处于有效状态,若第二可验证声明处于无效状态,则确定第二可验证声明不合法,发送请求失败结果给用户的终端设备;若第二可验证声明处于有效状态,则创始节点101采用自身的公钥对第二可验证声明包括的签名数据进行验证,若验证未通过,则确定第二可验证声明不合法,发送请求失败结果给用户的终端设备;若验证通过,则确定第二可验证声明合法,根据保存的候选共识节点信息表,确定当前候选共识节点的数量,并判断当前候选共识节点的数量是否达预设的数量阈值,若到达预设的数量阈值,则确定请求失败,发送请求失败结果给用户的终端设备;若未到达预设的数量阈值,则创建候选共识节点,对创建的候选共识节点进行背书,以及更新候选共识节点信息表。其中,创始节点101中存有候选共识节点信息表,该候选共识节点信息表中记录有每个候选共识节点的信息,如ip地址、端口号等;数量阈值可以在实际应用中根据需要自行设定,例如为36。由此,创始节点能够基于用户请求,创建候选共识节点,以满足用户 的参与共识验证的需求。
当候选共识节点创建成功后,为了确保区块链系统中的每个节点拥有完整的“账本”,创建的候选共识节点需要同步当前区块链中的区块链数据;可选的,创建的候选共识节向区块链系统已有的部分节点或全部节点发送同步请求,以从区块链系统已有节点获取区块链数据。
进一步的,考虑到一些用户基于业务需要,此前可能曾加入且退出过区块链系统,因此为了确保区块链数据的安全,接收到同步请求的节点,首先确定用户持有的第二可验证声明的数量,包括处于有效状态的第二可验证声明和处于无效状态的第二可验证声明;若用户持有一个第二可验证声明,则从该第二可验证声明中读取有效时段,并以明文形式将有效时段内的区块链数据、以密文形式将有效时段以外的区块链数据发送给对应的候选共识节点,以使候选共识节点进行区块链数据的同步;若用户持有多个第二可验证声明,则依次确定每个第二可验证声明的有效时段,并以明文形式将有效时段内的区块链数据、以密文形式将有效时段以外的区块链数据发送给对应的候选共识节点,以使候选共识节点进行区块链数据的同步;由此,创始节点101所创建的候选共识节点,以明文形式同步所述有效时段内的区块链数据,以密文形式同步所述有效时段以外的区块链数据,既确保了创始节点101创建的候选共识节点具有完整的“账本”,同时确保了区块链数据的隐私安全。
本说明书实施例中的区块链系统除包括前述创始节点101和候选共识节点102外,还包括数据节点,该数据节点能够向区块链中保存数据或者从区块链中读取数据。当用户请求加入区块链系统成功后,若想要成为拥有区块链数据的读写权限的节点,则可以操作其终端设备基于第二可验证声明,向创始节点101发送第二创建请求,该第二创建请求用于请求创建数据节点;对应的:创始节点101,接收用户的终端设备发送的第二创建请求,若确定第二创建请求包括的第二可验证声明合法,则创建数据节点;创始节点101创建的数据节点,同步区块链上的区块链数据。
其中,创始节点101确定第二创建请求包括的第二可验证声明合法的过程,可参见前述创始节点101确定第一创建请求包括的第二可验证声明合法的过程;创始节点101创建的数据节点同步区块链上的区块链数据的过程,可参见前述创始节点101创建的候选共识节点同步区块链上的区块链数据的过程;重复之处,这里不再赘述。
需要指出的是,本说明书实施例中的数据节点有别于候选共识节点,数据节点仅具 有读写区块链数据的权限,并不具有被选取为共识节点的权限,即创始节点101在选取共识节点时,不会从数据节点中选取,数据节点也就没机会参与共识。
但如果在区块链系统的某些需求下,需要将某个数据节点升级为候选共识节点,则可以采用权限提升的方式,将该数据节点升级为候选共识节点,则升级后的节点,就会记录在创始节点101的候选共识节点信息表中,之后进行交易共识时,该节点就有可能被选取为共识节点。
其中,将数据节点升级为候选共识节点的具体方式,可以为:创始节点101向数据节点颁发第四可验证声明,该第四可验证声明用于证明该数据节点升级为候选共识节点,具有被选取为共识节点的权限。
随着用户的不断加入,区块链系统包括的节点数量不断增加,为了实现参与共识验证的共识节点的动态平衡,本说明书一个或多个实施例中,创始节点101,若确定当前的候选共识节点的数量未到达预设的数量阈值,则基于预设的候选共识节点选取规则,从除创始节点外的节点中选取候选共识节点102,以确保优质的具有共识能力的节点能够参与到共识验证。
其中,候选共识节点的数量、候选共识节点选取规则,可以在实际应用中根据需要自行设定;候选共识节点选取规则,如根据节点所属用户的资质、信用、持有的GAS数量等选取候选共识节点。
进一步的,创始节点101在选取候选共识节点102时,可以是按照预设频率选取,也就是定期更换候选共识节点,确保候选共识验证节点的动态更新;也可是根据待共识的交易的状态,如交易池中交易的数量,或者交易提交节点的运行情况,确定是否对当前待共识的交易更换候选共识节点。更换候选共识节点时,采用预设的候选共识节点选取规则重新选取候选共识节点。
在选取了候选共识节点之后,本说明书一个或多个实施例中,创始节点101也作为共识节点参与共识验证;即在共识过程中,由至少一个创始节点101和被选取的候选共识节点共同进行共识。具体的:创始节点101,根据预设的第一共识节点选取规则,从创始节点101和候选共识节点102中选取N个对第一交易进行共识验证的共识节点;其中,N为大于1且不大于创始节点101和候选共识节点102的总数量的整数;选取的共识节点包括至少一个创始节点101和至少一个候选共识节点102;创始节点101和候选共识节点102,在被选择为共识节点后,作为第一交易的共识节点,共同对第一交易进 行共识验证处理。
进一步的,创始节点101,获取每个创始节点101和每个候选共识节点102对预设指令的响应时间;根据获取的响应时间,从创始节点101和候选共识节点102中,选取N个对第一交易进行共识验证的共识节点;其中,预设指令由提交第一交易的提交节点发送,提交节点可以为区块链系统中任意类型的节点。
本说明书实施例中,基于响应时间确定参与共识的创始节点和候选共识节点的数量,技术构思如下:第一种情况下,如果有大量的候选共识节点在响应时间上都优于创始节点,则可以选取较多数量的参与共识的候选共识节点,选取较少数量或者仅选取一个参与共识的创始节点;第二种情况下,如果响应时间上优于创始节点的候选共识节点数量很少或者没有,则可以增加参与共识的创始节点的数量,而选取较少数量或者仅选取一个参与共识的候选共识节点;其他情况下,如果响应时间上优于创始节点的候选共识节点数量,介于上述第一种情况和第二种情况之间,则可以考虑均衡选取参与共识的创始节点和候选共识节点。
基于以上的技术构思,以下提供了一种确定参与共识的创始节点和候选共识节点的数量的方案;本领域技术人员能够想到的是,基于上述技术构思,也可以设计其他类似的方案以确定参与共识的创始节点和候选共识节点的数量;在此不再赘述。
具体的,创始节点101,获取每个创始节点101的响应时间以得到第一响应时间集合,从多个候选共识节点102的响应时间中按照从小到大的顺序选取第一预设数量的响应时间,以得到第二响应时间集合;以及,若第二响应时间集合中的响应时间,符合第一条件的响应时间为A个,则从第一响应时间集合中选取最小的1个第一目标响应时间,从第二候选响应时间结合中按照从小到大的顺序选取N-1个第二目标响应时间;将第一目标响应时间所对应的创始节点101、第二目标响应时间所对应的候选共识节点102,确定为对第一交易进行共识验证的共识节点。
若第二响应时间集合中的响应时间,符合第一条件的响应时间为B个,则从第一响应时间集合中选取最小的2个第一目标响应时间,从第二候选响应时间结合中按照从小到大的顺序选取N-2个第二目标响应时间;将第一目标响应时间所对应的创始节点101、第二目标响应时间所对应的候选共识节点102,确定为对第一交易进行共识验证的共识节点。
若第二响应时间集合中的响应时间,符合第一条件的响应时间为C个,则从第一响 应时间集合中选取最小的3个第一目标响应时间,从第二候选响应时间结合中按照从小到大的顺序选取N-3个第二目标响应时间;将第一目标响应时间所对应的创始节点、第二目标响应时间所对应的候选共识节点,确定为对第一交易进行共识验证的共识节点;其中,第一条件为:响应时间的数值不大于第一响应时间集合中的全部响应时间的数值;A>=N-1,N-1>B>=2,2>C>=0,且A、B、C均为整数。
例如,需要选取4个共识节点,即N=4,若第二响应时间集合中的响应时间,符合第一条件的响应时间为6个,即A=6,则从第一响应时间集合中选取最小的1个第一目标响应时间,从第二候选响应时间结合中按照从小到大的顺序选取3个第二目标响应时间,即共识节点包括1个创始节点101和3个候选共识节点102。若第二响应时间集合中的响应时间,符合第一条件的响应时间为3个,即B=2,则从第一响应时间集合中选取最小的2个第一目标响应时间,从第二候选响应时间结合中按照从小到大的顺序选取2个第二目标响应时间,即共识节点包括2个创始节点101和2个候选共识节点102。若第二响应时间集合中的响应时间,符合第一条件的响应时间为0个,即C=0,则从第一响应时间集合中选取最小的3个第一目标响应时间,从第二候选响应时间结合中按照从小到大的顺序选取1个第二目标响应时间,即共识节点包括3个创始节点101和1个候选共识节点102。
进一步的,提交节点向区块链系统中发送预设指令后,记录每个创始节点和每个候选共识节点返回响应数据的响应时间,并将记录的响应时间发送给创始节点101,以使创始节点101根据该响应时间从创始节点101和候选共识节点102中选取对第一交易进行共识验证的共识节点;其中,预设指令例如为ping指令。
由此,基于每个创始节点101和每个候选共识节点102对预设指令的响应时间,确定对第一交易进行共识验证的共识节点,能够选取到距离提交节点相对较近的候选共识节点作为共识节点,而由于不同的第一交易的提交节点通常不同,因此每次选取的参与共识验证的候选共识节点也有所不同,使得各个候选共识节点均有参与共识验证的机会,满足了各个候选共识节点的参与共识验证的需求,实现了参与共识验证的共识节点的动态平衡;并且,参与共识验证的节点的数量大大减少,提升了共识验证的效率。
为了能够在后续的共识验证过程中快速的从各候选共识节点中选取参与共识验证的共识节点,本说明书一个或多个实施例中,创始节点101,针对被选取的参与共识验证处理的候选共识节点102,调整候选共识节点参与共识验证的参与权重。
具体的,创始节点102记录被选取的候选共识节点102对于预设指令的响应时间;根据记录的候选共识节点的响应时间和候选共识节点参与共识验证的次数,调整对应候选共识节点参与共识验证的参与权重。其中,记录的该候选共识节点的响应时间的个数即为候选共识节点参与共识验证的次数。可选地,根据公式W=(1+响应时间)/H,调整候选共识节点参与共识验证的参与权重,其中,W为参与权重,H为参与共识验证的次数;例如,响应时间为5秒,参与共识验证的次数为4次,计算可得参与权重W=(1+5)/4=1.5。
以上的计算参与权重W的公式为本说明书的一种实现方式,在具体实施时,可以根据区块链系统的运行情况和需求,对该公式进行调整,如可以将响应时间和次数H乘以相应的系数,以使计算结果与系统运行能够更相适应。
随着区块链系统的规模扩大,用户和候选共识节点也会不断的增加;而随着区块链系统的持续运转,候选共识节点被选取为共识节点对交易进行共识验证的次数也会不断增加。当区块链系统中的候选共识节点的数量达到一定规模,和/或,一定数量的候选共识节点参与共识的总次数达到一定数值,此时区块链系统中的候选共识节点整体上具有了较强的稳定性和可信性;此时,创始节点101在后续的交易共识验证过程中,可以不再参与共识验证,其负责选取一定数量的候选共识节点作为交易的共识节点,对交易进行共识验证。而为了快速的从各候选共识节点中选取参与共识验证的共识节点,本说明书一个或多个实施例中,创始节点101,基于各个候选共识节点102的参与权重,根据预设的第二共识节点选取规则,从候选共识节点102中选取对第一交易进行共识验证的共识节点。
具体的,创始节点101对各个候选共识节点102的参与权重进行排序,并从排序结果中按照从大到小的顺序选取第二预设数量的目标参与权重,将目标参与权重所对应的候选共识节点确定为对第一交易进行共识验证的共识节点。由前述参与权重的计算公式可知,当候选共识节点参与共识验证的次数越少时,计算而得的参与权重的值越大,因此,被选取为共识节点的概率越大,由此,能够使参与次数较少的候选共识节点被优先选取,从而实现了参与共识验证的共识节点的动态平衡。
进一步的,在前述选取对第一交易进行共识验证的共识节点的基础上,优选的,还可以结合区块链系统的运行状态,以在区块链系统满足不同的运行条件时,采用不同的方式选取共识节点;具体的:创始节点101确定区块链系统包括的节点的数量;当区块 链系统包括的节点的数量到达第一数量而未到达第二数量时,其中,第二数量大于第一数量,确定区块链系统满足第一运行条件;创始节点101首先根据预设的候选共识节点选取规则,从除创始节点外的节点中选取候选共识节点,并根据预设的第一共识节点选取规则,从创始节点101和候选共识节点102中选取N个对第一交易进行共识验证的共识节点;当区块链系统包括的节点的数量到达第二数量,和/或,一定数量的候选共识节点参与共识的总次数达到一定数值时,确定区块链系统满足第二运行条件;创始节点101根据预设的第二共识节点选取规则,从候选共识节点中选取对第一交易进行共识验证的共识节点。
当区块链系统包括的节点的数量未到达第一数量时,确定区块链系统满足第三运行条件,此时由创始节点作为对提交至区块链中的第一交易进行共识验证的共识节点。
其中,第一数量和第二数量均可在实际应用中根据需要自行设定。
如前所述,由于不同的第一交易,被创始节点101所选取的对第一交易进行共识验证的候选共识节点102往往不同,而为了明确被选取的候选共识节点对第一交易具有进行共识验证权限,本说明书一个或多个实施例中,创始节点101,向被选取的候选共识节点102发送第一可验证声明,其中,第一可验证声明用于证明被选取的候选共识节点102被授予对第一交易进行共识验证的权限;被选取的候选共识节点102,基于接收到的第一可验证声明,对第一交易进行共识验证处理。
具体的,创始节点101根据自身的数字身份信息、被选取的候选共识节点102的数字身份信息、授予的权限信息、待生成的可验证声明的有效时段等信息,生成第一可验证声明,并向被选取的候选共识节点102发送第一可验证声明;被选取的候选共识节点102接收到第一可验证声明时,确定自身被授予对第一交易进行共识的权限,并对第一交易进行共识验证。
进一步的,当被选取的候选共识节点102,基于接收到的第一可验证声明,对第一交易进行共识验证处理结束后,创始节点101撤销对应的第一可验证声明,即将对应的第一可验证声明的状态设置为无效状态,以避免当前被选取的候选共识节点102基于该第一可验证声明对其他交易进行共识验证。
通过向被选取的候选共识节点102发送第一可验证声明,从而可以基于第一可验证声明灵活的控制对应候选共识节点的共识权限。
本说明书一个或多个实施例中提供的区块链系统,其中的多个候选共识节点具有被 选取为共识节点的权限,其在被选取为共识节点时,才能够参与共识,未被选取为共识节点时不参与共识。从而该系统中的创始节点能够根据提交至区块链的第一交易,基于预设的共识节点选取规则,从候选共识节点中选取对第一交易进行共识验证的共识节点;被创始节点选取的候选共识节点,作为第一交易的共识节点,对第一交易进行共识验证处理。由此,通过动态的从候选共识节点中选取对第一交易进行共识验证的共识节点,使得各候选共识节点均有机会参与共识验证,维持了参与共识验证的共识节点的动态平衡;并且无需大量的共识节点参与共识验证,提升了共识验证的效率。
对应上述描述的区块链系统,基于相同的技术构思,本说明书一个或多个实施例还提供一种区块链系统的运行方法;图3为本说明书一个或多个实施例提供的一种区块链系统的运行方法的流程示意图,如图3所示,该方法包括以下步骤:步骤S202,创始节点根据提交至区块链的第一交易,基于预设的共识节点选取规则,从候选共识节点中选取对第一交易进行共识验证的共识节点;步骤S204,被选取的候选共识节点,对第一交易进行共识验证处理。
其中,第一交易可以为区块链中的一个节点在接收到用户的交易提交请求后,提交至区块链的交易,可以为一个用户的一笔或多笔交易,或者也可以为多个用户的多笔交易。
本说明书一个或多个实施例中,候选共识节点具有被选取为共识节点的权限,其在被选取为共识节点时,才能够参与共识,未被选取为共识节点时不参与共识。创始节点通过动态的从候选共识节点中选取对第一交易进行共识验证的共识节点,使得各候选共识节点均有机会参与共识验证,维持了参与共识验证的共识节点的动态平衡;并且无需大量的共识节点参与共识验证,提升了共识验证的效率。
参见前述描述,由创始节点组建成最初的区块链系统,且创始节点具有添加节点、删除节点、从已添加的节点中选取候选共识节点、从候选共识节点中选取对提交至区块链的第一交易进行共识验证的共识节点、参与共识、以及为添加的节点配置初始GAS等权限。在最初的区块链系统组建成功后,用户可根据需要请求加入区块链系统,以在区块链系统中部署节点,或者通过接入区块链系统的已有节点访问区块链。具体的,当用户需要加入区块链系统时,可以操作其终端设备,以向创始节点发送系统加入请求,对应的,方法还包括:步骤S300,创始节点接收用户的终端设备发送的系统加入请求,向添加至区块链系统的用户的终端设备发送第二可验证声明;其中,第二可验证声明用 于证明用户被授予访问区块链系统的权限。
具体的,如图4所示的添加用户的流程示意图,步骤S300包括步骤S300-2至步骤S300-6。
步骤S300-2,创始节点接收用户的终端设备发送的系统加入请求;本说明书的一个或多个实施例中,系统加入请求包括待加入用户的用户信息;步骤S300-2之后,还可以包括:根据用户信息,对待加入用户的身份进行验证,若验证通过,则执行步骤S300-4,若验证未通过,则发送请求失败结果给对应的终端设备,以使终端设备展示请求失败信息。
步骤S300-4,创始节点为用户分配数字身份信息,根据分配的数字身份信息生成第二可验证声明,其中,第二可验证声明用于证明用户被授予访问区块链系统的访问权限;具体的,创始节点根据自身的数字身份信息、为用户分配的数字身份信息、待生成的可验证声明的有效时段、表征可验证声明所处状态的有效性字段等信息,生成第二可验证声明。
步骤S300-6,创始节点向用户的终端设备发送第二可验证声明,以使用户基于第二可验证声明访问区块链系统;其中,创始节点向用户的终端设备发送第二可验证声明,以证明该用户被授予访问区块链系统的访问权限,即已将该用户添加至区块链系统,用户请求成功。
进一步的,创始节点在将用户添加至区块链系统之后,还包括:为添加至区块链系统的用户配置初始GAS,以使用户在基于区块链办理业务或享有服务时可进行GAS费用支付等操作。
为了使区块链系统中参与共识验证的共识节点动态平衡,打破常规的由具有选择权的节点选取大量共识节点或由固定的共识节点进行共识验证的方式,本说明书一个或多个实施例中,赋予了用户自主选择的权利,当用户请求加入区块链系统成功后,若用户想要参与共识验证,则可以操作其终端设备基于第二可验证声明,向创始节点发送第一创建请求,以请求创建候选共识节点,并在该候选共识节点被创始节点选取为共识节点时参与共识验证;对应的,如图5所示,方法还包括步骤S402至步骤S406。
步骤S402,创始节点接收用户的终端设备发送的第一创建请求,其中,第一创建请求用于请求创建候选共识节点,第一创建请求包括第二可验证声明。
步骤S404,创始节点若确定第一创建请求包括的第二可验证声明合法、且当前候选共识节点的数量未到达预设的数量阈值,则创建候选共识节点。
具体的,创始节点接收用户的终端设备发送的第一创建请求,从第一创建请求中获取第二可验证声明,根据第二可验证声明包括的有效时段确定第二可验证声明是否处于有效状态,若第二可验证声明处于无效状态,则确定第二可验证声明不合法,发送请求失败结果给用户的终端设备;若第二可验证声明处于有效状态,则创始节点采用创始节点的公钥对第二可验证声明包括的签名数据进行验证,若验证未通过,则确定第二可验证声明不合法,发送请求失败结果给用户的终端设备;若验证通过,则确定第二可验证声明合法,根据保存的候选共识节点信息表,确定当前候选共识节点的数量,并判断当前候选共识节点的数量是否达预设的数量阈值,若到达预设的数量阈值,则确定请求失败,发送请求失败结果给用户的终端设备;若未到达预设的数量阈值,则创建候选共识节点,对创建的候选共识节点进行背书,以及更新候选共识节点信息表。其中,创始节点中存有候选共识节点信息表,该候选共识节点信息表中记录有每个候选共识节点的信息,如ip地址、端口号等;数量阈值可以在实际应用中根据需要自行设定,例如为36。由此,创始节点能够基于用户请求,创建候选共识节点,以满足用户的参与共识验证的需求。
步骤S406,创始节点创建的候选共识节点,同步区块链上的区块链数据。
可选的,创始节点创建的候选共识节向区块链系统已有的部分节点或全部节点发出同步请求,从而从区块链系统已有节点上获取区块链数据;进一步的,考虑到一些用户基于业务需要,此前可能曾加入且退出过区块链系统,因此为了确保区块链数据的安全,接收到同步请求的节点,首先确定用户持有的第二可验证声明的数量,包括处于有效状态的第二可验证声明和处于无效状态的第二可验证声明;若用户持有一个第二可验证声明,则从该第二可验证声明中读取有效时段,并以明文形式将有效时段内的区块链数据、以密文形式将有效时段以外的区块链数据发送给对应的候选共识节点,以使候选共识节点进行区块链数据的同步;若用户持有多个第二可验证声明,则依次确定每个第二可验证声明的有效时段,并以明文形式将各有效时段内的区块链数据、以密文形式将各有效时段以外的区块链数据发送给对应的候选共识节点,以使候选共识节点进行区块链数据的同步;由此,创始节点所创建的候选共识节点,以明文形式同步所述有效时段内的区块链数据,以密文形式同步所述有效时段以外的区块链数据,既确保了创始节点创建的候选共识节点具有完整的“账本”,同时确保了区块链数据的隐私安全。
本说明书实施例中的区块链系统除包括前述创始节点和候选共识节点外,还包括数据节点,该数据节点能够向区块链中保存数据或者从区块链中读取数据。当用户请求加入区块链系统成功后,若想要成为拥有区块链数据的读写权限的节点,则可以操作其终端设备基于第二可验证声明,向创始节点发送第二创建请求,以请求创建数据节点;对应的,如图6所示,方法还包括步骤S502至步骤S506。
步骤S502,创始节点接收用户的终端设备发送的第二创建请求,其中,第二创建请求用于请求创建所述数据节点,第二创建请求包括第二可验证声明;步骤S504,创始节点若确定第二创建请求包括的第二可验证声明合法,则创建数据节点;其中,创始节点若确定第二创建请求包括的所述第二可验证声明合法的过程可参见前述步骤S404中的相关描述,重复之处这里不再赘述。步骤S506,创始节点创建的数据节点,同步区块链上的区块链数据。
其中,创建的数据节点同步区块链上的区块链数据的过程,与前述创建的候选共识节点同步区块链上的区块链数据的过程相似,可参见前述相关描述,重复之处这里不再赘述。
随着用户的不断加入,区块链系统包括的节点数量不断增加,为了实现参与共识验证的共识节点的动态平衡,本说明书一个或多个实施例中,步骤S202之前,还包括:创始节点若确定当前的候选共识节点的数量未到达预设的数量阈值,则基于预设的候选共识节点选取规则,从除创始节点外的节点中选取候选共识节点,以确保候选共识验证节点的动态更新,使得优质的具有共识能力的节点能够参与共识验证。
其中,候选共识节点的数量、预设频率和候选共识节点选取规则,可以在实际应用中根据需要自行设定;候选共识节点选取规则,如根据节点所属用户的资质、信用、持有的GAS数量等选取候选共识节点。
进一步的,创始节点在选取候选共识节点时,可以是按照预设频率选取,也就是定期更换共识节点;也可是根据待共识的交易的状态,如交易池中交易的数量,或者交易提交节点的运行情况,确定是否对当前待共识的交易更换候选共识节点。更换候选共识节点时,采用预设的候选共识节点选取规则重新选取候选共识节点。
在选取了候选共识节点之后,本说明书一个或多个实施例中,创始节点也作为共识节点参与共识验证;即在共识过程中,由至少一个创始节点和被选取的候选共识节点共同进行共识。具体的,步骤S202中基于预设的共识节点选取规则,从候选共识节点中 选取对第一交易进行共识验证的共识节点,包括:步骤F,根据预设的第一共识节点选取规则,从创始节点和候选共识节点中选取N个对第一交易进行共识验证的共识节点;其中,N为大于1且不大于创始节点和共识节点的总数量的整数;选取的共识节点包括至少一个创始节点和至少一个候选共识节点;具体的,创始节点获取每个创始节点和每个候选共识节点对预设指令的响应时间,根据获取的响应时间,从创始节点和候选共识节点中,选取N个对第一交易进行共识验证的共识节点;其中,预设指令由提交第一交易的提交节点发送,提交节点可以为区块链系统中任意类型的节点。
本说明书实施例中,基于响应时间确定参与共识的创始节点和候选共识节点的数量,技术构思如下:第一种情况下,如果有大量的候选共识节点在响应时间上都优于创始节点,则可以选取较多数量的参与共识的候选共识节点,选取较少数量或者仅选取一个参与共识的创始节点;第二种情况下,如果响应时间上优于创始节点的候选共识节点数量很少或者没有,则可以增加参与共识的创始节点的数量,而选取较少数量或者仅选取一个参与共识的候选共识节点;其他情况下,如果响应时间上优于创始节点的候选共识节点数量,介于上述第一种情况和第二种情况之间,则可以考虑均衡选取参与共识的创始节点和候选共识节点。
基于以上的技术构思,以下提供了一种确定参与共识的创始节点和候选共识节点的数量的方案;本领域技术人员能够想到的是,基于上述技术构思,也可以设计其他类似的方案以确定参与共识的创始节点和候选共识节点的数量;在此不再赘述。
具体的,创始节点获取每个创始节点和每个候选共识节点对预设指令的响应时间,根据获取的响应时间,从创始节点和候选共识节点中,选取N个对第一交易进行共识验证的共识节点,包括:创始节点获取每个创始节点的响应时间以得到第一响应时间集合,从多个候选共识节点的响应时间中按照从小到大的顺序选取第一预设数量的响应时间,以得到第二响应时间集合;以及,若第二响应时间集合中的响应时间,符合第一条件的响应时间为A个,则从第一响应时间集合中选取最小的1个第一目标响应时间,从第二候选响应时间结合中按照从小到大的顺序选取N-1个第二目标响应时间;将第一目标响应时间所对应的创始节点、第二目标响应时间所对应的候选共识节点,确定为对第一交易进行共识验证的共识节点。
若第二响应时间集合中的响应时间,符合第一条件的响应时间为B个,则从第一响应时间集合中选取最小的2个第一目标响应时间,从第二候选响应时间结合中按照从小 到大的顺序选取N-2个第二目标响应时间;将第一目标响应时间所对应的创始节点、第二目标响应时间所对应的候选共识节点,确定为对第一交易进行共识验证的共识节点。
若第二响应时间集合中的响应时间,符合第一条件的响应时间为C个,则从第一响应时间集合中选取最小的3个第一目标响应时间,从第二候选响应时间结合中按照从小到大的顺序选取N-3个第二目标响应时间;将第一目标响应时间所对应的创始节点、第二目标响应时间所对应的候选共识节点,确定为对第一交易进行共识验证的共识节点;其中,第一条件为:响应时间的数值不大于第一响应时间集合中的全部响应时间的数值;A>=N-1,N-1>B>=2,2>C>=0,且A、B、C均为整数。
进一步的,提交节点向区块链系统中发送预设指令后,记录每个创始节点和每个候选共识节点返回响应数据的响应时间,并将记录的响应时间发送给创始节点,以使创始节点根据该响应时间从创始节点和候选共识节点中选取对第一交易进行共识验证的共识节点;其中,预设指令例如为ping指令。
与步骤F对应的,步骤S204中被选取的候选共识节点,对第一交易进行共识验证处理,包括:被选取的创始节点和候选共识节点,共同对第一交易进行共识验证处理。
由此,基于每个创始节点和每个候选共识节点对预设指令的响应时间,确定对第一交易进行共识验证的共识节点,能够选取到距离提交节点相对较近的候选共识节点作为共识节点,而由于不同的第一交易的提交节点通常不同,因此每次选取的参与共识验证的候选共识节点也有所不同,使得各个候选共识节点均有参与共识验证的机会,满足了各个候选共识节点的参与共识验证的需求,实现了参与共识验证的共识节点的动态平衡;并且,参与共识验证的节点的数量大大减少,提升了共识验证的效率。
为了能够在后续的共识验证过程中快速的从各候选共识节点中选取参与共识验证的共识节点,本说明书一个或多个实施例中,步骤F中选取N个对第一交易进行共识验证的共识节点之后,还包括:步骤Y,创始节点针对被选取的参与共识验证处理的候选验证节点,调整候选共识节点参与共识验证的参与权重。
具体的,创始节点记录被选取的候选共识节点对于预设指令的响应时间,根据记录的候选共识节点的响应时间和候选共识节点参与共识验证的次数,调整对应候选共识节点参与共识验证的参与权重。其中,记录的该候选共识节点的响应时间的个数即为候选共识节点参与共识验证的次数。可选地,根据公式W=(1+响应时间)/H,调整候选共识节点参与共识验证的参与权重,其中,W为参与权重,H为参与共识验证的次数;例 如,响应时间为5秒,参与共识验证的次数为4次,计算可得参与权重W=(1+5)/4=1.5。
以上的计算参与权重W的公式为本说明书的一种实现方式,在具体实施时,可以根据区块链系统的运行情况和需求,对该公式进行调整,如可以将响应时间和次数H乘以相应的系数,以使计算结果与系统运行能够更相适应。
随着区块链系统的规模扩大,用户和候选共识节点也会不断的增加;而随着区块链的持续运转,候选共识节点被选取为共识节点对交易进行共识验证的次数也会不断增加。当区块链系统中的候选共识节点的数量达到一定规模,和/或,一定数量的候选共识节点参与共识的总次数达到一定数值,此时区块链系统中的候选共识节点整体上具有了较强的稳定性和可信性;此时,创始节点在后续的交易共识验证过程中,可以不再参与共识验证,其负责选取一定数量的候选共识节点作为交易的共识节点,对交易进行共识验证。而为了快速的从各候选共识节点中选取参与共识验证的共识节点,本说明书一个或多个实施例中,步骤S202中基于预设的共识节点选取规则,从候选共识节点中选取对第一交易进行共识验证的共识节点,包括:基于多个候选共识节点的参与权重,根据预设的第二共识节点选取规则,从候选共识节点中选取对第一交易进行共识验证的共识节点。
具体的,创始节点对各个候选共识节点当前的参与权重进行排序,并从排序结果中按照从大到小的顺序选取第二预设数量的目标参与权重,将目标参与权重所对应的候选共识节点确定为对第一交易进行共识验证的共识节点。由前述参与权重的计算公式可知,当候选共识节点参与共识验证的次数越少时,计算而得的参与权重的值越大,因此,被选取为共识节点的概率越大,由此,能够使参与次数较少的候选共识节点被优先选取,从而实现了参与共识验证的共识节点的动态平衡。
进一步的,在上述选取对第一交易进行共识验证的公式节点的基础上,优选的,还可以结合区块链系统的运行状态,以在区块链系统满足不同的运行条件时,采用不同的方式选取共识节点;具体的,方法还包括:创始节点确定区块链系统包括的节点数量;当区块链系统包括的节点的数量到达第一数量而未到达第二数量时,其中,第二数量大于第一数量,确定区块链系统满足第一运行条件;创始节点首先根据预设的候选共识节点选取规则,从除创始节点外的节点中选取候选共识节点,并根据预设的第一共识节点选取规则,从创始节点和候选共识节点中选取N个对第一交易进行共识验证的共识节点;当区块链系统包括的节点的数量到达第二数量,和/或,一定数量的候选共识节点参与共识的总次数达到一定数值时,确定区块链系统满足第二运行条件;创始节点根据预设的 第二共识节点选取规则,从候选共识节点中选取对第一交易进行共识验证的共识节点。
当区块链系统包括的节点的数量未到达第一数量时,确定区块链系统满足第三运行条件,此时由创始节点作为对提交至区块链中的第一交易进行共识验证的共识节点。
其中,第一数量和第二数量均可在实际应用中根据需要自行设定。
如前所述,由于不同的第一交易,被创始节点所选取的对第一交易进行共识验证的候选共识节点往往不同,而为了明确被选取的候选共识节点对第一交易具有进行共识验证权限,本说明书一个或多个实施例中,如图7所示,步骤S202之后,还包括:步骤S203,创始节点向被选取的候选共识节点发送第一可验证声明,其中,第一可验证声明用于证明被选取的候选共识节点被授予对第一交易进行共识验证的权限;对应的,步骤S204包括:被选取的候选共识节点,基于接收到的第一可验证声明,对第一交易进行共识验证处理。
具体而言,创始节点根据自身的数字身份信息、被选取的候选共识节点的数字身份信息、授予的权限信息、待生成的可验证声明的有效时段等信息,生成可验证声明,并向被选取的候选共识节点发送第一可验证声明;被选取的候选共识节点接收到第一可验证声明时,确定自身被授予对第一交易进行共识的权限,并对第一交易进行共识验证。
进一步的,当被选取的候选共识节点基于接收到的第一可验证声明,对第一交易进行共识验证处理结束后,创始节点撤销对应的可验证声明,即将对应的第一可验证声明的状态设置为无效状态,以避免当前被选取的候选共识节点基于该第一可验证声明对其他交易进行共识验证。
通过向被选取的候选共识节点发送第一可验证声明,从而可以基于第一可验证声明灵活的控制对应候选共识节点的共识权限。
在一个具体的实施例中,随着区块链系统的不断运行,创始节点按照前述方式基于用户发送的系统加入请求将用户添加至区块链系统中,并基于已添加的用户发送的创建请求创建相应的候选共识节点或数据节点;以及,创始节点根据区块链系统的不同运行状态采用不同的方式选取共识节点,并由创始节点所选取的共识节点对提交至区块链系统的第一交易进行共识验证处理。其中,创始节点选取共识节点进行共识验证处理的过程如图8所示,包括步骤S602至步骤S620。
步骤S602,创始节点确定区块链系统包括的节点的数量,若区块链系统包括的 节点的数量未到达第一数量,则执行步骤S604,若区块链系统包括的节点的数量到达第一数量而未到达第二数量,则执行步骤S606,若区块链系统包括的节点的数量到达第二数量,和/或,一定数量的候选共识节点参与共识的总次数达到一定数值,则执行步骤S616。
步骤S604,创始节点作为共识节点,对提交至区块链中的第一交易进行共识验证处理;步骤S606,若创始节点确定当前的候选共识节点的数量未到达预设的数量阈值,则根据预设的候选共识节点选取规则,从除创始节点外的节点中选取候选共识节点。
步骤S608,创始节点根据提交至区块链的第一交易,基于预设的第一共识节点选取规则,从创始节点和候选共识节点中选取N个对第一交易进行共识验证的共识节点;其中,N为大于1且不大于创始节点和共识节点的总数量的整数;选取的共识节点包括至少一个创始节点和至少一个候选共识节点。
步骤S610,创始节点向被选取的候选共识节点发送第一可验证声明,其中,第一可验证声明用于证明被选取的候选共识节点被授予对第一交易进行共识验证的权限;步骤S612,创始节点针对被选取的参与共识验证处理的候选验证节点,调整候选共识节点参与共识验证的参与权重;步骤S614,被选取的创始节点和被选取的候选共识节点,作为对第一交易进行共识验证的共识节点,共同对第一交易进行共识验证处理。
步骤S616,创始节点根据提交至区块链的第一交易,基于各个候选共识节点的参与权重,根据预设的第二共识节点选取规则,从候选共识节点中选取对第一交易进行共识验证的共识节点;步骤S618,创始节点向被选取的候选共识节点发送第一可验证声明,其中,第一可验证声明用于证明被选取的候选共识节点被授予对第一交易进行共识验证的权限;步骤S620,被选取的候选共识节点,作为对第一交易进行共识验证的共识节点,对第一交易进行共识验证处理。
上述步骤S602至步骤S620的具体实现方式,可参见前述相关描述,重复之处,这里不再赘述。
本说明书一个或多个实施例中,候选共识节点具有被选取为共识节点的权限,其在被选取为共识节点时,才能够参与共识,未被选取为共识节点时不参与共识。从而创始节点能够根据提交至区块链的第一交易,基于预设的共识节点选取规则,从候选共识节点中选取对第一交易进行共识验证的共识节点;被创始节点选取的候选共识节点,作为第一交易的共识节点,对第一交易进行共识验证处理。由此,通过动态的从候选共 识节点中选取对第一交易进行共识验证的共识节点,使得各候选共识节点均有机会参与共识验证,维持了参与共识验证的共识节点的动态平衡;并且无需大量的共识节点参与共识验证,提升了共识验证的效率。
对应上述描述的区块链系统的运行方法,基于相同的技术构思,本说明书一个或多个实施例还提供一种区块链运行装置,应用于区块链系统的创始节点。图9为本说明书一个或多个实施例提供的应用于创始节点的区块链运行装置的模块组成示意图,如图9所示,该装置包括:选取模块701,根据提交至区块链的第一交易,基于预设的共识节点选取规则,从候选共识节点中选取对所述第一交易进行共识验证的共识节点;以通过被选取的所述候选共识节点,对所述第一交易进行共识验证处理。
本说明书一个或多个实施例中,候选共识节点具有被选取为共识节点的权限,其在被选取为共识节点时,才能够参与共识,未被选取为共识节点时不参与共识;通过动态的从候选共识节点中选取对第一交易进行共识验证的共识节点,使得各候选共识节点均有机会参与共识验证,维持了参与共识验证的共识节点的动态平衡;并且无需大量的共识节点参与共识验证,提升了共识验证的效率。
可选地,所述装置还包括:发送模块;所述发送模块,在所述选取模块701从候选共识节点中选取对所述第一交易进行共识验证的共识节点之后,向被选取的候选共识节点发送第一可验证声明;以使所述被选取的候选共识节点基于所述第一可验证声明,对所述第一交易进行共识验证;其中,所述第一可验证声明用于证明所述被选取的候选共识节点被授予对所述第一交易进行共识验证的权限。
可选地,所述选取模块701,根据预设的第一共识节点选取规则,从所述创始节点和所述候选共识节点中选取N个对所述第一交易进行共识验证的共识节点,以通过被选取的创始节点和候选共识节点,对所述第一交易进行共识验证处理;其中,N为大于1且不大于所述创始节点和所述共识节点的总数量的整数;选取的所述共识节点包括至少一个创始节点和至少一个候选共识节点。
可选地,所述选取模块701,获取每个所述创始节点和每个所述候选共识节点对预设指令的响应时间,其中,所述预设指令由提交所述第一交易的提交节点发送;以及,根据所述响应时间,从所述创始节点和所述候选共识节点中,选取N个对所述第一交易进行共识验证的共识节点。
可选地,所述选取模块701,获取每个所述创始节点的响应时间以得到第一响应 时间集合,从多个候选共识节点的响应时间中按照从小到大的顺序选取第一预设数量的响应时间,以得到第二响应时间集合;以及,若所述第二响应时间集合中的响应时间,符合第一条件的响应时间为A个,则从第一响应时间集合中选取最小的1个第一目标响应时间,从所述第二候选响应时间结合中按照从小到大的顺序选取N-1个第二目标响应时间;将所述第一目标响应时间所对应的创始节点、所述第二目标响应时间所对应的候选共识节点,确定为对所述第一交易进行共识验证的共识节点。
若所述第二响应时间集合中的响应时间,符合第一条件的响应时间为B个,则从第一响应时间集合中选取最小的2个第一目标响应时间,从所述第二候选响应时间结合中按照从小到大的顺序选取N-2个第二目标响应时间;将所述第一目标响应时间所对应的创始节点、所述第二目标响应时间所对应的候选共识节点,确定为对所述第一交易进行共识验证的共识节点。
若所述第二响应时间集合中的响应时间,符合第一条件的响应时间为C个,则从第一响应时间集合中选取最小的3个第一目标响应时间,从所述第二候选响应时间结合中按照从小到大的顺序选取N-3个第二目标响应时间;将所述第一目标响应时间所对应的创始节点、所述第二目标响应时间所对应的候选共识节点,确定为对所述第一交易进行共识验证的共识节点;其中,所述第一条件为:响应时间的数值不大于所述第一响应时间集合中的全部响应时间的数值;A>=N-1,N-1>B>=2,2>C>=0,且A、B、C为整数。
可选地,所述装置还包括:调整模块;所述调整模块,在所述选取模块701选取N个对所述第一交易进行共识验证的共识节点之后,针对被选取的参与共识验证处理的候选验证节点,调整所述候选共识节点参与共识验证的参与权重。
可选地,所述调整模块,记录被选取的所述候选共识节点的响应时间;以及,根据记录的所述候选共识节点的响应时间和所述候选共识节点参与共识验证的次数,调整对应候选共识节点参与共识验证的参与权重。
可选地,所述选取模块701,基于所述多个候选共识节点的所述参与权重,根据预设的第二共识节点选取规则,从所述候选共识节点中选取对所述第一交易进行共识验证的共识节点。
可选地,所述装置还包括:添加模块;所述添加模块,接收用户的终端设备发送的系统加入请求,向添加至所述区块链系统的用户的终端设备发送第二可验证声明; 其中,所述第二可验证声明用于证明所述用户被授予访问所述区块链系统的权限。
可选地,所述装置还包括:第一创建模块;所述第一创建模块,接收所述用户的终端设备发送的第一创建请求,其中,所述第一创建请求用于请求创建候选共识节点,所述第一创建请求包括所述第二可验证声明;以及,若确定所述第一创建请求包括的所述第二可验证声明合法、且当前所述候选共识节点的数量未到达预设的数量阈值,则创建候选共识节点。
可选地,所述区块链系统还包括数据节点,所述数据节点,向所述区块链中保存数据或者从所述区块链中读取数据;所述装置还包括:第二创建模块;所述第二创建模块,接收所述用户的终端设备发送的第二创建请求,其中,所述第二创建请求用于请求创建所述数据节点,所述第二创建请求包括所述第二可验证声明;以及,若确定所述第二创建请求包括的所述第二可验证声明合法,则创建数据节点。
可选地,所述装置还包括:配置模块;所述配置模块,为添加至所述区块链系统的用户配置初始GAS。
本说明书一个或多个实施例提供的区块链运行装置,能够根据提交至区块链的第一交易,基于预设的共识节点选取规则,从该系统包括的多个候选共识节点中选取对第一交易进行共识验证的共识节点;被创始节点选取的候选共识节点,作为第一交易的共识节点,对第一交易进行共识验证处理。由此,通过动态的从候选共识节点中选取对第一交易进行共识验证的共识节点,使得各候选共识节点均有机会参与共识验证,维持了参与共识验证的共识节点的动态平衡;并且无需大量的共识节点参与共识验证,提升了共识验证的效率。
需要说明的是,本说明书中关于区块链运行装置的实施例与本说明书中关于区块链系统的运行方法的实施例基于同一发明构思,因此该实施例的具体实施可以参见前述对应的区块链系统的运行方法的实施,重复之处不再赘述。
进一步地,对应上述区块链系统的运行方法,基于相同的技术构思,本说明书一个或多个实施例还提供一种区块链运行设备,该设备用于执行区块链系统的创始节点的运行方法,图10为本说明书一个或多个实施例提供的一种区块链运行设备的结构示意图。
如图10所示,区块链运行设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器801和存储器802,存储器802中可以存储有一个或一个 以上存储应用程序或数据。其中,存储器802可以是短暂存储或持久存储。存储在存储器802的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括区块链运行设备中的一系列计算机可执行指令。更进一步地,处理器801可以设置为与存储器802通信,在区块链运行设备上执行存储器802中的一系列计算机可执行指令。区块链运行设备还可以包括一个或一个以上电源803,一个或一个以上有线或无线网络接口804,一个或一个以上输入输出接口805,一个或一个以上键盘806等。
在一个具体的实施例中,区块链运行设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对区块链运行设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:根据提交至区块链的第一交易,基于预设的共识节点选取规则,从候选共识节点中选取对所述第一交易进行共识验证的共识节点;以通过被选取的所述候选共识节点,对所述第一交易进行共识验证处理。
本说明书一个或多个实施例中,候选共识节点具有被选取为共识节点的权限,其在被选取为共识节点时,才能够参与共识,未被选取为共识节点时不参与共识;通过动态的从候选共识节点中选取对第一交易进行共识验证的共识节点,使得各候选共识节点均有机会参与共识验证,维持了参与共识验证的共识节点的动态平衡;并且无需大量的共识节点参与共识验证,提升了共识验证的效率。
可选地,计算机可执行指令在被执行时,所述从候选共识节点中选取对所述第一交易进行共识验证的共识节点之后,还包括:向被选取的候选共识节点发送第一可验证声明,以使被选取的候选共识节点,基于接收到的所述第一可验证声明,对所述第一交易进行共识验证处理;其中,所述第一可验证声明用于证明所述被选取的候选共识节点被授予对所述第一交易进行共识验证的权限。
可选地,计算机可执行指令在被执行时,所述基于预设的共识节点选取规则,从候选共识节点中选取对所述第一交易进行共识验证的共识节点,包括:根据预设的第一共识节点选取规则,从所述创始节点和所述候选共识节点中选取N个对所述第一交易进行共识验证的共识节点;以通过被选取的所述创始节点和被选取的所述候选共识节点,共同对所述第一交易进行共识验证处理;其中,N为大于1且不大于所述创始节点和所述共识节点的总数量的整数;选取的所述共识节点包括至少一个创始节点和至少一个候 选共识节点。
可选地,计算机可执行指令在被执行时,所述根据预设的第一共识节点选取规则,从所述创始节点和所述候选共识节点中选取N个对所述第一交易进行共识验证的共识节点,包括:获取每个所述创始节点和每个所述候选共识节点对预设指令的响应时间,其中,所述预设指令由提交所述第一交易的提交节点发送;以及,根据所述响应时间,从所述创始节点和所述候选共识节点中,选取N个对所述第一交易进行共识验证的共识节点。
可选地,计算机可执行指令在被执行时,所述根据所述响应时间,从所述创始节点和所述候选共识节点中,选取N个对所述第一交易进行共识验证的共识节点,包括:获取每个所述创始节点的响应时间以得到第一响应时间集合,从多个候选共识节点的响应时间中按照从小到大的顺序选取第一预设数量的响应时间,以得到第二响应时间集合;以及,若所述第二响应时间集合中的响应时间,符合第一条件的响应时间为A个,则从第一响应时间集合中选取最小的1个第一目标响应时间,从所述第二候选响应时间结合中按照从小到大的顺序选取N-1个第二目标响应时间;将所述第一目标响应时间所对应的创始节点、所述第二目标响应时间所对应的候选共识节点,确定为对所述第一交易进行共识验证的共识节点。
若所述第二响应时间集合中的响应时间,符合第一条件的响应时间为B个,则从第一响应时间集合中选取最小的2个第一目标响应时间,从所述第二候选响应时间结合中按照从小到大的顺序选取N-2个第二目标响应时间;将所述第一目标响应时间所对应的创始节点、所述第二目标响应时间所对应的候选共识节点,确定为对所述第一交易进行共识验证的共识节点。
若所述第二响应时间集合中的响应时间,符合第一条件的响应时间为C个,则从第一响应时间集合中选取最小的3个第一目标响应时间,从所述第二候选响应时间结合中按照从小到大的顺序选取N-3个第二目标响应时间;将所述第一目标响应时间所对应的创始节点、所述第二目标响应时间所对应的候选共识节点,确定为对所述第一交易进行共识验证的共识节点;其中,所述第一条件为:响应时间的数值不大于所述第一响应时间集合中的全部响应时间的数值;A>=N-1,N-1>B>=2,2>C>=0,且A、B、C为整数。
可选地,计算机可执行指令在被执行时,所述选取N个对所述第一交易进行共 识验证的共识节点之后,还包括:针对被选取的参与共识验证处理的候选验证节点,调整所述候选共识节点参与共识验证的参与权重。
可选地,计算机可执行指令在被执行时,所述调整所述候选共识节点参与共识验证的参与权重,包括:记录被选取的所述候选共识节点的响应时间;以及,根据记录的所述候选共识节点的响应时间和所述候选共识节点参与共识验证的次数,调整对应候选共识节点参与共识验证的参与权重。
可选地,计算机可执行指令在被执行时,所述基于预设的共识节点选取规则,从候选共识节点中选取对所述第一交易进行共识验证的共识节点,包括:基于所述多个候选共识节点的所述参与权重,根据预设的第二共识节点选取规则,从所述候选共识节点中选取对所述第一交易进行共识验证的共识节点。
可选地,计算机可执行指令在被执行时,所述方法还包括:接收用户的终端设备发送的系统加入请求,向添加至所述区块链系统的用户的终端设备发送第二可验证声明;其中,所述第二可验证声明用于证明所述用户被授予访问所述区块链系统的权限。
可选地,计算机可执行指令在被执行时,所述方法还包括:接收所述用户的终端设备发送的第一创建请求,其中,所述第一创建请求用于请求创建候选共识节点,所述第一创建请求包括所述第二可验证声明;若确定所述第一创建请求包括的所述第二可验证声明合法、且当前所述候选共识节点的数量未到达预设的数量阈值,则创建候选共识节点;以及,所述创始节点创建的所述候选共识节点,同步所述区块链上的区块链数据。
可选地,计算机可执行指令在被执行时,所述区块链系统还包括数据节点,所述数据节点,向所述区块链中保存数据或者从所述区块链中读取数据;所述方法还包括:接收所述用户的终端设备发送的第二创建请求,其中,所述第二创建请求用于请求创建所述数据节点,所述第二创建请求包括所述第二可验证声明;若确定所述第二创建请求包括的所述第二可验证声明合法,则创建数据节点;以及,所述创始节点创建的所述数据节点,同步所述区块链上的区块链数据。
可选地,计算机可执行指令在被执行时,所述第二可验证声明包括有效期限,所述同步所述区块链上的区块链数据,包括:以明文形式同步所述有效时段内的区块链数据,以密文形式同步所述有效时段以外的区块链数据。
可选地,计算机可执行指令在被执行时,所述方法还包括:所述创始节点为添加至所述区块链系统的用户配置初始GAS。
本说明书一个或多个实施例提供的区块链运行设备,能够根据提交至区块链的第一交易,基于预设的共识节点选取规则,从该系统包括的多个候选共识节点中选取对第一交易进行共识验证的共识节点;被创始节点选取的候选共识节点,作为第一交易的共识节点,对第一交易进行共识验证处理。由此,通过动态的从候选共识节点中选取对第一交易进行共识验证的共识节点,使得各候选共识节点均有机会参与共识验证,维持了参与共识验证的共识节点的动态平衡;并且无需大量的共识节点参与共识验证,提升了共识验证的效率。
需要说明的是,本说明书中关于区块链运行设备的实施例与本说明书中关于区块链系统的运行方法的实施例基于同一发明构思,因此该实施例的具体实施可以参见前述对应的区块链系统的运行方法的实施,重复之处不再赘述。
进一步地,对应上述描述的区块链系统的运行方法,基于相同的技术构思,本说明书一个或多个实施例还提供了一种存储介质,用于存储计算机可执行指令,一个具体的实施例中,该存储介质可以为U盘、光盘、硬盘等,该存储介质存储的计算机可执行指令在被处理器执行时,能实现以下流程:根据提交至区块链的第一交易,基于预设的共识节点选取规则,从候选共识节点中选取对所述第一交易进行共识验证的共识节点;以通过被选取的所述候选共识节点,对所述第一交易进行共识验证处理。
本说明书一个或多个实施例中,候选共识节点具有被选取为共识节点的权限,其在被选取为共识节点时,才能够参与共识,未被选取为共识节点时不参与共识;通过动态的从候选共识节点中选取对第一交易进行共识验证的共识节点,使得各候选共识节点均有机会参与共识验证,维持了参与共识验证的共识节点的动态平衡;并且无需大量的共识节点参与共识验证,提升了共识验证的效率。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述从候选共识节点中选取对所述第一交易进行共识验证的共识节点之后,还包括:向被选取的候选共识节点发送第一可验证声明,以使被选取的候选共识节点,基于接收到的所述第一可验证声明,对所述第一交易进行共识验证处理;其中,所述第一可验证声明用于证明所述被选取的候选共识节点被授予对所述第一交易进行共识验证的权限。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述基于预 设的共识节点选取规则,从候选共识节点中选取对所述第一交易进行共识验证的共识节点,包括:根据预设的第一共识节点选取规则,从所述创始节点和所述候选共识节点中选取N个对所述第一交易进行共识验证的共识节点;以通过被选取的所述创始节点和被选取的所述候选共识节点,共同对所述第一交易进行共识验证处理;其中,N为大于1且不大于所述创始节点和所述共识节点的总数量的整数;选取的所述共识节点包括至少一个创始节点和至少一个候选共识节点。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述根据预设的第一共识节点选取规则,从所述创始节点和所述候选共识节点中选取N个对所述第一交易进行共识验证的共识节点,包括:获取每个所述创始节点和每个所述候选共识节点对预设指令的响应时间,其中,所述预设指令由提交所述第一交易的提交节点发送;以及,根据所述响应时间,从所述创始节点和所述候选共识节点中,选取N个对所述第一交易进行共识验证的共识节点。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述根据所述响应时间,从所述创始节点和所述候选共识节点中,选取N个对所述第一交易进行共识验证的共识节点,包括:获取每个所述创始节点的响应时间以得到第一响应时间集合,从多个候选共识节点的响应时间中按照从小到大的顺序选取第一预设数量的响应时间,以得到第二响应时间集合;以及,若所述第二响应时间集合中的响应时间,符合第一条件的响应时间为A个,则从第一响应时间集合中选取最小的1个第一目标响应时间,从所述第二候选响应时间结合中按照从小到大的顺序选取N-1个第二目标响应时间;将所述第一目标响应时间所对应的创始节点、所述第二目标响应时间所对应的候选共识节点,确定为对所述第一交易进行共识验证的共识节点。
若所述第二响应时间集合中的响应时间,符合第一条件的响应时间为B个,则从第一响应时间集合中选取最小的2个第一目标响应时间,从所述第二候选响应时间结合中按照从小到大的顺序选取N-2个第二目标响应时间;将所述第一目标响应时间所对应的创始节点、所述第二目标响应时间所对应的候选共识节点,确定为对所述第一交易进行共识验证的共识节点。
若所述第二响应时间集合中的响应时间,符合第一条件的响应时间为C个,则从第一响应时间集合中选取最小的3个第一目标响应时间,从所述第二候选响应时间结合中按照从小到大的顺序选取N-3个第二目标响应时间;将所述第一目标响应时间所对 应的创始节点、所述第二目标响应时间所对应的候选共识节点,确定为对所述第一交易进行共识验证的共识节点;其中,所述第一条件为:响应时间的数值不大于所述第一响应时间集合中的全部响应时间的数值;A>=N-1,N-1>B>=2,2>C>=0,且A、B、C为整数。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述选取N个对所述第一交易进行共识验证的共识节点之后,还包括:针对被选取的参与共识验证处理的候选验证节点,调整所述候选共识节点参与共识验证的参与权重。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述调整所述候选共识节点参与共识验证的参与权重,包括:记录被选取的所述候选共识节点的响应时间;以及,根据记录的所述候选共识节点的响应时间和所述候选共识节点参与共识验证的次数,调整对应候选共识节点参与共识验证的参与权重。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述基于预设的共识节点选取规则,从候选共识节点中选取对所述第一交易进行共识验证的共识节点,包括:基于所述多个候选共识节点的所述参与权重,根据预设的第二共识节点选取规则,从所述候选共识节点中选取对所述第一交易进行共识验证的共识节点。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述方法还包括:接收用户的终端设备发送的系统加入请求,向添加至所述区块链系统的用户的终端设备发送第二可验证声明;其中,所述第二可验证声明用于证明所述用户被授予访问所述区块链系统的权限。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述方法还包括:接收所述用户的终端设备发送的第一创建请求,其中,所述第一创建请求用于请求创建候选共识节点,所述第一创建请求包括所述第二可验证声明;若确定所述第一创建请求包括的所述第二可验证声明合法、且当前所述候选共识节点的数量未到达预设的数量阈值,则创建候选共识节点;以及,所述创始节点创建的所述候选共识节点,同步所述区块链上的区块链数据。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述区块链系统还包括数据节点,所述数据节点,向所述区块链中保存数据或者从所述区块链中读取数据;所述方法还包括:接收所述用户的终端设备发送的第二创建请求,其中,所述第二创建请求用于请求创建所述数据节点,所述第二创建请求包括所述第二可验证声明; 若确定所述第二创建请求包括的所述第二可验证声明合法,则创建数据节点;以及,所述创始节点创建的所述数据节点,同步所述区块链上的区块链数据。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述第二可验证声明包括有效期限,所述同步所述区块链上的区块链数据,包括:以明文形式同步所述有效时段内的区块链数据,以密文形式同步所述有效时段以外的区块链数据。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述方法还包括:所述创始节点为添加至所述区块链系统的用户配置初始GAS。
本说明书一个或多个实施例提供的存储介质存储的计算机可执行指令在被处理器执行时,能够根据提交至区块链的第一交易,基于预设的共识节点选取规则,从该系统包括的多个候选共识节点中选取对第一交易进行共识验证的共识节点;被创始节点选取的候选共识节点,作为第一交易的共识节点,对第一交易进行共识验证处理。由此,通过动态的从候选共识节点中选取对第一交易进行共识验证的共识节点,使得各候选共识节点均有机会参与共识验证,维持了参与共识验证的共识节点的动态平衡;并且无需大量的共识节点参与共识验证,提升了共识验证的效率。
需要说明的是,本说明书中关于存储介质的实施例与本说明书中关于区块链系统的运行方法的实施例基于同一发明构思,因此该实施例的具体实施可以参见前述对应的区块链系统的运行方法的实施,重复之处不再赘述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在20世纪30年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable Gate Array,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件 编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实 施本说明书实施例时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存 储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书的一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本文件的实施例而已,并不用于限制本文件。对于本领域技术人员来说,本文件可以有各种更改和变化。凡在本文件的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本文件的权利要求范围之内。

Claims (33)

  1. 一种区块链系统,包括:至少一个创始节点和多个候选共识节点;
    所述创始节点,根据提交至所述区块链的第一交易,基于预设的共识节点选取规则,从所述候选共识节点中选取对所述第一交易进行共识验证的共识节点;
    所述候选共识节点,在被所述创始节点选取为共识节点后,作为所述第一交易的共识节点,对所述第一交易进行共识验证处理。
  2. 根据权利要求1所述的系统,所述创始节点,向被选取的候选共识节点发送第一可验证声明,所述第一可验证声明用于证明所述被选取的候选共识节点被授予对所述第一交易进行共识验证的权限;
    所述被选取的候选共识节点,基于接收到的所述第一可验证声明,对所述第一交易进行共识验证处理。
  3. 根据权利要求1所述的系统,
    所述创始节点,根据预设的第一共识节点选取规则,从所述创始节点和所述候选共识节点中选取N个对所述第一交易进行共识验证的共识节点;其中,N为大于1且不大于所述创始节点和所述共识节点的总数量的整数;选取的所述共识节点包括至少一个创始节点和至少一个候选共识节点。
    所述创始节点和所述候选共识节点,在被选取为共识节点后,作为所述第一交易的共识节点,共同对所述第一交易进行共识验证处理。
  4. 根据权利要求3所述的系统,所述创始节点,获取每个所述创始节点和每个所述候选共识节点对预设指令的响应时间,其中,所述预设指令由提交所述第一交易的提交节点发送;以及,
    根据所述响应时间,从所述创始节点和所述候选共识节点中,选取N个对所述第一交易进行共识验证的共识节点。
  5. 根据权利要求4所述的系统,
    所述创始节点,获取每个所述创始节点的响应时间以得到第一响应时间集合,从多个候选共识节点的响应时间中按照从小到大的顺序选取第一预设数量的响应时间,以得到第二响应时间集合;以及,
    若所述第二响应时间集合中的响应时间,符合第一条件的响应时间为A个,则从第一响应时间集合中选取最小的1个第一目标响应时间,从所述第二候选响应时间结合中按照从小到大的顺序选取N-1个第二目标响应时间;将所述第一目标响应时间所对应 的创始节点、所述第二目标响应时间所对应的候选共识节点,确定为对所述第一交易进行共识验证的共识节点;
    若所述第二响应时间集合中的响应时间,符合第一条件的响应时间为B个,则从第一响应时间集合中选取最小的2个第一目标响应时间,从所述第二候选响应时间结合中按照从小到大的顺序选取N-2个第二目标响应时间;将所述第一目标响应时间所对应的创始节点、所述第二目标响应时间所对应的候选共识节点,确定为对所述第一交易进行共识验证的共识节点;
    若所述第二响应时间集合中的响应时间,符合第一条件的响应时间为C个,则从第一响应时间集合中选取最小的3个第一目标响应时间,从所述第二候选响应时间结合中按照从小到大的顺序选取N-3个第二目标响应时间;将所述第一目标响应时间所对应的创始节点、所述第二目标响应时间所对应的候选共识节点,确定为对所述第一交易进行共识验证的共识节点;
    其中,所述第一条件为:响应时间的数值不大于所述第一响应时间集合中的全部响应时间的数值;A>=N-1,N-1>B>=2,2>C>=0,且A、B、C为整数。
  6. 根据权利要求4所述的系统,
    所述创始节点,针对被选取的参与共识验证处理的候选验证节点,调整所述候选共识节点参与共识验证的参与权重。
  7. 根据权利要求6所述的系统,
    所述创始节点,记录被选取的所述候选共识节点的响应时间;以及,
    根据记录的所述候选共识节点的响应时间和所述候选共识节点参与共识验证的次数,调整对应候选共识节点参与共识验证的参与权重。
  8. 根据权利要求6所述的系统,
    所述创始节点,基于所述多个候选共识节点的所述参与权重,根据预设的第二共识节点选取规则,从所述候选共识节点中选取对所述第一交易进行共识验证的共识节点。
  9. 根据权利要求1所述的系统,所述创始节点,接收用户的终端设备发送的系统加入请求,向添加至所述区块链系统的用户的终端设备发送第二可验证声明;其中,所述第二可验证声明用于证明所述用户被授予访问所述区块链系统的权限。
  10. 根据权利要求9所述的系统,所述创始节点,接收所述用户的终端设备发送的第一创建请求,其中,所述第一创建请求用于请求创建候选共识节点,所述第一创建请求包括所述第二可验证声明;
    所述创始节点,若确定所述第一创建请求包括的所述第二可验证声明合法、且当前所述候选共识节点的数量未到达预设的数量阈值,则创建候选共识节点;
    所述创始节点创建的所述候选共识节点,同步所述区块链上的区块链数据。
  11. 根据权利要求9所述的系统,所述区块链系统还包括数据节点,所述数据节点,向所述区块链中保存数据或者从所述区块链中读取数据;
    所述创始节点,接收所述用户的终端设备发送的第二创建请求,其中,所述第二创建请求用于请求创建所述数据节点,所述第二创建请求包括所述第二可验证声明;
    所述创始节点,若确定所述第二创建请求包括的所述第二可验证声明合法,则创建数据节点;
    所述创始节点创建的所述数据节点,同步所述区块链上的区块链数据。
  12. 根据权利要求10或11所述的系统,所述第二可验证声明包括有效时段;
    所述创始节点基于所述第二可验证声明所创建的节点,以明文形式同步所述有效时段内的区块链数据,以密文形式同步所述有效时段以外的区块链数据。
  13. 根据权利要求9所述的系统,所述创始节点,为添加至所述区块链系统的用户配置初始GAS。
  14. 一种区块链系统的运行方法,包括:
    创始节点根据提交至区块链的第一交易,基于预设的共识节点选取规则,从候选共识节点中选取对所述第一交易进行共识验证的共识节点;
    被选取的所述候选共识节点,对所述第一交易进行共识验证处理。
  15. 根据权利要求14所述的方法,所述从候选共识节点中选取对所述第一交易进行共识验证的共识节点之后,还包括:
    所述创始节点向被选取的候选共识节点发送第一可验证声明;其中,所述第一可验证声明用于证明所述被选取的候选共识节点被授予对所述第一交易进行共识验证的权限;
    所述被选取的所述候选共识节点,对所述第一交易进行共识验证处理,包括:
    被选取的所述候选共识节点,基于接收到的所述第一可验证声明,对所述第一交易进行共识验证处理。
  16. 根据权利要求14所述的方法,所述基于预设的共识节点选取规则,从候选共识节点中选取对所述第一交易进行共识验证的共识节点,包括:
    根据预设的第一共识节点选取规则,从所述创始节点和所述候选共识节点中选取N 个对所述第一交易进行共识验证的共识节点;其中,N为大于1且不大于所述创始节点和所述共识节点的总数量的整数;选取的所述共识节点包括至少一个创始节点和至少一个候选共识节点;
    所述被选取的所述候选共识节点,对所述第一交易进行共识验证处理,包括:
    被选取的所述创始节点和被选取的所述候选共识节点,共同对所述第一交易进行共识验证处理。
  17. 根据权利要求16所述的方法,所述根据预设的第一共识节点选取规则,从所述创始节点和所述候选共识节点中选取N个对所述第一交易进行共识验证的共识节点,包括:
    获取每个所述创始节点和每个所述候选共识节点对预设指令的响应时间,其中,所述预设指令由提交所述第一交易的提交节点发送;以及,
    根据所述响应时间,从所述创始节点和所述候选共识节点中,选取N个对所述第一交易进行共识验证的共识节点。
  18. 根据权利要求17所述的方法,所述根据所述响应时间,从所述创始节点和所述候选共识节点中,选取N个对所述第一交易进行共识验证的共识节点,包括:
    获取每个所述创始节点的响应时间以得到第一响应时间集合,从多个候选共识节点的响应时间中按照从小到大的顺序选取第一预设数量的响应时间,以得到第二响应时间集合;以及,
    若所述第二响应时间集合中的响应时间,符合第一条件的响应时间为A个,则从第一响应时间集合中选取最小的1个第一目标响应时间,从所述第二候选响应时间结合中按照从小到大的顺序选取N-1个第二目标响应时间;将所述第一目标响应时间所对应的创始节点、所述第二目标响应时间所对应的候选共识节点,确定为对所述第一交易进行共识验证的共识节点;
    若所述第二响应时间集合中的响应时间,符合第一条件的响应时间为B个,则从第一响应时间集合中选取最小的2个第一目标响应时间,从所述第二候选响应时间结合中按照从小到大的顺序选取N-2个第二目标响应时间;将所述第一目标响应时间所对应的创始节点、所述第二目标响应时间所对应的候选共识节点,确定为对所述第一交易进行共识验证的共识节点;
    若所述第二响应时间集合中的响应时间,符合第一条件的响应时间为C个,则从第一响应时间集合中选取最小的3个第一目标响应时间,从所述第二候选响应时间结合中 按照从小到大的顺序选取N-3个第二目标响应时间;将所述第一目标响应时间所对应的创始节点、所述第二目标响应时间所对应的候选共识节点,确定为对所述第一交易进行共识验证的共识节点;
    其中,所述第一条件为:响应时间的数值不大于所述第一响应时间集合中的全部响应时间的数值;A>=N-1,N-1>B>=2,2>C>=0,且A、B、C为整数。
  19. 根据权利要求17所述的方法,所述选取N个对所述第一交易进行共识验证的共识节点之后,还包括:
    所述创始节点针对被选取的参与共识验证处理的候选验证节点,调整所述候选共识节点参与共识验证的参与权重。
  20. 根据权利要求19所述的方法,所述调整所述候选共识节点参与共识验证的参与权重,包括:
    记录被选取的所述候选共识节点的响应时间;以及,
    根据记录的所述候选共识节点的响应时间和所述候选共识节点参与共识验证的次数,调整对应候选共识节点参与共识验证的参与权重。
  21. 根据权利要求19所述的方法,所述基于预设的共识节点选取规则,从候选共识节点中选取对所述第一交易进行共识验证的共识节点,包括:
    基于所述多个候选共识节点的所述参与权重,根据预设的第二共识节点选取规则,从所述候选共识节点中选取对所述第一交易进行共识验证的共识节点。
  22. 根据权利要求14所述的方法,所述方法还包括:
    所述创始节点接收用户的终端设备发送的系统加入请求,向添加至所述区块链系统的用户的终端设备发送第二可验证声明;其中,所述第二可验证声明用于证明所述用户被授予访问所述区块链系统的权限。
  23. 根据权利要求22所述的方法,所述方法还包括:
    所述创始节点接收所述用户的终端设备发送的第一创建请求,其中,所述第一创建请求用于请求创建候选共识节点,所述第一创建请求包括所述第二可验证声明;
    若确定所述第一创建请求包括的所述第二可验证声明合法、且当前所述候选共识节点的数量未到达预设的数量阈值,则创建候选共识节点;以及,
    所述创始节点创建的所述候选共识节点,同步所述区块链上的区块链数据。
  24. 根据权利要求22所述的方法,所述区块链系统还包括数据节点,所述数据节点,向所述区块链中保存数据或者从所述区块链中读取数据;所述方法还包括:
    所述创始节点接收所述用户的终端设备发送的第二创建请求,其中,所述第二创建请求用于请求创建所述数据节点,所述第二创建请求包括所述第二可验证声明;
    若确定所述第二创建请求包括的所述第二可验证声明合法,则创建数据节点;以及,
    所述创始节点创建的所述数据节点,同步所述区块链上的区块链数据。
  25. 根据权利要求23或24所述的方法,所述第二可验证声明包括有效期限,所述同步所述区块链上的区块链数据,包括:
    以明文形式同步所述有效时段内的区块链数据,以密文形式同步所述有效时段以外的区块链数据。
  26. 根据权利要求22所述的方法,所述方法还包括:
    所述创始节点为添加至所述区块链系统的用户配置初始GAS。
  27. 一种区块链运行装置,应用于区块链系统的创始节点,所述装置包括:
    选取模块,根据提交至区块链的第一交易,基于预设的共识节点选取规则,从候选共识节点中选取对所述第一交易进行共识验证的共识节点;以通过被选取的所述候选共识节点,对所述第一交易进行共识验证处理。
  28. 根据权利要求27所述的装置,所述装置还包括:发送模块;
    所述发送模块,向被选取的候选共识节点发送第一可验证声明,以使所述被选取的候选共识节点,基于所述第一可验证声明对所述第一交易进行共识验证处理;其中,所述第一可验证声明用于证明所述被选取的候选共识节点被授予对所述第一交易进行共识验证的权限。
  29. 根据权利要求27所述的装置,
    所述选取模块,根据预设的第一共识节点选取规则,从所述创始节点和所述候选共识节点中选取N个对所述第一交易进行共识验证的共识节点;其中,N为大于1且不大于所述创始节点和所述共识节点的总数量的整数;选取的所述共识节点包括至少一个创始节点和至少一个候选共识节点。
  30. 根据权利要求29所述的装置,所述装置还包括:调整模块;
    所述调整模块,针对被选取的参与共识验证处理的候选验证节点,调整所述候选共识节点参与共识验证的参与权重。
  31. 根据权利要求30所述的装置,
    所述选取模块,基于所述多个候选共识节点的所述参与权重,根据预设的第二共识节点选取规则,从所述候选共识节点中选取对所述第一交易进行共识验证的共识节点。
  32. 一种区块链运行设备,包括:
    处理器;以及,
    被安排成存储计算机可执行指令的存储器,所述计算机可执行指令在被执行时使所述处理器:
    根据提交至区块链的第一交易,基于预设的共识节点选取规则,从候选共识节点中选取对所述第一交易进行共识验证的共识节点;以通过被选取的所述候选共识节点,对所述第一交易进行共识验证处理。
  33. 一种存储介质,用于存储计算机可执行指令,所述计算机可执行指令在被执行时实现以下流程:
    根据提交至区块链的第一交易,基于预设的共识节点选取规则,从候选共识节点中选取对所述第一交易进行共识验证的共识节点;以通过被选取的所述候选共识节点,对所述第一交易进行共识验证处理。
PCT/CN2020/103961 2019-11-07 2020-07-24 区块链系统及其运行方法、装置及设备 WO2021088421A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201911083990.9A CN110956542B (zh) 2019-11-07 2019-11-07 区块链系统及其运行方法、装置及设备
CN201911083990.9 2019-11-07

Publications (1)

Publication Number Publication Date
WO2021088421A1 true WO2021088421A1 (zh) 2021-05-14

Family

ID=69976820

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/103961 WO2021088421A1 (zh) 2019-11-07 2020-07-24 区块链系统及其运行方法、装置及设备

Country Status (3)

Country Link
CN (1) CN110956542B (zh)
TW (1) TWI748444B (zh)
WO (1) WO2021088421A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110956542B (zh) * 2019-11-07 2021-05-18 支付宝(杭州)信息技术有限公司 区块链系统及其运行方法、装置及设备
CN111556149B (zh) * 2020-04-27 2022-10-21 中国银行股份有限公司 一种基于Raft共识算法的节点选择方法及装置
CN113256426B (zh) * 2020-05-29 2023-08-04 支付宝(杭州)信息技术有限公司 一种数据处理方法、装置、设备及介质
CN112491845B (zh) * 2020-11-18 2023-04-25 北京数码视讯科技股份有限公司 普通节点准入方法、装置、电子设备及可读存储介质
CN112231414B (zh) * 2020-12-14 2022-02-25 腾讯科技(深圳)有限公司 区块链系统的数据同步方法、装置、可读介质及电子设备
CN112954009B (zh) * 2021-01-27 2023-05-02 咪咕音乐有限公司 区块链共识方法、设备及存储介质
CN112835854A (zh) * 2021-02-01 2021-05-25 北京百度网讯科技有限公司 文件存储方法、装置、电子设备和存储介质
CN112995317B (zh) * 2021-02-26 2023-04-07 中国工商银行股份有限公司 区块链共识方法及区块链节点
CN112804351B (zh) * 2021-03-05 2022-12-23 中国工商银行股份有限公司 区块链系统的流量控制方法、装置、节点、介质及产品
CN113225191B (zh) * 2021-03-24 2024-02-13 湖南宸瀚信息科技有限责任公司 共识节点的生成方法、装置、存储介质及处理器
CN113179286B (zh) * 2021-06-30 2022-08-19 广州平云信息科技有限公司 一种区块链的数据监管方法和系统
CN115374216B (zh) * 2022-08-10 2024-04-02 深圳市沃享科技有限公司 共识方案的构建方法、装置、终端设备及计算机介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107231239A (zh) * 2017-06-27 2017-10-03 中国联合网络通信集团有限公司 创世区块防伪方法及装置
US20180276668A1 (en) * 2017-03-24 2018-09-27 Alibaba Group Holding Limited Method and apparatus for consensus verification
CN109347917A (zh) * 2018-09-14 2019-02-15 北京沃杰知识产权有限公司 区块链数据共识处理方法、系统、存储介质和电子设备
CN109639413A (zh) * 2018-12-10 2019-04-16 四川大学 一种基于移动自组网的区块链系统
CN110956542A (zh) * 2019-11-07 2020-04-03 支付宝(杭州)信息技术有限公司 区块链系统及其运行方法、装置及设备

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201611948D0 (en) * 2016-07-08 2016-08-24 Kalypton Int Ltd Distributed transcation processing and authentication system
CN107451175B (zh) * 2017-05-23 2020-01-31 创新先进技术有限公司 一种基于区块链的数据处理方法及设备
TWI648679B (zh) * 2017-08-16 2019-01-21 永豐商業銀行股份有限公司 使用區塊鏈之證照發行管理系統與方法
CN107590738A (zh) * 2017-08-24 2018-01-16 阿里巴巴集团控股有限公司 选择共识节点的处理方法、装置及服务器
CN108769173B (zh) * 2018-05-21 2021-11-09 阿里体育有限公司 运行智能合约的区块链实现方法及设备
TWI656496B (zh) * 2018-08-16 2019-04-11 楊少銘 弱中心化基金交易系統及其方法
CN109508982B (zh) * 2018-11-21 2022-11-29 北京蓝石环球区块链科技有限公司 区块链主链加并行多子链的随机并行拜占庭容错共识方法
CN109961287A (zh) * 2019-02-12 2019-07-02 众安信息技术服务有限公司 一种区块链的监管方法及监管系统
CN109978516A (zh) * 2019-03-06 2019-07-05 西安电子科技大学 区块链网络中区块的制造和同步方法、信息数据处理终端

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180276668A1 (en) * 2017-03-24 2018-09-27 Alibaba Group Holding Limited Method and apparatus for consensus verification
CN107231239A (zh) * 2017-06-27 2017-10-03 中国联合网络通信集团有限公司 创世区块防伪方法及装置
CN109347917A (zh) * 2018-09-14 2019-02-15 北京沃杰知识产权有限公司 区块链数据共识处理方法、系统、存储介质和电子设备
CN109639413A (zh) * 2018-12-10 2019-04-16 四川大学 一种基于移动自组网的区块链系统
CN110956542A (zh) * 2019-11-07 2020-04-03 支付宝(杭州)信息技术有限公司 区块链系统及其运行方法、装置及设备

Also Published As

Publication number Publication date
TWI748444B (zh) 2021-12-01
CN110956542B (zh) 2021-05-18
CN110956542A (zh) 2020-04-03
TW202119328A (zh) 2021-05-16

Similar Documents

Publication Publication Date Title
WO2021088421A1 (zh) 区块链系统及其运行方法、装置及设备
AU2019101613A4 (en) Method and apparatus for processing transaction requests
US11196755B2 (en) Cross-blockchain interaction systems
KR102068349B1 (ko) 블록체인 시스템과 데이터 저장 방법 및 장치
WO2021174930A1 (zh) 一种业务处理系统、业务处理的方法、装置及设备
US20210327007A1 (en) Signing methods, apparatuses and devices of electronic contract
TW201835835A (zh) 一種事務請求的處理方法及裝置
WO2021175057A1 (zh) 一种业务处理系统、业务处理的方法、装置及设备
US20200364704A1 (en) Transferring operations based on blockchain smart contract
TW201822033A (zh) 資源處理方法及裝置
WO2020258858A1 (zh) 块链式账本中的授权方法、系统、装置及设备
CN108694574B (zh) 一种资源转移渠道的处理方法、装置及设备
US20200213094A1 (en) Ledger verification method and apparatus, and device
WO2021238996A1 (zh) 一种资源处理方法、装置及设备
CN111669434B (zh) 一种通信群组的建立方法、系统、装置及设备
CN113221142A (zh) 授权业务的处理方法、装置、设备及系统
CN105988767A (zh) 信息处理装置、信息处理方法和信息处理系统
US20200175502A1 (en) Confidential transaction in a blockchain network
US20200213136A1 (en) Monitoring time certificate generation requests
CN112418857B (zh) 基于utxo模型的隐藏交易方法、装置及相关产品
EP3942501A1 (en) Method, transaction management device and computer-readable media for facilitating concurrent transactions
CN112597533B (zh) 一种基于隐私保护的风险防控方法、装置及设备
KR102515902B1 (ko) 물리적 복제 방지 기술을 이용한 인증 장치

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20885379

Country of ref document: EP

Kind code of ref document: A1