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.
- contains all network related code such as p2p communication, ip over libp2p and other networks that might be needed in the future;
- 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
- check possibly related bacalhau packages for ideas
pkg/libp2p
,pkg/nats
Edited by Santosh Kumar