Validator/Collator separation
This feature is testnet only right now! Participate on your own risk.
The key feature of TON blockchain is the ability to distribute transaction processing over network nodes, and switching from "everybody checks all transactions" to "every transaction is checked by secure validator subset". This ability to infinitely horizontally scale throughput over shards when one workchain splits to required number of shardchains distinguishes TON from other L1 networks.
However it is necessary to regularly rotate validator subsets which process one or another shard to prevent collusion. At the same time to process transactions validators obviously should know state of the shard prior transaction. The simplest approach is to require all validators to know state of all shards.
This approach works well while number of TON users is within range of a few millions and TPS (transactions per second) is under hundred. However, in the future, when TON will process many thousands transactions per second and server hundred millions or billions of people, no single server would be able to keep actual state of whole network. Fortunately, TON was designed with such loads in mind and supports sharding both throughput and state update.
This is achieved through separation of two roles:
- Collator - actor which watch for only part of the network, know actual state and collate (generate) next blocks
- Validator - actor which gets new blocks from Collator, checks it's validity and signs it effectively guaranteeing correctness at the risk of losing the stake.
At the same time architecture of TON allows Validator effectively validate new blocks without actually storing state of blockchain, by checking specially crafted proofs.
That way, when throughput of TON will be to heavy to be processed by single machine, network will consist of subnetwork of collators each of which will process only part of the chains it is capable to process and subnetwork of validators which will form many secure sets for committing new transactions.
Currently, TON testnet is used for testing this Validator/Collator separation, where some validators works as usual, and some validators do not collate blocks for themselves and receive them from collators.
Join with "lite validator"
New node software is available in accelerator branch.
Collator
To create new collator you need to setup TON node; you can use flag -M
to force node not to keep eye on shardchains it doesn't process.
In validator-engine-console
create new key for collator, set adnl category 0
to this key and add collation entity through command:
addcollator <adnl-id> <chain-id> <shard-id>
For example:
newkey
addadnl <adnl-id> 0
addcollator <adnl-id> 0 -9223372036854775808