2f8dfd1
# cjdns
2f8dfd1
2f8dfd1
[Upstream](README.md)
2f8dfd1
2f8dfd1
#### *Networking Reinvented*
2f8dfd1
2f8dfd1
Cjdns implements an encrypted IPv6 network using public-key cryptography for
2f8dfd1
address allocation and a distributed hash table for routing. This provides
2f8dfd1
near-zero-configuration networking, and prevents many of the security and
2f8dfd1
scalability issues that plague existing networks.
2f8dfd1
2f8dfd1
## Startup
2f8dfd1
2f8dfd1
The key part of cjdns is the cjdroute background daemon.  To start cjdroute:
2f8dfd1
2f8dfd1
    systemctl start cjdns
2f8dfd1
2f8dfd1
This will generate `/etc/cjdroute.conf` pre-populated with random keys and
2f8dfd1
passwords.  At first startup, cjdroute looks for neighboring cjdns peers
2f8dfd1
on all active network interfaces using a layer 2 (e.g. ethernet) protocol.
2f8dfd1
This is exactly what you want if you are on a wifi mesh.  If you only have a
2f8dfd1
conventional "clearnet" ISP, see the [upstream](README.md) README for
2f8dfd1
instructions on adding peers using the UDP protocol.  (Search for "Find a
2f8dfd1
friend".)
2f8dfd1
2f8dfd1
After adding peers to `/etc/cjdroute.conf`, restart cjdroute with:
2f8dfd1
2f8dfd1
    systemctl restart cjdns
2f8dfd1
2f8dfd1
To have cjdroute start whenever you boot, use
2f8dfd1
2f8dfd1
    systemctl enable cjdns
2f8dfd1
2f8dfd1
If you are on a laptop and suspend or hibernate it, cjdroute will take a few
2f8dfd1
minutes to make coffee and figure out what just happened when it wakes up.  You
2f8dfd1
can speed this up dramatically with:
2f8dfd1
2f8dfd1
    systemctl enable cjdns-resume
2f8dfd1
2f8dfd1
The resume service restarts cjdns when the system wakes up from sleep.