IP Library Granted Patent US 10,540,209
Granted Patent B2
US 10,540,209 · App. 16/421,260 · Granted Jan 21, 2020

Event-driven blockchain workflow processing

Inventor: Jiyuan Wang (Hangzhou, CN)
Assignee: Alibaba Group Holding Limited
G06F9/5038G06F9/505H04L9/3236H04L9/3247H04L67/104H04L2209/38
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,540,209
App. No.
16/421,260
Granted
Jan 21, 2020
Kind
B2
Abstract

Implementations of the present specification include receiving, from a client in a blockchain network, a request to execute a workflow program, wherein the workflow program is stored in a blockchain maintained by the blockchain network; identifying an operation associated with the workflow program; assigning the identified operation to a subset of the plurality of nodes in the blockchain network, wherein each node is configured to execute the operation separately from the other nodes in the subset of nodes; identifying processing results for the executed operation associated with nodes in the subset of nodes, each processing result associated with a particular node from the subset and representing a result of the executed operation produced by the particular node; and determining a consensus result for the operation based on the identified processing results associated with a number of nodes greater than or equal to a consensus threshold matching the consensus result.

Claims (71)

1. A computer-implemented method for event-driven workflow processing in a blockchain network including a plurality of nodes, the method comprising:

receiving, at a workflow processing node in the blockchain network from a client, a request to execute a workflow program, wherein the workflow program is stored in a blockchain maintained by the blockchain network;

identifying, by the workflow processing node, an operation associated with the workflow program;

assigning, by the workflow processing node, the identified operation to a subset of the plurality of nodes in the blockchain network, wherein each node in the subset of nodes is configured to execute the operation separately from the other nodes in the subset of nodes;

identifying, by the workflow processing node, processing results for the executed operation associated with nodes in the subset of nodes, each processing result associated with a particular node in the subset of nodes and representing a result of the executed operation produced by the particular node; and

determining, by the workflow processing node, a consensus result for the operation based on the identified processing results associated with a number of nodes greater than or equal to a consensus threshold matching the consensus result.

2. The computer-implemented method of claim 1 , further comprising storing the consensus result for the operation in the blockchain.

3. The computer-implemented method of claim 1 , wherein the operation is a first operation, the method further comprising:

identifying, by the workflow processing node, a final operation associated with the workflow program, wherein the final operation is separate from the first operation and appears last in an ordered set of instructions associated with the workflow program;

assigning, by the workflow processing node, the final operation to the subset of nodes;

identifying, by the workflow processing node, processing results for the final operation associated with nodes in the subset of nodes;

determining a consensus result for the final operation based on the identified processing results; and

sending, by the workflow processing node, a response to the client indicating that the workflow program has completed execution successfully.

4. The computer-implemented method of claim 1 , wherein the operation is a first operation, the method further comprising:

identifying, by the workflow processing node, a second operation associated with the workflow program, wherein the second operation is separate from the first operation;

assigning, by the workflow processing node, the second operation to the subset of nodes;

identifying, by the workflow processing node, processing results for the second operation associated with nodes in the subset of nodes; and

determining that no consensus result exists for the second operation based on a number of nodes less than the consensus threshold being associated a same processing result.

5. The computer-implemented method of claim 4 , further comprising sending, by the workflow processing node, a response to the client indicating that execution of the workflow program was not successful.

6. The computer-implemented method of claim 1 , wherein each identified processing result is digitally signed by the associated node.

7. The computer-implemented method of claim 1 , wherein the workflow program includes executable byte code configured to be executed by the plurality of nodes.

8. The computer-implemented method of claim 1 , wherein assigning the identified operation to the subset of nodes includes executing, by the workflow processing node, a remote procedure call associated with the operation on each of the subset of nodes.

9. The computer-implemented method of claim 1 , wherein the blockchain is an Ethereum blockchain and the workflow program is a smart contract program.

10. The computer-implemented method of claim 1 , wherein each of the nodes in the blockchain network is associated one of a plurality of entities participating in the blockchain network.

11. The computer-implemented method of claim 10 , wherein the subset of nodes includes at least one node associated with each of the plurality of entities participating in the blockchain network.

12. A non-transitory computer-readable storage medium storing one or more instructions executable by a computer system to perform processing comprising:

receiving, at a workflow processing node in a blockchain network from a client, a request to execute a workflow program, wherein the workflow program is stored in a blockchain maintained by the blockchain network;

identifying, by the workflow processing node, an operation associated with the workflow program;

assigning, by the workflow processing node, the identified operation to a subset of a plurality of nodes in the blockchain network, wherein each node in the subset of nodes is configured to execute the operation separately from the other nodes in the subset of nodes;

identifying, by the workflow processing node, processing results for the executed operation associated with nodes in the subset of nodes, each processing result associated with a particular node in the subset of nodes and representing a result of the executed operation produced by the particular node; and

determining, by the workflow processing node, a consensus result for the operation based on the identified processing results associated with a number of nodes greater than or equal to a consensus threshold matching the consensus result.

13. The non-transitory computer-readable storage medium of claim 12 , further comprising storing the consensus result for the operation in the blockchain.

14. The non-transitory computer-readable storage medium of claim 12 , wherein the operation is a first operation, and the processing further comprises:

identifying, by the workflow processing node, a final operation associated with the workflow program, wherein the final operation is separate from the first operation and appears last in an ordered set of instructions associated with the workflow program;

assigning, by the workflow processing node, the final operation to the subset of nodes;

identifying, by the workflow processing node, processing results for the final operation associated with nodes in the subset of nodes;

determining a consensus result for the final operation based on the identified processing results; and

sending, by the workflow processing node, a response to the client indicating that the workflow program has completed execution successfully.

15. The non-transitory computer-readable storage medium of claim 12 , wherein the operation is a first operation, and the processing further comprises:

identifying, by the workflow processing node, a second operation associated with the workflow program, wherein the second operation is separate from the first operation;

assigning, by the workflow processing node, the second operation to the subset of nodes;

identifying, by the workflow processing node, processing results for the second operation associated with nodes in the subset of nodes; and

determining that no consensus result exists for the second operation based on a number of nodes less than the consensus threshold being associated a same processing result.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the processing further comprises sending, by the workflow processing node, a response to the client indicating that execution of the workflow program was not successful.

17. The non-transitory computer-readable storage medium of claim 12 , wherein each identified processing result is digitally signed by the associated node.

18. The non-transitory computer-readable storage medium of claim 12 , wherein the workflow program includes executable byte code configured to be executed by the plurality of nodes.

19. The non-transitory computer-readable storage medium of claim 12 , wherein assigning the identified operation to the subset of nodes includes executing, by the workflow processing node, a remote procedure call associated with the operation on each of the subset of nodes.

20. A system, comprising:

one or more computers; and

one or more computer memory devices interoperably coupled with the one or more computers and having tangible, non-transitory, machine-readable media storing one or more instructions that, when executed by the one or more computers, perform processing comprising:

receiving, at a workflow processing node in a blockchain network from a client, a request to execute a workflow program, wherein the workflow program is stored in a blockchain maintained by the blockchain network;

identifying, by the workflow processing node, an operation associated with the workflow program;

assigning, by the workflow processing node, the identified operation to a subset of a plurality of nodes in the blockchain network, wherein each node in the subset of nodes is configured to execute the operation separately from the other nodes in the subset of nodes;

identifying, by the workflow processing node, processing results for the executed operation associated with nodes in the subset of nodes, each processing result associated with a particular node in the subset of nodes and representing a result of the executed operation produced by the particular node; and

determining, by the workflow processing node, a consensus result for the operation based on the identified processing results associated with a number of nodes greater than or equal to a consensus threshold matching the consensus result.

21. The system of claim 20 , the processing further comprising storing the consensus result for the operation in the blockchain.

22. The system of claim 20 , wherein the operation is a first operation, and the processing further comprises:

identifying, by the workflow processing node, a final operation associated with the workflow program, wherein the final operation is separate from the first operation and appears last in an ordered set of instructions associated with the workflow program;

assigning, by the workflow processing node, the final operation to the subset of nodes;

identifying, by the workflow processing node, processing results for the final operation associated with nodes in the subset of nodes;

determining a consensus result for the final operation based on the identified processing results; and

sending, by the workflow processing node, a response to the client indicating that the workflow program has completed execution successfully.

23. The system of claim 20 , wherein the operation is a first operation, and the processing further comprises:

identifying, by the workflow processing node, a second operation associated with the workflow program, wherein the second operation is separate from the first operation;

assigning, by the workflow processing node, the second operation to the subset of nodes;

identifying, by the workflow processing node, processing results for the second operation associated with nodes in the subset of nodes; and

determining that no consensus result exists for the second operation based on a number of nodes less than the consensus threshold being associated a same processing result.

24. The system of claim 23 , wherein the processing further comprises sending, by the workflow processing node, a response to the client indicating that execution of the workflow program was not successful.

25. The system of claim 20 , wherein each identified processing result is digitally signed by the associated node.

26. The system of claim 20 , wherein the workflow program includes executable byte code configured to be executed by the plurality of nodes.

27. The system of claim 20 , wherein assigning the identified operation to the subset of nodes includes executing, by the workflow processing node, a remote procedure call associated with the operation on each of the subset of nodes.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 10, 2020
From: ADVANTAGEOUS NEW TECHNOLOGIES CO., LTD.
To: ADVANCED NEW TECHNOLOGIES CO., LTD.
Reel/Frame 053754/0625 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2020
From: ALIBABA GROUP HOLDING LIMITED
To: ADVANTAGEOUS NEW TECHNOLOGIES CO., LTD.
Reel/Frame 053743/0464 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 10, 2019
From: WANG, JIYUAN
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 050674/0802 →
Continuity (2)
Continuation PCTCN2018120795 · Dec 13, 2018
Related Publication 20190286490A1 · Sep 19, 2019