Skip to content

network package design

Key Points

A general package that is responsible for all things network such as the peer to peer network. It’s generalized in this case in case we need to support more network types in the future. For example, in addition to the p2p network, we might need to have a parallel ipv4 or ipv6 networking for machines with public ipv4 or a reachable ipv6 address. More networking methods such as webrtc can be considered in this case.

The network package will be a general interface on top of the sub packages that implement the actual network. Common interfaces such as messaging, ping and clock synchronization can be done in the top level network package whereas the actual implementations will be done by the sub packages.

  1. contains all network related code such as p2p communication, ip over libp2p and other networks that might be needed in the future;
  2. Network will be a general encapsulating package that contains a sub-pkg libp2p

Work Package Deliverables

No Deliverable Proof
1 private network design, specification and test descriptions
2 kubernetes integration design, specification and test descriptioins
3 research and decide on gossip vs dht solutions design, specification and tests
4 move relevant functionalities from other packages moved, tests written / specified
5 tests included into test management pipeline failing/not implemented tests visible in test management portal

Timeline

Additional notes and context

  1. check possibly related bacalhau packages for ideas pkg/libp2p, pkg/nats
Edited by Santosh Kumar