I've implemented a naive p2p system which can be both federated or fully decentralized, something in-between and maybe :

Added many comments in the source-code itself if you want to check it out.

The main ideas are:
* Not invent a new protocol but patch something together of great components
* Keypairs live in the clients, where messages get signed and then posted to the "home-server"
* Home servers are the actual nodes of the network, find each other and replicate data with each other
* All data is stored in append-only-logs of every managed key (
* Clients can be simple browser-based interfaces without any heavy crypto-crunching or file system access needs (which forces us to live in Electron etc.)
* .. still one could simply build a client which comes together with the Node itself

Happy to hear any comments/ideas or projects which already do something similar in this direction?

Thank you!! 🎈

Β· Web Β· 4 Β· 28 Β· 20

@liaizon and @320x200 do you know about anything similar to this in the fediverse?

Show thread

@adz I don't know how it works but @matrix is aiming for (i.e. not in production atm) some weird mix between federation and p2p.

@adz @liaizon not to my knowledge, but let's try to amplify this post so you get more eyeballs!

tagging a few eyes who might have some good feedback for my friend here
@neauoire, @xj9

@adz npm knocks it down a couple points but at a glance it looks pretty cool.

@ari Haha agreed. I would love to build it in Rust actually

@adz looking at bamboom quickly it looks like a way to represent the activity stream (log) and allow to download the full or some part of that in parallel. Instead of just back links, new->old, there is some kind of merkle tree. Brillant!

@zig Bamboo is fantastic work by Exactly, it allows partial replication, you could basically clean up your logs without losing verifiability! :think_starry_eyes:

Aljoscha and friends organize a conference in Basel soon, maybe this is something for you:

* You can't really trust timestamps or incremental resource ids but with an append-only-log you can at least make sure if things happend in order (A really happend after B) and if all of this belongs to the same identity.. In a fully distributed world this is a great characteristic as you can trust your data wherever it came from ..
* You have signatures for free!
* You have conflict free data types for free! Also cool for p2p.

With beep-beep we would have both of these world: As the data is stored in log form we are free in the choice on what to do with it (decentralization) even if the source is unknown. And still one could make use of the nice client2server or server2server federation features.

@adz My thinking is that even in p2p world, there will still be some central server. Do you agree?

Sign in to participate in the conversation

Welcome to, an instance for discussions around cultural freedom, experimental, new media art, net and computational culture, and things like that.