# US 12,008,394 B2 · Blockchain sharding with parallel threads

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,008,394 B2
- Document ID: US12008394B2
- Status: Granted
- Kind: B2
- Application number: 18/172,157
- Filed: 2023-02-21
- Published: 2023-06-29
- Granted: 2024-06-11
- Earliest claimed: 2018-07-20
- Assignees: Ezblock Ltd.
- Applicants: Ezblock Ltd.
- Inventors: Rundong Huang
- Web page: https://patentgrep.com/patent/US12008394B2

## CPC

- G06F 9/466: {Transaction processing}
- G06F 16/2379: {Updates performed during online database operations; commit processing}
- G06F 16/9024: {Graphs; Linked lists (G06F16/9027 takes precedence)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method comprises receiving from a distributed app (dApp), a shard creation transaction in a blockchain block of a blockchain, the block comprising multiple shards; collecting, with a join block in the blockchain, transactions, the join block adjacent the blockchain block; 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.

## Claims

### Claim 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 pre-existing shard(s), 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 an interval, the join block executing cross shard transactions without impacting parallel execution of intra-shard transactions with separate processing resources 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.

### Claim 2 (depends on 1)

The method of claim 1, further comprising
receiving a transaction from the dApp for the new shard;
executing, the transaction as input in processing resources 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.

### Claim 3 (depends on 2)

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.

### Claim 4 (depends on 1)

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

### Claim 5 (depends on 1)

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

### Claim 6 (depends on 5)

The method of claim 5, further comprising executing the transactions for different shards in parallel by different processing resources.

### Claim 7 (depends on 6)

The method of claim 6, further comprising configuring different processing resources to share a same memory space of node processing resources.

### Claim 8 (depends on 7)

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

### Claim 9 (depends on 8)

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

### Claim 10 (depends on 1)

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

### Claim 11 (depends on 1)

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

### Claim 12 (depends on 1)

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

### Claim 13 (depends on 1)

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

### Claim 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 pre-existing shard(s), 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 separate processing resources 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.

### Claim 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 pre-existing shard(s), 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 separate processing resources 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.

### Claim 16 (depends on 15)

The medium of claim 15, wherein the operations further comprise
receiving a transaction from the dApp for the new shard;
executing 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.

### Claim 17 (depends on 15)

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.

### Claim 18 (depends on 15)

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

### Claim 19 (depends on 15)

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

### Claim 20 (depends on 19)

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

### Claim 21 (depends on 20)

The medium of claim 20, wherein the operations further comprise configuring the different processing resources to share a same memory space of a node processing resources.

### Claim 22 (depends on 21)

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

### Claim 23 (depends on 22)

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

### Claim 24 (depends on 15)

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

### Claim 25 (depends on 15)

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

### Claim 26 (depends on 15)

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

### Claim 27 (depends on 15)

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.
