BulletinBoard is a general-purpose Distributed-Hash-Table based on Kademlia [1]. The interface is provided as a D-Bus service via these commands:
Service: org.manuel.BulletinBoard
Object Path: /
Interface: org.manuel.BulletinBoard
Commands:
- Get(String app_id, Array of [Byte] key)
-> (Array of [Array of [Byte]] values)
- Put(String app_id, Array of [Byte] key, Array of [Byte] value)
-> ()
- Remove(String app_id, Array of [Byte] key, Array of [Byte] value)
-> ()
- RemoveKey(String app_id, Array of [Byte] key)
-> ()
where app_id
is an string specific to your application (e.g. myfilesharingapp
).
The key
is hashed together with app_id
using SHA-1 and the value
may not
exceed 2048 bytes.
Note that you cannot assume that a value returned by the Get
command was
really published by an instance of your application.
[1] http://pdos.csail.mit.edu/~petar/papers/maymounkov-kademlia-lncs.pdf