libp2p / libp2p/test-plans

Future-proof Benchmarking ⏱

Open
#63 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

starmaps
Dominant language
Python
Stars
65
Forks
82
PR merge metrics
No merged PRs in 30d

Description

eta: 2023Q2

- [ ] perf protocol
- [x] spec https://github.com/libp2p/specs/pull/478
- [x] https://github.com/libp2p/rust-libp2p/pull/3508 (rust-libp2p)
- [x] go-libp2p https://github.com/libp2p/test-plans/pull/184
- [x] https://github.com/libp2p/js-libp2p/pull/1604 (js-libp2p)
- [x] https://github.com/libp2p/test-plans/issues/261
- [ ] #204
- [ ] Create performance tooling to run perf protocol implementation on cloud instances
- [x] First iteration https://github.com/libp2p/test-plans/pull/184
- [x] Only use a single seconds measurement. Don't split in connection establishment, upload and download. These are difficult to differentiate. https://github.com/libp2p/test-plans/pull/207
- [x] Add js-libp2p https://github.com/libp2p/js-libp2p/pull/1604 https://github.com/libp2p/test-plans/pull/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)
- [x] Automation see https://github.com/libp2p/test-plans/issues/183
- [x] Visualize data emitted by above performance tooling #156
- [x] ideally mirror advanced filtering in the URL for better sharing
- [ ] https://github.com/libp2p/test-plans/issues/27
- [x] https://github.com/libp2p/test-plans/issues/65
- [ ] https://github.com/libp2p/blog/issues/74
- [ ] Diverse benchmarks e.g. multiple streams or multiple connections
- [ ] Write documentation

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the perf protocol specification and the linked test-plans performance-tooling pull requests and issues. Separate the remaining checklist items into a scoped change; done should include the selected benchmark capability, its execution and visualization path, and updated documentation.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, javascript, python, rust
Domain
cloud, networking, performance, testing
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.