The goal of benchmarking is to find limits to the following measures:
- Throughput: How many transactions per second (tps) can we process on a sidechain for different blocktimes (300ms, 6s)?
- Number of concurrent connected clients
- Size of the state (and #Accounts)
In order to reproduce benchmarks, please follow our benchmarking instructions
for sdk-v0.10.0-polkadot-v0.9.27,
running on Intel(R) Xeon(R) E-2176G CPU @ 3.70GHz with 32 GB RAM
- With a 300ms blocktime we can process up to 1900 tps and at least 38 tps at a state size of 4000 accounts
- With a 6s blocktime we can process up to 900 tps and at least 10 tps at a state size of 100’000 accounts (around 20MB)
- typical throughput is 500 tps
- At least 250 clients can connect to one validateer concurrently and send at least on tx per block
With identified state handling improvements, we should be able to improve state size degratation by 6x:
- With a 300ms blocktime 38 tps at a state size of 24'000 accounts
- down to 300ms block time
- 500 tps typical per sidechain, degrading above 5’000 accounts state size
- 250 wss concurrent client connections per validateer
- overall sharded throughput of integritee network currently extrapolates to 50k tps (improvements of polkadot protocol and our sidechain finality can potentially push this towards an estimated 1-4M tps)