Skip to content

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:

Loading