[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-developers] A "Hub" Data-Structure On Top the DHT? (Was: A Graph
[GNUnet-developers] A "Hub" Data-Structure On Top the DHT? (Was: A Graph Database on top GNUnet (take two))
Thu, 17 Oct 2019 17:43:31 +0200
Since then I built, using Python, another _very naive_ peer-to-peer
application, dubbed QAdom , based on kademlia paper. This let me
better understand the requirements for slow-web kind of applications
e.g. link aggregators, newsgroups, question-answering network, and to
some extent the fediverse. I want to stress that I am mostly focused
on slowish interactions but that gnunet allows real-time communication
as demonstrated by group-chat application that rely on CADET.
In the iteration before that, I built a bulletin board using gnunet's
guile bindings  called c3b2. I had a difficult time making
guile-fibers work with gnunet event loop. I read there is a focus on
make the event loop easier to integrate with other event loops at .
The idea behind the implementation of c3b2 is to rely on
gnunet-publish, gnunet-download and gnunet-search to implement some
kind of social network. Files are published using specific keywords
that are then looked up with gnunet-search. keywords play the role of
edges in a property graph. Files have can also reference other gnunet
uri. All that builds a graph.
All that work and some reading lead me to think about a more complex
data-structure that could be exposed on top of the DHT. I call that
data-structure a hub. A hub a free-for-all mutable data-structure that
is any peer can write to it.
That data-structure is subject to various attacks, similarly to the
gnunet-search feature. But I think it will help discovery. Unlike the
gnunet-search is does not stream the results.
Here the procedures associated with a hub:
(peer-hub-put peer key uri)
This adds URI inside the hub identified with KEY. This is the only
'write' procedure. It must update the data-structure in a way that
allows to implement the following procedures. The (KEY, URI)
association has a Time-To-Live that must be defined by the
(peer-hub-statistics peer key)
Return the statistics about the hub identified with KEY.
(peer-hub-popular peer key limit)
This return a set of at most LIMIT uri that are the most popular in
the hub identified with KEY.
(peer-hub-recent peer key limit)
This return a set of at most LIMIT uri that were published recently
using `peer-hub-put` in the hub identified with KEY.
(peer-hub-sample peer key limit)
Return a set of at most LIMIT uri chosen randomly in the hub
identified with KEY.
Amirouche ~ amz3 ~ https://hyper.dev
|[Prev in Thread]
||[Next in Thread]|
- [GNUnet-developers] A "Hub" Data-Structure On Top the DHT? (Was: A Graph Database on top GNUnet (take two)),
Amirouche Boubekki <=