Overview
CJDNS is an encrypted IPv6 network that uses public-key cryptography for address allocation and a distributed hash table (DHT) for routing. It provides end-to-end encryption and protection from traffic analysis while maintaining the speed of direct connections.CJDNS support was added to Bitcoin Core in version 23.0. It provides a complementary privacy option alongside Tor and I2P.
What is CJDNS?
CJDNS operates like a distributed, shared VPN:- Encrypted routing: All traffic is end-to-end encrypted
- Public-key addresses: IPv6 addresses derived from public keys
- DHT routing: Decentralized routing via distributed hash table
- fc00::/8 range: Uses reserved IPv6 address space
- Multiple entry points: Connect through any peer
- Reach any participant: Direct connectivity to all network members
How CJDNS Differs from Other Networks
| Feature | CJDNS | Tor | I2P |
|---|---|---|---|
| Speed | Fast (direct routing) | Medium | Slow |
| Encryption | End-to-end | Layered (onion) | Garlic routing |
| Anonymity | Source visible | Source hidden | Source visible |
| Centralization | Fully distributed | Directory authorities | Fully distributed |
| Traffic analysis | Protected | Protected | Protected |
| Filtering resistance | High | High | High |
Installation
Install CJDNS
Find a Peer
You need to connect to at least one CJDNS peer. Use the Hyperboria peer finder:The script will show available peers with ping results.
Launch CJDNS
Bitcoin Core Configuration
Once CJDNS is running, enabling Bitcoin Core support is simple:fc00::/8addresses are CJDNS network addresses- Not RFC4193 IPv6 local network addresses
- Should be treated as reachable Internet addresses
Why -cjdnsreachable is Required
Thefc00::/8 range is normally reserved for IPv6 local networks (RFC4193). The -cjdnsreachable flag instructs Bitcoin Core to:
- Treat incoming
fc00::/8connections as CJDNS (not local IPv6) - Gossip your
fc00::/8address to peers if you have one - Perform proper address management for CJDNS peers
Configuration Options
Basic Configuration
Example Configurations
CJDNS Only:bitcoin.conf
bitcoin.conf
bitcoin.conf
bitcoin.conf
Monitoring and Verification
Check Your CJDNS Address
fc12:3456:789a:bcde:f012:3456:789a:bcde
View CJDNS Peers
Verify CJDNS Connectivity
Network Characteristics
Performance
CJDNS offers near-native performance:- Speed: Comparable to direct Internet connections
- Latency: Low overhead from encryption
- Throughput: Not significantly limited by network
- Scalability: DHT routing scales well
Privacy Properties
What CJDNS provides:- End-to-end encryption
- Traffic analysis protection
- Censorship resistance
- Network filtering resistance
- Sender anonymity (intermediate routers see source)
- Receiver anonymity (intermediate routers see destination)
- Hiding communication patterns
Use Cases
Recommended Scenarios
- Censorship circumvention: Access Bitcoin network despite filtering
- Fast privacy option: Encrypted connections with minimal overhead
- Multi-network redundancy: Fallback if other networks fail
- Bridge operations: Connect privacy and clearnet networks
- Initial sync: Faster than Tor/I2P for blockchain download
When to Combine Networks
Network Combinations:
- CJDNS + Tor: Speed + Anonymity
- CJDNS + I2P: Redundancy between fast and slow networks
- CJDNS + Clearnet: Bridge node with encryption option
- All privacy nets: Maximum redundancy and reach
Advanced Configuration
Multi-Network Privacy Node
bitcoin.conf
CJDNS-Only Node
bitcoin.conf
CJDNS + Clearnet Bridge
bitcoin.conf
Troubleshooting
CJDNS Not Running
No CJDNS Peers Found
Permission Issues
If CJDNS fails to start:TUN Interface Issues
Security Considerations
Best Practices:
- Keep CJDNS updated: Regular security updates
- Monitor peer connections: Use
peerStatsregularly - Firewall rules: Ensure CJDNS ports are properly configured
- Backup config: Save
cjdroute.confsecurely - Peer selection: Connect to trusted, reliable peers
Network Exposure Considerations
Performance Tuning
CJDNS performance is generally good by default, but you can optimize:Router Configuration
Incjdroute.conf:
Bitcoin Core Settings
bitcoin.conf
Resources and Documentation
CJDNS Documentation
Bitcoin Core Integration
Comparison with Other Privacy Networks
When to Choose CJDNS
Choose CJDNS if you need:- Fast encrypted connections
- Censorship resistance
- Low-latency operations
- Mesh network architecture
- Strong sender anonymity
- Hidden services
- Widely deployed network
- Fully decentralized architecture
- Long-lived connections
- Complementary to Tor
See Also
- P2P Network - General network configuration
- Tor Support - Tor privacy network
- I2P Support - I2P privacy network
- ZMQ Notifications - Event notification system