Rhizome is our mesh file distribution protocol that allows user-created content and software updates to spread hop-by-hop over the mesh. This hop-by-hop approach elegantly solves many of the problems with mesh-wide file transfer, in particular bandwidth starvation and instability of long links.
We have called it rhizome because it is like the vegetable reproductive process of the same name, because we think it is a good analogy for the way that Rhizome allows data to spread by small hops, but such that over time it can spread over great distances.
We are busy working on making Rhizome do all that the team in Nigeria needs, but in the meantime, the team in Nigeria have sent us some photos showing the mesh in action.
First, they sent photographic evidence of 10 IDEOS U8150 phones forming a mesh with our software:
|10 Serval BatPhones on the mesh (and a call in progress!)|
Finally, just a week after they got 10 phones on the mesh, they sent this shot showing 15 phones on the mesh. This was just a case of them getting 15 phones within range, as the underlying BATMAN mesh protocol should be able to handle a couple of hundred devices without any difficulty:
One of the challenges we are looking at solving with this group is auto-update of the mesh software, over the mesh. That is, we want to be able to load a signed software update onto any one of the phones on the mesh, and have the phones on the mesh share it automatically with one another.
This is a great idea, and the Rhizome protocol will allow us to do this, however it introduces some security challenges.
In particular, we don't want someone or some party seizing or cracking our signing key, and then being able to spread a trojan update that destroys the Serval mesh.
One approach we are looking at is making the update require that the new version be signed by a majority of keys from a pool, where each key would be held by a different mesh-friendly organisation. The pool of trusted keys could then be similarly updated by a majority vote of existing trusted keys.
This will allow us to spread the keys among countries and jurisdictions and provide the kind of distributed resilience that the Serval Project is predicated on, and even allows the software to continue to be refined and distributed if the Serval Project as an organisation ceases to exist.
If you think that your organisation might like to be one of our key custodians, let me know.