diff --git a/nodes-connectivity/README.md b/nodes-connectivity/README.md new file mode 100644 index 0000000..2904154 --- /dev/null +++ b/nodes-connectivity/README.md @@ -0,0 +1,112 @@ +# `Plan:` Nodes Connectivity (Transports, Hole Punching, Relay) + +![](https://img.shields.io/badge/status-wip-orange.svg?style=flat-square) + +Ensuring that a node can always connect to the rest of the network, if not completely isolated. + +## What is being optimized (min/max, reach) + +- (Reach) The number of nodes that are able to dial to any other node (100%) + +## Plan Parameters + +- **Network Parameters** + - `Region` - Region or Regions where the test should be run at (default to single region) + - Ran with with an arbitraty amount of nodes (from 10 to 1000000) - N + - Nodes being beyind a NAT/Firewall - F (F is a % of N) + - Nodes running the Image with IPFS on a Browser - B (B is a % of N) + - Nodes running the Image with go-ipfs using only TCP - T (T is a % of N) + - Nodes running the Image with go-ipfs using only QUIC - Q (Q is a % of N) + - Nodes running the Image with go-ipfs using only WebSockets - W (W is a % of N) + - Nodes running the Image with go-ipfs using only WebRTC - C (C is a % of N) +- **Image Parameters** + - Image A - Base `go-ipfs` + - `Transport` The only transport to be used + - Image B - Base `js-ipfs` running in a Browser + - `Browser` The Browser in which js-ipfs will be running from + +## Tests + +### `Test:` TCP hole punching + +- **Test Parameters** + - n/a +- **Narrative** + - **Warm up** + - Create the Bootstrapper nodes that are connected among themselves and support every transport + - **Act I** + - b + - **Act II** + - c + - **Act III** + - d + +## `Test:` uTP hole punching + +- **Test Parameters** + - n/a +- **Narrative** + - **Warm up** + - Create the Bootstrapper nodes that are connected among themselves and support every transport + - **Act I** + - b + - **Act II** + - c + - **Act III** + - d + +### `Test:` QUIC hole punching + +- **Test Parameters** + - n/a +- **Narrative** + - **Warm up** + - Create the Bootstrapper nodes that are connected among themselves and support every transport + - **Act I** + - b + - **Act II** + - c + - **Act III** + - d + +## `Test:` WebRTC hole punching + +- **Test Parameters** + - n/a +- **Narrative** + - **Warm up** + - Create the Bootstrapper nodes that are connected among themselves and support every transport + - **Act I** + - b + - **Act II** + - c + - **Act III** + - d + +## `Test:` Circuit Relay (between all transports combinations) + +- **Test Parameters** + - n/a +- **Narrative** + - **Warm up** + - Create the Bootstrapper nodes that are connected among themselves and support every transport + - **Act I** + - b + - **Act II** + - c + - **Act III** + - d + +## `Test:` go-ipfs to js-ipfs to browser Interop (Transports & Relay) + +- **Test Parameters** + - n/a +- **Narrative** + - **Warm up** + - Create the Bootstrapper nodes that are connected among themselves and support every transport + - **Act I** + - b + - **Act II** + - c + - **Act III** + - d