docs: README

This commit is contained in:
decentral1se 2023-05-29 19:03:51 +02:00
commit db23fd1468
Signed by: decentral1se
GPG Key ID: 03789458B3D0C410
1 changed files with 45 additions and 0 deletions

45
README.md Normal file
View File

@ -0,0 +1,45 @@
# 🍐
> Experiments in libp2p connectivity
[`libp2p`](https://libp2p.io/) Go binaries for testing p2p connectivity in the
following scenarios:
* Public IPv4 to public IPv4.
* Public to private (behind NAT) and viceversa.
* Private to private (behind NAT, using relaying and holepunching).
* Use of the [Tor transport](https://github.com/berty/go-libp2p-tor-transport) (optional).
* Use of public IPFS relay & DHT (optonal).
## Context
I am exploring network architectures that resemble the
[Scuttleverse](https://www.scuttlebutt.nz/). Peers are typically already
offline friends and have some out-of-band method for sharing connection details
(e.g. a [Cabal](https://cabal.chat) chat).
To facilitate holepunching while avoiding public IPFS relays or DHT, I want to
use a self-hosted relay. No standard bootstrapping nodes should be required,
everything is "in house" (like a "pub" or room in SSB).
I make use of [Noise](https://docs.libp2p.io/concepts/secure-comm/noise/) for
encryption because we 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
want to support this as an optional approach. The important point is that this
will not be the default.
Local-first connections should also work reliably.
Since `libp2p` was built within the context of a global connectivity mindset, I
am exploring how local-first and "private" p2p connectivity works between a
small group of friends.
Following the inspiration of [`cwtch.im`](https://cwtch.im/), I want to make
use of overlay networks (Tor, I2P).
## Links
Big shout-out to the writers of this [wonderful
tutorial](https://curriculum.pl-launchpad.io/curriculum/libp2p/objectives/).