Remix.run Logo
noman-land 6 hours ago

Radicle is really cool. I've been running a node for months but havent pulled the trigger to use it as primary yet.

We need better forges and they need to be p2p to survive. p2p is the only viable future for the web.

endiangroup 6 hours ago | parent | next [-]

AD: Thank you for your contribution! I also run a permissive seed node, vote by participation!

endiangroup 6 hours ago | parent | prev [-]

AD: Whats holding you back from using it as your primary?

hosh 5 hours ago | parent | next [-]

Not the original OP — I had been thinking about this for years, though my interest is in resiliency rather than a sovereignty (though they overlap):

- is there a mirror adapter to push to a non-radicle node, such as Github or say, sourcehut? (Mirroring nixpkgs, for example)

- is there a mechanism to control syncs so it can be used on low-bandwidth, unreliable networks, or ad-hoc bluetooth networks?

- is offline seeding possible or in the works?

- language package managers often can reference a git or github. Would I be able to directly reference my local radicle node and have it manage (or perhaps even discover) the correct repos? (Or maybe this is a different problem and package repos themselves could be decentralized and sovereign)

On that last point, I mean that the whole build chain and supply chain can be made sovereign: I see radicle is written in Rust, which means dependencies on Cargo, the Rust toolchain, and so forth.

lorenzleutgeb 5 hours ago | parent [-]

> is there a mirror adapter to push to a non-radicle node, such as Github or say, sourcehut?

You can just add a remote for another repository.

    git remote add github git@github.com:example/example.git
You can also create remotes with multiple push URLs, so that with one `git push`, you push to all of them at once.

Apart from that, it's possible to use e.g. systemd path units to run `git push` automatically whenever a repository gets updated by `radicle-node`.

This works reasonably well. What else would the adapter have to do?

> is there a mechanism to control syncs so it can be used on low-bandwidth, unreliable networks, or ad-hoc bluetooth networks?

No. The data itself usually is quite small, as the common use case is to send commits. It's not optimized for unreliable networks or Bluetooth in any special way yet. It would certainly be useful.

> is offline seeding possible or in the works?

That's contradictory in my mind. What do you mean? Offline in the sense of "not connected to the internet"? That works just fine. Currently, you still have to connect your node to the existing network by connecting to another known node (via IP address or a DNS name that resolves locally). There are plans to integrate DNS-SD, also via mDNS.

> language package managers often can reference a git or github. Would I be able to directly reference my local radicle node and have it manage (or perhaps even discover) the correct repos?

For now, no. It's however reasonably simple to deploy a component called `radicle-httpd`, which will expose your repos via Git over HTTP if you like. Looks like this: https://seed.radicle.xyz/z3gqcJUoA1n9HaHKufZs5FCSGazv5.git

> (Or maybe this is a different problem and package repos themselves could be decentralized and sovereign)

Yes. Consider things like https://www.tweag.io/blog/2020-12-16-trustix-announcement/

hosh 4 hours ago | parent [-]

If the internet is down and you want to onboard someone with say, a usb thumbdrive.

With the mirroring: does radicle have any kind of event hooks?

lorenzleutgeb 4 hours ago | parent [-]

> If the internet is down and you want to onboard someone with say, a usb thumbdrive.

All the data being synced is in a Git repo, which is in a directory on your filesystem we call "Radicle Storage". You can use `git bundle` or a plain `cp` to copy that directory over. You can also use plain Git to push. Note that for these use-cases there is no polished UX. You need to know what you are doing. The bigger issue will be to install Radicle.

> With the mirroring: does radicle have any kind of event hooks?

Yes. You can connect to `radicle-node` via a socket and subscribe to events. This is how Radicle CI, and in particular the Radicle CI Broker was implemented. You can implement your own event broker, it's just JSON over a socket.

https://radicle-ci.liw.fi/radicle-ci-broker/ci-broker.html

noman-land 4 hours ago | parent | prev [-]

Honestly it's mostly lack of other users to interact with. It's my same problem with things like gitea. Someone needs an "account" to participate in your project.

I'm also not sure how to sync issues and pull requests with Github.

It's largely I haven't researched deeply enough yet.