Question

I want to use a distributed hash table in an application but I don't want to have a central server as entry point. Is there a way to implement this?

Was it helpful?

Solution

Yes, there are quite a few ways:

  • Use a public (typically HTTP- or DNS-based) service to store IP addresses. It can be replicated using Fast-flux DNS and/or IP anycast.
  • Preconfigure some addresses, either in the binary or a configuration file. Create a list of peers with the highest uptime, and release that with the next version of your software.
  • Store reliable peers on the disk to try them the next time your program is started.
  • Use IP multicast to find other peers in your local network.
  • Randomly scan IPs. It may take a long time to find a remote peer, but it's the only fully decentralized solution that works in the Internet. This method is only feasible for IPv4.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top