Data processing method, computer device, and storage medium

By introducing verification node clusters, dispatch node clusters and computing node clusters into the blockchain clustering system, using random number seeds to select computing nodes and perform legitimacy verification, the limited computing resources and zones of clustered systems are solved when scale expansion is expanded. The problem of slow block generation speed achieves flexible expansion of computing resources and improved system efficiency.

WO2025000917A1PCT designated stage expired Publication Date: 2025-01-02TENCENT TECHNOLOGY (SHENZHEN) CO LTD

Patent Information

Application Number
PCT/CN2023/137307
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-06-29
Filing Date
2023-12-08
Publication Date
2025-01-02

Smart Images

  • Figure CN2023137307_02012025_PF_FP_ABST
    Figure CN2023137307_02012025_PF_FP_ABST
Patent Text Reader

Abstract

The present application relates to the field of distributed computing, and discloses a data processing method, a computer device, and a storage medium, used for improving the scalability of computing resources of computing systems and reducing the block producing blockage degree of blockchains while ensuring the trustworthiness of the systems, thereby improving the block generation efficiency of the blockchains. The method is realized on the basis of a distributed computing system supporting node scaling, and the system comprises a verification node cluster, a scheduling node cluster and a computing node cluster. The system and the data processing method can improve the scalability of computing resources. Users can all use their own computers as computing nodes to provide certain computing power. A user that desires to perform computation can send a computing task to a designated scheduling node, and randomly selects a computing node on the basis of a random number seed sent by himself / herself, so that the fairness and the security of the computing task are ensured, and the identity trustworthiness of all nodes can be ensured by means of a multi-layer certificate authority mechanism.
Need to check novelty before this filing date? Find Prior Art

Description

Data processing method, computer device and storage medium

[0001] This application claims priority to the Chinese patent application filed with the China Patent Office on June 29, 2023, with application number 202310785769.8 and application name “Multi-party computing verification method, device, equipment and storage medium based on blockchain”. The entire contents of the application are incorporated by reference into this application. Technical Field

[0002] The present application relates to the field of computer technology, in particular to the field of multi-party computing technology, and provides a data processing method, a computer device, and a storage medium. Background Art

[0003] Currently, computing tasks are typically performed using clustered systems. However, these systems face trust issues between cluster nodes, meaning that task initiators cannot guarantee the reliability of the computational process and results. With the introduction of blockchain technology, a growing number of blockchain-based clustered system solutions have been proposed. Blockchain is a chained data structure characterized by decentralization and data tamper resistance. These two characteristics make the information recorded on the blockchain more authentic and reliable. Because consensus is reached across multiple cluster nodes when generating blocks, trust can be maintained across multiple parties, helping to address the issue of mutual distrust among nodes in the system.

[0004] However, in the current blockchain-based cluster system, cluster nodes not only need to carry out computing tasks, but also blockchain-related consensus tasks and storage tasks. As the scale of the cluster system increases, the time consumed by the consensus process will continue to increase, which restricts the expansion of the system scale and makes the computing resources that the entire system can provide extremely limited.

[0005] Summary of the Invention

[0006] The embodiments of the present application provide a data processing method, a computer device, and a storage medium, which help to improve the convenience of expanding computing resources.

[0007] In one aspect, a data processing method is provided, which is executed in any verification node in a verification node cluster included in a computing system, wherein the computing system further includes a scheduling node cluster and a computing node cluster; the method includes:

[0008] Obtaining, from a scheduling node in the scheduling node cluster, task event information and a signature of the task event information, the task event information including: a first set of computing nodes participating in executing the computing task and a random number seed provided by a task submitter of the computing task; and verifying the signature;

[0009] When the signature passes verification, deriving a first set of random numbers based on the random number seed;

[0010] Selecting, from the computing node cluster, a second set of computing nodes associated with the first set of random numbers for the computing task;

[0011] Verifying the legitimacy of the first set of computing nodes using the second set of computing nodes to obtain a corresponding verification result;

[0012] Adding a block containing the verification result to the blockchain of the verification node cluster.

[0013] In one aspect, a data processing method is provided, which is executed in any scheduling node in a scheduling node cluster included in a computing system, wherein the multi-party computing system further includes a verification node cluster and a computing node cluster; the method comprises:

[0014] Receive a computing request sent by a task submission end, the computing request including: a computing task and a random number seed provided for the computing task;

[0015] deriving a second set of random numbers based on the random number seed;

[0016] Selecting, from the computing node cluster, a first set of computing nodes associated with the second set of random numbers for the computing task;

[0017] Distributing the computing task to the first set of computing nodes so that the first set of computing nodes executes the computing task;

[0018] Upon receiving the calculation result of the computing task by each first computing node in the first computing node set, updating the computing task to a completed state;

[0019] Generate task event information and a signature for the task event information, wherein the task event information includes: a first set of computing nodes participating in executing the computing task and a random number seed provided by a task submitting end of the computing task;

[0020] The task event information and the signature of the task event information are sent to a verification node connected to the scheduling node, so that the verification node verifies the legitimacy of the first computing node set.

[0021] In one aspect, a data processing method is provided, which is executed in any computing node in a computing node cluster included in a computing system, wherein the multi-party computing system further includes a verification node cluster and a scheduling node cluster; the method comprises:

[0022] receiving a computing request sent by a scheduling node connected to the computing node, wherein the computing request instructs: executing a computing task submitted by a task submitting terminal;

[0023] Execute the computing task to obtain a corresponding computing result, and sign the computing result based on its own digital certificate to obtain corresponding signature information;

[0024] The calculation result and the signature information are sent to the scheduling node, so that the scheduling node: when receiving the calculation result of the calculation task from each first computing node in the first computing node set participating in executing the calculation task, the scheduling node updates the calculation task to a completed state; generates task event information and a signature for the task event information, the task event information including: the first computing node set and a random number seed provided by the task submission end of the calculation task; sends the task event information and the signature for the task event information to a verification node connected to the scheduling node, so that the verification node verifies the legitimacy of the first computing node set.

[0025] In one aspect, a computer device is provided, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the steps of any one of the above methods when executing the computer program.

[0026] In one aspect, a computer storage medium is provided, on which a computer program is stored, and when the computer program is executed by a processor, the steps of any of the above methods are implemented.

[0027] In one aspect, a computer program product is provided, comprising a computer program stored in a computer-readable storage medium. A processor of a computer device reads the computer program from the computer-readable storage medium and executes the computer program, causing the computer device to perform the steps of any of the above methods. BRIEF DESCRIPTION OF THE DRAWINGS

[0028] In order to more clearly illustrate the technical solutions in the embodiments of the present application or related technologies, the following briefly introduces the drawings required for use in the embodiments or related technical descriptions. Obviously, the drawings described below are only embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on the provided drawings without paying any creative work.

[0029] FIG1 is a schematic diagram of the structure of a blockchain provided in an embodiment of the present application;

[0030] FIG2 is a schematic diagram of an application scenario provided by an embodiment of the present application;

[0031] 3a and 3b are schematic diagrams of the architecture of a computing system provided in an embodiment of the present application;

[0032] Figures 4a to 4c are schematic diagrams of the structures of various nodes provided in an embodiment of the present application;

[0033] FIG5 is a flow chart of a scheduling node deployment process provided in an embodiment of the present application;

[0034] Figures 6a and 6b are schematic diagrams of a scheduling node deployment page provided in an embodiment of the present application;

[0035] FIG7 is a flow chart of a computing node deployment process provided in an embodiment of the present application;

[0036] FIG8 is a flow chart of a data processing method according to an embodiment of the present application;

[0037] Figures 9a and 9b are schematic diagrams of relevant pages provided in an embodiment of the present application;

[0038] FIG10 is a flow chart of a random selection process according to an embodiment of the present application;

[0039] FIG11 is a flow chart of a computing task scheduling and allocation process provided in an embodiment of the present application;

[0040] FIG12 is a flow chart of a computing task scheduling and allocation process provided in an embodiment of the present application;

[0041] FIG13 is a schematic structural diagram of a data processing device provided in an embodiment of the present application;

[0042] FIG14 is a schematic structural diagram of another data processing device provided in an embodiment of the present application;

[0043] FIG15 is a schematic structural diagram of another data processing device provided in an embodiment of the present application;

[0044] FIG16 is a schematic diagram of the composition structure of a computer device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0045] In order to make the purpose, technical solutions and advantages of the present application clearer, the technical solutions in the embodiments of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, rather than all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without making creative work are within the scope of protection of this application. In the absence of conflict, the embodiments in the present application and the features in the embodiments can be combined with each other in any way. In addition, although a logical order is shown in the flow chart, in some cases, the steps shown or described can be performed in an order different from that here.

[0046] It will be understood that in the following specific implementation methods of this application, if data related to the target object is involved, when the various embodiments of this application are applied to specific products or technologies, relevant permissions or consents need to be obtained, and the collection, use and processing of relevant data need to comply with the relevant laws, regulations and standards of relevant countries and regions.

[0047] To facilitate understanding of the technical solutions provided in the embodiments of the present application, some key terms used in the embodiments of the present application are explained here:

[0048] Blockchain: also known as distributed data record book, is a chain data structure that combines data blocks in a sequential manner according to chronological order, and is cryptographically guaranteed to be tamper-proof and unforgeable, realizing a decentralized distributed ledger. It is generally composed of consensus, block and state data storage, cryptographic identity security, etc. Because the ledger is distributed and the blocks are agreed upon, it has the characteristics of being tamper-proof, traceable, and jointly maintained. As shown in Figure 1, which is a schematic diagram of the structure of the blockchain provided in the embodiment of the present application, a blockchain is formed by connecting blocks in sequence.

[0049] Blocks are used to record data sets and status results divided according to certain conditions. They are formed after each node reaches a consensus. In the embodiment of the present application, the data that needs to be recorded is mainly the legitimacy verification results randomly assigned to the computing nodes. Specifically, blocks can be divided by time. For example, a block is generated every 10 seconds (s), so this block records all the data within these 10s; or blocks can also be divided according to the number of computing tasks. For example, after receiving a specified number of computing tasks, a block is generated. Then this block is used to record the legitimacy verification results corresponding to the specified number of computing tasks received. Of course, the embodiment of the present application does not limit the specific division method of the block. As shown in Figure 1, a rectangular box represents a block. A block can usually include a block header and a block body. Among them, the block header includes the previous block address (Prev-block). The previous block address can usually be stored in the block header in the form of a previous block hash code (pre-hash). All blocks are connected in series by pointing to the previous block address to form a blockchain. The block body is used to store specific data, such as the legitimacy verification results in the embodiments of this application.

[0050] Blockchain network: A blockchain network consists of multiple distributed devices. In blockchain technology, any device in the network can serve as a blockchain node and participate in the blockchain's recording and storage. Nodes maintain the entire blockchain through competitive computing based on a consensus mechanism. Because each node maintains a complete copy of the blockchain's data, even if any node fails, the remaining nodes can still function normally, resulting in high reliability for blockchain-based storage.

[0051] Furthermore, because blockchain technology maintains the entire blockchain through numerous nodes, each node can have the same permissions, eliminating the need for centralized devices or management agencies. All data in the blockchain is transparent and public, and modifications to the data of a single node, or even multiple nodes, cannot affect the data of other nodes unless more than half of the nodes in the entire blockchain network can be controlled to make the changes. This approach is difficult, and each block in the blockchain is linked to the two blocks before and after it. Tampering with the data in one block requires tampering with the data in multiple related blocks, which is difficult. Therefore, data stored on the blockchain is tamper-proof.

[0052] Secure multi-party computation (SMPC) refers to the collaborative computation of an agreed-upon function by multiple parties without a trusted third party, ensuring that each party only obtains its own computational results and cannot infer the input and output data of any other party from the interaction data during the computation (unless the function itself can infer the input and output of other participants from its own input).

[0053] Random Seed: Seed means the initial value, which is used to generate pseudo-random numbers. Specifically, the random seed is the starting point for generating a random number sequence. Generally, the random numbers of computers are pseudo-random numbers. A random seed is used as the initial condition, and then a certain algorithm is used to iterate and generate random numbers.

[0054] Signature and Verification: A signature, also known as a digital signature or public key digital signature, is a string of numbers that can only be generated by the sender and cannot be forged by others. This string also effectively proves the authenticity of the information sent by the sender. Verification verifies the validity of the signature. The recipient needs to confirm that the received file is indeed sent by the sender and whether it has been tampered with. Verification ultimately compares the message digest.

[0055] A digital certificate, or certificate for short, is an electronic document that uniquely identifies individuals and resources on the Internet. Certificates enable secure and confidential communication between two entities. There are many types of certificates, such as personal certificates (for individual use) and server certificates (used to establish secure sessions between servers and clients using Secure Sockets Layer (SSL) technology). Generally speaking, digital certificates are issued by a trusted authority or by a trusted individual within an organization.

[0056] Load balancing: Load balancing is a method of evenly distributing network traffic across the pool of resources supporting an application. Today's applications must typically handle millions of users simultaneously and return the correct text, video, images, and other data to each user quickly and reliably. To handle such high traffic, most applications have many resource servers with a high level of duplicate data. A load balancer is a device that sits between users and the server group, acting as an invisible coordinator to ensure equal use of all resource servers.

[0057] A process is a computer program's execution of a data set. It is the basic unit of system resource allocation and the foundation of operating system architecture. In early process-oriented computer architectures, processes were the primary execution entity of programs; in modern thread-oriented computer architectures, processes are containers for threads. A program is a description of instructions, data, and their organization, while a process is the entity that holds the program.

[0058] Coroutines: Coroutines are not system-level threads. They are often referred to as "lightweight threads," "microthreads," or "fibers." Simply put, a coroutine can be considered a function within a thread, meaning different coroutines can be different functions within a thread. In other words, a thread can contain multiple coroutines. These functions can quickly switch between each other. Coroutines are very similar to user-mode threads. Switching between user-mode threads does not require trapping to the kernel, but in some operating systems, switching between user-mode threads requires assistance from kernel-mode threads.

[0059] The technical concept of the embodiments of the present application is briefly described below:

[0060] Blockchain technology solves the problem of mutual distrust among nodes in clustered systems, but this also creates new challenges. Traditional blockchain nodes must simultaneously handle blockchain-related consensus and storage tasks, as well as the cluster's computing tasks. Consequently, as the cluster scales, the time required to reach consensus among a large number of nodes increases, hindering the expansion of the system.

[0061] Therefore, in the related technology, an external computing service provider is specified in the smart contract of the blockchain, and the cluster nodes no longer carry computing tasks. However, in this solution, the cluster nodes create blocks when they receive computing tasks, but they need to wait for the external computing service provider to return the calculation results of each computing task in the block before they can reach a consensus on the calculation results in the block. Only after the consensus is passed can the block be put on the chain and the next block can be created. The calculation process is usually time-consuming, which will result in slow block generation speed of the blockchain and low system efficiency.

[0062] Taking into account the constraints brought by the blockchain system architecture in the relevant technology, if you want to improve the situation where computing power is difficult to expand, you need to improve the architecture of the blockchain system. Therefore, the embodiment of the present application provides a computing system that supports node expansion, which includes a verification node cluster, a scheduling node cluster and a computing node cluster, which are respectively used to undertake blockchain consensus, computing scheduling and computing processes related to multi-party computing. In this way, the embodiment of the present application can decouple the tasks related to multi-party computing, making node expansion easier. For example, scheduling nodes and computing nodes can be flexibly expanded based on demand without considering the problem of low system efficiency caused by the increasing time-consuming consensus process due to the addition of nodes, thereby improving the scalability of computing resources of the computing system. In actual scenarios, users can even add personal computers to the computing node cluster to provide computing power, allowing computing resources to be expanded arbitrarily.

[0063] Based on the above-mentioned system architecture, an embodiment of the present application proposes a data processing method. When submitting a computing task, the task submission end will submit a random number seed. Then, when the scheduling node schedules the computing task submitted by it, it will select a first set of computing nodes to execute the computing task based on a second random number set derived from the random number seed. After these computing nodes complete the computing task, they will generate task event information and a signature for the task event information. The task event information includes: the first set of computing nodes participating in the execution of the computing task and the random number seed provided by the task submission end of the computing task. Then, when the verification node performs consensus block generation, it can determine the second set of computing nodes based on the random number seed after the signature is verified, and then verify the legitimacy of the first set of computing nodes actually participating in the execution of the computing task based on the second set of computing nodes. Therefore, in the embodiment of the present application, the computing nodes are randomly selected according to the random number seed sent by the task submission end, thereby ensuring the fairness and security of the computing task. Moreover, the embodiment of the present application not only solves the problem of system credibility through the characteristics of the blockchain through consensus verification of the set of computing nodes selected by the random number seed, but also, because the verification nodes do not need to perform consensus verification on the calculation results, but instead adopt a method of verifying whether the node allocation is legal, the computing resources required for the verification nodes to generate blocks are reduced, the block generation congestion of the blockchain is reduced, and the efficiency of the blockchain in generating blocks is improved.

[0064] The embodiments of this application, combined with the aforementioned system architecture, also provide unlimited scalability for multi-party computing. Each user can connect their computer to the nearest scheduling node, acting as a computing node and providing a certain amount of computing power. Furthermore, a multi-level authentication mechanism based on a multi-layered blockchain architecture is provided. By issuing certificates at each level, the legitimate authority of the node is guaranteed, allowing users to verify the identity of the node with confidence.

[0065] The following briefly introduces the application scenarios to which the technical solutions of the embodiments of the present application can be applied. It should be noted that the application scenarios described below are only used to illustrate the embodiments of the present application and are not limiting. In the specific implementation process, the technical solutions provided by the embodiments of the present application can be flexibly applied according to actual needs.

[0066] The solution provided by the embodiment of the present application can be applied to most scenarios involving computing, such as big data computing scenarios or cloud computing scenarios. As shown in Figure 2, an application scenario provided by the embodiment of the present application is shown, in which a terminal device 201 and a computing system 202 may be included.

[0067] The terminal device 201 can be, for example, a mobile phone, a tablet computer (PAD), a laptop computer, a desktop computer, a smart TV, a smart car device, and a smart wearable device, and any device capable of submitting computing tasks. The terminal device 201 can be installed with a target application, which has the function of presenting and submitting computing tasks. The application involved in the embodiment of the present application can be a software client, or a client such as a web page or a small program, and the specific type of the client is not limited.

[0068] Computing system 202 is used to provide actual task scheduling and execution, as well as store status data related to the execution of tasks across the entire system (e.g., the scheduling results for each computing task), to ensure the trustworthiness between nodes within the system. Computing system 202 can be a server cluster or distributed system consisting of multiple physical servers, or a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, content delivery networks (CDNs), and big data and artificial intelligence platforms, but is not limited to these.

[0069] In an actual scenario, a user can submit his own computing task through the terminal device 201, and submit a random number seed for the computing task at the same time as submitting the computing task. Then, the computing system 202 can randomly schedule computing nodes for the user based on the random number seed, so as to execute the computing task through these computing nodes. However, it should be noted that in computer technology, there are actually no real random numbers. All random numbers are pseudo-random numbers, that is, there are certain rules. Therefore, although the embodiment of the present application submits a random number seed when submitting a computing task, in fact, a random number seed can specify some computing nodes. On the one hand, the user can choose the computing node he wants. On the other hand, this random allocation method can ensure the fairness of the allocation of computing nodes in the system. Moreover, the pseudo-random number method makes the scheduling of computing nodes actually traceable, thereby providing the feasibility of verifying the scheduling results.

[0070] In the embodiment of the present application, the computing system 202 adopts a multi-party computing architecture based on a multi-layered blockchain architecture, which consists of three parts: a verification node cluster, a scheduling node cluster, and a computing node cluster. Each cluster undertakes a system function, and by performing its duties, various functions in the system can be carried out independently, laying the foundation for the scalability of the system.

[0071] In the embodiment of the present application, the terminal device 201 and the computing system 202 can be directly or indirectly connected to each other through one or more networks 203. The network 203 can be a wired network or a wireless network. For example, the wireless network can be a mobile cellular network or a Wireless Fidelity (WIFI) network. Of course, other possible networks are also possible, and the embodiment of the present application does not limit this.

[0072] 3a is a schematic diagram of the architecture of a computing system 202 provided in an embodiment of the present application, wherein black circles represent verification nodes, gray circles represent scheduling nodes, and white circles represent computing nodes.

[0073] As shown in Figure 3a, the verification node cluster includes multiple verification nodes, and each verification node is connected to each other. Each verification node is connected to at least one scheduling node in the scheduling node cluster, and each scheduling node is uniquely connected to one verification node. Each scheduling node in the scheduling node cluster is connected to at least one computing node in the computing node cluster, and each computing node is uniquely connected to one scheduling node.

[0074] As shown in Figure 3a, the computing system 202 is a top-down three-level architecture, in which the verification node cluster is the first level, which is used to carry the central audit tasks of the entire system, including the consensus verification tasks of the blockchain; the scheduling node cluster is the second level, which is used to carry the scheduling tasks of the entire system, that is, to schedule computing tasks to the corresponding computing nodes; the computing node cluster is the third level, which is used to implement the computing functions of the entire system.

[0075] In actual scenarios, in order to achieve higher-level architectural expansion, the above-mentioned clusters can actually be further layered. See Figure 3b, which is an architectural diagram of another computing system 202 provided in an embodiment of the present application. Here, the layering of scheduling nodes is specifically illustrated as an example.

[0076] Similar to Figure 3a, each verification node in the verification node cluster is connected to at least one scheduling node in the scheduling node cluster, and each scheduling node is uniquely connected to one verification node. The difference from Figure 3a is that the scheduling node cluster can include multiple scheduling node subclusters, each scheduling node subcluster includes N levels of scheduling nodes, the first level scheduling node connects at least one verification node and the next level scheduling node, the last level scheduling node connects the corresponding computing node and the previous level scheduling node, the i-th level scheduling node connects the i-1th level scheduling node and the i+1th level scheduling node, i is a positive integer greater than 1 and less than N, and N is a positive integer greater than 1.

[0077] As shown in Figure 3b, the scheduling node to which each verification node is connected is the root node in a scheduling node subcluster. After this scheduling node, multiple levels of scheduling nodes can be connected. Although only one level of scheduling node is shown in Figure 3b, in actual application, more levels of scheduling nodes can be set according to actual conditions, and each scheduling node can manage and schedule the computing nodes connected to its child nodes.

[0078] It can be seen that in the architecture shown in Figure 3b, for computing nodes, users can add their own computing devices to the computing node cluster, thereby expanding the computing power of the entire system.

[0079] It should be noted that the number of nodes in the above diagram is only an example. In actual scenarios, reasonable configuration can be made according to the actual scenario, and the embodiments of this application do not impose any restrictions on this. In addition, in the actual node establishment process, it is necessary to achieve load balancing as much as possible, that is, the number of subordinate nodes allocated to each node is as equal as possible to avoid overloading a single node.

[0080] In actual application, the user can submit a computing task through the terminal device 201, and the computing task will arrive at one of the scheduling nodes in the above-mentioned scheduling node cluster. The scheduling node can be a node selected by the user or a scheduling node assigned by the system. The scheduling node will assign a computing node to the user based on the random number seed submitted by the user when submitting the computing task. At the same time, the verification node will generate a corresponding random number verification task after the computing task is executed to verify the legitimacy of the computing node allocation by the scheduling node. That is, the verification node will also determine the computing node assigned to the user based on the random number seed, and compare it with the computing node assigned by the scheduling node to confirm whether the scheduling is legal, so as to ensure the credibility of the nodes in the system.

[0081] The following describes each of the above nodes separately.

[0082] (1) Verification Node

[0083] It can be called a central audit blockchain node. Each verification node is a node in the verification node cluster. The verification node mainly undertakes blockchain-related tasks and is used to maintain the status of the blockchain, including verifying the random number calculation results of all scheduling nodes and synchronizing the status of all computing tasks.

[0084] FIG4 a shows a schematic diagram of the structure of a verification node according to an embodiment of the present application. Since the structure of each verification node is similar, only one verification node is used as an example. The verification node includes the following modules:

[0085] (1) Network module, which is responsible for communicating with other verification nodes in the verification node cluster, as well as the scheduling node and the user's terminal device.

[0086] (2) A verification interface module, which is used to provide a verification interface to the outside world. It may include a single verification interface and a batch verification interface, which can be used to implement a single verification task and a batch verification task when called respectively. A single verification task may refer to a user or other nodes in the system needing to perform a single verification on the state stored in the blockchain, and then calling the single verification interface to perform a single verification task; or a batch verification task may refer to a user or other nodes in the system needing to perform a batch verification on the state stored in the blockchain, and then calling the batch verification interface to perform a batch verification task.

[0087] (3) Authentication module (level 1), which is responsible for verifying permissions, saving certificates, and issuing certificates. This module includes: a certificate and private key storage submodule, which is used to store the certificates and private keys of each role in the system, such as its own certificate and the certificate of the scheduling node; a certificate issuance submodule, which is used to issue certificates to the scheduling nodes of the next level when a new scheduling node is deployed; an authentication algorithm submodule, which is used to store the relevant cryptographic algorithms for verifying the correctness of user signatures and the legitimacy of certificates, and to call these algorithms to implement the relevant signature verification and certificate verification processes. It should be noted that the level 1 here means that the verification node can be considered to be at the first level, and its corresponding authentication module is correspondingly considered to be at the first level, so as to facilitate the distinction between the authentication modules of various nodes. The authentication modules of the subsequent remaining nodes are correspondingly at the second or third level, etc.

[0088] (4) The random number event block verification module is responsible for verifying the random number tasks of the scheduling nodes, that is, verifying whether the scheduling nodes correctly allocate computing nodes based on the random number seeds provided by the user in accordance with the established rules. This module includes: a random number verification task scheduler, responsible for scheduling random number verification tasks; a random number verification task distributor, responsible for distributing random number verification tasks; a random number verification task executor, responsible for executing random number verification tasks; and a random number verification task processor, responsible for verifying whether the random number results are correct.

[0089] (5) The event subscription module is responsible for subscribing to target events from the scheduling node. Target events include events related to computing tasks, such as computing task node assignment, computing task distribution, and computing task completion. This module includes: an event registration submodule, responsible for registering subscription events with the scheduling node; and an event detection submodule, responsible for detecting event messages sent by the scheduling node.

[0090] (6) A storage module is responsible for storing verification results. Next time there is an existing verification result, it can be directly obtained without repeating the verification calculation. This module includes: a verification result cache submodule for caching verification results, that is, storing verification results in memory; and a verification result storage submodule for persistent storage of verification results, such as storing verification results in a database.

[0091] (2) Scheduling Node

[0092] The scheduling node can be used to take charge of tasks related to task scheduling, such as maintaining the status of each computing node, calculating the node corresponding to the user based on the random number seed provided by the user, and dispatching computing tasks to each computing node.

[0093] FIG4 b shows a schematic diagram of the structure of a scheduling node according to an embodiment of the present application. Since the structure of each scheduling node is similar, only one scheduling node is used as an example. The scheduling node includes the following modules:

[0094] (1) Network module, which is responsible for communicating with verification nodes, user terminal devices and computing nodes, including receiving computing tasks submitted by users and performing random calculations to assign computing nodes to them, receiving blocks from other scheduler nodes and verifying them, and communicating tasks and status with computing nodes.

[0095] (2) Authentication module (level 2), which is responsible for storing the certificates of computing nodes and verifying the legitimacy of the identities of users, scheduling nodes, and verification nodes. This module includes: a certificate and private key storage submodule, which is used to store the certificates and private keys of each role, such as its own certificate or the certificate of the computing node; a certificate issuance submodule, which is used to issue certificates to computing nodes; and an authentication algorithm submodule, which is used to store the relevant cryptographic algorithms for verifying the correctness of user signatures and the legitimacy of certificates, and to call these algorithms to implement the relevant signature verification and certificate verification processes.

[0096] (3) The event server module is responsible for storing events and providing services for verification nodes to subscribe to events.

[0097] (4) Task queue module, responsible for scheduling user computing tasks. This module includes: a task verification submodule, used to verify the legitimacy of tasks before they enter the task queue; a task queue submodule, used to maintain all computing tasks; a priority sorting submodule, used to prioritize computing tasks, for example, by computing time, conflicts between tasks, or pre-configured priorities; and a task distribution submodule, used to distribute computing tasks to various computing nodes.

[0098] (5) Load balancing module, responsible for maintaining the computing node status table and distributing tasks to maintain the system's load balancing state. This module includes: a random number derivation algorithm submodule, which is used to derive a random number algorithm for selecting computing nodes based on a user-provided random number seed; and a node status table submodule, which is used to maintain the status of all nodes, such as a table that can store the status of all nodes.

[0099] (6) Storage module, used to store the calculation results, task data, task code, etc. of all computing tasks. This module includes: an execution result cache submodule, used to cache the calculation results obtained by each computing node when executing the computing task, so that the results can be directly returned when the same computing task is received; an execution task and data storage submodule, which caches the code and data when executing the task, avoiding the need for users to send code and data every time they perform a calculation.

[0100] (3) Computing nodes

[0101] The computing node is the node that actually performs the calculation. It can be a node natively deployed by the system or a computer device added by the user. The calculation tasks are realized between each computing node based on the multi-party computing algorithm.

[0102] FIG4 c is a schematic diagram showing the structure of a computing node according to an embodiment of the present application. Since the structure of each computing node is similar, only one computing node is used as an example. The computing node includes the following modules:

[0103] (1) Network module, which is responsible for communicating with the scheduling node, receiving computing tasks distributed by the scheduling node and returning computing results, as well as sharing computing status and its own resource status with the scheduling node.

[0104] (2) Authentication module (Level 3), which is responsible for storing the scheduling node's certificate and verifying the legitimacy of the scheduling node's identity when receiving the scheduling node's message. This module includes: a certificate and private key storage submodule, which is used to store the scheduling node's certificate and its own private key; an authentication algorithm submodule, which is used to store the relevant cryptographic algorithms for verifying the correctness of the user's signature and the legitimacy of the certificate, and calls these algorithms to implement the relevant signature verification and certificate verification processes.

[0105] (3) Task queue module, which is responsible for temporarily storing the queue of computing tasks to be executed. This module includes: task queue: a queue module that stores all computing tasks; priority sorting submodule, which is used to sort the computing tasks in the task queue according to certain rules. The rules can be, for example, to sort the computing tasks according to the time consumption of the computing tasks, the conflict between tasks, or pre-configured priorities.

[0106] (4) Task execution module, which is the actual execution module of the computing task. This module includes: a resource scheduling submodule, which is used to schedule the computing task and the process or coroutine resources of the computing task when executing the computing task; the process or coroutine is the entity that actually executes the computing task;

[0107] (5) A detection module, which is used to collect information and detect the status of its own node resources. Node resources are mainly computing-related resources, such as memory or central processing units (CPUs). This module may include: a node status detection submodule, which is used to detect and display its own node status; and a node information collection submodule, which is used to collect node status information.

[0108] Through this architectural solution, the modules within each node work together to ensure the unlimited scalability of multi-party computing. Each user can connect their computer to the nearest scheduling node, providing a certain amount of computing power as a computing node. Users who wish to perform computations can send their tasks to a designated scheduling node, which is randomly selected based on a random number seed they send, ensuring fairness and security. Finally, a multi-layered certificate authority mechanism ensures the trustworthiness of all nodes, enabling widespread reuse across the industry.

[0109] In one possible implementation, each of the aforementioned clusters (e.g., verification node cluster, scheduling node cluster, and computing node cluster) may adopt a distributed deployment architecture, or some of the clusters may adopt a distributed deployment architecture. For example, the distributed architecture may be a blockchain architecture.

[0110] Blockchain is a new application model for computer technologies, including distributed data storage, peer-to-peer transmission, consensus mechanisms, and encryption algorithms. Essentially, a blockchain is a decentralized database, a series of data blocks linked using cryptographic methods. Each block contains information about a batch of network transactions (operations performed within the system), which is used to verify the validity of this information (to prevent counterfeiting) and generate the next block. Blockchain can include the underlying blockchain platform, the platform product and service layer, and the application service layer.

[0111] The underlying blockchain platform can include processing modules such as user management, basic services, smart contracts, and operational testing. Among them, the user management module is responsible for the identity information management of all blockchain participants, including maintaining public and private key generation (account management), key management, and maintaining the corresponding relationship between the user's real identity and the blockchain address (authority management), etc., and under authorization, it supervises and audits the transactions of certain real identities and provides risk control rule configuration (risk control audit); the basic service module is deployed on all blockchain node devices to verify the validity of business requests, and records valid requests to storage after consensus is reached. For a new business request, the basic service first adapts the interface for parsing and authentication (interface adaptation), and then encrypts the business information through the consensus algorithm (consensus management). The smart contract module is responsible for the registration, issuance, triggering and execution of contracts. Developers can define the contract logic in a programming language and publish it to the blockchain (contract registration). According to the logic of the contract terms, the contract logic is triggered by calling keys or other events to trigger execution. The contract logic is completed, and the contract upgrade and cancellation functions are also provided. The operation detection module is mainly responsible for the deployment, configuration modification, contract setting, cloud adaptation and real-time status visualization output of the product during the product release process, such as alarms, network status detection, node device health status detection, etc.

[0112] The platform's product service layer provides the basic capabilities and implementation framework for typical applications. Developers can build on these basic capabilities, overlay business features, and complete the blockchain implementation of business logic. The application service layer provides application services based on blockchain solutions for business participants to use.

[0113] In the embodiments of the present application, a multi-tiered blockchain-based computing system is provided. This system audits randomly scheduled tasks through a verification node cluster, ensuring the credibility of the randomly generated scheduling nodes. The user's computing tasks are then scheduled through the scheduling nodes in the middle layer, thus alleviating the scheduling burden and ensuring that the selection of computing nodes meets a certain degree of randomness. Furthermore, based on the above process, a multi-level authentication mechanism based on a multi-tiered blockchain architecture is proposed. By issuing certificates at each level, the legitimate authority of the nodes is guaranteed, allowing users to verify the identity of the nodes with confidence.

[0114] The above solution ensures unlimited scalability of multi-party computing. Each user can connect their computer to the nearest scheduling node, providing a certain amount of computing power as a computing node. A multi-layered certificate authority mechanism ensures the trustworthiness of all nodes. The above system architecture is the operating foundation of the entire environment, ensuring efficient and stable operation of the system.

[0115] Based on the above architecture, the embodiments of the present application also provide a full lifecycle process for multi-party computing based on a multi-tiered blockchain architecture, including: a scheduling node deployment process (the process of deploying and using scheduling nodes), a computing node deployment process (the process of deploying and using computing nodes), a computing task scheduling and allocation process (the process of randomly allocating and scheduling computing tasks), and a computing result event subscription and verification process (the process of central audit blockchain nodes subscribing to computing result events and verifying the legitimacy of events). The design of these processes can ensure the stable and efficient operation of the full lifecycle of multi-party computing based on a multi-tiered blockchain architecture.

[0116] Below, in combination with the application scenarios and system architecture described above, the full life cycle process of multi-party computing based on a multi-level architecture blockchain provided by the exemplary embodiment of this application is described with reference to the accompanying drawings. It should be noted that the above application scenarios are only shown to facilitate understanding of the spirit and principles of this application, and the implementation methods of this application are not limited in this respect.

[0117] In the embodiments of this application, the scheduling of computing tasks is performed based on scheduling nodes. Therefore, the deployment process of scheduling nodes is first introduced here. Scheduling node deployment refers to adding new scheduling nodes to the scheduling node cluster. Referring to Figure 5, a flow diagram of the scheduling node deployment process provided in the embodiments of this application is shown. The process includes the following steps:

[0118] Step 501: The deployment device prepares information required for scheduling node deployment.

[0119] In an embodiment of the present application, when deploying a scheduling node to be deployed, it is necessary to provide the necessary information required for deployment through a preparation phase, such as the public and private keys of the scheduling node, identity information, and interface information of the event notification interface.

[0120] In one possible implementation, the deployment device may be a terminal device of a user who initiates the deployment of a scheduling node, such as a personal computer, tablet computer, etc. The device is used to initiate the deployment process for the scheduling node to be deployed. In the terminal device, a corresponding deployment page may be presented to the user, and the user may add or generate information related to the scheduling node to be deployed in the deployment page.

[0121] In one possible implementation, the deployment device can be the scheduling node to be deployed itself, and the subsequent deployment process can be initiated by the scheduling node. Figure 5 specifically illustrates this as an example. For example, relevant deployment software can be deployed on the scheduling node. After configuring the necessary information (such as the connected verification node or the system access device address), the deployment software is launched to begin deployment preparations.

[0122] As shown in FIG5 , the preparation process may include the following steps:

[0123] Step 5011: Generate a public-private key pair for the scheduling node based on a cryptographic algorithm, where the private key is used to encrypt messages sent by the scheduling node, and the public key is open to other nodes and is used to verify whether the messages sent by the scheduling node have been tampered with.

[0124] Step 5012: attaching the identity information of the scheduling node may refer to attaching the identity information of the scheduling node in the initiated deployment request, such as the organization information to which the scheduling node belongs, to determine the organization from which the scheduling node originates.

[0125] Step 5013: Start the event server of the scheduling node. The event server is used to store event-related information, such as computing task scheduling events, computing task preparation completion events, and computing task completion events. It should be noted that although it is called an event server, it can be considered as the scheduling node's own storage space, used to store information related to system events and provide it to other nodes for subscription. Of course, the event server can also be an external server connected to the scheduling node, dedicated to storing and notifying event-related information.

[0126] Step 5014: The interface information of the event notification interface of the additional scheduling node may refer to the interface information of the event notification interface of the additional scheduling node in the initiated deployment request, such as the Internet Protocol (IP) address and port information of the above-mentioned event server.

[0127] Of course, the preparation node may also include other possible information, and the embodiment of the present application does not limit this. It should be noted that the above steps do not have a substantial order, and in actual application, they can be executed simultaneously or in sequence.

[0128] Step 502: The deployment device sends a scheduling node deployment request to the verification node, and the verification node receives the scheduling node deployment request.

[0129] The scheduling node deployment request may carry the identity information of the scheduling node to be deployed and the interface information of the event notification interface obtained in the above preparation phase.

[0130] In an embodiment of the present application, each scheduling node is connected to a verification node, and the user can select the verification node of the scheduling node to be deployed, for example, according to the distance, or according to the load resource idleness of the verification node.

[0131] 6a-6b illustrate a schematic diagram of a scheduling node deployment page provided in an embodiment of the present application, which illustrates content related to verification node selection. This page allows users to select the verification node to which the current verification node is connected. On this selection page, verification nodes can be sorted based on one or more selection factors.

[0132] Referring to Figure 6a, the distance sorting is used as an example. Users can choose to sort the optional verification nodes according to the distance from the scheduling node. As shown in the figure, there are 4 verification nodes, which are 1km, 50km, 100km and 500km away from the scheduling node respectively. Considering that the closer the distance, the lowest the delay should be, therefore, the recommendation degree of verification node 1 is the highest, such as the 4-star recommendation degree shown in Figure 6a, which can facilitate users to select verification nodes.

[0133] Referring to FIG6b , the idleness level is used as an example. Users can choose to sort the optional verification nodes according to the idleness level. For example, the figure contains 4 verification nodes, and their respective resource utilization rates are 20%, 40%, 50% and 80%, respectively. Considering that the higher the idleness level, the higher the data processing efficiency should be, therefore, verification node 1 has the highest recommendation level, such as the 4-star recommendation level shown in FIG6b , which makes it convenient for users to select verification nodes.

[0134] It should be noted that although the above examples are respectively illustrated by distance or idleness, in actual application, the comprehensive recommendation degree of each verification node can also be determined according to a combination of multiple factors.

[0135] Step 503: The verification node verifies the legitimacy of the identity information of the scheduling node to be deployed based on the information carried in the scheduling node deployment request.

[0136] Specifically, when a new scheduling node joins, it is necessary to authenticate the identity of the scheduling node. On the one hand, it is necessary to verify whether its identity information is true information, and on the other hand, it is also necessary to verify whether its identity information meets the conditions for becoming a scheduling node.

[0137] As shown in FIG5 , the process of step 503 may include the following steps:

[0138] Step 5031: Determine whether the public and private key correctness verification of the scheduling node deployment request passes.

[0139] Among them, the public and private key correctness verification is usually used to verify whether the received message has been tampered with. Therefore, the first operation after receiving the message is to verify the correctness of the public and private keys. When the verification passes, it indicates that the message has not been tampered with and the subsequent process can continue. If the verification fails, jump to step 505 and return the verification error result to the deployment device.

[0140] Step 5032: If the public and private key correctness verification in step 5031 passes, determine whether the identity information verification of the scheduling node passes.

[0141] In specific applications, in order to improve the accuracy of identity information verification, the verification of identity information can include two parts. One part is the automatic review part, that is, the identity information can be verified through the deployed software, such as verifying whether the organizational information in the identity information is real and whether it belongs to an organization that can be added to the scheduling node cluster, etc. The other part can also output the relevant review page to the administrator for review. For example, the review page can be displayed on the verification node, and the review information can be pushed to the corresponding administrator. After the administrator completes the review, the review result is returned. Manual review can be used to review identity information that cannot be recognized by the computer, or it can also perform secondary verification on the content of the computer review to avoid review errors and improve the accuracy of identity information verification.

[0142] When the verification is passed, the subsequent process can be continued. If the verification is not passed, the process jumps to step 505 and returns a verification error result to the deployment device.

[0143] Step 504: If the legitimacy verification of the identity information in step 503 is passed, the verification node performs an interface connectivity test on the scheduling node based on the interface information.

[0144] The interface information refers to the interface-related information of the above-mentioned event server. When the scheduling node triggers a related event, it needs to send the event information to the verification node through the interface. Therefore, it is necessary to ensure that the path between the interface and the verification node is connected. The verification node needs to perform an interface connectivity test on the interface.

[0145] In one possible implementation, the verification node can subscribe to the events of the event server by subscription. When the event server triggers an event, it will send relevant event information to the verification node. The verification node then performs a connectivity test on the event server to confirm whether the event server information can be successfully detected.

[0146] In one possible implementation, the verification node can also proactively obtain event information from the event server through polling. Specifically, the verification node can send information acquisition requests to the scheduling node's event server at a specific information acquisition cycle, requesting that the server send updated event information to the verification node. The verification node can then perform a connectivity test by sending an information acquisition request to the scheduling node's event server and determining the interface connectivity test result based on whether it receives a response.

[0147] It should be noted that, in actual scenarios, event information may be updated and sent in other possible ways, and the verification node may perform interface connectivity testing in a corresponding manner, which is not limited in the embodiments of the present application.

[0148] Specifically, when the interface connectivity test passes, the subsequent process can be continued, that is, jump to step 506. Otherwise, if the interface connectivity test fails, jump to step 505 and return a verification error result to the deployment device.

[0149] Step 505: The verification node returns a verification error result to the deployment device, the deployment fails, and the process ends.

[0150] Step 506: The verification node adds the scheduling node to the scheduling node cluster and issues a digital certificate to the scheduling node.

[0151] Specifically, the certificate issuance of the verification node can be implemented through the authentication module it contains. Therefore, the verification node can call its own authentication module to issue a digital certificate for the scheduling node, which will be used for the identity authentication of the scheduling node in subsequent actual processes, such as identity authentication when transmitting information.

[0152] Step 507: The verification node performs consensus verification on the digital certificate issuance result of the verification node cluster for the scheduling node.

[0153] In an embodiment of the present application, in order to improve the reliability of the digital certificate storage of the scheduling node, the digital certificate of the scheduling node can also be stored through the blockchain, so the process of issuing a digital certificate for the scheduling node can be performed by the entire verification node cluster. That is to say, in addition to the verification node that receives the deployment request, the remaining verification nodes also need to issue a digital certificate for the scheduling node, and each verification node needs to synchronize the digital certificate issued by itself to any verification node other than itself, so that each verification node performs consensus verification on the digital certificate, and only when consensus is reached, it confirms that the consensus digital certificate will be issued to the scheduling node and the digital certificate will be stored on the chain.

[0154] In one possible implementation, when a verification node receives a scheduling node deployment request, it can synchronize the scheduling node deployment request to the remaining verification nodes. The other verification nodes will also perform relevant deployment processes for the scheduling node deployment request and issue digital certificates for it.

[0155] In one possible implementation, when a verification node receives a scheduling node deployment request, it may send a digital certificate issuance request to the remaining verification nodes after the relevant verification of the scheduling node deployment request is passed, requesting other verification nodes to issue a digital certificate for the scheduling node.

[0156] Step 508: When the consensus verification is passed, that is, when the verification nodes corresponding to the blockchain reach a consensus, the verification node generates the corresponding block and puts the block on the chain.

[0157] Step 509: The verification node sends a registration request for the event notification interface to the scheduling node. The registration request is used to subscribe to target type events from the scheduling node.

[0158] In one possible implementation, considering that the event server of the scheduling node is dedicated to storing content related to system events in the scheduling node, the target type event may include all events of the event server, that is, the verification node may not select the required event type, but subscribe to all event updates of the event server by default.

[0159] In one possible implementation, the target type event may include event information related to the computing task, such as computing task preparation completion, computing node allocation, computing task distribution, and computing task completion and other related events. Of course, it may also include other possible event information, and the embodiments of the present application do not limit this.

[0160] Step 510: The verification node starts to detect the event notification interface. That is, when the registration is successful, the scheduling node can be considered to be able to start working, and the verification node can start to detect the event server of the scheduling node.

[0161] Step 511: The verification node returns deployment success indication information to the scheduling node, and the deployment success indication information carries a digital certificate.

[0162] Step 512: The scheduling node determines whether the result returned by the verification node is correct. If it is correct, the process jumps to step 513; if it is not correct, the process ends.

[0163] Specifically, the scheduling node judgment process may include performing public and private key verification on the result returned by the verification node to verify whether the result returned by the verification node has been tampered with, or it may also include determining whether the deployment is successful based on the result returned by the verification node to determine the subsequent process. For example, if a verification error result is received from the verification node, the process ends; if a deployment success indication is received from the verification node, step 513 is continued.

[0164] Step 513: The scheduling node obtains the digital certificate issued by the verification node, stores the certificate in its own authentication module, and formally provides services to the computing node.

[0165] In the embodiments of the present application, computing resources can be infinitely expanded. Users can flexibly add their own computing devices to the computing node cluster as computing resources of the computing system. When there are computing tasks to be processed, computing tasks can be performed based on these computing resources. Therefore, the deployment process of computing nodes is first introduced here. The deployment of computing nodes refers to adding new computing nodes to the computing node cluster. Referring to Figure 7, a flow diagram of the computing node deployment process provided in the embodiments of the present application is shown. The process includes the following steps:

[0166] Step 701: The deployment device prepares information required for computing node deployment.

[0167] In an embodiment of the present application, when deploying the computing nodes to be deployed, it is necessary to provide the necessary information required for deployment through the preparation stage, such as the public and private keys of the computing nodes, identity information, and resource configuration information of the computing nodes. The resource configuration information is used to characterize the computing capabilities of the computing nodes, that is, the amount of computing resources they have, such as memory size, CPU configuration, and graphics processing unit (GPU) capabilities and quantity.

[0168] In one possible implementation, the deployment device may be a terminal device of a user initiating computing node deployment, such as a personal computer or tablet computer. The device is used to initiate a deployment process for the computing node to be deployed. In the terminal device, a corresponding deployment page may be presented to the user, and the user may add or generate information related to the computing node to be deployed in the deployment page. It should be noted that the embodiment of the present application does not limit the number of computing nodes to be deployed, and a deployment process may deploy one or more computing nodes.

[0169] In one possible implementation, the deployment device may be the compute node to be deployed, and the subsequent deployment process may be initiated by the compute node. This is specifically illustrated in Figure 7 as an example. For example, relevant deployment software may be deployed on the compute node. After configuring the necessary information (such as the connected scheduling node information), the deployment software is started to begin deployment preparations.

[0170] As shown in FIG7 , the preparation process may include the following steps:

[0171] Step 7011: Generate a public-private key pair for the computing node based on a cryptographic algorithm, where the private key is used to encrypt messages sent by the computing node, and the public key is made public to other nodes and is used to verify whether the messages sent by the computing node have been tampered with.

[0172] Step 7012: attaching the identity information of the computing node may refer to attaching the identity information of the computing node in the initiated deployment request, such as the organizational information to which the computing node belongs, to determine the organizational organization from which the computing node originates.

[0173] Step 7013: Adding the resource configuration information of the computing node may refer to adding the resource configuration information of the computing node in the initiated deployment request.

[0174] Of course, the preparation node may also include other possible information, and the embodiment of the present application does not limit this. It should be noted that the above steps do not have a substantial order, and in actual application, they can be executed simultaneously or in sequence.

[0175] Step 702: The deployment device sends a computing node deployment request to the scheduling node, and the scheduling node receives the computing node deployment request.

[0176] The computing node deployment request may carry the identity information and resource configuration information of the computing node to be deployed obtained in the above preparation phase.

[0177] In a possible implementation, the event server serves as a notification method provided by the scheduling node to the outside world, and it can also serve as a notification method for the outside world to interact with the scheduling node. The deployment device can send the computing node deployment request to the event server of the scheduling node.

[0178] In a possible implementation, the deployment device may also send the computing node deployment request to the scheduling node by directly sending a message.

[0179] In an embodiment of the present application, each computing node is connected to a scheduling node, and the user can select the scheduling node corresponding to the computing node to be deployed. Similar to the selection of the verification node mentioned above, it can also be selected according to the distance, or according to the idleness of the load resources of the scheduling node. Or, when the user does not make a selection, it can also be allocated by the system.

[0180] Step 703: The scheduling node verifies the legitimacy of the identity information of the computing node to be deployed based on the information carried in the computing node deployment request.

[0181] Specifically, when a new computing node is added, it is necessary to authenticate the computing node. On the one hand, it is necessary to check whether the computing node deployment request has been tampered with, and on the other hand, it is also necessary to verify whether its identity information is authentic.

[0182] As shown in FIG7 , the process of step 703 may include the following steps:

[0183] Step 7031: Determine whether the public and private key correctness verification of the computing node deployment request passes.

[0184] Among them, the public and private key correctness verification is usually used to verify whether the received message has been tampered with. Therefore, the first operation after receiving the message is to verify the correctness of the public and private keys, that is, the signature verification operation. When the verification passes, it indicates that the message has not been tampered with and the subsequent process can continue. If the verification fails, jump to step 705 and return the verification error result to the deployment device.

[0185] Step 7032: If the public and private key correctness verification of step 7031 is passed, determine whether the identity information verification of the computing node is passed.

[0186] In specific applications, in order to improve the accuracy of identity information verification, the verification of identity information can include two parts. One part is the automatic review part, that is, the identity information can be verified through the deployed software, such as verifying whether the organizational information in the identity information is real and whether it belongs to an organization that can be added to the computing node cluster, etc. The other part can also output the relevant review page to the administrator for review. For example, the review page can be displayed on the scheduling node, and the review information can be pushed to the corresponding administrator. After the administrator completes the review, the review result is returned. Manual review can be used to review identity information that cannot be recognized by the computer, or it can also perform secondary verification on the content of the computer review to avoid review errors and improve the accuracy of identity information verification.

[0187] If the verification is successful, the subsequent process can be continued. If the verification is unsuccessful, the process jumps to step 705 and returns a verification error result to the deployment device.

[0188] Step 704: If the legitimacy verification of the identity information in step 703 is passed, the scheduling node determines whether the computing device meets the minimum configuration requirements required by the computing node based on the resource configuration information.

[0189] Generally speaking, computing nodes need to be used to perform computing tasks, so there are certain requirements for their hardware configuration. If the hardware configuration cannot meet the requirements, it may be difficult to perform computing tasks, and it is not suitable to be a computing node. The configuration requirements can be set in advance, that is, added as the minimum computing resource requirements of the computing node, so it is necessary to judge whether the computing devices meet the minimum computing resource requirements one by one, such as whether the memory is sufficient, or whether the CPU configuration meets the predetermined configuration requirements.

[0190] Specifically, when the computing device meets the configuration requirements of the computing node, the subsequent process can continue, that is, jump to step 706. Otherwise, if the computing device does not meet the configuration requirements of the computing node, jump to step 705 and return the verification error result to the deployment device.

[0191] Step 705: The scheduling node returns a verification error result to the deployment device, the deployment fails, and the process ends.

[0192] Step 706: The scheduling node adds the computing node to the computing node cluster and issues a digital certificate to the computing node.

[0193] The certificate issuance of the scheduling node can be specifically implemented through the authentication module it contains. Therefore, the scheduling node can call its own authentication module to issue a digital certificate for the computing node, which will be used for the identity authentication of the computing node in subsequent actual processes, such as identity authentication when transmitting information with other nodes.

[0194] Similar to the deployment of scheduling nodes, in order to improve the reliability of the digital certificate storage of computing nodes, the digital certificates of computing nodes can also be stored through blockchain. Then the process of issuing digital certificates for computing nodes can be carried out by the entire scheduling node cluster. That is to say, in addition to the scheduling node that receives the deployment request, the remaining scheduling nodes also need to issue digital certificates for the computing node, and each scheduling node needs to synchronize the digital certificate issued by itself to any scheduling node except itself, so that each scheduling node performs consensus verification on the digital certificate, and only when consensus is reached, it confirms that the consensus digital certificate will be issued to the computing node and the digital certificate will be stored on the chain.

[0195] In one possible implementation, when a scheduling node receives a computing node deployment request, it can synchronize the computing node deployment request to the remaining scheduling nodes. The other scheduling nodes will also perform relevant deployment processes for the computing node deployment request and issue digital certificates for it.

[0196] In one possible implementation, when a scheduling node receives a computing node deployment request, it can send a digital certificate issuance request to the remaining scheduling nodes after the relevant verification of the computing node deployment request is passed, requesting other scheduling nodes to issue a digital certificate for the computing node.

[0197] Step 707: Update the node status table using the computing device.

[0198] Specifically, the node status table is used to store the node status of each computing node connected to it. The node status can indicate whether the corresponding computing node is available, or indicate the status of the computing resources of the computing node, such as memory usage or CPU usage.

[0199] Step 708: The scheduling node returns deployment success indication information to the computing node, and the deployment success indication information carries the digital certificate.

[0200] Step 709: The computing node determines whether the result returned by the scheduling node is correct. If it is correct, the process jumps to step 710; if it is not correct, the process ends.

[0201] Specifically, the judgment process of the computing node may include public and private key verification of the result returned by the scheduling node to verify whether the result returned by the scheduling node has been tampered with, or it may also include determining whether the deployment is successful based on the result returned by the scheduling node to determine the subsequent process. For example, if a verification error result is received from the scheduling node, the process ends; if a deployment success indication is received from the scheduling node, step 710 is continued.

[0202] Step 710: The computing node obtains the digital certificate issued by the scheduling node, stores the certificate in its own authentication module, and formally provides services to the scheduling node.

[0203] In the embodiment of the present application, the computing task scheduling and allocation process refers to the process of randomly allocating and scheduling computing tasks, that is, users who wish to perform calculations can send computing tasks to designated scheduling nodes, and randomly select computing nodes based on the random number seed they send, thereby ensuring the fairness and security of computing tasks. The computing result event subscription and verification process refers to the process of verifying the legitimacy of events subscribing to computing results by the verification node. These two processes are related in execution, so they are described in combination below. Referring to Figure 8, a flow chart of the data processing method provided in the embodiment of the present application is shown. This process includes the above-mentioned computing task scheduling and allocation process and the computing result event subscription and verification process. The specific implementation process of this method is as follows:

[0204] Step 801: The task submitting end submits a computing request, and the scheduling node receives the computing request sent by the task submitting end.

[0205] In an embodiment of the present application, after a user who wishes to perform calculations prepares the code and data required for the calculation task, he or she can complete the configuration on the calculation task submission page provided by the task submission end, and then perform the task calculation operation, which triggers the task submission end to send a calculation request to the scheduling node.

[0206] Refer to Figure 9a, which is a schematic diagram of the computing task submission page provided in an embodiment of the present application, which shows that when submitting a computing task, it is necessary to provide the code and data required for the computing task, as well as the computing node configuration requirements expected by the user for the computing task, such as the number of computing nodes required (redundant number) k, etc.

[0207] To ensure fairness in task allocation, users also need to set a random seed for the current computing task. This seed is used by the scheduling node to determine when to allocate computing nodes for the computation. The computation request can include the random seed provided by the task submitter for the corresponding computing task. For example, users can select a random number r in the range [0, max] (where max is a very large number).

[0208] It should be noted that although the selection here is based on random numbers, there are certain rules in the selection process. Therefore, when the user gives a random number, the computing node that should be selected for it is determined. Therefore, in fact, when the user provides a random number, it can also display the computing nodes that may be eventually assigned to it, thereby assisting the user in making a selection. Referring to Figure 9b, a schematic diagram of the interface for selecting computing nodes provided in an embodiment of the present application, which includes an input window for a random number seed, when the user enters the random number seed in the input window again, the system can determine the computing node list corresponding to the random number seed based on the current system state, and then display it to the user. The user can then determine whether he wants these computing nodes to perform his computing tasks. If he wants to, he can confirm. If he does not want, he can change the computing node by modifying the random number.

[0209] Alternatively, a button for generating a random number can be provided, such as the dice button shown in Figure 9b. Clicking this button generates a random number for the user as a random seed. Furthermore, if the user wishes to specify a compute node, they can directly select the corresponding compute node to perform the computation, or enter the compute node's information and infer the random seed for it.

[0210] After completing the relevant configuration, the user can sign the code, data, and random number and send it to the corresponding scheduling node, which then receives the computing request through the scheduling node's network module. The scheduling node can be selected by the user, for example, based on proximity or availability, or the system can recommend a scheduling node for the user. Alternatively, if the user does not select a scheduling node, the system can assign a scheduling node, for example, assigning the computing task to the corresponding scheduling node based on a load balancing algorithm.

[0211] Step 802: The scheduling node obtains a set of candidate computing nodes for the computing task, and determines a first set of computing nodes for executing the computing task from the set of candidate computing nodes based on a second set of random numbers derived from a random number seed.

[0212] In the embodiment of the present application, a random number seed is used to derive a second random number corresponding to the required number of computing nodes, and each second random number corresponds to a computing node, so that a corresponding number of computing nodes can be obtained.

[0213] In actual applications, each scheduling node can usually only schedule the computing nodes connected to it. Therefore, it is necessary to select all or part of the computing nodes that it can schedule in the computing node cluster (i.e., the computing nodes connected to the scheduling node) to form a candidate computing node set. Of course, when selecting some computing nodes to form a candidate computing node set, the selection can be made based on the node status of the computing nodes. For example, relatively idle computing nodes or computing nodes that meet certain hardware conditions are selected to form a candidate computing node set. The load balancing module can then obtain all active computing nodes in the node status table to form a candidate computing node set.

[0214] In one possible implementation, to ensure the security of computing requests and avoid wasting computing resources, it is necessary to authenticate received computing requests (for example, verifying whether the task submitter that sent the computing request has the task execution rights). After authentication, a second set of random numbers derived from a random number seed is used to determine the first set of computing nodes from the candidate set of computing nodes to execute the computing task. This process can be implemented by the scheduling node's authentication module.

[0215] In one embodiment, when a scheduling node receives a computing request, it can use an authentication algorithm, such as a public-private key verification algorithm, to determine whether the computing request has been authenticated. Specifically, the scheduling node decrypts the computing request using the public key of the task submitter to obtain the first summary information carried by the computing request. Simultaneously, the node extracts the summary of the carried information to obtain the second summary information. Based on the first and second summary information, the scheduling node determines whether the request has been authenticated. This authentication method primarily prevents tampering during the computing task transmission process. Furthermore, the scheduling node can also verify whether the task submitter has the authority to submit the computing task.

[0216] In one possible implementation, the computing task also needs to be verified. On the one hand, the validity of the computing task needs to be verified, such as the timeliness of the task based on the timestamp verification, and whether the parameters of the computing task are legal. Only when the task is valid will the subsequent process continue to perform the calculation; on the other hand, it is also necessary to verify whether the computing task already has a calculation result cache, that is, the computing task has been calculated in the past. If so, the historical calculation results can be directly reused to avoid repeated calculations and waste of computing resources. If not, the subsequent process will continue to perform the calculation.

[0217] In actual applications, there may be multiple computing tasks that need to be scheduled in the scheduling node. Multiple task queues are cached in the task queue of the scheduling node waiting for execution. The scheduling node needs to sort the computing tasks in the queue so that each computing task can be scheduled and executed in sequence according to priority.

[0218] In one possible implementation, the priority of each computing task can be considered from multiple aspects. On the one hand, there is the conflict between computing tasks. Some computing tasks conflict with each other and cannot be executed in parallel. That is, they need to wait for the previous computing task to complete before they can continue with the subsequent computing task. These computing tasks should be executed in the order of conflict, such as the same transaction or related transactions of the same account; on the other hand, the computing tasks can be sorted according to their time consumption. When a computing task is extremely time-consuming, it may block the execution of more computing tasks. In this case, the time consumption needs to be considered during scheduling; on the other hand, the tasks can be sorted according to pre-configured priorities. For example, the priority of a certain type of computing task is configured to be higher than that of another type of computing task.

[0219] In an embodiment of the present application, the random selection algorithm is initialized by a random number seed to derive a corresponding second random number set as the basis for selecting a computing node. The specific process of the random selection algorithm will be introduced in detail later, so it will not be described here.

[0220] Step 803: The scheduling node distributes computing tasks to each computing node in the first computing node set, and the computing node receives the computing tasks.

[0221] Specifically, the scheduling node encapsulates and signs the message sent by the user, and then sends the encapsulated computing request to each computing node in the first computing node set. Alternatively, the scheduling node can send the computing task to each computing node through the event server. Specifically, after the scheduling node encapsulates and signs the message sent by the user, it activates the subscription port and notifies each computing node to obtain and execute the computing task.

[0222] In one possible implementation, after receiving a computing request, the computing node can sign the computing task identity (ID) and return the signature to the scheduling node. The scheduling node then collects the event task information of the computing task and stores it in the event server so that all nodes subscribed to the event server can perceive it. The event task information includes, for example, the task ID, the signature of the task ID, the user request, the signature of the user request, and other information.

[0223] Step 804: The computing node executes the computing task to obtain the corresponding computing result, and signs the computing result based on its own digital certificate to obtain the corresponding signature.

[0224] It should be noted that, when there are multiple computing nodes in the first computing node set, the scheduling node divides the computing task into multiple subtasks and assigns them to different computing nodes respectively.

[0225] Step 805: The computing node returns the calculation result obtained by executing the computing task and the signature of the calculation result to the scheduling node.

[0226] The computing node sends the signature of the computing result to the scheduling node to which it is connected, so that the scheduling node generates task event information and the signature of the task event information. The scheduling node also sends the task event information and the signature of the task event information to the verification node to which it is connected, so that the verification node verifies the legitimacy of the first set of computing nodes. The task event information includes: the first set of computing nodes participating in executing the computing task and the random number seed provided by the task submitter of the computing task.

[0227] Step 806: When receiving the calculation results of all the first computing nodes in the first computing node set, the scheduling node updates the computing task to a completed state.

[0228] Step 807: The verification node confirms that the computing task is completed.

[0229] In a possible implementation, the scheduling node may send a notification message to the verification node indicating that the computing task has been completed, so that the verification node can be informed that the computing task is in a completed state.

[0230] In one possible implementation, the scheduling node's event server serves as an external message notification mechanism. The validating node subscribes to this event server. Therefore, when the scheduling node updates the task status of the computing task in the event server to "completed," the event server can send a notification message to the validating node, which in turn notifies the validating node that the computing task has been updated to "completed."

[0231] Step 808: The verification node obtains the task event information of the computing task and the signature of the task event information.

[0232] The verification node may request the task event information and the signature of the task event information from the scheduling node, or may obtain the task event information and the signature of the task event information through the event server of the scheduling node. The task event information may include: the first set of computing nodes participating in the execution of the computing task and the random number seed provided by the task submitter of the computing task.

[0233] Step 809: Verify the signature of the task event information. By verifying the signature of the task event information, it is possible to determine whether the task event information from the scheduling node has been tampered with. For example, an embodiment of the present application can decrypt the signature using the public key of the scheduling node to obtain the first summary information of the task event information generated by the scheduling node; extract the summary of the task event information to obtain the second summary information; and determine whether the signature information has passed verification based on the first summary information and the second summary information.

[0234] Step 810: When the signature of the task event information is verified, a first set of random numbers is derived based on the random number seed. This derivation is consistent with the method used to generate the second set of random numbers described above. If the second set of random numbers received by the verification node has not been tampered with, the second set of random numbers must be consistent with the first set of random numbers.

[0235] Step 811: Select a second set of computing nodes associated with the first set of random numbers for a computing task from a computing node cluster.

[0236] In one embodiment, the embodiment of the present application may determine the second computing node set in the following manner.

[0237] Selecting a candidate computing node set from the computing node cluster; for example, selecting a candidate computing node set from a plurality of computing nodes in the computing node cluster connected to the scheduling node;

[0238] For each candidate computing node in the candidate computing node set, based on the respective evaluation values ​​representing the availability of computing resources, respectively determine a random number interval range corresponding to each candidate computing node, and the random number interval ranges corresponding to the respective candidate computing nodes do not overlap with each other;

[0239] Based on each first random number in the first random number set, the following operation is performed: for each first random number, the candidate computing node corresponding to the random number interval range in which the first random number is located is added to the second computing node set.

[0240] Step 812: Use the second computing node set to verify the legitimacy of the first computing node set to obtain a corresponding verification result.

[0241] Step 813: Add a block containing the verification result to the blockchain of the verification node cluster.

[0242] In some embodiments of the present application, the consensus on computing results in the traditional blockchain-based cluster system is abandoned, and is converted to verification of random events (such as generating a first set of random numbers) to ensure the credibility of nodes in the system. Specifically, the random allocation process of computing nodes of the scheduling node is verified to verify the legitimacy of the first set of computing nodes allocated by the scheduling node.

[0243] Therefore, the verification node can allocate computing nodes again based on the same random allocation method, and further verify whether the first computing node set allocated by the scheduling node is legal.

[0244] Similarly, when the verification node receives the task event information sent by the scheduling node to which it is connected, it can obtain the signature of the scheduling node for the task event information, and decrypt the signature information through the public key of the scheduling node (for example, it can be obtained through the certificate carried in the signature of the scheduling node) to obtain the first summary information of the task event information generated by the scheduling node; at the same time, the task event information is extracted to obtain the second summary information, and based on the first summary information and the second summary information, it is determined whether the signature has passed the verification. Only when the signature has passed the verification, the first random number set derived from the random number seed is used to determine the second computing node set that executes the computing task. Otherwise, if the verification fails, it indicates that the task event information may have been tampered with and needs to be discarded.

[0245] In order to verify the legitimacy of the first computing node set, the verification node compares the first computing node set with the second computing node set to obtain a verification result indicating whether the first computing node set is consistent with the second computing node set.

[0246] The first computing node set is selected from the candidate computing node set by the corresponding scheduling node using a second random number set derived based on a random number seed.

[0247] In one embodiment, when the verification result indicates that the second set of computing nodes is consistent with the first set of computing nodes, the legitimacy verification of the first set of computing nodes assigned by the scheduling node is passed; otherwise, when the two are inconsistent, it indicates that the legitimacy verification of the first set of computing nodes assigned by the scheduling node has failed.

[0248] In an embodiment of the present application, the block generation process of the verification node (i.e., adding blocks to the blockchain) can be divided according to time or the number of verification events. Taking the number of verification events as an example, when the number of completed computing tasks reaches the threshold required for block generation, a new block is created, and the scheduling allocation results of each computing task in the block are verified. After the validity verification results of each block are agreed upon among the verification nodes, the block is stored on the chain (i.e., a block is added to the blockchain).

[0249] In the embodiments of the present application, the process by which the verification node and the scheduling node derive a random number set based on a random number seed to select a compute node is identical, so this process is described below. See Figure 10 for a flow chart illustrating the random selection process provided in the embodiments of the present application. In the following process, the random number seed is represented as r, and the number of compute nodes to be selected is k.

[0250] Step 1001: for each candidate computing node in the candidate computing node set, based on the evaluation value representing the availability of computing resources, determine the random number interval range corresponding to each candidate computing node.

[0251] The evaluation value representing the availability of computing resources for each computing node is used to divide the computing nodes, thereby locating the computing nodes to a unique random number interval, that is, the random number interval ranges corresponding to each candidate computing node do not overlap. The evaluation value representing the availability of computing resources is an evaluation value of a combination of one or more resource attributes of the computing node. Resource attributes include, for example, memory occupancy, CPU occupancy, or other computing resource attributes. The evaluation value representing the availability of computing resources is the score of one or more resource attributes of the node, such as the node resource score, which can be used to represent the resource availability of the computing node.

[0252] In one possible implementation, each candidate computing node can be divided into multiple random number intervals by the accumulated value of the evaluation value, so that subsequently, based on the random number derived (i.e., the first random number set or the second random number set mentioned above), each candidate computing node is in a random number interval range, and the candidate computing nodes corresponding to the random number interval range can be used as the computing nodes that need to be allocated (i.e., the first computing node set or the second computing node set mentioned above).

[0253] For example, taking the node resource score as an example, as shown in Table 1 below, for node 1, its node resource score (i.e., evaluation value) is 90, and its corresponding random number interval range is 0 to 89; the node resource score of node 2 is 80, and the cumulative value of the two is 170, so the random number interval range corresponding to node 2 is 90 to 169; the node resource score of node 3 is 85, and the cumulative value is 255, so the random number interval range corresponding to node 3 is 170 to 254. When the number of nodes increases, the same applies.

[0254] Table 1

[0255] Step 1002: Initialize the random number selection factor with the random number seed, that is, use the random number seed as the initial value of the random number selection factor, for example, set the random number selection factor p=r, and the currently selected node number is x=1.

[0256] In the embodiment of the present application, the process of deriving random numbers is an iterative process. If the number of computing nodes required for the computing task is k, k computing nodes need to be obtained, and thus K iterative selection processes need to be performed. Each round of selection process is similar, so the following will mainly introduce it using one time as an example, where each round of selection process includes the following steps:.

[0257] Step 1003: Determine whether the value of the round number x is greater than K. If x is greater than K, the process ends; if not, proceed to step 1004.

[0258] Step 1004: Obtain the random number corresponding to this round based on the sum of the evaluation values ​​of the candidate computing node set and the random number selection factor p used in this round.

[0259] Specifically, the total sum of the evaluation values ​​can be used as the divisor, and the random number selection factor used in this round can be used as the dividend to obtain the remainder of the total sum of the evaluation values ​​relative to the random number selection factor used in this round, and the remainder can be determined as the random number corresponding to this round, that is, the random number corresponding to this round is p / N, where N is the total sum of the evaluation values.

[0260] Step 1005: Select a computing node corresponding to this round from the set of candidate computing nodes according to the random number interval range in which the random number is located.

[0261] For example, if the remainder of this round is 70, then the random number interval in which it is located is 0 to 89, which corresponds to the above-mentioned node 1, and thus node 1 is the computing node corresponding to this round.

[0262] Step 1006: Update the random number selection factor used in this round to obtain the random number selection factor used in the next round.

[0263] Specifically, the random number selection factor can be updated by selecting an update factor that is transparent and has a maximum value. For example, the block hash value at a certain height in the blockchain can be used as the update factor. In actual applications, other values ​​can also be selected as the update factor, such as the block height, and this embodiment of the application does not limit this.

[0264] Taking the hash value of a block at a certain height in the blockchain as an update factor as an example, the corresponding hash value can be obtained by performing hash value mapping processing on the czth block in the blockchain. Then, based on the hash value, the random number selection factor used in this round is updated to obtain the random number selection factor used in the next round; where c is the serial number of the latest block in the blockchain, and x is the number of rounds of the iterative selection process.

[0265] In a possible implementation, updating the random number selection factor used in this round can be expressed as: p = p * hash (cx)

[0266] Step 1007: The number of iteration rounds is increased by one, that is, x=x+1, and the process jumps to step 1003 to continue execution.

[0267] The following is an introduction to the computing task scheduling and allocation process using a specific example. Referring to FIG11 , there is shown a flowchart of the computing task scheduling and allocation process provided in an embodiment of the present application.

[0268] Step 1101: The task submitter prepares the code and data required for the task.

[0269] Step 1102: The task submitter selects a random number seed r and the required number of computing nodes k.

[0270] Step 1103: The task submitter signs the code, data and random number seed and sends them to the selected scheduling node.

[0271] Step 1104: The network module of the scheduling node receives the above-mentioned calculation request.

[0272] Step 1105: The scheduling node's authentication module authenticates the node and determines whether the authentication is successful. This involves verifying the signature of the computation request to see if it has been tampered with and verifying the authenticity of the certificate. If so, the process proceeds to step 1106; otherwise, the process proceeds to step 1109.

[0273] Step 1106: The scheduling node confirms whether the task verification is passed, for example, whether the timestamp is timed out, whether the parameters are illegal, etc. If yes, jump to step 1107 to execute; otherwise, jump to step 1109 to execute.

[0274] Step 1107: The scheduling node confirms whether the computing task has a computing result cache. If yes, the process jumps to step 1108 for execution; otherwise, the process jumps to step 1109 for execution.

[0275] If the same computing task has the same code number and data number, the code number and data number can be compared to determine whether they are the same. The code number and data number can be, for example, digest values ​​obtained by performing a hash calculation on the code and data.

[0276] Step 1108: The scheduling node returns the cached calculation result, and the process on the scheduling node side ends.

[0277] Step 1109: Return the verification error result, and the process on the scheduling node side ends.

[0278] Step 1110: The scheduling node puts the computing task into the task queue and waits for execution.

[0279] Step 1111: The scheduling node prioritizes the task queues.

[0280] Step 1112: The load balancing module of the scheduling node obtains all active nodes in the node status table as candidate computing nodes, and counts the node resource score and the total score N of each candidate computing node.

[0281] Step 1113: The load balancing module of the scheduling node prepares for distributing tasks to nodes for execution, such as packaging task data.

[0282] Step 1114: The load balancing module of the scheduling node performs an initialization operation for selecting computing nodes, that is, k nodes from the candidate computing nodes execute the task, with the current node being represented by x, then initializing x=1 and initializing the selection factor p=r.

[0283] Step 1115: The scheduling node determines whether K computing nodes are sufficient, that is, whether x>k is satisfied. If yes, jump to step 1119 for execution; otherwise, jump to step 1116 for execution.

[0284] Step 1116: The scheduling node selects the computing node corresponding to p / N for the xth node. That is, the number from 1 to N can be divided into multiple random number range intervals by each computing node, and the computing node ID is obtained according to the interval.

[0285] Step 1117: The scheduling node updates the random number selection factor, i.e., p = p*hash(cx), where hash() represents the block hash value at a certain height, and c is the latest block in the blockchain.

[0286] Step 1118: The number of iteration rounds of the scheduling node is increased by one, x=x+1, and the process jumps to step 1115 for execution.

[0287] Step 1119: The scheduling node completes the selection of all computing nodes.

[0288] Step 1120: The scheduling node encapsulates the computing request message sent by the user and signs it.

[0289] Step 1121: The scheduling node starts the subscription port and notifies the selected computing node to obtain the task and execute it.

[0290] Step 1122: All computing nodes sign the calculated task ID.

[0291] Step 1123: The scheduling node collects the calculated task ID signature, task ID, user request, and the signature of the user request and stores them in the event server.

[0292] The following is a specific example to introduce the process of the verification node subscribing to the event of the calculation result and verifying the legitimacy of the event. Referring to Figure 12, there is a flow chart of the calculation task scheduling and allocation process provided by the embodiment of the present application.

[0293] Step 1201: The network module of the computing node subscribes to the computing task to be executed.

[0294] Step 1202: When a computing node is selected as a task execution node, its network module will receive the computing task distributed from the scheduling node.

[0295] Step 1203: The computing node's authentication module authenticates the computing node and determines whether the authentication is successful. This involves verifying the computing request's signature against the scheduling node to see if it has been tampered with, and verifying the certificate. If so, the process proceeds to step 1205; otherwise, the process proceeds to step 1204.

[0296] Step 1204: The computing node returns a verification error result, and the process ends.

[0297] Step 1205: The computing node places the computing tasks into the task queue in order of priority.

[0298] Step 1206: The task execution module of the computing node schedules the computing task, and executes it immediately if there are resources, otherwise waits for execution.

[0299] Step 1207: The process or coroutine in the task execution module of the computing node starts executing the task.

[0300] Step 1208: The computing node returns the task execution result to the scheduling node. The task execution result includes the computing result and signature information for the computing result.

[0301] Step 1209: The scheduling node determines whether all the tasks executed by the computing nodes have been completed. If so, go to step 1210; otherwise, go to step 1202 for execution.

[0302] Step 1210: The scheduling node stores the execution code and the result in the execution code and data storage of the storage module.

[0303] Step 1211: The scheduling node updates the execution status of the computing task in the event server to a completed status.

[0304] Step 1212: The event detection module of the verification node detects a new event of the scheduling node event server, that is, the execution status of the above computing task is completed.

[0305] Step 1213: The verification node receives the relevant information sent by the scheduling node and verifies whether the signature is passed. If yes, jump to 1215 to execute; otherwise, jump to 1214 to execute.

[0306] Step 1214: The verification node discards the calculation result and the process ends.

[0307] Step 1215: The verification node places the computing task into the random number verification task scheduler.

[0308] Step 1216: The scheduler completes the scheduling and places the computing task into the random number verification task distributor.

[0309] Step 1217: The distributor distributes the random number verification task of the computing task to a specific executor, and the random number verification task executor performs the verification task.

[0310] Step 1218: The random number verification result processor processes the result of the random number verification.

[0311] Step 1219: Verify whether the result is correct. If so, jump to 1221 to execute; otherwise, jump to 1220 to execute.

[0312] Step 1220: The result of failed evidence verification is stored in the verification result storage, that is, the verification result is stored on the chain, and the process ends.

[0313] Step 1221: The correct result of the evidence verification is stored in the verification result storage, that is, the verification result is stored on the chain, and the process ends.

[0314] In summary, the embodiments of this application provide a multi-party computing solution based on a multi-layered blockchain architecture. This solution ensures unlimited scalability of multi-party computing. Each user can connect their computer to the nearest scheduling node, which provides a certain amount of computing power as a computing node. Users who wish to perform calculations can send computing tasks to designated scheduling nodes, which are randomly selected based on the random number seed they send, ensuring the fairness and security of computing tasks. Finally, through a multi-layered certificate authority mechanism, the identity of all nodes can be guaranteed to be trustworthy.

[0315] Referring to FIG. 13 , based on the same inventive concept, an embodiment of the present application further provides a data processing device 130 , which is applied to any verification node in a verification node cluster included in a computing system, the computing system also including a scheduling node cluster and a computing node cluster; the device includes:

[0316] An event subscription unit 1301 is configured to obtain task event information and a signature of the task event information from a scheduling node in a scheduling node cluster, wherein the task event information includes: a first set of computing nodes participating in executing a computing task and a random number seed provided by a task submitter of the computing task;

[0317] The node selection unit 1302 is configured to verify the signature; when the signature passes verification, derive a first random number set based on the random number seed; and select a second computing node set associated with the first random number set for the computing task from the computing node cluster.

[0318] The comparing unit 1303 is configured to verify the legitimacy of the first computing node set using the second computing node set to obtain a corresponding verification result;

[0319] The creation unit 1304 is configured to add a block containing the verification result to the blockchain of the verification node cluster.

[0320] In one possible implementation,

[0321] Each verification node in the verification node cluster is connected to at least one scheduling node in the scheduling node cluster, and each scheduling node is uniquely connected to one verification node;

[0322] Each scheduling node in the scheduling node cluster is connected to at least one computing node in the computing node cluster, and each computing node is uniquely connected to one scheduling node; or,

[0323] The scheduling node cluster includes multiple scheduling node subclusters, each scheduling node subcluster includes N-level scheduling nodes, N is a positive integer greater than 1, the first-level scheduling node in the N-level scheduling nodes is connected to the next-level scheduling node, the last-level scheduling node is connected to at least one computing node and the previous-level scheduling node, the i-th level scheduling node is connected to the i-1-th level scheduling node and the i+1-th level scheduling node, and i is a positive integer greater than 1 and less than N.

[0324] In a possible implementation, the node selection unit 1302 is specifically configured to:

[0325] Selecting a set of candidate computing nodes from the computing node cluster;

[0326] For each candidate computing node in the candidate computing node set, based on the respective evaluation values ​​representing the availability of computing resources, respectively determine a random number interval range corresponding to each candidate computing node, and the random number interval ranges corresponding to the respective candidate computing nodes do not overlap with each other;

[0327] Based on each first random number in the first random number set, perform the following operations:

[0328] For each first random number, the candidate computing nodes corresponding to the random number interval range in which the first random number is located are added to the second computing node set.

[0329] In a possible implementation, the node selection unit 1302 is specifically configured to:

[0330] Using the random number seed as the initial value of the random number selection factor, K rounds of iterative selection are performed to obtain the first random number set, where K is the number of computing nodes required for the computing task. Each round of selection includes the following steps:

[0331] Obtain the random number corresponding to this round based on the sum of the evaluation values ​​of the candidate computing node set and the random number selection factor used in this round;

[0332] Update the random number selection factor used in this round to obtain the random number selection factor used in the next round.

[0333] In a possible implementation, the node selection unit 1302 is specifically configured to:

[0334] Using the sum of the evaluation values ​​as the divisor and the random number selection factor used in this round as the dividend, obtain the remainder of the sum of the evaluation values ​​relative to the random number selection factor used in this round;

[0335] The remainder is determined as the random number corresponding to this round.

[0336] In a possible implementation, the node selection unit 1302 is specifically configured to:

[0337] Perform hash mapping on the cxth block in the blockchain to obtain the corresponding hash value; where c is the serial number of the latest block in the blockchain, and x is the number of rounds in the iterative selection process;

[0338] Based on the hash value, the random number selection factor used in this round is updated to obtain the random number selection factor used in the next round.

[0339] In a possible implementation, the apparatus further includes an authentication unit 1305, configured to:

[0340] Decrypt the signature using the public key of the scheduling node to obtain the first summary information of the task event information generated by the scheduling node;

[0341] Extracting a summary of the task event information to obtain second summary information, and determining whether the signature information passes verification based on the first summary information and the second summary information;

[0342] The node selection unit 1302 is specifically configured to determine a second set of computing nodes for executing the computing task from the set of candidate computing nodes using a first set of random numbers derived from a random number seed when the signature information passes verification.

[0343] In a possible implementation, the apparatus further includes a node deployment unit 1306, configured to:

[0344] Receive a scheduling node deployment request, which carries: identity information of the scheduling node to be deployed and interface information of the event notification interface;

[0345] If the legitimacy of the identity information is verified, the scheduling node is tested for interface connectivity based on the interface information;

[0346] If the interface connectivity test passes, the scheduling node will be added to the scheduling node cluster and a digital certificate will be issued to the scheduling node;

[0347] When the verification node cluster passes the consensus verification of the digital certificate issuance result of the scheduling node, it sends a registration request for the event notification interface to the scheduling node. The registration request is used to subscribe to the target type event from the scheduling node;

[0348] When the registration is successful, a deployment success indication message is returned to the scheduling node, and the deployment success indication message carries a digital certificate.

[0349] The device can be used to execute the method executed by the verification node in each embodiment of the present application. Therefore, for the functions that can be implemented by each functional module of the device, please refer to the description of the aforementioned embodiments and no further details will be given.

[0350] Referring to FIG. 14 , based on the same inventive concept, an embodiment of the present application further provides a data processing device 140 , which is applied to any scheduling node in a scheduling node cluster included in a computing system, the computing system also including a verification node cluster and a computing node cluster; the device includes:

[0351] The task receiving unit 1401 is configured to receive a computing request sent by a task submitting end, wherein the computing request includes a computing task and a random number seed provided for the computing task;

[0352] The node selection unit 1402 is configured to derive a second random number set based on the random number seed; select a first computing node set associated with the second random number set from the computing node cluster for the computing task; and distribute the computing task to the first computing node set so that the first computing node set performs the computing task.

[0353] An event updating unit 1403 is configured to update the computing task to a completed state upon receiving a computing result of the computing task by each first computing node in the first computing node set;

[0354] The event notification unit 1404 is used to generate task event information and a signature for the task event information, wherein the task event information includes: a first set of computing nodes participating in executing the computing task and a random number seed provided by the task submission end of the computing task; and send the task event information and the signature for the task event information to a verification node connected to the scheduling node, so that the verification node verifies the legitimacy of the first set of computing nodes.

[0355] In a possible implementation, the apparatus further includes a node deployment unit 1405, configured to:

[0356] Receive a computing node deployment request, the computing node deployment request carrying: identity information of the computing device to be deployed and resource configuration information;

[0357] If the legitimacy of the identity information is verified, then based on the resource configuration information, it is determined whether the computing device meets the configuration requirements of the computing node;

[0358] If the configuration requirements are met, the computing device is added to the computing node cluster and the node status table is updated with the computing device. The node status table is used to store the node status of each computing node connected to it.

[0359] A digital certificate is issued to the computing device, and deployment success indication information is returned to the computing device, where the deployment success indication information carries the digital certificate.

[0360] The device can be used to execute the method executed by the scheduling node in each embodiment of the present application. Therefore, for the functions that can be implemented by each functional module of the device, please refer to the description of the aforementioned embodiments and no further details will be given.

[0361] Referring to FIG. 15 , based on the same inventive concept, an embodiment of the present application further provides a data processing device 150 , which is applied to any computing node in a computing node cluster included in a computing system, the computing system also including a verification node cluster and a scheduling node cluster; the device includes:

[0362] Task receiving unit 1501, used for

[0363] receiving a computing request sent by a scheduling node connected to the computing node, wherein the computing request instructs: executing a computing task submitted by a task submitting terminal;

[0364] The task execution unit 1502 is used to execute the computing task to obtain the corresponding computing result, and sign the computing result based on its own digital certificate to obtain the corresponding signature information;

[0365] The result sending unit 1503 is used to send the calculation result and the signature information to the scheduling node, so that the scheduling node: when receiving the calculation result of the calculation task from each first computing node in the first computing node set participating in executing the calculation task, updates the calculation task to a completed state; generates task event information and a signature for the task event information, and the task event information includes: the first computing node set and a random number seed provided by the task submission end of the calculation task; sends the task event information and the signature for the task event information to the verification node connected to the scheduling node, so that the verification node verifies the legitimacy of the first computing node set.

[0366] The device can be used to execute the methods executed by the computing nodes in each embodiment of the present application. Therefore, for the functions that can be implemented by each functional module of the device, please refer to the description of the aforementioned embodiments and no further details will be given.

[0367] This device ensures the unlimited scalability of multi-party computation. Each user can connect their computer to the nearest scheduling node, providing a certain amount of computing power as a computing node. Users who wish to perform computations can send their tasks to a designated scheduling node, which is randomly selected based on a random number seed they send, ensuring the fairness and security of the computation. Finally, a multi-layered certificate authority mechanism ensures the trustworthiness of all nodes.

[0368] Referring to FIG. 16 , based on the same technical concept, an embodiment of the present application further provides a computer device. In one embodiment, the computer device may be the aforementioned verification node, scheduling node, or computing node. As shown in FIG. 16 , the computer device includes a memory 1601, a communication module 1603, and one or more processors 1602.

[0369] Memory 1601 is used to store computer programs executed by processor 1602. Memory 1601 may mainly include a program storage area and a data storage area. The program storage area may store an operating system and programs required to run the aforementioned functions; the data storage area may store various instant messaging messages and operating instruction sets.

[0370] Memory 1601 may be a volatile memory, such as random-access memory (RAM); a non-volatile memory, such as read-only memory, flash memory, a hard disk drive (HDD), or a solid-state drive (SSD); or any other medium capable of carrying or storing desired program code in the form of instructions or data structures and accessible by a computer, but is not limited thereto. Memory 1601 may be a combination of the aforementioned memories.

[0371] The processor 1602 may include one or more central processing units (CPUs) or digital processing units, etc. The processor 1602 is configured to implement the above-mentioned data processing method when calling the computer program stored in the memory 1601 .

[0372] The communication module 1603 is used to communicate with terminal devices and other nodes.

[0373] The specific connection medium between the memory 1601, communication module 1603, and processor 1602 is not limited in the embodiments of the present application. In Figure 16, the embodiment of the present application shows that the memory 1601 and the processor 1602 are connected via a bus 1604. The bus 1604 is depicted in bold in Figure 16. The connection methods between other components are merely schematic and are not intended to be limiting. The bus 1604 can be divided into an address bus, a data bus, a control bus, etc. For ease of description, Figure 16 only uses a single bold line, but does not represent a single bus or a single type of bus.

[0374] The memory 1601 stores a computer storage medium, which stores computer executable instructions. The computer executable instructions are used to implement the data processing method of the embodiments of the present application. The processor 1602 is used to execute the data processing methods of the above embodiments.

[0375] Based on the same inventive concept, an embodiment of the present application also provides a storage medium, which stores a computer program. When the computer program runs on a computer, it enables the computer to execute the steps of the data processing method according to various exemplary embodiments of the present application described above in this specification.

[0376] In some possible implementations, various aspects of the data processing method provided in the present application may also be implemented in the form of a computer program product, which includes a computer program. When the program product is run on a computer device, the computer program is used to enable the computer device to execute the steps of the data processing method according to various exemplary embodiments of the present application described above in this specification. For example, the computer device may execute the steps of each embodiment.

[0377] The program product may employ any combination of one or more readable media. The readable medium may be a readable signal medium or a readable storage medium. The readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or component, or any combination thereof. More specific examples of readable storage media (a non-exhaustive list) include: an electrical connection with one or more wires, a portable disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination thereof.

[0378] The program product of the embodiment of the present application may be a portable compact disc read-only memory (CD-ROM) and include a computer program, and can be run on a computer device. However, the program product of the present application is not limited thereto. In the present application, a readable storage medium may be any tangible medium containing or storing a program, and the computer program included therein may be used by or in conjunction with a command execution system, apparatus, or device.

[0379] A readable signal medium may include a data signal propagated in baseband or as part of a carrier wave, which carries a readable computer program. Such a propagated data signal may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. A readable signal medium may also be any readable medium other than a readable storage medium that can transmit, propagate, or transfer a program for use by or in conjunction with a command execution system, apparatus, or device.

[0380] The computer program embodied on the readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.

[0381] Computer programs for performing the operations of the present application may be written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Java, C++, etc., and conventional procedural programming languages ​​such as "C" or similar programming languages.

[0382] It should be noted that although several units or subunits of the device are mentioned in the detailed description above, this division is merely exemplary and not mandatory. In fact, depending on the embodiment of the application, the features and functions of two or more units described above can be embodied in a single unit. Conversely, the features and functions of a single unit described above can be further divided and embodied by multiple units.

[0383] In the embodiments of the present application, the term "module" or "unit" refers to a computer program or a part of a computer program that has a predetermined function and works together with other related parts to achieve a predetermined goal, and can be implemented in whole or in part by using software, hardware (such as processing circuits or memories) or a combination thereof. Similarly, a processor (or multiple processors or memories) can be used to implement one or more modules or units. In addition, each module or unit can be part of an overall module or unit that includes the function of the module or unit.

[0384] Furthermore, although the operations of the method of the present application are described in a particular order in the accompanying drawings, this does not require or imply that the operations must be performed in this particular order, or that all illustrated operations must be performed to achieve the desired results. Additionally or alternatively, some steps may be omitted, multiple steps may be combined into one step, and / or one step may be decomposed into multiple steps.

[0385] Those skilled in the art will appreciate that the embodiments of the present application can be provided as methods, systems, or computer program products. Therefore, the present application can adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment in combination with software and hardware. Moreover, the present application can adopt the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to magnetic disk storage, CD-ROM, optical storage, etc.) that contain computer-usable program code.

[0386] Although the preferred embodiments of the present application have been described, those skilled in the art may make additional changes and modifications to these embodiments once they have learned the basic creative concept. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments and all changes and modifications that fall within the scope of the present application.

[0387] Obviously, those skilled in the art may make various changes and modifications to this application without departing from the spirit and scope of this application. Thus, if these modifications and variations of this application fall within the scope of the claims of this application and their equivalents, this application is intended to include these modifications and variations.

Claims

1. A data processing method, executed in any verification node in a verification node cluster included in a computing system, wherein the computing system further includes a scheduling node cluster and a computing node cluster; the method comprises: Obtaining task event information and a signature of the task event information from a scheduling node in the scheduling node cluster, the task event information including: a first computing node set participating in executing the computing task and a random number seed provided by a task submitting end of the computing task; verifying the signature; When the signature passes verification, deriving a first random number set based on the random number seed; Selecting, from the computing node cluster, a second computing node set associated with the first random number set for the computing task; Using the second computing node set, verifying the legitimacy of the first computing node set to obtain a corresponding verification result; Adding a block containing the verification result to the blockchain of the verification node cluster.

2. The method of claim 1, wherein: Each verification node in the verification node cluster is connected to at least one scheduling node in the scheduling node cluster, and each scheduling node is uniquely connected to one verification node; Each scheduling node in the scheduling node cluster is connected to at least one computing node in the computing node cluster, and each computing node is uniquely connected to one scheduling node; or, The scheduling node cluster includes multiple scheduling node sub-clusters, each scheduling node sub-cluster includes N-level scheduling nodes, N is a positive integer greater than 1, the first-level scheduling node of the N-level scheduling nodes is connected to the next-level scheduling node, the last-level scheduling node is connected to at least one computing node and connected to the previous-level scheduling node, the i-th level scheduling node is connected to the i-1-th level scheduling node and the i+1-th level scheduling node, i is a positive integer greater than 1 and less than N.

3. The method according to claim 1 or 2, characterized in that Selecting, from the computing node cluster, a second computing node set associated with the first random number set for the computing task, comprising: Selecting a set of candidate computing nodes from the computing node cluster; For each candidate computing node in the candidate computing node set, based on the respective evaluation values ​​representing the availability of computing resources, respectively determine the random number interval range corresponding to each candidate computing node, and the random number interval ranges corresponding to each candidate computing node do not overlap with each other; Based on each first random number in the first random number set, perform the following operations: For each first random number, the candidate computing nodes corresponding to the random number interval range in which the first random number is located are added to the second computing node set.

4. The method of claim 3, wherein: The selecting a set of candidate computing nodes from the computing node cluster includes: The candidate computing node set is selected from a plurality of computing nodes in the computing node cluster connected to the scheduling node.

5. The method of claim 3, wherein: Deriving the first random number set based on the random number seed includes: The random number seed is used as the initial value of the random number selection factor, and K rounds of iterative selection process are performed to obtain the first random number set, where K is the number of computing nodes required for the computing task; wherein each round of selection process includes the following steps: Obtaining a random number corresponding to this round based on the sum of the evaluation values ​​of the candidate computing node set and the random number selection factor used in this round; The random number selection factor used in the current round is updated to obtain the random number selection factor used in the next round.

6. The method of claim 5, wherein: Based on the sum of the evaluation values ​​of the candidate computing node set and the random number selection factor used in this round, a corresponding random number is obtained, including: Taking the sum of the evaluation values ​​as a divisor and the random number selection factor used in the current round as a dividend, obtaining a remainder of the sum of the evaluation values ​​with respect to the random number selection factor used in the current round; The remainder is determined as the random number corresponding to this round.

7. The method of claim 5, wherein: The random number selection factor used in the current round is updated to obtain the random number selection factor used in the next round, including: Perform hash value mapping processing on the cxth block in the blockchain to obtain a corresponding hash value; wherein c is the serial number of the latest block in the blockchain, and x is the number of rounds of the iterative selection process; Based on the hash value, the random number selection factor used in the current round is updated to obtain the random number selection factor used in the next round. son.

8. The method according to any one of claims 1 to 7, wherein: Verifying the signature, comprising: Decrypting the signature using the public key of the scheduling node to obtain first summary information of the task event information generated by the scheduling node; A summary is extracted from the task event information to obtain second summary information, and based on the first summary information and the second summary information, it is determined whether the signature information passes verification.

9. The method according to any one of claims 1 to 7, wherein: The method further comprises: Receive a scheduling node deployment request, the scheduling node deployment request carrying: identity information of a scheduling node to be deployed and interface information of an event notification interface; If the legitimacy verification of the identity information passes, then based on the interface information, an interface connectivity test is performed on the scheduling node; If the interface connectivity test passes, the scheduling node is added to the scheduling node cluster and a digital certificate is issued to the scheduling node; When the consensus verification of the digital certificate issuance result of the scheduling node by the verification node cluster is passed, sending a registration request for the event notification interface to the scheduling node, wherein the registration request is used to subscribe to a target type event from the scheduling node; When the registration for the event notification interface is successful, deployment success indication information is returned to the scheduling node, and the deployment success indication information carries the digital certificate.

10. A data processing method, executed in any scheduling node in a scheduling node cluster included in a computing system, wherein the multi-party computing system further includes a verification node cluster and a computing node cluster; the method comprises: Receiving a computing request sent by a task submission end, the computing request including: a computing task and a random number seed provided for the computing task; deriving a second set of random numbers based on the random number seed; Selecting, from the computing node cluster, a first computing node set associated with the second random number set for the computing task; Distributing the computing task to the first set of computing nodes so that the first set of computing nodes executes the computing task; Upon receiving the calculation result of the calculation task by each first computing node in the first computing node set, updating the calculation task to a completed state; Generate task event information and a signature for the task event information, wherein the task event information includes: a first computing node set participating in executing the computing task and a random number seed provided by a task submitting end of the computing task; The task event information and the signature of the task event information are sent to a verification node connected to the scheduling node, so that the verification node verifies the legitimacy of the first computing node set.

11. The method of claim 10, wherein: The method further comprises: Receive a computing node deployment request, the computing node deployment request carrying: identity information and resource configuration information of a computing device to be deployed; If the legitimacy verification of the identity information passes, determining whether the computing device meets the configuration requirements of the computing node based on the resource configuration information; If the configuration requirements are met, the computing device is added to the computing node cluster, and a node status table is updated with the computing device, wherein the node status table is used to store the node status of each computing node connected to the computing device; A digital certificate is issued to the computing device, and deployment success indication information is returned to the computing device, wherein the deployment success indication information carries the digital certificate.

12. A data processing method, executed in any computing node in a computing node cluster included in a computing system, wherein the multi-party computing system further includes a verification node cluster and a scheduling node cluster; the method comprises: receiving a computing request sent by a scheduling node connected to the computing node, the computing request indicating: executing a computing task submitted by a task submitting end; Execute the computing task to obtain a corresponding computing result, and sign the computing result based on its own digital certificate to obtain corresponding signature information; The calculation result and the signature information are sent to the scheduling node, so that the scheduling node: when receiving the calculation result of the calculation task by each first computing node in the set of first computing nodes participating in executing the calculation task, the scheduling node updates the calculation task New is the completed state; Generate task event information and a signature for the task event information, wherein the task event information includes: a first computing node set and a random number seed provided by a task submitting end of the computing task; The task event information and the signature of the task event information are sent to a verification node connected to the scheduling node, so that the verification node verifies the legitimacy of the first computing node set.

13. A computer device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein: When the processor executes the computer program, the steps of the method according to any one of claims 1 to 12 are implemented.

14. A computer storage medium having a computer program stored thereon, wherein: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 12 are implemented.

15. A computer program product comprising a computer program, wherein: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 12 are implemented.

Citation Information

Patent Citations

  • Block-chain architecture

    CN109426952A

  • Computing job processing method, device and system based on block chain

    CN112787812A

  • Data processing method and device, equipment and storage medium

    CN114265898A

  • Blockchain methods, nodes, systems and products

    US20210073212A1

Cited By

  • Random number generation method and device, electronic equipment and storage medium

    CN119861903A

  • Confidential computing cluster and deployment method and remote attestation method thereof

    CN120811755A

  • Block chain engineering contract evidence storage method based on BIM

    CN120849439A

  • Government affair data management method and device

    CN121151138A