Skip to content

[P2P] RainTree Redundancy Layer Implementation #85

@Olshansk

Description

@Olshansk

Objective

Implement and test RainTree's redundancy layer on top of the Pre2P module.

Origin Document

The Pocket Network V1 P2P Specification, supported by this explanation of RainTree is partially implemented in the pre2p/raintree branch atop the Pre2P module at the time of creating this issue, but without the redundancy and cleanup layers.

This implementation has already been started and is available in the pre2p/raintree_redundancy branch at the time of writing this thread in #80.

The initial implementation of the redundancy layer code is available in the following commit: 756b0a0.

Goals

Deliverables

  • Fully implement the redundancy layers of RainTree including as described in the docs referenced by the Origin Document section:
    • 1. ACK/Adjust/Resend
    • 2. Redundancy layer
    • 3. Daisy Chain clean-up
  • Update raintree_utils_test.go to add support for
    • Dead / faulty nodes
    • Partial visibility of the network
  • Update the README.md (to be added in the pre2p/raintree soon) describing the added / modified code layout of Pre2P module with the new modifications

Testing Methodology

  1. Use make test_pre2p to run existing tests
  2. Update the test suite in raintree_utils_test.go and add raintree_redundancy_layer_test.go int he same package with new tests
  3. [Optional] Use LocalNet as described in docs/development/README.md
  4. [Optional] Using Telemetry (if ready) to validate the results from (2)

Non-goals

  • Scaling LocalNet to many nodes
  • Resolving tech debt or optimizing existing code
  • Replacing P2P with Pre2P

Creator: @Olshansk
Co-Owners: @andrewnguyen22

Metadata

Metadata

Labels

coreCore infrastructure - protocol relatedp2pP2P specific changes

Type

No type

Projects

Status

Rescope

Relationships

None yet

Development

No branches or pull requests

Issue actions