To become an unlimited decentralized network, Archethic Blockchain is using a feature call
Sharding uses to split processing and storage power to ensure a scalable system.
Thanks to the
Transaction Chain paradigm, transactions can be divided into chain, to ensure a concurrent processing
as the opposite of traditional blockchains.
Other new blockchain networks start to use
Sharding but sometimes not in a complete form:
- either storage
- either validation
Archethic Blockchain supports a complete sharding scheme for validation and for storage.
Each transaction is validated by a new set of rotating nodes.
This ensures the distribution of validation and the processing, to achieve a linear scalability and a high TPS.
Because transaction are using the UTXO model, there is no reality out of the transaction, so the network is not subject to issue like:
- cross shards synchronization
- state channels communication
To get the state of a transaction, only the transaction and the transaction inputs will be taken into consideration
After the validation of the transaction, validation nodes will be in charge to send the transaction to several pools of nodes:
- Transaction Chain Storage Pool: All the transaction associated with the same chain must be replicated on the storage nodes associated with the new transaction's address.
- I/O Storage Pool: Each validated transaction is replicated on the storage nodes associated with the addresses of the transaction input/outputs:
- Transaction movements addresses storage pools
- Node movements public key storage pools
- Recipients addresses storage pools
- Beacon Storage Pool: Each transaction address must be replicated on the storage nodes of the associated address subset See BeaconChain
For each transaction, the Transaction Chain Storage Pool will change, assuring a completed distribution of nodes and the data replication. Nevertheless, nothing prevents the storage nodes to overlap within the chain.
Like the validation nodes election, the storage nodes election is subject to a rotating election. In other terms, each transaction will have its own shard and storage nodes.
The storage node election is based on:
- the address of the transaction
- the storage nonce: a stable secret known by the network
- the list of nodes
This permits any node to perform this computation autonomously to reproduce this list and to request a transaction from the closest node.
To ensure the best availability of the data, this list is refined by some criteria, such as:
- P2P availability
- Geographical distribution