-
Notifications
You must be signed in to change notification settings - Fork 73
Open
Labels
Description
eta: 2023Q2
- perf protocol
- spec Introduce
perfspec specs#478 - feat(perf): implement libp2p perf protocol rust-libp2p#3508 (rust-libp2p)
- go-libp2p feat(perf): add (automation, provision, build, run) tooling #184
- feat(@libp2p/protocol-perf): Implement perf protocol js-libp2p#1604 (js-libp2p)
- perf: throughput test (TCP, QUIC, libp2p, but not iperf) never exits slow start #261
- Add vanilla Go http in order to measure overhead of TLS #204
- spec Introduce
- Create performance tooling to run perf protocol implementation on cloud instances
- First iteration feat(perf): add (automation, provision, build, run) tooling #184
- Only use a single seconds measurement. Don't split in connection establishment, upload and download. These are difficult to differentiate. refactor(perf): expose single latency measurement #207
- Add js-libp2p feat(@libp2p/protocol-perf): Implement perf protocol js-libp2p#1604 feat: add js-libp2p perf tests #244
- Add back zig-libp2p
- Run iperf on both UDP and TCP
- Requests per second (for some request/response protocol)
- Handshakes per second (useful to identify overhead in connection initialization).
- Support testing other security protocols, i.e. Noise
- Resource utilization benchmark?
- Don't blindly trust server and clients ssh key (mitm attack)
- Automation see Automate performance benchmarking #183
- Visualize data emitted by above performance tooling Create a performance dashboard #156
- ideally mirror advanced filtering in the URL for better sharing
- Create test to show libp2p's performance compared to http #27
- Benchmark js-libp2p transfer performance #65
- blog about performance benchmarking in libp2p blog#74
- Diverse benchmarks e.g. multiple streams or multiple connections
- Write documentation