Can someone please explain Crust vs. CJDNS?

Hi, Crust developer here :slight_smile:

tl;dr Crust is not a replacement for CJDNS.

Crust has a very clear responsibility - reliable peer-to-peer connections. It’s a generic networking library that essentially tries to connect two nodes/peers/computers directly without an intermediate server. And that’s it, Crust doesn’t know how it will be used. For example one could build another Skype using Crust, or peer-to-peer file sharing app , or Crust could be used in gaming to make peers connect together directly, etc.
Crust solves some generic peer-to-peer problems and It has some clever tricks to do that:

  1. it uses IGD protocol to forward ports in your router so that computers behind NAT/router/firewall would be accessible from the Internet
  2. if IGD is not available, it tries to do hole-punching techniques. Basically these are exploits to forward a port in your router NAT table to expose youself to the Internet via some port.
  3. Crust messages are encrypted, hence secure communication
  4. etc.

BUT, Crust doesn’t have any sense of routing or DHT, etc.
Although, I believe that potentially one could build smth like CJDNS when combined Crust and Routing libraries.

Does that make more sense? :slight_smile:

16 Likes