5 ms·
Kademlia is still in widespread use today. For example Bittorrent uses it to resolve magnet links.
by gst 8y ago
Kademlia is still in widespread use today. For example Bittorrent uses it to resolve magnet links.
- sliken 8y agoQuite handy for any program to find a copy of itself running anywhere on the internet. It's the best solution I've found for peer discovery that doesn't depend on a central host. There's a few implementations for most platforms. At least Java, Javascript, C++, C, and Go anyways.
- voltagex_ 8y agoDoesn't Kad require an initial bootstrap node? How do you find it?
- adrusi 8y agoYes but that doesn't require a central host. If your friend is connected to the network you can join it via them.
- sliken 8y agoGenerally if you downloaded it from somewhere/someone you can get a working node from them. Often binaries have a few boostrap hosts hardwired, but then save state once launched. Typically a host tracks several hosts per bucket, and a bucket for each log(n) of the population. So with a million hosts your client will track log(million)*4 or similar. Those are usually written to disk when you close, so you can try those when you launch next. Clients often broadcast on the local lan to find peers that way. Also other methods are common, for instance bittorrent clients often use the PEX standard to exchange peers, those peers are often on the same DHT, although I think there might be 2 distinct DHT networks among the popular bittorrent clients. Worst case you could start randomly walking the IPv4 space, given that there's millions of active clients it wouldn't be long before you found one. Likely only take you a few 1000 random IPs before you found someone on the DHT.
- geoah 8y agoIPFS is using kademlia, and iirc zeronet are still working on it. I don't think there currently are many alternatives actually being used. Haven't seen many projects using chord or pastry these days.
- ghayes 8y agoEthereum also uses Kademlia for its DevP2P mechanism. We recently implemented this in Exthereum/Mana.