3 ms·
> Is there really a way to bootstrap p2p without reliance on a list of central servers? Yes. A list of nodes. The key part is that for p2p bootstrap you don't
by the8472 6y ago
> Is there really a way to bootstrap p2p without reliance on a list of central servers?
Yes. A list of nodes. The key part is that for p2p bootstrap you don't need to learn about any special node in the network, just any node will do. A set of initial, long-lived contacts could be embedded in a link when sharing content , it can be loaded from a file, it can be obtained via configurable DNS lookups. If your network were so niche that you couldn't even afford a server and all you have is an anonymous internet forum then you could even post a pastebin with some IPs and ports every now and then and prompt users to paste that.
And once you have bootstrapped yourself you can keep a local cache of long-lived nodes which you can also provide to others.
It seems philosophically hard, but practically speaking you only need to get in once and there are so many ways to do that. A well-known, server-like points of contact are mostly used because they are the most convenient and reliable option, but they're not really the only option.
- _nalply 6y agoSo for automatic bootstrap use a hard-coded or generated list of long-lived nodes or a list downloaded from different p2p systems. The hard-coded list could be updated with a new version. Additionally allow manual input of addresses.
- the8472 6y agoOr you defer bootstrap until you have some channel on which you can piggyback. For example if you download some file then you need to exchange some content-identifying token anyway, a magnet link in bittorrent. That link can also contain a bunch of nodes the source peer knows, preferably the longest-lived ones it knows. Depending on where it's used you could also turn this into a QR-code, NFC peer or whatever. Practically speaking an implementation will already contain a bootstrap list or might download it from somewhere else on first start. But that's just for convenience.