Hacker News new | past | comments | ask | show | jobs | submit login

Kademlia is still in widespread use today. For example Bittorrent uses it to resolve magnet links.



IPFS 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.


Ethereum also uses Kademlia for its DevP2P mechanism. We recently implemented this in Exthereum/Mana.


Quite 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.


Doesn't Kad require an initial bootstrap node? How do you find it?


Generally 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.


Yes but that doesn't require a central host. If your friend is connected to the network you can join it via them.


If I've just downloaded SomeCoolNewTool that's using the network, are there bootstrap hosts pre-loaded? Who's my "friend" in that case? Are there trust issues here?


In practice, SomeCoolNewTool will be bundled with some seed hosts.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: