Tribler / bami

BAMI 🍜 protocol prototype: Ultimate Toolbox for Collaboration
9 stars 9 forks source link

The future of BAMI #57

Closed devos50 closed 3 years ago

devos50 commented 3 years ago

I wrote this issue to organize a few thoughts on the future direction of the BAMI repository. The repository did come up a few times in our discussions and meetings, yet there are no concrete plans on how we can proceed with this codebase. I believe with sufficient effort and focus, this repository can become instrumental in our labs' experiments.

BAMI essentially started as an implementation of Plexus and shifted towards being an “accountability toolbox”. The idea of Plexus, however, has changed significantly (both code-wise and conceptually) whereas this repository has remained untouched since last year. At the same time, I see an increasing need for a Python framework with distributed system data structures so we can quickly prototype any ideas that we would have.

Whereas IPv8 provides basic, yet very robust networking services, I would envision that BAMI provides developers with primitives to build decentralized applications. This would, for example, include commonly used data structures like:

All implementations should be accompanied by representative unit tests. Unlike the policy with the Tribler repository, this repository can contain dead code or unused data structures.

Since BAMI builds upon IPv8, developers should be able to quickly combine these data structures with their customized overlays. BAMI would then also provide the following services:

Compared to libp2p, we would avoid a monolithic library while at the same time provide an academic toolbox with primitives for P2P research. This approach would solve two problems:

I would also like BAMI to support simulation, e.g., by integrating my discrete event asyncio loop.

Thoughts/comments? :D

devos50 commented 3 years ago

The future of BAMI has been discussed and is (slowly) being realized. 👍