diff --git a/README.md b/README.md index 5ec4b7b..c093b18 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,8 @@ > Experiments in libp2p connectivity -Custom [`libp2p`](https://libp2p.io/)-based Go binaries for testing p2p connectivity in the following scenarios: +Custom [`libp2p`](https://libp2p.io/)-based Go binaries for testing p2p +connectivity in the following scenarios: * Public ipv4 to public ipv4 * Public to private (behind NAT) and viceversa @@ -11,29 +12,37 @@ Custom [`libp2p`](https://libp2p.io/)-based Go binaries for testing p2p connecti ## Assumptions -I am exploring the possibility of creating a network which offers some of the -nice things that [SSB](https://www.scuttlebutt.nz/) does. Peers are friends and -have some offline connection or out-of-band ways of connecting to each other -first. +I am exploring the possibility of creating network conditions which resemble +those of the [scuttleverse](https://www.scuttlebutt.nz/). Peers are offline +friends and have some out-of-band method of connecting to each other first. So, +for example, I don't want to make use of a public DHT by default. -So, I never want to make use of a public DHT (privacy issues). Therefore, I -assume that end-users will share their connection details out-of-band (e.g. -Signal chat). +To facilitate holepunching and avoid public IPFS relays or DHT, I want to use a +private self-hosted relay. No standard bootstrapping nodes should be required, +everything is "in house" (like a "pub" or "room" in SSB). -To facilitate holepunching and avoid public relays, I use a private self-hosted -relay. No bootstrapping nodes are required, everything is "in house" (like a -"pub" or "room" in SSB). - -Furthermore, I make explicit use of +I make explicit use of [Noise](https://docs.libp2p.io/concepts/secure-comm/noise/) for encryption because I control the peer implementation on both sides (guaranteed to be available). +Sometimes, it might be handy to make use of public IPFS relays or DHT, so I +will leave this as an optional approach. The important point is that this will +not be the default. + +Local-first connections should also work. + +Since `libp2p` was built within the context of a global connectivity mindset, I +am exploring whether the feature set works for peer connectivity between a +small group of friends. + ## Goals -* Simple and well documented example programs -* Show possiblities for using overlay networks from the start +Simple and well documented example programs. + +Show possiblities for using overlay networks from the start. ## Links -Big shout-out to the writers of this [wonderful tutorial](https://curriculum.pl-launchpad.io/curriculum/libp2p/objectives/). +Big shout-out to the writers of this [wonderful +tutorial](https://curriculum.pl-launchpad.io/curriculum/libp2p/objectives/).