[guardian-dev] GilgaMesh (was Re: FireChat moved off iOS proprietary mesh to their own xp mesh protocol?)

Nathan of Guardian nathan at guardianproject.info
Fri Oct 3 11:03:19 EDT 2014


On Fri, Oct 3, 2014, at 06:07 AM, Michael Rogers wrote:
> This is so cool! What's the max length of a device name?

Terribly small... 32 "characters", which if you are writing in Chinese
characters, could be quite a lot. If you are looking to shove bytes into
it, may not be that helpful.

Some more info and thoughts posted:
http://openideals.com/2014/10/03/extending-the-humantechnical-range-of-the-gilgamesh/

Retweeting (and Wifi P2P) on the Gilgamesh

The primary question I have received so far when describing how this
project is using Bluetooth is being used to create a lightweight,
informal mesh, is “how far can it reach?”. The quick answer is “about
10m or 30ft”. That is the typical range of a Bluetooth radio, without
interference. Obviously, that is not very far, and the response is
usually “Well, can’t I just pass a note or tell the person directly what
I want to say?”. This is a fair statement, and so we must do better. In
the last 24 hours, I have tested and implemented two new ideas for the
Gilgamesh, that address this problem in two very different ways.

First, I have implemented support for Wifi Direct, which is another way
that modern Android phones, can create adhoc peer-to-peer networks. It
has the same capabilities of discovery and dynamic names that we are
build on top of for our broadcast message layer, and so the same hack we
using with Bluetooth can be applied here.

wifidirectmsg wifidirect

Unfortunately, the names seem to be of much shorter length (like a
typical Wifi SSID), but it can still be used for short messages, and we
can come up with a way to packetize messages, as well. The upside of
Wifi Direct is that its range is, in open spaces, up to 100m/300ft! That
has amazing potential. You can see the relevant code here.

Second, within the limits of Bluetooth, we can employ some useful app
behaviors to extend the range of any message. In the latest code, if you
have paired with a trusted person’s device (using the built-in Bluetooth
settings panel of your device), and the Gilgamesh app receives a
broadcast message from that user, it will be automatically re-shared,
aka re-tweeted, aka RT. (Yes, we are building old school Twitter here,
just over Bluetooth). What this creates then is a chain reaction – “the
wave” phenomenon that I blogged about earlier – that allows a message to
propagate up to 30ft in any direction, over and over again, as long as
there are trusted/paired devices out in the crowd.

paireddevices retweet

By using the RT method, we can see the chain of users who have sent and
replicated the message, and that helps embed trust and reputation into
the message as well. Anyone looking to spread misinformation, would have
to be on the ground in the area, and would need to convince many people
to RT them, either through force or social engineering. This is many
times more difficult than just being able to send a message in a global
chatroom, like you can on some other apps, ahem.

In addition to the auto-retweet feature, anyone can press and hold on a
message, and it will allow for a manually RT, whether you are paired
with the sender or not. Finally, let’s not forget that anyone with any
bluetooth device, be it a simple feature phone, an iPad or a laptop, can
participate in this process, by changing their Bluetooth device name
manually themselves, and setting it to a retweet message.

Through both of these new concepts, the simultaneous use of Bluetooth
and Wifi Direct to extend the range, and the application and
human-powered behavior of retweets, we can effectively extend the range
of Gilgamesh to as far as you have people participating in it. It can
even survive gaps in coverage, as people move from one mesh group to
another, they would bring along their retweets.

Finally, if you haven’t yet, please read my thoughts on the four roles
that can and need to be played by people and devices, for the gilgamesh
to even be more robust.


More information about the Guardian-dev mailing list