Radicle is a P2P source forge. Think of it like a decentralised github. It seems to be the only really decentralised source forge that can currently distribute repositories, issues, PRs/MRs/patches between nodes.
There is interest by multiple people (including myself) to work on the nix ecosystem off of github and having an official mirror on radicle would be a great first step - if only to have an up to date backup of nixpkgs available on the net. At this point, it doesn’t have to be anything more than that, just a mirror.
The effort shouldn’t be too big. A github action exists that can automatically push to radicle.
Cheers
13 Likes
I guess a PR to GitHub - NixOS/infra: NixOS configurations for nixos.org and its servers with the full setup would be the quickest way to get there, after discussing it with the infra team in an issue to make sure there’s capacity to review it and take care of it afterwards.
Thanks @fricklerhandwerk . Are you suggesting that the nixos foundation host a radicle seed node themselves? I really like the suggestion.
Just in case you didn’t know, there are multiple radicle seed nodes out there and they are already able to host nixpkgs. Repositories on radicle are replicated across multiple seed nodes and identified by an ID e.g z3pN2URJoxrZSrnwKoYtWrgfS8qLL is the github action’s repo.
Each repository has a list of “delegates” aka members. Those delegates are identified by SSH key. Each delegate is allowed to take certain actions on the repository and one of those is pushing. An SSH key for pushing would be required for the github action to do its job and the nixos foundation wouldn’t need to host a seed node. It would however be very much appreciated 
Maybe for this issue I could convince myself to create an account to create a PR, if the infra team doesn’t mind hosting a seed node.
I’m quite interested in this also.
We could get a radicle mirror going fast.
And doing it with a GitHub Action from within the NixOS org would sort of (but not completely) address the primary security concern that it is, in fact, a mirror, since there is no cryptographic signature requirement on nixpkgs. With a seed that gets automatically pushed to from within the org, the trust is placed somewhere recognizable.
Maybe people on the infrastructure team would like to sponsor this automated effort?
found this relevant thread on radicle zulip chat, Public view of Radicle | Zulip team chat
+1 for this - radicle looks really interesting! I Think I did try with nixpkgs this time last year and it just couldn’t cope, but a lot of work has been done since then, so fingers crossed.
Since a P2P git network depends on “seeding” (think BitTorrent) a repository in order to create multiple copies for redundancy, it is good to popularise the right mirror. Otherwise we may have multiple seeds run by different people, some of which may experience failure in maintaining the mirror.
If the infra team is not interested in maintaining a radicle mirror, we could also delegate this to a named subgroup for authenticity and redundancy. Kind of like how there’s the documentation team and the wiki team.
2 Likes
Hey! I am a member of the Radicle team and also an avid Nix user. I have also helped with infra for Summer of Nix. In fact, my involvement with Radicle is one of the main reasons why my activity in the Nix community has faded, as @fricklerhandwerk might have realized.
I am happy to be of assistance and help out with anything related to Radicle.
There’s been some work in Radicle over the past months to improve the situation with large repos, in particular we’re now using git
instead of libgit2 for fetching and pushing to/from Radicle storage:
The changes are small, and it is surprising that libgit2 has problems with local fetch/push (look, a GitHub issue filed by Linus Torvalds!), but well… See the patches for a little more detail.
I merged a patch yesterday that introduces canonical references, for example. This is a big step forward. In the near future, there will not be just one canonical branch, but you can name arbitrary ones via refspec patterns, with different allowlists. (Edit: This merge was since reverted because we want to improve the UX about migrating repositories to the newer feature.)
I filed Radicle Node · Issue #678 · NixOS/infra · GitHub
8 Likes
Thanks for creating the ticket @lorenzleutgeb ! I hope the infra team will be positive about hosting a radicle node with official mirrors.
1 Like