Earendil is a decentralized, censorship-resistant packet-routing overlay network designed for performance and censorship resistance. It enables secure and private communication between nodes, even against powerful state-level adversaries.
Currently, the project is extremely early-stage and not ready to use. Stay tuned for updates!
- Robust censorship resistance
- Confederal, non-egalitarian topology
- Decentralized, sybil-resistant incentives based on micropayments
- User-tunable anonymity/performance tradeoff
Detailed info can be found in the Earendil documentation.
This repository is laid out as a Cargo workspace.
The primary, "root" crate is earendil
, the primary daemon intended to be run on any machine that wishes to access Earendil (similar to the tor
daemon for Tor).
Other crates live in libraries/
:
earendil_packet
implements structs for the Earendil packet format at different layers of the protocol, such as the onion-encrypted mixnet format and the format that carries the end-to-end application messages.earendil_topology
implements functionality for Earendil's relay graph, including helper functions for gossip
Overall, we follow an architecture where the crates in libraries/
avoid doing any I/O, and instead implement data types. Actual communication is done by the earendil
daemon.
In one terminal window, run ./start_example.sh
.
In another, run earendil control send-message --destination fhsg3742bwxmg3k14jdsbphdp22j119f 1 1 --message helloworld
Then run earendil control --connect 127.0.0.1:11111 recv-message