IP Library Granted Patent US 10,855,749
Granted Patent B2
US 10,855,749 · App. 16/026,876 · Granted Dec 1, 2020

Methods, devices and systems for a distributed coordination engine-based exchange that implements a blockchain distributed ledger

Inventors: Ramakrishna Thurimella (San Francisco, CA); Yeturu Aahlad (Foster City, CA)
Assignee: WANdisco Inc.
H04L67/10G06Q20/389G06Q40/04H04L49/90
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,855,749
App. No.
16/026,876
Granted
Dec 1, 2020
Kind
B2
Abstract

A distributed system that implements an online exchange may comprise a plurality of server nodes, each of which being configured to receive exchange transaction proposals from customers of the online exchange over a computer network and each being configured to store a copy of a blockchain distributed ledger of completed exchange transactions. A distributed coordination engine may be coupled, over the computer network, to the plurality of server nodes and may receive a plurality of exchange transaction proposals from the plurality of server nodes. The distributed coordination engine may be being further configured to achieve consensus on the plurality of exchange transaction proposals and to generate, in response, an ordering of agreed-upon exchange transaction proposals that includes the plurality of exchange transaction proposals on which consensus has been reached. This ordering of agreed-upon exchange transaction proposals is identically provided to each of the server nodes and specifies the order in which the server nodes are to execute exchange transactions and to update their copy of the distributed ledger. The ordering of agreed-upon exchange transaction proposals may optionally be re-ordered and identically provided to each server node to conform to the local orderings at the exchange transaction proposal's node server of origin.

Claims (36)

1. A distributed system that implements an online exchange and implements a blockchain distributed ledger, comprising:

a plurality of server nodes, each server node of the plurality of server nodes being configured to receive exchange transaction proposals from customers of the online exchange over a computer network and each being configured to store a copy of a distributed ledger of completed exchange transactions; and

a distributed coordination engine, the distributed coordination engine being coupled, over the computer network, to the plurality of server nodes and configured to receive a plurality of exchange transaction proposals from the plurality of server nodes, the distributed coordination engine being further configured to achieve consensus on the plurality of exchange transaction proposals from the plurality of server nodes and to generate, in response, an identical ordering of agreed-upon exchange transaction proposals that includes the plurality of exchange transaction proposals on which consensus has been reached, the ordering of agreed-upon exchange transaction proposals specifying an order in which the plurality of server nodes are to execute exchange transactions in the online exchange and to update their copy of the distributed ledger, the distributed coordination engine being further configured to selectively re-order the ordering of agreed-upon exchange transaction proposals to respect an order in which the exchange transaction proposals were issued in each of the plurality of server nodes and to provide the re-ordered agreed-upon exchange transaction proposals identically to each of the plurality of server nodes for execution.

2. The distributed system of claim 1 , wherein each of the exchange transaction proposals received by the plurality of server nodes is digitally signed by a customer of the online exchange.

3. The distributed system of claim 1 , wherein each of the exchange transaction proposals received by the plurality of server nodes is encrypted.

4. The distributed system of claim 1 , wherein the distributed coordination engine comprises a plurality of distributed coordination engine instances that communicate amongst themselves over secure communication channels.

5. The distributed system of claim 1 , wherein the distributed coordination engine is further configured to assign a unique local sequence number (LSN) to each of the exchange transaction proposals received from each of the plurality of server nodes.

6. The distributed system of claim 5 , wherein the LSN is configured as two tuples N j , N i , where N identifies a unique server node of the plurality of server nodes, N i and N j each identify unique exchange transaction proposals and where N j arrives right after N i .

7. The distributed system of claim 1 , wherein the distributed coordination engine is further configured to re-order the ordering of agreed-upon exchange transaction proposals by buffering the agreed-upon exchange transaction proposals in respective min heaps, one for each of the plurality of server nodes, and by iteratively identifying respective last processed agreed-upon proposal numbers as the respective roots of the respective min heaps.

8. A computer-implemented method of implementing an online exchange in a distributed system and of implementing a blockchain distributed ledger, the method comprising:

receiving exchange transaction proposals from customers of the online exchange over a computer network in a plurality of server nodes, each server node of the plurality of server nodes being configured to store a copy of a distributed ledger of completed exchange transactions;

coupling, over the computer network, a distributed coordination engine to the plurality of server nodes;

receiving, in the distributed coordination engine, a plurality of exchange transaction proposals from the plurality of server nodes;

reaching, in the distributed coordination engine, consensus on the plurality of exchange transaction proposals from the plurality of server nodes;

generating, in response, an ordering of agreed-upon exchange transaction proposals that includes the plurality of exchange transaction proposals on which consensus has been reached, the ordering of agreed-upon exchange transaction proposals specifying an order in which the plurality of server nodes are to execute exchange transactions in the online exchange and to update their copy of the distributed ledger;

re-ordering the ordering of agreed-upon exchange transaction proposals to respect an order in which the exchange transaction proposals were issued in each of the plurality of server nodes; and

providing the re-ordered agreed-upon exchange transaction proposals identically to each of the plurality of server nodes for execution.

9. The computer-implemented method of claim 8 , wherein each of the exchange transaction proposals received by the plurality of server nodes is digitally signed by a customer of the online exchange.

10. The computer-implemented method of claim 8 , wherein each of the exchange transaction proposals received by the plurality of server nodes is encrypted.

11. The computer-implemented method of claim 8 , wherein the distributed coordination engine comprises a plurality of distributed coordination engine instances that communicate amongst themselves over secure communication channels.

12. The computer-implemented method of claim 8 , further comprising:

assigning a unique local sequence number (LSN) to each of the exchange transaction proposals received from each of the plurality of server nodes.

13. The computer-implemented method of claim 12 , wherein the LSN is configured as two tuples N j , N i , where N identifies a unique server node of the plurality of server nodes, N i and N j each identify unique exchange transaction proposals and where N j arrives right after N i .

14. The computer-implemented method of claim 8 , wherein the re-ordering the ordering of agreed-upon exchange transaction proposals to respect an order of the exchange transaction proposals in the plurality of locally ordered exchange transaction proposals comprises:

buffering the agreed-upon exchange transaction proposals in respective min heaps, one for each of the plurality of server nodes, and

iteratively identifying respective last processed agreed-upon proposal numbers as the respective roots of the respective min heaps.

15. A distributed system that implements an online exchange and implements a blockchain distributed ledger, comprising:

a plurality of server nodes, each server node of the plurality of server nodes being configured to receive exchange transaction proposals from customers of the online exchange over a computer network and each being configured to store a copy of a distributed ledger of completed exchange transactions; and

a distributed coordination engine, the distributed coordination engine being coupled, over the computer network, to the plurality of server nodes and configured to receive a plurality of exchange transaction proposals from the plurality of server nodes, the distributed coordination engine being further configured to achieve consensus on the plurality of exchange transaction proposals from the plurality of server nodes and to generate, in response, an identical ordering of agreed-upon exchange transaction proposals that includes the plurality of exchange transaction proposals on which consensus has been reached, the ordering of agreed-upon exchange transaction proposals specifying an order in which the plurality of server nodes are to execute exchange transactions in the online exchange and to update their copy of the distributed ledger, the distributed coordination engine being further configured to re-order the ordering of agreed-upon exchange transaction proposals to respect an order of the exchange transaction proposals in each of the plurality of exchange transaction proposals by buffering the agreed-upon exchange transaction proposals in respective min heaps, one for each of the plurality of server nodes, and by iteratively identifying respective last processed agreed-upon proposal numbers as the respective roots of the respective min heaps.

16. A computer-implemented method of implementing an online exchange in a distributed system and of implementing a blockchain distributed ledger, the method comprising:

receiving exchange transaction proposals from customers of the online exchange over a computer network in a plurality of server nodes, each server node of the plurality of server nodes being configured to store a copy of a distributed ledger of completed exchange transactions;

coupling, over the computer network, a distributed coordination engine to the plurality of server nodes;

receiving, in the distributed coordination engine, a plurality of exchange transaction proposals from the plurality of server nodes;

reaching, in the distributed coordination engine, consensus on the plurality of exchange transaction proposals from the plurality of server nodes;

generating, in response, an ordering of agreed-upon exchange transaction proposals that includes the plurality of exchange transaction proposals on which consensus has been reached, the ordering of agreed-upon exchange transaction proposals specifying an order in which the plurality of server nodes are to execute exchange transactions in the online exchange and to update their copy of the distributed ledger; and

re-ordering the ordering of agreed-upon exchange transaction proposals to respect an order of the exchange transaction proposals in the plurality of locally ordered exchange transaction proposals, the re-ordering comprising buffering the agreed-upon exchange transaction proposals in respective min heaps, one for each of the plurality of server nodes, and iteratively identifying respective last processed agreed-upon proposal numbers as the respective roots of the respective min heaps.

Assignments (2)
CHANGE OF NAME Recorded Oct 10, 2023
From: WANDISCO, INC.
To: CIRATA, INC.
Reel/Frame 065239/0381 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 5, 2018
From: THURIMELLA, RAMAKRISHNA; AAHLAD, YETURU
To: WANDISCO, INC.
Reel/Frame 046271/0231 →
Continuity (1)
Related Publication 20200014745A1 · Jan 9, 2020