AllNet Project User Manual


AllNet is designed to provide secure communication when nothing else can. While it uses the Internet and cellular infrastructure when available, it is designed to use direct communication among mobile devices when that is the best way of communicating. With many mobile devices participating, each contributing a small fraction (1%) of their communication bandwidth, individuals should be able to communicate even in the absence of cellular or Internet service.

Due to its design, AllNet works best when exchanging small amounts of data, specifically, brief text messages. Larger amounts of data, including documents, audio, images, video, and web access, are supported when the resources are available.

AllNet is still under development. The following instructions apply to the different versions.

AllNet Version 3.3.0

Released in December 2021, AllNet version 3.3.0 is a release that switches to symmetric encryption using AES 256 with Diffie-Hellman key exchange instead of RSA, giving faster encryption and smaller messages.

AllNet Version 3.2.2

Released in June 2017, AllNet version 3.2.2 is a bug-fix release that improves a number of problems, in particular message and key delivery. The corresponding iOS release, 1.1.1, is the first fully-functional iOS version.

Please review the documentation for 3.2.1 (below) for further information.

AllNet Version 3.2.1

Released in May 2016, AllNet version 3.2.1 provides a chat client and a Distributed Hash Table to save messages across the Internet for later retrieval. Communication begins with a secure key exchange between any two users.

As of May 2016, AllNet version 3.2.1 runs on Linux, Mac, and Windows, with a preliminary port to iOS (apple iPhone and iPad devices). Using the wireless for direct device-to-device communications is currently supported on Linux only, and requires root permission to access the raw device.

To run AllNet, download and unpack either the source or the binary from here.

For the binary distributions, unpack as appropriate (tar xvf allnet-3.2.1-something.tar or unzip, then cd allnet-3.2.1-something), then run . bin/xchat.

This will start both xchat, and the background allnet process used for communication. If you close xchat, the allnet process continues to run. This process uses few resources (except when generating keys) and supports the overall AllNet network, so should be allowed to run as long as possible. To stop it, type bin/astop.

To communicate with somebody, e.g. Jane Doe, have her install xchat as well. Then both of you select the New Contact tab, and enter each other's name (for example, you would enter "Jane" or "Jane Doe"). One of you, e.g. Jane Doe, presses "go" immediately, and tells you the "shared secret" displayed on her key exchange window. You enter that shared secret (upper- and lower-case letters are equivalent), and press "go" to complete the exchange.

After that, Jane should be listed under your contacts, and you can start to exchange messages. Received messages are on the left, and are colored blue when they are first received, fading to white after 24 hours. Messages you send are on the right, and turn green once they have been acknowledged by Jane's device.

AllNet also supports broadcasts. If you wish to receive a message every hour, use the "New Contact" tab to subscribe to allnet_hourly_time_server@for_time.for_game.there_work.

Please be aware that all broadcast messages you receive are deleted whenever you quit xchat. Also, there is currently no easy way to unsubscribe from a broadcast -- if you really need to, delete the corresponding key from ~/.allnet/other_bc_keys/, where ~ represents your home directory.

The instructions for installing the sources are similar to those for the binaries. After unpacking, run

Optionally, you may follow this with sudo make install.