WO2023185041A1 - 一种数据处理方法、装置、电子设备和存储介质 - Google Patents
一种数据处理方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- WO2023185041A1 WO2023185041A1 PCT/CN2022/135119 CN2022135119W WO2023185041A1 WO 2023185041 A1 WO2023185041 A1 WO 2023185041A1 CN 2022135119 W CN2022135119 W CN 2022135119W WO 2023185041 A1 WO2023185041 A1 WO 2023185041A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- computing
- node
- task
- chain
- engine
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
Definitions
- the embodiments of this specification belong to the field of blockchain technology, and particularly relate to a data processing method, device, electronic equipment and storage medium.
- Blockchain is a new application model of computer technology such as distributed data storage, point-to-point transmission, consensus mechanism, and encryption algorithm.
- data blocks are combined into a chained data structure in a chronological manner and are cryptographically guaranteed to be an untamperable and unforgeable distributed ledger. Due to the characteristics of blockchain, such as decentralization, non-tamperable information, and autonomy, blockchain has also received more and more attention and applications.
- the blockchain network can undertake off-chain computing tasks based on smart contract definitions.
- each node device of each blockchain node in the blockchain network will call the locally deployed off-chain device under the guidance of events generated by the smart contract.
- the computing engine is used to implement off-chain computing tasks.
- For collaborative computing tasks that is, off-chain computing tasks that require multiple node devices to work together, there is often a need for data in a certain node device to be read by an off-chain computing engine in another external node device.
- an off-chain computing engine participating in collaborative computing tasks is not deployed on a node device, a node device will not be able to achieve data interaction through communication between off-chain computing engines.
- the object of the present invention is to provide a data processing method, device, electronic equipment and storage medium.
- a data processing method is proposed, which is applied to a first node device where a first blockchain node is deployed, and a blockchain network to which the first blockchain node belongs.
- Deployed off-chain computing contracts The method includes: monitoring task events generated by the off-chain computing contract for collaborative computing tasks; and determining that the first blockchain node belongs to the data provider node corresponding to the collaborative computing task and does not belong to the collaborative computing task.
- the proxy access engine deployed on the first node device is called to perform the collaborative computing task.
- the proxy access engine is configured to: during the process of executing the collaborative computing task, transmit the data read from the first node device to the data deployed on the second node device where the computing provider node is located.
- Off-chain computing engine is configured to: during the process of executing the collaborative computing task, transmit the data read from the first node device to the data deployed on the second node device where the computing provider node is located.
- a data processing method is proposed, applied to a second node device, the second node device is deployed with a second blockchain node, and the second blockchain node belongs to The blockchain network is deployed with off-chain computing contracts.
- the method includes: monitoring task events generated by the off-chain computing contract for collaborative computing tasks; and when it is determined that the second blockchain node belongs to the computing provider node of the collaborative computing task, calling the second node device
- the deployed off-chain computing engine performs the collaborative computing tasks.
- the off-chain computing engine is used to: in the process of executing the collaborative computing task, obtain the proxy access engine deployed on the first node device where the data provider node of the collaborative computing task is located from the first node. According to the data read by the device, the first blockchain node deployed on the first node device does not belong to the computing provider node.
- a data processing device which is applied to a first node device where a first blockchain node is deployed, and a blockchain network to which the first blockchain node belongs.
- the device includes: a first event listening unit for monitoring task events generated by the off-chain computing contract for collaborative computing tasks; a data providing unit for determining that the first blockchain node belongs to the collaborative computing task. If the corresponding data provider node does not belong to the computing provider node corresponding to the collaborative computing task, the proxy access engine deployed on the first node device is called to execute the collaborative computing task.
- the proxy access engine is configured to: during the process of executing the collaborative computing task, transmit the data read from the first node device to the data deployed on the second node device where the computing provider node is located.
- Off-chain computing engine is configured to: during the process of executing the collaborative computing task, transmit the data read from the first node device to the data deployed on the second node device where the computing provider node is located.
- a data processing device is proposed, applied to a second node device, the second node device is deployed with a second blockchain node, and the second blockchain node belongs to The blockchain network is deployed with off-chain computing contracts.
- the device includes: a second event listening unit for monitoring task events generated by the off-chain computing contract for the collaborative computing task; a data acquisition unit for determining that the second blockchain node belongs to the collaborative computing task.
- the off-chain computing engine deployed on the second node device is called to perform the collaborative computing task.
- the off-chain computing engine is used to: in the process of executing the collaborative computing task, obtain the proxy access engine deployed on the first node device where the data provider node of the collaborative computing task is located from the first node. According to the data read by the device, the first blockchain node deployed on the first node device does not belong to the computing provider node.
- an electronic device including: a processor; and a memory for storing instructions executable by the processor.
- the processor implements the method described in the first aspect or the second aspect by running the executable instructions.
- a computer-readable storage medium which stores computer instructions.
- the instructions are executed by a processor, the method described in the first or second aspect is implemented. A step of.
- the proxy access engine deployed on the first node device where the data provider node is located is used as an intermediary to provide local data to the second node device, and is read by the proxy access engine inside the first node device.
- Data source, and communication is realized between the first node device and the second node device through the proxy access engine deployed on the first node device and the off-chain computing engine deployed on the second node device, thereby avoiding direct access to the second node device.
- the local data source of the first node device is exposed.
- the third node device can be restricted in a more controllable manner.
- the data reading range of the two-node device avoids exposing private information and reduces security risks.
- Figure 1 is a flow chart of a data processing method provided by an exemplary embodiment.
- Figure 2 is a flow chart of another data processing method provided by an exemplary embodiment.
- Figure 3 is a schematic diagram of a node device interaction scenario provided by an exemplary embodiment.
- Figure 4 is a schematic structural diagram of a device provided by an exemplary embodiment.
- Figure 5 is a block diagram of a data processing device provided in an exemplary embodiment.
- FIG. 6 is a block diagram of another data processing device provided by an exemplary embodiment.
- Figure 1 is a flow chart of a data processing method provided by an exemplary embodiment. This method is applied to a first node device deployed with a first blockchain node, and the blockchain network to which the first blockchain node belongs is deployed with an off-chain computing contract; the method includes:
- S102 Monitor task events generated by the off-chain computing contract for collaborative computing tasks.
- the off-chain computing contract is an on-chain carrier used to carry off-chain computing tasks.
- the off-chain computing contract defines several sub-tasks included in the off-chain computing tasks, which are used to describe an off-chain computing task.
- the data flow direction and the computing collaboration process of each node device Since the off-chain computing contract is deployed on the blockchain network, the participant nodes of the off-chain computing tasks defined by the off-chain computing contract are limited to not exceeding the scope of each blockchain node in the blockchain network.
- off-chain computing contracts can be deployed in the same blockchain network, and the number and performance of the participant nodes involved in different off-chain computing contracts can be flexibly configured, which makes it possible to rely on the same blockchain
- the network can realize the deployment of off-chain computing tasks with different task types, task requirements and task scales.
- off-chain computing contract guides the implementation of its defined off-chain computing tasks
- the following will briefly introduce the implementation logic of off-chain computing tasks through the operation process of a typical off-chain computing contract.
- Users can generate the code of the off-chain computing contract through the visual contract orchestration system and deploy the off-chain computing contract in the blockchain network, so that the off-chain computing contract defines a type of workflow for off-chain computing tasks, which is embodied as Several subtasks with execution-dependent order.
- users who have the authority to call the off-chain computing contract can create and start an off-chain computing task by initiating a task creation transaction to the off-chain computing contract.
- the off-chain computing contract will receive After the task creation transaction, a task instance of the off-chain computing task belonging to the initiating user will be created accordingly.
- the task instance maintains the task completion status of the off-chain computing task, which is specifically reflected in the status of each sub-task under the off-chain computing task. Task completion status.
- the off-chain computing contract responds to the task creation transaction and generates the corresponding task instance, it will further trigger the execution of the first sub-task corresponding to the instance, which is reflected in the off-chain computing contract as generating a participant node containing the first sub-task.
- each blockchain node in the blockchain network can listen to this event, and the node devices of those blockchain nodes that determine that they belong to the participant nodes of the first subtask will further call the node device matching the first subtask.
- a subtask's off-chain computing resources and/or off-chain storage resources are used to execute the first subtask off-chain.
- the node device where the participant node is located will further calculate the contract to the off-chain. Initiate a result return transaction carrying the execution result of the first subtask, so that the off-chain computing contract updates the task completion status of the corresponding task instance.
- the off-chain computing contract For example, when the execution result of the first subtask is successful, the off-chain computing contract The task completion status of the first subtask in the corresponding task instance will be marked as completed, thereby triggering the execution of the next batch of subtasks according to the dependency order of each subtask included in the predefined off-chain computing task, and then generating the next batch of subtasks.
- the participant nodes of a batch of subtasks describe information events for each blockchain node in the blockchain network to monitor. The subsequent process is similar to the aforementioned process of processing the first subtask.
- the tasks performed by the off-chain computing contract during the execution of the off-chain computing task only include scheduling tasks such as creating task instances, receiving sub-task results, sub-task scheduling and sub-task delivery.
- scheduling tasks such as creating task instances, receiving sub-task results, sub-task scheduling and sub-task delivery.
- the mechanism and the transaction callback mechanism realize a distributed computing based on the blockchain, so that the off-chain computing tasks are anchored by the off-chain computing contracts on the blockchain, fully ensuring that the entire task execution process is traceable.
- off-chain resources simultaneously enables reliable information interaction and collaborative computing between different node devices relying on the blockchain.
- off-chain computing tasks are defined in the form of contracts and the design of off-chain computing tasks is not affected by on-chain Resource constraints mean that different off-chain computing contracts can be designed to meet different actual needs, and on-chain collaboration methods can be expanded through off-chain resources.
- the off-chain computing contract maintains a task completion status corresponding to the off-chain computing task, and the task completion status is used to describe the completion status of each sub-task included in the off-chain computing task; in the When the collaborative computing task is a subtask of the off-chain computing task, the monitoring of task events generated by the off-chain computing contract for the collaborative computing task includes: monitoring when the off-chain computing contract performs the task The task event for the collaborative computing task generated when the completion status satisfies the execution condition corresponding to the collaborative computing task.
- the off-chain computing task is represented as a corresponding task instance on the off-chain computing contract, and its task completion status is maintained in the corresponding task instance of the off-chain computing contract.
- the task instance maintains various The completion status of the subtask.
- the collaborative computing task belongs to a subtask of the off-chain computing task. Since the execution dependency order of the subtasks included in the off-chain computing task has been predefined, this means that the collaborative computing task includes The execution conditions of each sub-task including the task have also been determined, so the off-chain computing contract can further determine the collaborative computing tasks that need to be executed next based on the completion status of each sub-task included in the off-chain computing task, thereby initiating a target Task events for collaborative computing tasks.
- the collaborative computing task also includes: when the collaborative computing task is completed, initiating a result return transaction containing the execution result corresponding to the collaborative computing task to the off-chain computing contract through the first blockchain node to update the off-chain The task completion status corresponding to the off-chain computing tasks maintained by the computing contract.
- the first node device executes a subtask by calling resources and completes the execution, it will update the task completion status of the off-chain computing task maintained by the off-chain computing contract by initiating a result return transaction, thereby making the off-chain
- the computing contract can further determine the next subtask that should be executed based on the execution dependency sequence of each subtask in the off-chain computing task, and generate a task event for the next subtask.
- the entity that monitors the task events generated by the off-chain computing contract and initiates the result return transaction to the off-chain computing contract is specifically the scheduling engine deployed on the first node device.
- the task completion status is updated by the off-chain computing contract in response to the transaction corresponding to the off-chain computing task, wherein the transaction corresponding to the off-chain computing task includes the transaction corresponding to the off-chain computing task.
- task creation transaction or a result return transaction initiated by any node device after completing the execution of any of the subtasks.
- the off-chain computing contract maintains the task completion status corresponding to one or more off-chain computing tasks. Normally, an off-chain computing contract only defines one type of off-chain computing task, but multiple task instances corresponding to the off-chain computing task can be created, and each task instance will record the completion of the task corresponding to the task instance. state.
- the creation of multiple task instances maintained on the off-chain computing contract can be triggered by different users by initiating task creation contracts to the off-chain computing contract, or the creation can be triggered by the same user by initiating task creation contracts multiple times. , but these task instances all have the same execution logic, that is, the task types of each task maintained by the off-chain computing contract are the same.
- S104 When it is determined that the first blockchain node belongs to the data provider node corresponding to the collaborative computing task but not to the computing provider node corresponding to the collaborative computing task, call the proxy access engine deployed by the first node device Perform the collaborative computing tasks.
- the proxy access engine is configured to: during the process of executing the collaborative computing task, transmit the data read from the first node device to the data deployed on the second node device where the computing provider node is located. Off-chain computing engine.
- the task event for the collaborative computing task generated by the off-chain computing contract monitored by the first node device records the description information of the participating node of the collaborative computing task.
- the task event includes the description information of the participant nodes of the collaborative computing task, which means that the collaborative computing task specifies the identity information of the participating blockchain nodes that it requires.
- the participant nodes of the collaborative computing task can be determined as the data provider node and/or the computing provider node corresponding to the collaborative computing task according to their corresponding attribute characteristics, where the data provider node corresponding to the collaborative computing task refers to: in a During the execution of a collaborative computing task involving multiple node devices, a blockchain node in the blockchain network deployed on a node device that needs to provide data to other node devices, the data is used to provide data to other nodes
- the off-chain computing engine deployed on the device is used as the data required to perform the collaborative computing task and/or other subsequent sub-tasks; and the computing provider corresponding to the collaborative computing task refers to: a system that is jointly completed by multiple node devices.
- the blockchain node in the blockchain network deployed on the node device that provides off-chain computing engine resources to perform the actual computing task can be either a data provider node corresponding to the collaborative computing task, a computing provider node corresponding to the collaborative computing task, or both at the same time.
- the data provider node and computing provider node corresponding to the collaborative computing task For example, for a participant node that is both a data provider node and a computing provider node corresponding to a collaborative computing task, the off-chain computing engine on the node device where it is located will execute the collaborative computing task. Obtain local data of the node device for the collaborative computing task and/or other subsequent subtasks.
- the type of proxy access engine involved in the embodiment of this specification may be a computing engine or a data engine.
- the computing engine also known as the off-chain computing engine, refers to the service or subsystem that provides off-chain computing capabilities for node devices.
- a computing engine can often undertake one or more types of computing tasks, which is reflected in the Support the computing requirements corresponding to the task;
- the data engine also known as the database engine, refers to the core service program used to store, retrieve, process and protect data.
- the database engine can be used to control access permissions and process transactions quickly, thereby satisfying most of the needs within the enterprise. Requirements for applications that need to process large amounts of data, use a database engine to create a relational database for online transaction processing or online analytical processing of data.
- Different data engines support different data access methods or accessed data types, which are reflected in the support of data engine requirements corresponding to related subtasks.
- the first node device needs to determine that the first blockchain node belongs to the data provider node corresponding to the collaborative computing task but does not belong to the computing provider node corresponding to the collaborative computing task,
- the proxy access engine will be called to perform the collaborative computing task, which means that the first node device will call the proxy access engine only if the first node device only belongs to the data provider of the collaborative computing task, Otherwise, whenever the first node device does not belong to the data provider node corresponding to the collaborative computing task or belongs to the computing provider node corresponding to the collaborative computing task, the first node device will not call the proxy access engine to execute the Collaborative computing tasks.
- the first blockchain node belongs to both the data provider node and the computing provider node corresponding to the collaborative computing task, then even if the first node device needs to provide data to other node devices, it can directly serve as the computing provider node.
- the off-chain computing engine involved in the provider node acts as an intermediary for data transmission, and the off-chain computing engine accesses local data sources, eliminating the need to expose local data sources to the outside.
- the entity that calls the off-chain computing engine to perform collaborative computing tasks is specifically the scheduling engine deployed on the first node device.
- the description information of the data provider node recorded in the task event contains the identification information of the first blockchain node
- the description information of the computing provider node recorded in the task event does not include the identification information of the first blockchain node, or the first node device is not deployed with an off-chain device that supports the execution of the collaborative computing task.
- the task event for the collaborative computing task records the description information of the participant node of the collaborative computing task, specifically referring to that the task event records the description information of the data provider node corresponding to the collaborative computing task.
- the first node device can determine that the first blockchain node it is deployed to belongs to when it is determined that the description information of the data provider node contains the identification information of the first blockchain node deployed by itself.
- the node does not belong to the data provider node corresponding to the collaborative computing task.
- the task event for the collaborative computing task also records the description information of the computing provider node corresponding to the collaborative computing task, which means that the first node device can determine the description information of the computing provider node.
- the identification information of the first blockchain node deployed by itself it is determined that the first blockchain node to which it is deployed belongs to the computing provider node corresponding to the collaborative computing task; and if the description information of the computing provider node does not contain the identification information of the first blockchain node, then the first node device can determine that the first blockchain node deployed by itself does not belong to the computing provider node corresponding to the collaborative computing task.
- the task event also records the identification information of the off-chain computing engine that participates in executing the collaborative computing task on the node device where the computing provider node is located.
- only the description information of the data provider node corresponding to the collaborative computing task is recorded in the task event for the collaborative computing task, but the description information and participation in the execution of the computing provider node corresponding to the collaborative computing task are not recorded.
- each node device recognizes that the description of the computing provider node corresponding to the collaborative computing task is not recorded in the task event. Information, then it will trigger the negotiation of the computing provider nodes corresponding to the collaborative computing task.
- any node device when it determines that it is deployed with an off-chain computing engine that supports the execution of the collaborative computing task, it can determine that it belongs to the computing provider node corresponding to the collaborative computing task, so the first node
- the device may determine that the first blockchain node does not belong to the computing provider node when the first node device is not deployed with an off-chain computing engine that supports execution of the collaborative computing task.
- the computing provision statement upon receiving a computing provision statement sent by another node device, attribute the blockchain node deployed on the other node device to the computing provider node, wherein the computing provision statement is provided by the The other node device broadcasts to the first node device where the data provider node is located when it is determined that the other node device is deployed with an off-chain computing engine that supports execution of the collaborative computing task.
- any node device among the node devices negotiates with the computing provider node, it will determine whether it belongs to the computing corresponding to the collaborative computing task based on whether it has deployed an off-chain computing engine that supports the collaborative computing task.
- the device In addition to the provider node, after determining that it belongs to the computing provider node, it will also broadcast a computing provision statement containing the identification information of the off-chain computing engine that supports the collaborative computing task to other node devices, so that other nodes After receiving the computing provision statement of any node device, the device attributes the any node device to the computing provider node corresponding to the collaborative computing task, and at the same time learns all the information involved in the actual calculation involved in executing the collaborative computing task.
- Off-chain computing engines deployed on the other node devices wherein the other node devices can be all node devices deployed with blockchain nodes in the blockchain network, or all node devices deployed with the collaborative computing task corresponding to The node device of the data provider node.
- the blockchain node deployed on the other node device can be attributed to the computing provider node, and at the same time Get the identification information of the off-chain computing engine that is the target of providing data.
- the node device where the participant node is located does not record the description information of the computing provider node corresponding to the collaborative computing task in the task event
- computing provision can also be performed through each node device.
- the task events will also record the task identifiers of off-chain computing tasks and collaborative computing tasks, thereby distinguishing different tasks and subtasks. This is mainly to facilitate any subsequent node device to complete the execution of the collaborative computing task and return the results.
- the off-chain computing contract can correctly update the completion status of the collaborative computing task in the task instance corresponding to the off-chain computing task through the result return transaction to cope with the same problem.
- a task contains multiple subtasks and the same off-chain computing annual contract creates task instances of multiple off-chain computing tasks at the same time.
- the collaborative computing task also records the calculations and data transfer operations it needs to perform, and specifies the source of the required data. This information is used to inform each node device of the task type and implementation method of the collaborative computing task, thereby guiding After determining the task type of the collaborative computing task and its implementation method corresponding to the callable resources, the node device executes the collaborative computing task as expected for the collaborative computing task.
- calling the proxy access engine deployed on the first node device to perform the collaborative computing task includes: calling the proxy access engine pre-deployed on the first node device to execute the collaborative computing task; or, on the first node device, The node device deploys the proxy access engine and calls the proxy access engine to perform the collaborative computing task.
- the first node device may be pre-deployed with a proxy access engine.
- the proxy access engine executes the collaborative computing task; and in another case, the first node device is not pre-deployed with a proxy access engine.
- the first node device determines that it needs to call the proxy access engine to execute In the case of collaborative computing tasks, the proxy access engine will be temporarily generated and deployed locally, so that after the deployment of the proxy access engine is completed, the proxy access engine will be called to perform the collaborative computing task.
- the proxy access engine is configured to: in response to the proxy access engine being called, transmit the data indicated by the task event read from the first node device to the off-chain computing engine; or , read the pre-read data indicated by the task event from the first node device, and transmit the pre-read data to the off-chain computing engine in response to the data access request sent by the off-chain computing engine; Alternatively, in response to the data access request sent by the off-chain computing engine, data indicated by the data access request read from the first node device is transmitted to the off-chain computing engine.
- the proxy access engine can provide data to the second node device where the computing provider node is located through at least three logics: First, the call request of the first node device for the proxy access engine carries as transmission The identification information of the target's off-chain computing engine and the data requirements recorded in the task event, so the proxy access engine can trigger the request from the first node device based on the data requirements contained in the task event when it is called to perform a collaborative computing task.
- the proxy access engine Read the corresponding data and transmit it to the off-chain computing engine deployed by the second node device; secondly, the call request of the first node device for the proxy access engine carries the identification information of the off-chain computing engine as the transmission target and Based on the data requirements recorded in the task event, the proxy access engine will trigger the execution of reading the pre-read data corresponding to the data requirements based on the call request, and wait for the data from the off-chain computing engine deployed on the second node device.
- the proxy access engine when the proxy access engine receives the data access request, it will further trigger the transmission of the pre-read data to the off-chain computing engine; thirdly, the first node device carries in the call request for the proxy access engine With the identification information of the off-chain computing engine as the transmission target, the proxy access engine will wait for the data access request from the off-chain computing engine deployed on the second node device. When the proxy access engine receives the data access request, it will It is further triggered to read the data indicated by the data access request and transmit it to the off-chain computing engine.
- the embodiments of this specification provide multiple ways for the proxy access engine to provide data to the off-chain computing engine, thereby adapting to the actual needs of different scenarios.
- the data provided by the first and second methods are calculated by the off-chain calculation engine.
- the task events generated by the contract are determined, so access permission control between different node devices can be achieved by writing off-chain computing tasks.
- the data provided in the third method is determined by the off-chain computing engine, which can be adapted to more flexible applications.
- off-chain computing tasks can also be done through the proxy access engine as access control work; the second and third methods, compared to the first method, emphasize that data transmission is controlled by the off-chain computing engine, which can match some specific data Off-chain computing tasks with uncertain circulation process, because some off-chain computing tasks may have the possibility that the off-chain computing engine does not need to obtain data from the proxy access engine depending on the specific situation, so the off-chain computing engine controls the data transmission in compliance with The actual needs of the off-chain computing engine are to avoid the security risks and resource losses that may be caused by unnecessary data transmission.
- the proxy access engine deployed on the first node device where the data provider node is located is used as an intermediary to provide local data to the second node device, and is read by the proxy access engine inside the first node device.
- Data source, and communication is realized between the first node device and the second node device through the proxy access engine deployed on the first node device and the off-chain computing engine deployed on the second node device, thereby avoiding direct access to the second node device.
- the local data source of the first node device is exposed.
- the third node device can be restricted in a more controllable manner.
- the data reading range of the two-node device avoids exposing private information and reduces security risks.
- the proxy access engine is configured to encrypt the data read from the first node device using the certificate storage public key corresponding to the off-chain computing engine maintained by the off-chain computing contract to obtain encryption. data, and sends the encrypted data to the off-chain computing engine.
- the off-chain computing contract maintains the public keys of each off-chain computing engine that participates in executing the off-chain computing task, and therefore also includes the public keys deployed on the second node device that participate in executing the collaborative computing.
- the public key of the off-chain computing engine of the task can obtain the public key of the off-chain computing engine as the data providing target from the off-chain computing contract, and then read the original data from the first node device through
- the encrypted data obtained by encrypting the public key of the off-chain computing engine is used as a replacement for the original data, and the encrypted data instead of the original data is transmitted to the off-chain computing engine, and the off-chain computing engine can Decrypt the encrypted data through its own public key to obtain the original data, thereby avoiding direct transmission of plaintext data and reducing security risks while ensuring the effectiveness of communication.
- the certificated public key corresponding to the off-chain computing engine maintained by the off-chain computing contract is updated by a key update transaction initiated by the second computing device, and the key update transaction is monitored by the second computing device. Initiated when a key update event is generated by the off-chain computing contract, the key update transaction carries the latest key update corresponding to the off-chain computing engine obtained by the second node device in response to the key update event. public key.
- the key update event records a key update task related to the key update event.
- the node device can determine whether the blockchain node deployed by itself is included in the description information of the participant node, or determine the key update event. Whether there is identification information matching the off-chain computing engine deployed by itself, so as to determine whether it needs to perform a key update task.
- any node device performs a key update task, it needs to access the locally deployed off-chain computing engine of the key to be updated and obtain its corresponding latest public key, and then carry the latest public key in the key update transaction.
- the off-chain computing contract triggers the update of the certificated public key of the corresponding off-chain computing engine maintained by itself, that is, the key originally maintained in the off-chain computing contract is updated.
- the certificated public key of the off-chain computing engine pointed to by the transaction is replaced with the latest public key of the off-chain computing contract carried in the key update transaction.
- the public key information of the off-chain computing engine deployed in the node device is maintained in the off-chain computing contract through the event listening mechanism and the transaction callback mechanism, so that each off-chain calculation participating in the off-chain computing task can be realized.
- the public key of the engine is stored on the chain and updated in real time, thereby ensuring the authority and validity of the public key obtained by each subject involved in performing off-chain computing tasks.
- the off-chain computing contract is used to trigger the generation of the key update event during the initialization phase of successful deployment or in response to a key reset transaction.
- the off-chain computing contract when the off-chain computing contract is successfully deployed on any node device, the off-chain computing contract will trigger the execution of the initialization program, which includes generating a key update event, so that the off-chain computing contract Timely update the certificated public keys of the off-chain computing engines participating in off-chain computing tasks in each newly added node device.
- any node device can also actively initiate a key reset transaction to the off-chain computing contract, so that the off-chain computing contract triggers and generates a key update event in response to the key reset transaction to be monitored by each node device, thereby dealing with
- the latest public key of the off-chain computing engine deployed on some node devices that participates in off-chain computing tasks changes to ensure the consistency of the on-chain certified public key and the actual latest public key of the off-chain computing engine.
- Figure 2 is a flow chart of another data processing method provided by an exemplary embodiment.
- the method is applied to the second node device, the second node device is deployed with a second blockchain node, and the blockchain network to which the second blockchain node belongs is deployed with an off-chain computing contract; the method includes:
- S202 Monitor task events generated by the off-chain computing contract for collaborative computing tasks.
- S204 When it is determined that the second blockchain node belongs to the computing provider node of the collaborative computing task, call the off-chain computing engine deployed by the second node device to execute the collaborative computing task.
- the off-chain computing engine is used to: in the process of executing the collaborative computing task, obtain the proxy access engine deployed on the first node device where the data provider node of the collaborative computing task is located from the first node. According to the data read by the device, the first blockchain node deployed on the first node device does not belong to the computing provider node.
- the embodiment of this specification is an embodiment on the second node device side corresponding to the embodiment of a data processing method described above.
- the technical details involved have been described in detail above and will not be described again here. Since the first blockchain node deployed on the first node device does not belong to the computing provider node, that is, the first blockchain node only serves as a data provider node, then in order to prevent the second node device from performing collaborative computing tasks Reading data directly from the first node device will use the proxy access engine deployed in the first node device as an intermediary to obtain the data on the first node device. Therefore, the second node device can be more controllably restricted from being accessed by the first node device. The scope of reading data in the device avoids leaking private information and reduces security risks.
- description information of the data provider node is recorded in the task event.
- the second node device may determine that the second blockchain node belongs to the second blockchain node by determining that the identification information of the second blockchain node deployed by itself is included in the description information of the data provider node recorded in the task event. data provider node, and when it is determined that the identification information of the second blockchain node is not included in the description information of the data provider node recorded in the task event, it is determined that the second blockchain node does not belong to the Data provider node.
- the second node device can also learn the node device of the relevant data provider node participating in the execution of the collaborative computing task, thereby informing the off-chain computing engine where to obtain data during the execution of the collaborative computing task.
- the description information of the computing provider node recorded in the task event includes the identification information of the second blockchain node, or the second node device is deployed with support for executing the collaborative computing task.
- the description information of the computing provider node is directly recorded in the task event, so the second node device can determine that the identification information of the second blockchain node is included in the In the case of the description information of the computing provider node, it is determined that the second blockchain node belongs to the computing provider node.
- negotiation of the computing provider nodes corresponding to the collaborative computing task is triggered, and the negotiation is performed in each node device.
- Each node device All nodes will determine whether they have deployed an off-chain computing engine that supports the execution of collaborative computing tasks, and any node device will determine the block it deploys if it determines that it has deployed an off-chain computing engine that supports the execution of the collaborative computing tasks.
- the chain node belongs to the computing provider node. This embodiment does not assign the computing provider node in the task event generated by the off-chain computing contract, but allows each node device to select the computing provider node by itself through negotiation. , thus realizing dynamic resource planning to a certain extent and making full use of the off-chain computing engine resources on each node device.
- the method further includes: when it is determined that the second node device is deployed with an off-chain computing engine that supports execution of the collaborative computing task, broadcasting the computing provision statement to the first node where the data provider node is located.
- the node device enables the first node device to attribute the second blockchain node to the computing provider node.
- each node device needs to know whether its own deployed blockchain node belongs to the computing provider node, but also needs to know other computing provider nodes. Therefore, when any computing node device determines If the self-deployed off-chain computing engine supports the execution of the collaborative computing task, the computing provision statement carrying the identification information of the self-deployed blockchain node and the determined identification information of the off-chain computing engine will be broadcast to other nodes. equipment, so that other node equipment can use the computing provider declaration to attribute the blockchain node it carries to the computing provider node, and determine the off-chain computing engine it carries as needing to participate in collaborative computing tasks.
- the method further includes: when it is determined that the second blockchain node belongs to both the computing provider node and the data provider node, calling the off-chain computing engine to perform the collaborative computing task.
- the off-chain computing engine is used to: in the process of executing the collaborative computing task, obtain the local data read from the second node device and the data read by the proxy access engine from the first node device. , the first blockchain node deployed on the first node device does not belong to the computing provider node.
- the second node device determines that the second blockchain node deployed by itself belongs to both the computing provider node and the data provider node, then in this case, the second node device During the process of executing the collaborative computing task, the off-chain computing engine participating in the collaborative computing task will not only obtain data from other node devices, but also read the local data of the second node device to further perform the collaborative computing task or Used in the execution of subsequent subtasks.
- the off-chain computing engine is configured to: obtain the encrypted data sent by the proxy access engine, the encrypted data corresponding to the off-chain computing engine maintained by the proxy access engine through the off-chain computing contract.
- the certificated public key is obtained by encrypting the data read from the first node device.
- the computing contract also includes: in the case of monitoring the key update event generated by the off-chain computing contract, obtaining the latest public key corresponding to the off-chain computing engine, and sending it to the off-chain through the second blockchain node.
- the computing contract initiates a key update transaction carrying the latest public key to update the certified public key corresponding to the off-chain computing engine maintained by the off-chain computing contract to the latest public key.
- off-chain computing contract is used to trigger the generation of the key update event during the initialization phase of successful deployment or in response to a key reset transaction.
- obtaining the latest public key corresponding to the off-chain computing engine includes: after monitoring that the off-chain computing contract is deployed successfully In the case of the key update event generated during the initialization phase, obtain the latest public keys corresponding to all off-chain computing engines deployed by the second node device; or, after monitoring the off-chain computing contract in response to the When the key update event is generated by the key reset transaction and it is determined that the first node device is deployed with the target off-chain computing engine indicated by the key update event, obtain the target off-chain computing engine corresponding of the latest public key.
- the off-chain computing contract when deployed to any node device, it will trigger the execution of the initialization program, which includes the process of generating the key update event.
- the key update event is used to indicate Any node device obtains the latest public keys of all off-chain computing engines deployed on any node device, and maintains them in the off-chain computing contract through the transaction callback mechanism, thereby participating in the execution of off-chain computing engines defined by the off-chain computing contract.
- the public key of the new off-chain computing engine of the computing task is immediately maintained in the off-chain computing contract to ensure the normal execution of the off-chain computing task; or, after the off-chain computing contract receives the key reset transaction, it will also be generated
- the key update event is used to instruct the update of the certificated public key of the target off-chain computing engine maintained in the off-chain computing contract.
- the second node device recognizes that the target off-chain computing engine is locally deployed, it will respond to the The key update event obtains the latest public key corresponding to the target off-chain computing engine deployed on the second node device, and updates it to the off-chain computing contract through the transaction callback mechanism, thus updating the specific off-chain calculation in real time.
- the engine calculates the certificated public key in the contract off-chain to avoid execution errors of off-chain computing tasks caused by the certificated public key of a specific off-chain calculation engine lagging behind the latest public key of a specific off-chain calculation engine.
- Figure 3 is a schematic diagram of a node device interaction scenario provided by an exemplary embodiment.
- the first node device is deployed with the first blockchain node, the first scheduling engine, the proxy access engine and the first data source in the blockchain network
- the second node device is deployed with the blockchain network
- the off-chain computing contract When the off-chain computing contract generates a task event for a collaborative computing task, it will be processed by the first scheduling engine on the first node device and the second node device on the second node device through the first blockchain node and the second blockchain node respectively.
- the task event also records the description information of the data provider node and the computing provider node corresponding to the collaborative computing task, as well as the identification information of the off-chain computing engine that needs to provide data, where the data provider
- the description information of the node is the identification information of the first blockchain node
- the description information of the calculation provider node is the identification information of the second blockchain node.
- the first scheduling engine can determine that the first node device needs to provide data to the off-chain computing engine in the second node device, and at the same time, the first node device does not need to provide computing support for the collaborative computing task, so the first scheduling engine will call The proxy access engine performs collaborative computing tasks to transmit data obtained from the first data source to the off-chain computing engine in the second node device.
- the second scheduling engine can determine that the specified off-chain computing engine in the task event deployed in the second node device needs to obtain the data of the first node device, so the second scheduling engine will call the specified off-chain computing engine to perform collaboration.
- the designated off-chain computing engine is a trusted computing engine running in a feasible execution environment, which needs to obtain data from the first node device to complete the relevant trusted computing operations defined in the collaborative computing task.
- the trusted computing engine will obtain the data read from the first data source by the proxy access engine through a network connection with the proxy access engine deployed on the first node device, thereby further performing trusted computing operations to continue completing the collaboration. Computational tasks.
- Figure 4 is a schematic structural diagram of a device provided by an exemplary embodiment.
- the device includes a processor 402, an internal bus 404, a network interface 406, a memory 408 and a non-volatile memory 410.
- the processor 402 reads the corresponding computer program from the non-volatile memory 410 into the memory 408 and then runs it.
- the execution subject of the following processing flow is not limited to each A logic unit can also be a hardware or logic device.
- FIG. 5 is a block diagram of a data processing device provided in this specification according to an exemplary embodiment.
- the device can be applied in the equipment shown in Figure 4 to implement the technical solution of this specification; so The device is applied to a first node device deployed with a first blockchain node, and the blockchain network to which the first blockchain node belongs is deployed with an off-chain computing contract.
- the device includes: a first event listening unit 501 for monitoring task events generated by the off-chain computing contract for collaborative computing tasks; a data providing unit 502 for determining that the first blockchain node belongs to the collaboration If the data provider node corresponding to the computing task does not belong to the computing provider node corresponding to the collaborative computing task, the proxy access engine deployed on the first node device is called to execute the collaborative computing task.
- the proxy access engine is configured to: during the process of executing the collaborative computing task, transmit the data read from the first node device to the data deployed on the second node device where the computing provider node is located.
- Off-chain computing engine is configured to: during the
- the off-chain computing contract maintains a task completion status corresponding to the off-chain computing task.
- the task completion status is used to describe the completion status of each sub-task included in the off-chain computing task; in the collaborative computing
- the first event listening unit 501 is specifically configured to: monitor that the off-chain computing contract satisfies the execution conditions corresponding to the collaborative computing task when the task is completed. The task event generated for the collaborative computing task.
- the task completion status is updated by the off-chain computing contract in response to a transaction corresponding to the off-chain computing task, where the transaction corresponding to the off-chain computing task includes the transaction corresponding to the off-chain computing task.
- the data providing unit 502 is specifically configured to: call the proxy access engine pre-deployed on the first node device to perform the collaborative computing task; or, deploy the proxy access engine on the first node device and call The proxy access engine performs the collaborative computing tasks.
- the proxy access engine is configured to: in response to the proxy access engine being called, transmit the data indicated by the task event read from the first node device to the off-chain computing engine; or , read the pre-read data indicated by the task event from the first node device, and transmit the pre-read data to the off-chain computing engine in response to the data access request sent by the off-chain computing engine; Alternatively, in response to the data access request sent by the off-chain computing engine, data indicated by the data access request read from the first node device is transmitted to the off-chain computing engine.
- a data provider node determining unit 503 configured to determine if the description information of the data provider node recorded in the task event contains the identification information of the first blockchain node.
- the first blockchain node belongs to the data provider node.
- the first computing provider node determining unit 504 is configured to determine that the description information of the computing provider node recorded in the task event does not include the identification information of the first blockchain node, or is not deployed on the first node device. If there is an off-chain computing engine that supports execution of the collaborative computing task, it is determined that the first blockchain node does not belong to the computing provider node.
- a computing provision statement receiving unit 505 configured to, upon receiving a computing provision statement sent by other node devices, attribute the blockchain nodes deployed on the other node devices to the computing provider Party node, wherein the computing provision statement is broadcast by the other node device to the location of the data provider node when it is determined that the other node device is deployed with an off-chain computing engine that supports the execution of the collaborative computing task.
- the first node device configured to, upon receiving a computing provision statement sent by other node devices, attribute the blockchain nodes deployed on the other node devices to the computing provider Party node, wherein the computing provision statement is broadcast by the other node device to the location of the data provider node when it is determined that the other node device is deployed with an off-chain computing engine that supports the execution of the collaborative computing task.
- the proxy access engine is configured to encrypt the data read from the first node device using the certificate storage public key corresponding to the off-chain computing engine maintained by the off-chain computing contract to obtain encryption. data, and sends the encrypted data to the off-chain computing engine.
- the certificated public key corresponding to the off-chain computing engine maintained by the off-chain computing contract is updated by a key update transaction initiated by the second computing device, and the key update transaction is initiated by the second computing device.
- the key update transaction Initiated after monitoring the key update event generated by the off-chain computing contract, the key update transaction carries the off-chain computing engine corresponding to the second node device obtained in response to the key update event. The latest public key.
- the off-chain computing contract is used to trigger the generation of the key update event during the initialization phase of successful deployment or in response to a key reset transaction.
- FIG. 6 is a block diagram of a data processing device provided in this specification according to an exemplary embodiment.
- This device can be applied to the equipment shown in Figure 4 to implement the technical solution of this specification; so The device is applied to a second node device, the second node device is deployed with a second blockchain node, and the blockchain network to which the second blockchain node belongs is deployed with an off-chain computing contract.
- the device includes: a second event listening unit 601 for monitoring task events generated by the off-chain computing contract for collaborative computing tasks; a data acquisition unit 602 for determining that a second blockchain node belongs to the collaboration In the case of the computing provider node of the computing task, the off-chain computing engine deployed on the second node device is called to execute the collaborative computing task.
- the off-chain computing engine is used to: in the process of executing the collaborative computing task, obtain the proxy access engine deployed on the first node device where the data provider node of the collaborative computing task is located from the first node. According to the data read by the device, the first blockchain node deployed on the first node device does not belong to the computing provider node.
- the task event records description information of the data provider node.
- a second computing provider node determining unit 603, configured to include the identification information of the second blockchain node or the second blockchain node in the description information of the computing provider node recorded in the task event.
- a second computing provider node determining unit 603 configured to include the identification information of the second blockchain node or the second blockchain node in the description information of the computing provider node recorded in the task event.
- a computing provision statement broadcast unit 604 configured to broadcast the computing provision statement to the second node device when it is determined that the second node device is deployed with an off-chain computing engine that supports the execution of the collaborative computing task.
- an off-chain computing task execution unit 605 configured to call the off-chain computing when it is determined that the second blockchain node belongs to both the computing provider node and the data provider node.
- the engine performs the collaborative computing tasks.
- the off-chain computing engine is used to: in the process of executing the collaborative computing task, obtain the local data read from the second node device and the data read by the proxy access engine from the first node device. , the first blockchain node deployed on the first node device does not belong to the computing provider node.
- the off-chain computing engine is configured to: obtain the encrypted data sent by the proxy access engine, the encrypted data corresponding to the off-chain computing engine maintained by the proxy access engine through the off-chain computing contract.
- the certificated public key is obtained by encrypting the data read from the first node device.
- a certified public key update unit 606 configured to obtain the latest public key corresponding to the off-chain computing engine when the key update event generated by the off-chain computing contract is monitored.
- the second blockchain node initiates a key update transaction carrying the latest public key to the off-chain computing contract to update the certificated public key corresponding to the off-chain computing engine maintained by the off-chain computing contract. is the latest public key.
- the off-chain computing contract is used to trigger the generation of the key update event during the initialization phase of successful deployment or in response to a key reset transaction.
- the certificated public key update unit 606 is specifically configured to: obtain the key update event generated by the initialization phase when the off-chain computing contract is successfully deployed, and obtain the key update event deployed by the second node device.
- the latest public keys respectively corresponding to all off-chain computing engines; or, after monitoring the key update event generated by the off-chain computing contract in response to the key reset transaction and determining the deployment of the first node device If there is a target off-chain computing engine indicated by the key update event, obtain the latest public key corresponding to the target off-chain computing engine.
- PLD Programmable Logic Device
- FPGA Field Programmable Gate Array
- HDL Hardware Description Language
- the controller may be implemented in any suitable manner, for example, the controller may take the form of, for example, a microprocessor or processor and a computer readable medium storing computer readable program code (eg, software or firmware) executable by the (micro)processor. , logic gates, switches, Application Specific Integrated Circuit (ASIC), programmable logic controllers and embedded microcontrollers.
- controllers include but are not limited to the following microcontrollers: ARC 625D, Atmel AT91SAM, For Microchip PIC18F26K20 and Silicone Labs C8051F320, the memory controller can also be implemented as part of the memory's control logic.
- the controller in addition to implementing the controller in the form of pure computer-readable program code, the controller can be completely programmed with logic gates, switches, application-specific integrated circuits, programmable logic controllers and embedded logic by logically programming the method steps. Microcontroller, etc. to achieve the same function. Therefore, this controller can be considered as a hardware component, and the devices included therein for implementing various functions can also be considered as structures within the hardware component. Or even, the means for implementing various functions can be considered as structures within hardware components as well as software modules implementing the methods.
- the systems, devices, modules or units described in the above embodiments may be implemented by computer chips or entities, or by products with certain functions.
- a typical implementation device is a server system.
- the computer that implements the functions of the above embodiments may be, for example, a personal computer, a laptop computer, a vehicle-mounted human-computer interaction device, a cellular phone, a camera phone, a smart phone, or a personal digital assistant. , media player, navigation device, email device, game console, tablet, wearable device, or a combination of any of these devices.
- the functions are divided into various modules and described separately.
- the functions of each module can be implemented in the same or multiple software and/or hardware, or the modules that implement the same function can be implemented by a combination of multiple sub-modules or sub-units, etc. .
- the device embodiments described above are only illustrative.
- the division of the units is only a logical function division. In actual implementation, there may be other division methods.
- multiple units or components may be combined or integrated. to another system, or some features can be ignored, or not implemented.
- the coupling or direct coupling or communication connection between each other shown or discussed may be through some interfaces, and the indirect coupling or communication connection of the devices or units may be in electrical, mechanical or other forms.
- These computer program instructions may also be stored in a computer-readable memory that causes a computer or other programmable data processing apparatus to operate in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including the instruction means, the instructions
- the device implements the functions specified in a process or processes of the flowchart and/or a block or blocks of the block diagram.
- These computer program instructions may also be loaded onto a computer or other programmable data processing device, causing a series of operating steps to be performed on the computer or other programmable device to produce computer-implemented processing, thereby executing on the computer or other programmable device.
- Instructions provide steps for implementing the functions specified in a process or processes of a flowchart diagram and/or a block or blocks of a block diagram.
- a computing device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
- processors CPUs
- input/output interfaces network interfaces
- memory volatile and non-volatile memory
- Memory may include non-permanent storage in computer-readable media, random access memory (RAM) and/or non-volatile memory in the form of read-only memory (ROM) or flash memory (flash RAM). Memory is an example of computer-readable media.
- RAM random access memory
- ROM read-only memory
- flash RAM flash random access memory
- Computer-readable media includes both persistent and non-volatile, removable and non-removable media that can be implemented by any method or technology for storage of information.
- Information may be computer-readable instructions, data structures, modules of programs, or other data.
- Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), and read-only memory.
- PRAM phase change memory
- SRAM static random access memory
- DRAM dynamic random access memory
- RAM random access memory
- read-only memory read-only memory
- ROM read-only memory
- EEPROM electrically erasable programmable read-only memory
- flash memory or other memory technology
- compact disc read-only memory CD-ROM
- DVD digital versatile disc
- Magnetic tape magnetic tape storage, graphene storage or other magnetic storage devices or any other non-transmission medium can be used to store information that can be accessed by a computing device.
- computer-readable media does not include transitory media, such as modulated data signals and carrier waves.
- one or more embodiments of the present description may be provided as a method, system, or computer program product. Accordingly, one or more embodiments of the present description may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment that combines software and hardware aspects. Furthermore, one or more embodiments of the present description may employ a computer program implemented on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) having computer-usable program code embodied therein. Product form.
- computer-usable storage media including, but not limited to, disk storage, CD-ROM, optical storage, etc.
- program modules include routines, programs, objects, components, data structures, etc. that perform specific tasks or implement specific abstract data types.
- program modules may also be practiced in distributed computing environments where tasks are performed by remote processing devices connected through a communications network.
- program modules may be located in both local and remote computer storage media including storage devices.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Marketing (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- General Business, Economics & Management (AREA)
- Software Systems (AREA)
- Technology Law (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims (23)
- 一种数据处理方法,应用于部署有第一区块链节点的第一节点设备,第一区块链节点所属的区块链网络部署有链下计算合约;所述方法包括:监听所述链下计算合约生成的针对协作计算任务的任务事件;在确定第一区块链节点属于所述协作计算任务对应的数据提供方节点而不属于所述协作计算任务对应的计算提供方节点的情况下,调用第一节点设备部署的代理访问引擎执行所述协作计算任务,所述代理访问引擎用于:在执行所述协作计算任务的过程中,将从第一节点设备读取到的数据传输至所述计算提供方节点所处的第二节点设备上部署的链下计算引擎。
- 根据权利要求1所述的方法,所述链下计算合约维护有链下计算任务对应的任务完成状态,所述任务完成状态用于描述所述链下计算任务包含的各子任务的完成状态;在所述协作计算任务属于所述链下计算任务的子任务的情况下,所述监听所述链下计算合约生成的针对协作计算任务的任务事件,包括:监听所述链下计算合约在所述任务完成状态满足所述协作计算任务对应的执行条件的情况下生成的针对所述协作计算任务的所述任务事件。
- 根据权利要求2所述的方法,所述任务完成状态由所述链下计算合约响应于所述链下计算任务对应的交易触发更新,其中,所述链下计算任务对应的交易包括所述链下计算任务对应的任务创建交易,或者任一节点设备在对所述各子任务中任一子任务执行完毕的情况下发起的结果返回交易。
- 根据权利要求1所述的方法,所述调用第一节点设备部署的代理访问引擎执行所述协作计算任务,包括:调用第一节点设备预先部署的所述代理访问引擎执行所述协作计算任务;或者,在第一节点设备部署所述代理访问引擎,并调用所述代理访问引擎执行所述协作计算任务。
- 根据权利要求1所述的方法,所述代理访问引擎用于:响应于所述代理访问引擎被调用,将从第一节点设备读取到的所述任务事件所指示的数据传输至所述链下计算引擎;或者,从第一节点设备读取到所述任务事件所指示的预读取数据,响应于所述链下计算引擎发送的数据访问请求将所述预读取数据传输至所述链下计算引擎;或者,响应于所述链下计算引擎发送的所述数据访问请求,将从第一节点设备读取到的所述数据访问请求所指示的数据传输至所述链下计算引擎。
- 根据权利要求1所述的方法,还包括:在所述任务事件中记录的所述数据提供方节点的描述信息中包含第一区块链节点的标识信息的情况下,确定第一区块链节点属于所述数据提供方节点;在所述任务事件中记录的所述计算提供方节点的描述信息中不包含第一区块链节点的标识信息、或者第一节点设备上未部署有支持执行所述协作计算任务的链下计算引擎的情况下,确定第一区块链节点不属于所述计算提供方节点。
- 根据权利要求1所述的方法,还包括:在接收到其他节点设备发送的计算提供声明的情况下,将所述其他节点设备上部署的区块链节点归属于所述计算提供方节点,其中,所述计算提供声明由所述其他节点设 备在确定所述其他节点设备部署有支持执行所述协作计算任务的链下计算引擎的情况下广播至所述数据提供方节点所处的第一节点设备。
- 根据权利要求1所述的方法,所述代理访问引擎用于:通过所述链下计算合约维护的所述链下计算引擎对应的存证公钥对从第一节点设备读取到的所述数据进行加密得到加密数据,并将所述加密数据发送至所述链下计算引擎。
- 根据权利要求8所述的方法,所述链下计算合约维护的所述链下计算引擎对应的存证公钥由第二计算设备发起的密钥更新交易触发更新,所述密钥更新交易由第二计算设备在监听到所述链下计算合约生成的密钥更新事件的情况下发起,所述密钥更新交易携带有第二节点设备响应于所述密钥更新事件获取到的所述链下计算引擎对应的最新公钥。
- 根据权利要求9所述的方法,所述链下计算合约在部署成功的初始化阶段或响应于密钥重置交易的情况下用于触发生成所述密钥更新事件。
- 一种数据处理方法,应用于第二节点设备,第二节点设备部署有第二区块链节点,第二区块链节点所属的区块链网络部署有链下计算合约;所述方法包括:监听所述链下计算合约生成的针对协作计算任务的任务事件;在确定第二区块链节点属于所述协作计算任务的计算提供方节点的情况下,调用第二节点设备部署的链下计算引擎执行所述协作计算任务,所述链下计算引擎用于:在执行所述协作计算任务的过程中,获取所述协作计算任务的数据提供方节点所处的第一节点设备上部署的代理访问引擎从第一节点设备读取到的数据,第一节点设备上部署的第一区块链节点不属于所述计算提供方节点。
- 根据权利要求11所述的方法,所述任务事件中记录有所述数据提供方节点的描述信息。
- 根据权利要求11所述的方法,还包括:在所述任务事件中记录的所述计算提供方节点的描述信息中包含第二区块链节点的标识信息、或者第二节点设备部署有支持执行所述协作计算任务的链下计算引擎的情况下,确定第二区块链节点属于所述计算提供方节点。
- 根据权利要求11所述的方法,还包括:在确定第二节点设备部署有支持执行所述协作计算任务的链下计算引擎的情况下,将所述计算提供声明广播至所述数据提供方节点所处的第一节点设备,以使第一节点设备将第二区块链节点归属于所述计算提供方节点。
- 根据权利要求11所述的方法,还包括:在确定第二区块链节点同时属于所述计算提供方节点与所述数据提供方节点的情况下,调用所述链下计算引擎执行所述协作计算任务,其中,所述链下计算引擎用于:在执行所述协作计算任务的过程中,获取从第二节点设备读取到的本地数据以及所述代理访问引擎从第一节点设备读取到的数据,第一节点设备上部署的第一区块链节点不属于所述计算提供方节点。
- 根据权利要求11所述的方法,所述链下计算引擎用于:获取所述代理访问引擎发送的加密数据,所述加密数据由所述代理访问引擎通过所述链下计算合约维护的所述链下计算引擎对应的存证公钥对从第一节点设备读取到的所述数据进行加密得到。
- 根据权利要求16所述的方法,还包括:在监听到所述链下计算合约生成的密钥更新事件的情况下,获取所述链下计算引擎对应的最新公钥,通过第二区块链节点向所述链下计算合约发起携带有所述最新公钥的密钥更新交易,以将所述链下计算合约维护的所述链下计算引擎对应的存证公钥更新为所述最新公钥。
- 根据权利要求17所述的方法,所述链下计算合约在部署成功的初始化阶段或响应于密钥重置交易的情况下用于触发生成所述密钥更新事件。
- 根据权利要求18所述的方法,所述在监听到所述链下计算合约生成的密钥更新事件的情况下,获取所述链下计算引擎对应的最新公钥,包括:在监听到所述链下计算合约部署成功的初始化阶段生成的所述密钥更新事件的情况下,获取第二节点设备部署的所有链下计算引擎分别对应的所述最新公钥;或者,在监听到所述链下计算合约响应于所述密钥重置交易而生成的所述密钥更新事件且确定第一节点设备部署有所述密钥更新事件所指示的目标链下计算引擎的情况下,获取所述目标链下计算引擎对应的所述最新公钥。
- 一种数据处理装置,应用于部署有第一区块链节点的第一节点设备,第一区块链节点所属的区块链网络部署有链下计算合约;所述装置包括:第一事件监听单元,用于监听所述链下计算合约生成的针对协作计算任务的任务事件;数据提供单元,用于在确定第一区块链节点属于所述协作计算任务对应的数据提供方节点而不属于所述协作计算任务对应的计算提供方节点的情况下,调用第一节点设备部署的代理访问引擎执行所述协作计算任务,所述代理访问引擎用于:在执行所述协作计算任务的过程中,将从第一节点设备读取到的数据传输至所述计算提供方节点所处的第二节点设备上部署的链下计算引擎。
- 一种数据处理装置,应用于第二节点设备,第二节点设备部署有第二区块链节点,第二区块链节点所属的区块链网络部署有链下计算合约;所述装置包括:第二事件监听单元,用于监听所述链下计算合约生成的针对协作计算任务的任务事件;数据获取单元,用于在确定第二区块链节点属于所述协作计算任务的计算提供方节点的情况下,调用第二节点设备部署的链下计算引擎执行所述协作计算任务,所述链下计算引擎用于:在执行所述协作计算任务的过程中,获取所述协作计算任务的数据提供方节点所处的第一节点设备上部署的代理访问引擎从第一节点设备读取到的数据,第一节点设备上部署的第一区块链节点不属于所述计算提供方节点。
- 一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器通过运行所述可执行指令以实现如权利要求1-19中任一项所述的方法。
- 一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如权利要求1-19中任一项所述方法的步骤。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202210345176.5 | 2022-03-31 | ||
| CN202210345176.5A CN114726858B (zh) | 2022-03-31 | 2022-03-31 | 一种数据处理方法、装置、电子设备和存储介质 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2023185041A1 true WO2023185041A1 (zh) | 2023-10-05 |
Family
ID=82241510
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2022/135119 Ceased WO2023185041A1 (zh) | 2022-03-31 | 2022-11-29 | 一种数据处理方法、装置、电子设备和存储介质 |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN114726858B (zh) |
| WO (1) | WO2023185041A1 (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114726858B (zh) * | 2022-03-31 | 2024-07-09 | 蚂蚁区块链科技(上海)有限公司 | 一种数据处理方法、装置、电子设备和存储介质 |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110298190A (zh) * | 2019-04-19 | 2019-10-01 | 矩阵元技术(深圳)有限公司 | 去中心化多方安全数据处理方法、装置及存储介质 |
| CN111092914A (zh) * | 2020-03-18 | 2020-05-01 | 支付宝(杭州)信息技术有限公司 | 访问外部数据的方法及装置 |
| CN112351099A (zh) * | 2020-11-06 | 2021-02-09 | 北京金山云网络技术有限公司 | 数据访问方法、装置和服务器 |
| US20210367762A1 (en) * | 2020-05-19 | 2021-11-25 | Samsung Sds Co., Ltd. | Off-chain data sharing system and method thereof |
| CN114726858A (zh) * | 2022-03-31 | 2022-07-08 | 蚂蚁区块链科技(上海)有限公司 | 一种数据处理方法、装置、电子设备和存储介质 |
| CN114741736A (zh) * | 2022-03-31 | 2022-07-12 | 蚂蚁区块链科技(上海)有限公司 | 一种数据处理方法、装置、电子设备和存储介质 |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109388960A (zh) * | 2018-10-24 | 2019-02-26 | 全链通有限公司 | 基于区块链的信息共享及安全多方计算模型 |
| US11356424B2 (en) * | 2020-06-22 | 2022-06-07 | Paypal, Inc. | Database synchronization system in high security zones using blockchain |
| CN113067900B (zh) * | 2021-06-02 | 2021-09-24 | 支付宝(杭州)信息技术有限公司 | 智能合约的部署方法及装置 |
| CN114239035B (zh) * | 2021-12-23 | 2024-09-24 | 浙江省科技信息研究院 | 基于区块链的协作流程执行系统及其数据访问控制方法 |
-
2022
- 2022-03-31 CN CN202210345176.5A patent/CN114726858B/zh active Active
- 2022-11-29 WO PCT/CN2022/135119 patent/WO2023185041A1/zh not_active Ceased
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110298190A (zh) * | 2019-04-19 | 2019-10-01 | 矩阵元技术(深圳)有限公司 | 去中心化多方安全数据处理方法、装置及存储介质 |
| CN111092914A (zh) * | 2020-03-18 | 2020-05-01 | 支付宝(杭州)信息技术有限公司 | 访问外部数据的方法及装置 |
| US20210367762A1 (en) * | 2020-05-19 | 2021-11-25 | Samsung Sds Co., Ltd. | Off-chain data sharing system and method thereof |
| CN112351099A (zh) * | 2020-11-06 | 2021-02-09 | 北京金山云网络技术有限公司 | 数据访问方法、装置和服务器 |
| CN114726858A (zh) * | 2022-03-31 | 2022-07-08 | 蚂蚁区块链科技(上海)有限公司 | 一种数据处理方法、装置、电子设备和存储介质 |
| CN114741736A (zh) * | 2022-03-31 | 2022-07-12 | 蚂蚁区块链科技(上海)有限公司 | 一种数据处理方法、装置、电子设备和存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN114726858B (zh) | 2024-07-09 |
| CN114726858A (zh) | 2022-07-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR102242221B1 (ko) | 서비스 데이터 처리 방법 및 디바이스, 및 서비스 처리 방법 및 디바이스 | |
| US11201870B2 (en) | Using commit tokens to coordinate permissions submissions to address transaction conflict in blockchain systems | |
| WO2018137564A1 (zh) | 一种业务处理方法及装置 | |
| CN107944773A (zh) | 一种业务流程控制方法、装置及存储介质 | |
| CN114896639B (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
| CN111796864B (zh) | 一种数据校验的方法及装置 | |
| WO2020024650A1 (zh) | 数据处理方法和装置、客户端 | |
| WO2024066758A1 (zh) | 一种业务处理的方法、装置、存储介质以及电子设备 | |
| WO2023185044A1 (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
| WO2024092932A1 (zh) | 交易执行方法和区块链节点 | |
| WO2020024648A1 (zh) | 数据处理方法和装置、客户端、服务器 | |
| WO2024164742A1 (zh) | 一种云存储数据的加密和解密的方法、装置、介质及设备 | |
| CN114741736B (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
| CN114896635B (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
| WO2021239087A1 (zh) | 一种数据处理方法、装置、设备及介质 | |
| CN114896637A (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
| CN114726858B (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
| CN114692185A (zh) | 数据处理方法及装置 | |
| CN114896636B (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
| WO2024244342A1 (zh) | 区块链中的交易处理方法和区块链节点 | |
| CN111062814A (zh) | 一种基于区块链的资源转移方法、装置及系统 | |
| WO2025025436A1 (zh) | 基于区块链系统的数据管理方法和区块链节点 | |
| CN115760123A (zh) | 基于区块链的数据处理方法和区块链节点 | |
| CN114896638A (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
| CN110083680B (zh) | 一种分布式系统中上下文数据管理方法及装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22934859 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 22934859 Country of ref document: EP Kind code of ref document: A1 |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 22934859 Country of ref document: EP Kind code of ref document: A1 |
|
| 32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 14.03.2025) |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 22934859 Country of ref document: EP Kind code of ref document: A1 |