IP Library Granted Patent US 11,620,152
Granted Patent B2
US 11,620,152 · App. 16/516,716 · Granted Apr 4, 2023

Blockchain sharding with parallel threads

Inventor: Rundong Huang (Saratoga, CA)
Assignee: EZBLOCK LTD.
G06F9/466G06F16/2379
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,620,152
App. No.
16/516,716
Granted
Apr 4, 2023
Kind
B2
Abstract

A method comprises receiving from a distributed app (dApp), a shard creation transaction in a blockchain block of a blockchain. he block may comprise multiple shards. Next, the method comprises collecting, with a join block in the blockchain, transactions. The join block is adjacent to the blockchain block. Next, the method includes encapsulating the shard creation transaction; applying the block including the shard creation transaction to yield a new shard in the block; and broadcasting the block. The join block executes cross shard transactions without impacting the parallel execution of intra-shard transactions with computer threads by separating inter-shard and intra-shard transactions into different blocks. Without join block, parallel executing intra shard threads in computer threads may need to lock the database states since inter-shard transactions may also write to it from different computer thread. Not sure if we need to make this clear in our claims regarding join block.

Claims (61)

1. A computer-implemented method, comprising:

receiving from a decentralized app (dApp), a shard creation transaction in a blockchain block of a blockchain, the blockchain block comprising multiple pre-existing shards, the shard creation transaction creating shard processing resources;

collecting, with a join block in the blockchain, transactions, the join block as a special blockchain block at a fixed interval, the join block executing cross shard transactions without impacting parallel execution of intra-shard transactions with computer threads by separating inter-shard and intra-shard transactions into different blocks;

ceasing, by all nodes, processing any intra-shard transactions;

encapsulating the shard creation transaction;

applying the join block including the shard creation transaction to yield a new shard in the blockchain block; and

broadcasting the blockchain block having the new shard.

2. The method of claim 1 , further comprising

receiving a transaction from the dApp for the new shard;

executing, with all full nodes and dApp nodes, the dApp with the transaction as input in computer threads assigned for the new shard;

encapsulating the executed dApp transaction into the new shard in the blockchain block;

verifying the executed dApp transaction; and

applying the blockchain block after verification.

3. The method of claim 2 , further comprising

receiving a connect transaction from the dApp, the transaction comprising a destination and source; and

connecting a destination and source shard.

4. The method of claim 1 , wherein the multiple shards have their own permissions.

5. The method of claim 1 , wherein only transactions created by the dApp for a specific shard are added to the specific shard.

6. The method of claim 5 , further comprising executing the transactions for different shards in parallel by different software threads.

7. The method of claim 6 , further comprising configuring the software threads to share a same memory space of a node software process.

8. The method of claim 7 , further comprising configuring the software threads to run in different hardware threads and CPU cores of a computer server.

9. The method of claim 8 , further comprising joining together software threads to execute a join block transaction.

10. The method of claim 1 , further comprising ceasing shard execution when a join block is executing.

11. The method of claim 1 , further comprising communicating between sibling chains via the join block.

12. The method of claim 1 , further comprising sharding a block on the same node via multithreading.

13. The method of claim 1 , further comprising forking an existing chain and preserving a state of the existing chain in a new chain.

14. A system, comprising:

one or more processors of a machine;

a non-transitory memory storing instruction that, when executed by the one or more processors, cause the machine to perform operations comprising:

receiving from a distributed app (dApp), a shard creation transaction in a blockchain block of a blockchain, the blockchain block comprising multiple pre-existing shards, the shard creation transaction creating shard processing resources;

collecting, with a join block in the blockchain, transactions, the join block adjacent the blockchain block, the join block executing cross shard transactions without impacting parallel execution of intra-shard transactions with computer threads by separating inter-shard and intra-shard transactions into different blocks;

ceasing, by all nodes, processing any intra-shard transactions;

encapsulating the shard creation transaction;

applying the join block including the shard creation transaction to yield a new shard in the blockchain block; and

broadcasting the blockchain block having the new block.

15. A non-transitory machine-readable medium embodying instructions that, when executed by a machine, cause the machine to perform operations comprising:

receiving from a distributed app (dApp), a shard creation transaction in a blockchain block of a blockchain, the blockchain block comprising multiple pre-existing shards, the shard creation transaction creating shard processing resources;

collecting, with a join block in the blockchain, transactions, the join block adjacent the blockchain block, the join block executing cross shard transactions without impacting parallel execution of intra-shard transactions with computer threads by separating inter-shard and intra-shard transactions into different blocks;

ceasing, by all nodes, processing any intra-shard transactions;

encapsulating the shard creation transaction;

applying the join block including the shard creation transaction to yield a new shard in the blockchain block; and

broadcasting the blockchain block having the new block.

16. The medium of claim 15 , wherein the operations further comprise

receiving a transaction from the dApp for the new shard;

executing, with all full nodes and dApp nodes, the dApp with the transaction as input;

encapsulating the executed dApp transaction into the new shard in the blockchain block;

verifying the executed dApp transaction; and

applying the blockchain block after verification.

17. The medium of claim 15 , wherein the operations further comprise

receiving a connect transaction from the dApp, the transaction comprising a destination and source; and

connecting a destination and source shard.

18. The medium of claim 15 , wherein the multiple shards have their own permissions.

19. The medium of claim 15 , wherein only transactions created by the dApp for a specific shard are added to the specific shard.

20. The medium of claim 19 , wherein the operations further comprise executing the transactions for different shards in parallel by different software threads.

21. The medium of claim 20 , wherein the operations further comprise configuring the software threads to share a same memory space of a node software process.

22. The medium of claim 21 , wherein the operations further comprise configuring the software threads to run in different hardware threads and CPU cores of a computer server.

23. The medium of claim 22 , wherein the operations further comprise joining together software threads to execute a join block transaction.

24. The medium of claim 15 , wherein the operations further comprise ceasing shard execution when a join block is executing.

25. The medium of claim 15 , wherein the operations further comprise communicating between sibling chains via the join block.

26. The medium of claim 15 , wherein the operations further comprise sharding a block on the same node via multithreading.

27. The medium of claim 15 , wherein the operations further comprise forking an existing chain and preserving a state of the existing chain in a new chain.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 19, 2019
From: HUANG, RUNDONG
To: EZBLOCK LTD.
Reel/Frame 049802/0642 →
Continuity (2)
Provisional Application 62701414 · Jul 20, 2018
Related Publication 20200026548A1 · Jan 23, 2020