Skip to content

[litep2p-milestone]: Improve litep2p robustness #140

@lexnv

Description

@lexnv

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

Robustness

Maintenance

Testing

Performance

Outstanding

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions