Hello,
Follow-up on: - https://lists.gnu.org/archive/html/gnunet-developers/2019-03/msg00101.html - https://lists.gnu.org/archive/html/help-gnunet/2014-01/msg00000.html Since then I built, using Python, another _very naive_ peer-to-peer application, dubbed QAdom [0], 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. [0] https://framagit.org/amz3/qadom/ In the iteration before that, I built a bulletin board using gnunet's guile bindings [1] 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 [2]. 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. [1] https://git.gnunet.org/gnunet-guile2.git/tree/prototypes/c3b2 [2] https://git.gnunet.org/gnunet.git/tree/README.1st#n131 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 implementation. (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. WDYT? -- Amirouche ~ amz3 ~ https://hyper.dev _______________________________________________ GNUnet-developers mailing list [email protected] https://lists.gnu.org/mailman/listinfo/gnunet-developers
