Open
Description
The Vision
Improve the robustness and fault-tolerance of the litep2p crate and bring the crate to a higher level of maturity.
The goal is to stabilize the litep2p and use it as the default backend of Substrate-based chains.
The Plan
To achieve this, we'll focus our efforts on:
- Feature Completeness
- Implement missing features (validate ping payloads, generate unique random ping payloads, ensure kad records TTL)
- Robustness
- Ensure core code logic does not panic upon unexpected/malicious user behaviors, panics, unwraps, undocumented expects, array indexing without length validation etc
- Fix incorrect functionality and divergences from the libp2p specification
- Repair bugs and limit the surface of race conditions
- Maintenance: keep the code simple
- Avoid code duplicates (transport layer)
- Coherent APIs and errors
- Adopt rust clippy and best practices
- Improve and add documentation
- Performance Improvements
- Avoid unnecessary clones
- Improve the query engine
- Analyze memory and CPU consumption
- Testing
- increase code coverage by unit-testing sensitive components (multiselect / noise, kad etc)
- improve our integration testing scenarios
- add fuzzing
- create a plan for continuous testing and triaging in our test stack and keep track of triage reports
### Feature Completeness
- [ ] https://github.com/paritytech/litep2p/issues/17
- [ ] https://github.com/paritytech/litep2p/issues/100
- [ ] https://github.com/paritytech/litep2p/issues/166
- [ ] https://github.com/paritytech/litep2p/issues/167
- [ ] https://github.com/paritytech/litep2p/issues/180
- [ ] https://github.com/paritytech/litep2p/issues/186
- [ ] https://github.com/paritytech/litep2p/issues/188
- [ ] https://github.com/paritytech/litep2p/issues/191
- [ ] https://github.com/paritytech/litep2p/pull/206
- [ ] https://github.com/paritytech/litep2p/pull/224
- [ ] https://github.com/paritytech/litep2p/pull/96
### Robustness
- [ ] https://github.com/paritytech/litep2p/issues/124
- [ ] https://github.com/paritytech/litep2p/pull/133
- [ ] https://github.com/paritytech/litep2p/issues/129
- [ ] https://github.com/paritytech/litep2p/pull/143
- [ ] https://github.com/paritytech/litep2p/issues/172
- [ ] https://github.com/paritytech/litep2p/pull/222
- [ ] https://github.com/paritytech/litep2p/pull/219
- [ ] https://github.com/paritytech/litep2p/pull/214
- [ ] https://github.com/paritytech/litep2p/pull/179
- [ ] https://github.com/paritytech/litep2p/pull/190
- [ ] https://github.com/paritytech/litep2p/pull/176
- [ ] https://github.com/paritytech/litep2p/pull/198
- [ ] https://github.com/paritytech/litep2p/pull/181
- [ ] https://github.com/paritytech/litep2p/pull/286
- [ ] https://github.com/paritytech/litep2p/pull/287
- [ ] https://github.com/paritytech/litep2p/pull/285
- [ ] https://github.com/paritytech/litep2p/pull/283
- [ ] https://github.com/paritytech/litep2p/pull/284
- [ ] https://github.com/paritytech/litep2p/pull/260
- [ ] https://github.com/paritytech/litep2p/pull/272
- [ ] https://github.com/paritytech/litep2p/pull/221
- [ ] https://github.com/paritytech/litep2p/pull/255
- [ ] https://github.com/paritytech/litep2p/pull/277
- [ ] https://github.com/paritytech/litep2p/pull/233
- [ ] https://github.com/paritytech/litep2p/pull/278
- [ ] https://github.com/paritytech/litep2p/pull/291
- [ ] https://github.com/paritytech/litep2p/pull/292
- [ ] https://github.com/paritytech/litep2p/pull/297
- [ ] https://github.com/paritytech/litep2p/pull/296
- [ ] https://github.com/paritytech/litep2p/pull/301
- [ ] https://github.com/paritytech/litep2p/pull/302
### Maintenance
- [ ] https://github.com/paritytech/litep2p/issues/70
- [ ] https://github.com/paritytech/litep2p/issues/73
- [ ] https://github.com/paritytech/litep2p/pull/262
- [ ] https://github.com/paritytech/litep2p/pull/254
### Testing
- [ ] https://github.com/paritytech/litep2p/issues/127
- [ ] https://github.com/paritytech/litep2p/issues/126
- [ ] https://github.com/paritytech/litep2p/issues/125
- [ ] https://github.com/paritytech/litep2p/pull/215
- [ ] https://github.com/paritytech/litep2p/pull/97
- [ ] https://github.com/paritytech/litep2p/pull/87
- [ ] https://github.com/paritytech/litep2p/pull/89
- [ ] https://github.com/paritytech/litep2p/pull/303
- [ ] https://github.com/paritytech/litep2p/pull/304
### Performance
- [ ] https://github.com/paritytech/litep2p/issues/123
- [ ] https://github.com/paritytech/litep2p/pull/217
- [ ] https://github.com/paritytech/litep2p/pull/220
### Outstanding
- [ ] https://github.com/paritytech/litep2p/issues/99
- [ ] https://github.com/paritytech/litep2p/issues/132
- [ ] https://github.com/paritytech/litep2p/issues/134
- [ ] https://github.com/paritytech/litep2p/issues/103
- [ ] https://github.com/paritytech/litep2p/issues/60
- [ ] https://github.com/paritytech/litep2p/issues/34
- [ ] https://github.com/paritytech/litep2p/issues/1
- [ ] https://github.com/paritytech/litep2p/issues/299
- [ ] https://github.com/paritytech/litep2p/issues/128
- [ ] https://github.com/paritytech/litep2p/issues/85
Metadata
Metadata
Assignees
Labels
No labels