Teotwawki Net: Distributed Discussion System You Control


What if you didn't need the Internet or a telephone system to communicate electronically with your friends? Imagine you could independently share electronic information with friends through wireless devices without external hardware or software. Think of how excited people get about checking in with friends using Twitter and Facebook.

Now, with the right software and your current hardware, people could do those same kinds of activities in their local community--without any need for the Internet or the restrictions of Internet service providers. People could use their wireless devices for personal communications where there is no Internet or when there is no Internet, such as in a disaster situation, or when public networks are banned, such as in places like Iran. We believe that having independent control of our communications networks can be a valuable resource that opens new possibilities for communities.

What makes TEOTWAWKI Net relevant to OLPC?

The One Laptop per Child XO laptop has native mesh networking that inspires ideas for new applications that take advantage of independent wireless networking. One such idea was born during a meeting at the Rochester Institute of Technology (RIT) in upstate New York, when Professor Jeff Sonstein talked about how netbooks, like the XO with their zeroconf mesh network, could be used in disaster recovery situations.

Today, with TEOTWAWKI Net, you can have a discussion forum that is distributed across every machine or storage device using it, and each machine or device is 100% independent and available for reading and replying to discussion posts, even if it is totally isolated from any network. Whenever that machine or device comes into the range of other machines running TEOTWAWKI Net, its news articles (forum posts, if you like) will be synced up and exchanged with the machines or devices that it has contacted.

To expand the network of collaborators, TEOTWAWKI Net can be easily shared with new friends and devices. Such a portable, self-generating network may be needed because of disasters, both natural and man made, or just because you happen to be operating in a very remote area, or have no other choice.

I hope to see TEOTWAWKI Net developed for use as an alternative to Internet-based discussion groups and social sites for the simple reason that TEOTWAWKI Net is, by design, focused on the local area in which it is operating. (Although, long-haul links could be employed to connect different regions.) Conceivably, inter-networking could be accomplished with smart phones and other capable computing devices to dramatically enlarge the potential for free and independently connected communities.

How does TEOTWAWKI Net work?

TEOTWAWKI Net is an electronic, community networking system intended for deployment anywhere there is no permanent communications infrastructure, other than what people actually carry with them. It currently provides a distributed, de-centralized discussion group system, implementing a private version of Usenet, communicating over 802.11 ad-hoc Wi-Fi links (or physically with USB flash storage devices), and runs on XOs and most generic GNU/Linux systems that have standard wireless networking adapters. The system might be expanded in the future to incorporate other models of collaboration, such as with wikis and other forms of social networking.

(The way it works is very similar to the Information Without Borders project Sneakernet proposal. I do not use any of their code or implement their protocol, but on a high level, TEOTWAWKI Net employs a similar concepts, except that it uses Usenet posts instead of email messages, and it does not have connecting back out to the Internet as a specific goal.)

Each device running the system can store and forward traffic to all other such devices that can establish a wireless or physical USB device connection. All the message passing and traffic control occurs automatically without user intervention. A user need only install the software, and then they can read and post news in a forum on the system. Thereafter, as community members come into range of their running devices, theirs and others' messages will be distributed automatically. One device can fully distribute all messages that have reached it, and messages will propagate, if not already shared, through any device that is connected to another. Gradually, the messages flood out to all devices that have directly or indirectly shared a common connection.

To propagate the community's content through the flooding behavior and the concept of gossip, TEOTWAWKI Net runs a news server and a web server with a web-based news client, and, at the heart of the system, is some perl and shell scripting code that defines the behavior of the collaboration model. A personal wiki is included as an example of other useful web applications that could later be included in the collaboration system.

The system listens on a pre-determined 802.11 ad-hoc network with an ESSID of teotwawki on channel 11, or XOs can connect to each other on a mesh channel. It runs avahi-autoipd to get a link-local IPv4 address that avoids collisions with other machines, which might have the same address. Once that part is up, the system broadcasts its presence to the wireless (and other connected networks) every 5 seconds. A mapper and sync dispatcher daemon listens for these packets and uses them to create a map of all systems that are currently in range. It then uses that map to execute another script that syncs the news spool with those systems it sees in the map.

Timestamps are used to make sure we don't re-transmit anything that we have already sent, and the normal mechanisms inherent to Usenet servers cope with the typical problems that arise in this type of flooding communications system (such as, rejecting duplicate posts, etc.).

Independent of wired or wireless networking, the system watches for the mounting of USB storage devices that contain TEOTWAWKI Net news articles, and then synchronizes all connected device stores. This enables off-the-air and off-line private electronic communications and data sharing.

You can see a diagram showing how the various parts fit in at http://teotwawki.steubentech.com/doku.php/playground:playground

How you can use TEOTWAWKI Net on the XO?

If you would like to use TEOTWAWKI Net you can download binary builds for sugar and DebXO or the LiveCD. The builds on the website are currently still early demos of the software and should not be considered stable releases.

I am planning to do official releases with numbered versions soon. The best way to track development right now is by the anonymous CVS server and my TEOTWAWKI blog articles.

How can you help improve TEOTWAWKI Net?

I am looking for people that are interested in the idea of TEOTWAWKI Net and want to help in its development. I need help from programmers, document writers, and people who can do some real world tests. I also really want some help in making this system work in a more hostile environment. As it stands right now, it is very easy to attack.

I think that derivatives of TEOTWAWKI Net could eventually be used to make an even greater collaboration tool set for OLPC XO and Sugar Learning Platform deployments. Currently, while you can put a discussion group on the OLPC School Server or out on the Internet, once you leave the classroom and go out of range of the mesh network portal, you are on your own and disconnected.

TEOTWAWKI Net features a software system that is waiting to reconnect and automatically update your collaboration once you are back in contact with your friends.

William Schaub is a freelance, UNIX consultant operating out of Hornell, NY, and a member of the OLPC user's group at RIT.

1 Comment

I think this is a great idea! However, usenet may be less of a selling point in some minds. Still, the idea of a decentralized mobile network is a great one. I'd use it!