Byzantium 0.2a

Byzantium is a project designed to create an ad-hoc mesh network. The distro attempts to overcome a few challenges of mesh networking:

  • Lack of central authority of any kind
  • Use standard hardware

I got a couple Live CDs at the HOPE9 conference from the Byzantium team and thought I'd give them a try. The only machines I had with CDROM drives were old machines with very different network cards.

  • 802.11a Thinkpad x24
  • 802.11a/b/g Macbook 2006

Booting the distro, it starts to a console. There's some terminal slop and some warts, like telling you you need to logon with a password, when you don't. There are lots of references to the underlying distro (Porteus). Typical stuff for a fresh 0.2 alphaish beta. These guys were working hard to get this thing ready for the conference.

Running the Distro

I couldn't find any documentation, so I clicked around for a bit. Here's how I got it going:

  • Insert the CD and boot
  • Login as 'guest', no password
  • startx, wait for the desktop to start
  • double-click the pommegranate

This launches a control panel on http://localhost:8080 which defaults to a system status. There's then a step-by-step sequence to start the mesh (and optional services to offer to the mesh)

"Configure Network Interfaces"

The defaults are all good. There's a little bit of technical information, but the defaults are good. It even randomly selects and gives you your mesh IP address.

I got some errors while starting it up:

Seems like this thing might have something to do with why things got a bit confusing later…

http://en.wikipedia.org/wiki/Captive_portal

Enable Mesh Networking

Not much to it, it tells you to set it up next, you click on it and it worked for me.

Start/Stop system services

IRC, chat, “pad” and a microblog

I started everythign up for testing. No errors.

Connecting to a peer in the mesh

There's a button for “Mesh Services” I *think* that services advertised on the mesh should show up here. Something went wrong, nothing was showing up.

The two machines could talk, but I had to go into a console, check my IP with ifconfig and ping my neighbour. Getting two machines to connect in a mesh from boot without an access point is an accomplishment, but the tools and tricks to advertise services don't seem to be working for me.

Applications

I was able to connect to the remote machine using its ip address on the mesh.

The Microblog doesn't really exist yet. Chat and etherpad seem to be the two working tools. They're a good proof of concept.

Etherpad is very slow to start, but it eventually starts. The x24 is an old machine, and the packet loss can't be helping.

Conclusion

This is a cool project and I didn't examine the network connection sharing features etc. Too much was just not working for me. I hope to try this project again when it gets a few more kinks out. Maybe this review can help as user feedback on the state of the environment.

If I get more time, I would like to have a close look at how the scripts were put together. Maybe I can fix my problems and send the fixes back into the project.

Some of the advanced features they were talking about at HOPE9 were: The ability to tunnel the meshes over other networks. The possibility of using protocols like the old BBS world's Fidonet to deliver messages in not-quite-real time.

More Information

Bugs observed

  • “guest/guest” or “root/toor” on login screen
  • I inserted a USB key to write my screenshots, and I didn't have write access. I needed to su to root and copy them from the desktop.
  • Captive Portal (see “Configure Network Interfaces”)
"Warning Unable to open captive portal PID file captive_portal.eth1"

Mesh interface eth1 IP configuration 192.168.243.188/255.255.0.0
Captive portal daemon running : PID: ERROR: captive_portal.py failed, returned code .