To start moving, we have decided to implement an alpha version of the WaDeD network.
This is not a complex protocol implementation, but a simple one that handle the points which we have discussed, and simple enough to grow in different directions. Here is a simple description:
–How a packet enters the network?
When a user wants to send a message he will give that message an ID
and will put it in
a packet. That packet will enter in the transmission queue(TQ)
–How a packet move into the network?
If a node have packets in it’s queue, he will broadcast their ID
(Message Id Broadcast – MIB).
If a node hear an MIB, he will check if he has those messagse (by the
Id). If not he will ask for those messages.
–How they enter the network?
Once a node receive a message with it’s ID he will deal with the
message and he will create a tombstone for it.
–What they do?
Once a node acquire a tombstone, he will erase the message from the
TQ, and place in the Dead Queue (DQ). Messages
in the DQ are only composed by it’s ID.
–How they move in the network
The first time a node receives a tombstone, he will broadcast it. He
will never broacast it again unless
an other node sends that message id trough the MIB. If this happens,
the node will answer the MIB with the tombstone.
As you can see, it is simple. The idea is once we are able to make a message pass trough the users to reach it’s destiny and have a tombstone returned, we’ll be able to grow many directions, for example:
1) control when the nodes are awake, and create special messages for synchronizing them.
2) control how the message diffusion will happens (to try to reach a minimal amount of total bandwidth consumption)
3) do different kinds of messages that will allow messages to follow an specific path (so it won’t disturb unnecessary nodes) or to be treated in an specific manner.
4) play with different sizes of messages and buffers to test for performance.
5) add cryptography to the communication.
We hope to finish soon enough so provide a code so everyone at rose can play with this network with their stm32 cards! (I would be quite proud if we were able to create a network that would cover the whole Maisel!)
Thanks for your attention and please share your thoughts!