Latest Tupelo Performance Data
We take performance seriously.
The best way we can live that is by transparently sharing what we have measured, how the test network has performed and what changes are driving performance improvements.
We are currently testing on 21 and 100 signing node clusters. We have been expanding the number of AWS regions to better model latency. The number of regions and instance type are noted with the results below.
We will continue to share these numbers as they become available.
September 27th - Latest update
Many updates have been made since the last performance update but most recently Tupelo has been updated to go 1.13.
Signers | Throughput | Finality (mean) | Finality (P95) |
---|---|---|---|
21 | 200 tx/sec | 144 ms | 188 ms |
21 | 250 tx/sec | 311 ms | 496 ms |
AWS Regions: 8
AWS Instance Types: c5.xlarge (4cpu 8gb ram)
Tupelo Version: 0.5.0
June 6th
Improvements largely driven by the change of core Tupelo types to protocol buffer messages and the use of those across all platform-specific development kits.
Signers | Throughput | Finality (mean) | Finality (P95) |
---|---|---|---|
21 | 200 tx/sec | 160 ms | 246 ms |
100 | 200 tx/sec | 297 ms | 469 ms |
AWS Regions: 8
AWS Instance Types: c5.xlarge (4cpu 8gb ram)
Tupelo Version: 0.4.0
May 17th
Substantial performance improvements upgrading libp2p pubsub, fixing a problem with rapid subscriptions, and improving our benchmarking methodology.
Signers | Throughput | Finality (mean) | Finality (P95) |
---|---|---|---|
21 | 200 tx/sec | 197 ms | 290 ms |
100 | 200 tx/sec | 423 ms | 664 ms |
AWS Regions: 8
AWS Instance Types: c5.xlarge (4cpu 8gb ram)
Tupelo Version: 0.2.3
April 19th
Substantial performance improvements through consensus streamlining including optimizing subscriptions and improved bootstrapping.
Signers | Throughput | Finality (mean) | Finality (P95) |
---|---|---|---|
21 | 200 tx/sec | 839 ms | 1381 ms |
100 | 200 tx/sec | 831 ms | 1739 ms |
AWS Regions: 8
AWS Instance Types: c5.xlarge (4cpu 8gb ram)
January 6th
The workflow was refactored to use actor model ProtoActor. More of the state was moved to be held in-memory.
Signers | Throughput | Finality (mean) | Finality (P95) |
---|---|---|---|
21 | 200 tx/sec | 1814 ms | 2367 ms |
100 | 200 tx/sec | 4612 ms | 6104 ms |
AWS Regions: 8
AWS Instance Types: c5.xlarge (4cpu 8gb ram)
December 11th Performance Test
Message ingress was moved to an in memory queue (from disk). Signature checking was parallelized.
Signers | Throughput | Finality (mean) | Finality (P95) |
---|---|---|---|
21 | 50 tx/sec | 1218 ms | 1791 ms |
100 | 25 tx/sec | 3662 ms | 4525 ms |
AWS Regions: 8
AWS Instance Types: c5.xlarge (4cpu 8gb ram)
December 4th Performance Test
Transaction/state syncing between nodes was changed to an IBF (Invertible Bloom Filter).
Signers | Throughput | Finality (mean) | Finality (P95) |
---|---|---|---|
21 | 50 tx/sec | 1147 ms | 2320 ms |
100 | 25 tx/sec | 12143 ms | 19434 ms |
AWS Regions: 3
AWS Instance Types: c5.xlarge (4cpu 8gb ram)