View on GitHub

Project Meshnet

Welcome to Project Meshnet

Getting Started

Project Meshnet aims to build a sustainable decentralized alternative internet. You can help in several ways from spreading the word, starting up your first Cjdns node, or starting a local meshnet group.

About Project Meshnet

Project Meshnet was created out of the /r/darknetplan community in order to fight back against Internet censorship by corporations and governments around the world. It aims to use a combination of software and hardware to achieve the goal of a censorship-free Internet. The software component, called Cjdns, is being used right now to create a network called Hyperboria. Hyperboria is a network that operates securely over the current Internet infrastructure. Along with this network, Project Meshnet is also working to help setup hardware installations in communities around the globe, creating mesh "islands", which will then tie into Hyperboria. These mesh islands are completely immune to any form of censorship.

Project Meshnet can mostly be helped right now by those with a medium to high level of skill with the technologies involved. Both the software and hardware packages are in the very early Alpha stages and need as much assistance as possible to get off the ground. However, if you are not tech-savvy but can find a tech-savvy user to work with, you should still be able to contribute substantially to the project. Below you will find a guide on how to best assist the project and further its goals. It should help you find both hardware and instruct you in installing Cjdns.

Step one: Get on IRC

This is the most important part, we are social people and like to talk, helping people and discussing the latest topics is way easier on the IRC than anything else. Don't be shy. Introduce yourself. You can find us on EFNet's #projectmeshnet channel or use the webchat.

We've crafted some handsome templates for you to use. Go ahead and continue to layouts to browse through them. You can easily go back to edit your page before publishing. After publishing your page, you can revisit the page generator and switch to another theme. Your Page content will be preserved if it remained markdown format.

Step two: Get cjdns

What is cjdns?

Cjdns is a routing engine designed for security, scalability, speed and ease-of-use. The dream: You type ./cjdns and give it an interface which connects another node and it gives you an IPv6 address (generated from a public encryption key) and a virtual network card (TUN device) through which you can connect to the Cjdns network you have chosen. For example, the largest current Cjdns network is called Hyperboria.

How cjdns works

In order to understand how Cjdns works, it is important to understand how the existing Internet works. When you send a packet from your computer to another, each router it passes through reads the address on the packet and decides where to send it next. In a Cjdns network, a packet goes to a router and the router labels the packet with directions to a router which will be able to best handle it. That is, a router which is near by in physical space and has an address which is numerically close to the destination address of the packet. The additional directions for the packet allow it to go through numberous routers with minimal handling. Each router just reads the label and bounces the packet wherever the next bits in the label tells it to. Routers have a responsibility to "keep in touch" with other routers that are numerically close to their address and also routers which are physically close to them.

The Cjdns routing engine is a modified implementation of the Kademlia DHT design.

Please read the whitepaper for more information.

Install it

Note: Installing cjdns requires some knowledge of GNU/Linux. If you don't understand the command line and basic networking, you should prepare to study those first before attempting to use this software. Cjdns is alpha software that may not be fully functional or build properly at all times. People in the IRC are friendly and willing to help, but probably do not have time to teach you more basic topics so you can use Cjdns. At this point, the goal is for you to test Cjdns and help build the network.

Please see the official install guide to build and install cjdns.

Step three: Find peers

Come by the IRC and ask for nearby peers. Once you've got the peering details, follow this guide to add them to your configuration file.

More information

You can check the official getting started guide on the wiki for more information on getting started. In addition, we are more than happy to answer questions in IRC.