Improve litep2p robustness
Due by December 25, 2024
0% complete
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, gene…
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
Corresponding tracking issue for more details: