One thing that is unclear is how will my personal project repo be accessible once I go offline if nobody is seeding it. Just like torrents it seems I have to at least be online at first until others start seeding it. And if all seeders go offline it will not be accessible?
I think p2p systems are powerful for bandwidth throughput like torrents and maybe video. But for content that needs high availability (like a code repo) it seems like central servers that keep the data alive are needed. And to me GitHub is exactly that... a central location that helps me keep my repo alive. I can easily just switch to another provider (gitlab) if I don’t like GitHub’s availability policy.
So I think radicle is a cool idea but git is already decentralized. I think a more interesting path forward is allowing other systems to follow git’s path. Maybe we need social networks to also have a strong decentralized foundation protocol like git which allows me to easily change which provider serves my social network data.
Istm it'd be easy for people to offer "sign up here and we'll pull and host your repo" services. Which would still be a lot better than Github, since it'd be competetive and open.
Given the social part of the project, I expect also a lot of "I'll host yours if you host mine" exchanges. And a "mirror projects I follow + everything from people I follow" option.
Compare the risk of some online "friend" you've never met not seeding vs Github being down. With your approach I'd need to seed like 5 other projects in order to stand a chance to get a better uptime vs. Github (which is free and requires no effort from my side).
I still haven't seen an explanation of why go through all this trouble rather than set up own Git server at own domain, like many OSS projects already do (example: GNU.org)
When setting up your own server you need to buy a domain, deal with running the infrastructure, deal with and require others to setup new identifies.
You don't need to compete with github's uptime either. If you want that, you would setup/rent a seed. Without it you can rely on some kind of eventual replication.
Also GitHub is free - for you, for now. MS can change it at any point. It's also not accessible from a number of countries.
> When setting up your own server you need to buy a domain, deal with running the infrastructure, deal with and require others to setup new identifies.
No, you don’t. You can push even to a bare repo on disk. If you want to share over network, ssh access vis IP address is enough.
> Also GitHub is free - for you, for now. MS can change it at any point.
It‘s easy to move.
> It's also not accessible from a number of countries.
That’s not really GitHub‘s fault, though. Any business / person operating a seed would have to comply with the same laws as GitHub today.
In that case you lose discovery, since your IP is likely to change and with SSH you still need to deal with identities. And you still need to operate that host. That's worst of both worlds.
> It‘s easy to move.
If use a separate social presence - it's easy-ish. If all your links point to GitHub repo - there's work involved, depending on the scale of the project. And that's assuming you did not buy into any of the value-add projects on GitHub.
> Any business / person operating a seed would have to comply with the same laws as GitHub today.
Apart from seeds in those countries which you can choose whether you want to talk to or not. So even if it doesn't matter to you, it does solve people's problems.
It is easy to have high availability with torrents. It's even possible to quantify how many redundant copies are available among the swarm. Users just need to seed the data for extended periods of time.
Torrent trackers have come up with many mechanisms to incentivize contribution, usually new data and bandwidth. It's definitely possible to reward redundancy instead: the less copies there are, the more users are rewarded for storing a copy on their computers.
I’m far more excited about the efforts to build federation into Gitea and GitLab to allow individual servers to connect for discoverablity and collaboration. The working group on this is ForgeFed. https://forgefed.peers.community/
Rather than inventing a completely new peer-to-peer protocol, I would have liked it more if they had worked on smaller improvements of git itself, that would reduce the need for platforms like github.
For example, integrating the bug tracker into the git repo. That would be very useful, since it’s one of the most important reasons people use github at all.
I think p2p systems are powerful for bandwidth throughput like torrents and maybe video. But for content that needs high availability (like a code repo) it seems like central servers that keep the data alive are needed. And to me GitHub is exactly that... a central location that helps me keep my repo alive. I can easily just switch to another provider (gitlab) if I don’t like GitHub’s availability policy.
So I think radicle is a cool idea but git is already decentralized. I think a more interesting path forward is allowing other systems to follow git’s path. Maybe we need social networks to also have a strong decentralized foundation protocol like git which allows me to easily change which provider serves my social network data.