Skip to content
This repository has been archived by the owner on Nov 14, 2023. It is now read-only.

Latest commit

 

History

History
41 lines (23 loc) · 2.07 KB

README.md

File metadata and controls

41 lines (23 loc) · 2.07 KB

About

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!

Key Features

  • Robust censorship resistance
  • Confederal, non-egalitarian topology
  • Decentralized, sybil-resistant incentives based on micropayments
  • User-tunable anonymity/performance tradeoff

User documentation

Detailed info can be found in the Earendil documentation.

Developers

Layout of the crate

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.

Quick example

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