Just discovered Radicle (https://radicle.xyz/), which is a peer-to-peer git forge. It has its own custom gossip protocol to propagate repo changes through the different instances.
Even if i LOVE gossip protocols, I'm still a little bit confused about all of these "distributed" forges, mainly because git is already distributed by default (https://git-scm.com/about/distributed).
Radicle authors are answering this question in their FAQ (https://radicle.xyz/faq):
```
While Git is designed in some way for peer-to-peer interactions, there is no deployment of it that works that way. All deployments use the client-server model because Git lacks functionality to be deployed as-is in a peer-to-peer network.
For one, it has no way of verifying that the repository you downloaded after a git clone is the one you asked for, which means you need to clone from a trusted source (ie. a known server). This isn’t compatible with peer-to-peer in any useful way.
Radicle solves this by assigning stable identities to repositories that can be verified locally, allowing repositories to be served by untrusted parties.
```
I'm still not convinced though, I think it's adding lots of complexity to an already complex system.
#git #distsys