-
Notifications
You must be signed in to change notification settings - Fork 39
Description
Hey there!
I recently started contributing to Radicle:
Radicle is an open source, peer-to-peer code collaboration stack built on Git. Unlike centralized code hosting platforms, there is no single entity controlling the network. Repositories are replicated across peers in a decentralized manner, and users are in full control of their data and workflow.
Simplifying a bit: Every user generates an Ed25519 identity and runs a Radicle Node associated with this identity. Radicle Nodes gossip updates via Git, including Patches and Issues.
For example, my identity:
$ rad self
Alias lorenz
DID did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz
└╴Node ID (NID) z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz
SSH running (?)
├╴Key (hash) SHA256:xX6bpr+AeF5G0wIvU8nLisgYRM6XjQVNJs3hkMGt+T0
└╴Key (full) ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFhK7CqgIIbSthoNn8ea32krOnMzC807Z+PpBkR2YOVj
As will be obvious to you, there's a discovery challenge. For now, DNS names of bootstrap nodes are baked in the binary, and passing around hostnames works okay, but it'd be nice to get addresses of other nodes just by their Radicle Node ID, which is an Ed25519 public key (using a different encoding than Pkarr does).
There's also Radicle Explorer, which is a web-based viewer for projects. As you'll notice from the example URL https://app.radicle.xyz/nodes/ash.radicle.garden/rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5 it currently encodes the address of the Radicle Node that should be contacted right in the path (the deployment at app.radicle.xyz may connect to an arbitrary Radicle Node via radicle-httpd, a bridge-like component similar to a Pkarr Relay). It'd be cool if this could be a Radicle Node ID, resolved to an address via a Pkarr Relay.
Apart from the minor discrepancy of different encodings for keys, it looks like Pkarr would be a perfect match for Radicle. So I'm very hyped and happy that you are working on Pkarr. Thanks! I don't have anything particular to discuss here — I guess I would have to prototype an implementation first to see how it goes — but wanted to ping you anyway.
Feel free to check out the Radicle Zulip at radicle.zulipchat.com