IP Library › Granted Patent US 11,538,003
Granted Patent B2
US 11,538,003 · App. 16/988,039 · Granted Dec 27, 2022

Sharded permissioned distributed ledgers

Inventors: Mark S. Moir (Wellington, NZ); Harold Carr (Salt Lake City, UT); Maurice P. Herlihy (Brookline, MA); Isaac Sheff (Ithaca, NY)
Assignee: Oracle International Corporation
G06Q20/0655G06F16/27G06Q20/3825G06Q20/3827H04L9/3239H04L9/3247G06Q2220/00H04L9/50H04L2209/56
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 11,538,003
App. No.
16/988,039
Granted
Dec 27, 2022
Kind
B2
Abstract

A sharded, permissioned, distributed ledger may reduce the amount of work and communication required by each participant, thus possibly avoiding scalability bottlenecks that may be inherent in previous distributed ledger implementations and possibly enabling the use of additional resources to translate to increased throughput. A sharded, permissioned, distributed ledger may be made up of multiple shards, each of which may also be a distributed ledger and which may operate in parallel. Participation within a sharded, permissioned, distributed ledger may be allowed only with permission of an authority. A sharded, permissioned, distributed ledger may include a plurality of nodes, each including a dispatcher configured to receive transaction requests from clients and to forward received requests to verifiers configured to append transactions to individual ones of the shards.

Claims (57)

1. A computer implemented method, comprising:

assigning one or more processes as active processes on a given ledger shard of a plurality of ledger shards storing information regarding one or more transactions in a distributed ledger maintained on a plurality of nodes in a distributed ledger system;

wherein processes that are active on the given ledger shard participate in consensus to append information regarding new transactions to the ledger shard;

wherein said assigning comprises:

determining, according to a source of randomness shared by the plurality of nodes, that a subset of a plurality of processes on a given node of the plurality of nodes should be active on a given one of the plurality of ledger shards; and

making, in response to said determining, the subset of processes active on the given ledger shard.

2. The computer implemented method of claim 1 , wherein said determining comprises: determining that a number of transactions appended to the given ledger shard is above a threshold amount.

3. The computer implemented method of claim 1 , wherein said determining comprises: determining that one or more processes active on the given ledger shard are unresponsive.

4. The computer implemented method of claim 1 , wherein said determining comprises: determining that one or more processes active on the given ledger shard are suspected of diverging from a policy of the distributed ledger system.

5. The computer implemented method of claim 1 , further comprising deactivating, prior to making the subset of processes active on the given ledger shard, one or more processes active on the given ledger shard, wherein after deactivation the one or more processes are not active on the given ledger shard.

6. The computer implemented method of claim 5 , further comprising informing, by one of the processes be deactivated, a given one of the subset of processes that the given process should become active on the given ledger shard.

7. The computer implemented method of claim 1 , wherein making the subset of processes active on the given ledger shard comprises:

randomly selecting a process that is active on the given ledger shard;

making the selected process not active on the given ledger shard;

randomly selecting another of the plurality of ledger shards on which the selected process is not active; and

making the selected process active on the other ledger shard.

8. The computer implemented method of claim 1 , wherein making the subset of processes active on the given ledger shard comprises:

randomly selecting two of the plurality of ledger shards;

randomly selecting two processes, wherein a first process of the selected processes is active on a first one of the selected ledger shards while a second of the selected processes is active on a second one of the selected ledger shards;

making the first process active on the second ledger shard; and

making the second process active on the first ledger shard.

9. The computer implemented method of claim 1 , further comprising performing said determining at initialization of the distributed ledger system, wherein the subset of processes active on a given ledger shard remains static throughout execution of the distributed ledger system.

10. A sharded, permissioned, distributed ledger system, comprising:

one or more computing devices respectively comprising at least one processor and a memory storing program instructions that when executed on the at least one processor cause the processor to implement a respective node of the sharded, permissioned, distributed ledger system configured to:

assign one or more processes as active processes on a given ledger shard of a plurality of ledger shards storing information regarding one or more transactions in a distributed ledger maintained on a plurality of nodes in a distributed ledger system;

wherein processes that are active on the given ledger shard participate in consensus to append information regarding new transactions to the ledger shard;

wherein to assign the one or more processes as active processes, the one or more computing devices are configured to:

determine, according to a source of randomness shared by the plurality of nodes, that a subset of a plurality of processes on a given node of the plurality of nodes should be active on the given ledger shard; and

make the subset of processes active on the given ledger shard.

11. The sharded, permissioned, distributed ledger system of claim 10 , wherein to make said determination the one or more computing devices are configured to determine that a number of transactions appended to the given ledger shard is above a threshold amount.

12. The sharded, permissioned, distributed ledger system of claim 10 , wherein to make said determination the one or more computing devices are configured to determine that one or more processes active on the given ledger shard are unresponsive.

13. The sharded, permissioned, distributed ledger system of claim 10 , wherein to make said determination the one or more computing devices are configured to determine that one or more processes active on the given ledger shard are suspected of diverging from a policy of the distributed ledger system.

14. The sharded, permissioned, distributed ledger system of claim 10 , further comprising:

wherein the one or more computing devices are further configured to deactivate one or more processes currently active on the given ledger shard, prior to making the subset of processes active on the given ledger shard; and

wherein after deactivation the one or more processes are not active on the given ledger shard.

15. The sharded, permissioned, distributed ledger system of claim 10 , wherein to activate the subset of processes on the given ledger shard, the one or more computing devices are configured to:

randomly select a process that is currently active on the given ledger shard;

make the selected process inactive on the given ledger shard;

randomly select another of the plurality of ledger shards on which the selected process is inactive; and

make the selected process active on the other ledger shard.

16. The sharded, permissioned, distributed ledger system of claim 10 , wherein to activate the subset of processes on the given ledger shard, the one or more computing devices are configured to:

randomly select two of the plurality of ledger shards;

randomly select two processes, wherein a first process of the selected processes is active on a first one of the selected ledger shards while a second of the selected processes is active on a second one of the selected ledger shards;

make the first process active on the second ledger shard; and

make the second process active on the first ledger shard.

17. The sharded, permissioned, distributed ledger system of claim 10 , wherein the one or more computing devices are configured to perform said determination at initialization of the distributed ledger system, wherein the subset of processes active on a given ledger shard remains static throughout execution of the distributed ledger system.

18. One or more non-transitory, computer-readable storage media storing program instructions that when executed on or across one or more computers cause the one or more computers to perform:

assigning one or more processes as active processes on a given ledger shard of a plurality of ledger shards storing information regarding one or more transactions in a distributed ledger maintained on a plurality of nodes in a distributed ledger system;

wherein processes that are active on a given ledger shard participate in consensus to append information regarding new transactions to the ledger shard;

wherein said assigning comprises:

determining, according to a source of randomness shared by the plurality of nodes, that a subset of a plurality of processes on a given node of the plurality of nodes should be active on a given one of the plurality of ledger shards, wherein processes that are active on a given ledger shard participate in consensus to append information regarding new transactions to the ledger shard; and

making the subset of processes active on the given ledger shard in response to said determining.

19. The one or more non-transitory, computer-readable storage media of claim 18 , wherein said determining comprises one or more of:

determining that a number of transactions appended to the given ledger shard is above a threshold amount;

determining that one or more processes active on the given ledger shard are unresponsive; or

determining that one or more processes active on the given ledger shard are suspected of diverging from a policy of the distributed ledger system.

20. The one or more non-transitory, computer-readable storage media of claim 18 , wherein said determining comprises randomly selecting one or more processes to be made active on the given ledger shard.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 6, 2021
From: MOIR, MARK S.; CARR, HAROLD; HERLIHY, MAURICE P.; SHEFF, ISAAC
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 055834/0899 →
Continuity (2)
Continuation 15605689 · May 25, 2017
Related Publication 20200410461A1 · Dec 31, 2020
Cited By (2)
US 12,288,196 US 12,316,761