Radicle — Decentralized alternative for Github in Web3

Radicle — Decentralized alternative for Github in Web3

If you don’t have time to read but want to know what’s there in this post. Find the quick read 👇

Radicle is a decentralized network for software development collaboration that aims for high security, censorship resistance, and usability.

On this Post

In this post we will see the following about Radicle

  1. What is Radicle?

  2. Radicle code storage and communication technology

  3. Get Started with Radicle

1. What is Radicle?

Radicle is a software development management platform and decentralized network that enables computer programmers to collaborate on software projects in a peer-to-peer (P2P) fashion.

P2P Network

Radicle is free and designed to be highly secure, user-friendly, and censor-resistant. Radicle can also function in an offline environment. This means it doesn’t require a Domain Name Service (DNS) — or even internet connectivity — in order to function.

Users can freely share coding projects without the need for a permissioned gatekeeper such as a centralized code repository, DNS hosting service, or proprietary collaboration platform or app.

2. Radicle code storage and communication technology

Radicle was initially built using the InterPlanetary File System (IPFS), the team later decided that the IPFS did not satisfy the performance requirements required by the project.

IPFS

Instead, the Radicle team replaced the IPFS system with Git, which now functions as the storage and replication layer of the Radicle network. Radicle uses Git primarily as a database. Built on Git, Radicle is secured by public-key cryptography (PKC) to maintain security and code provenance.

Public key Cryptography

Radicle has built a P2P communication layer called Radicle Link.(Traditional Client-Server architecture).

Radicle Link allows coders (or “peers”) to share and spread data by keeping local copies on their personal devices. The more peers who are interested in a specific software project, the more accessible it becomes throughout the Radicle crypto network.

Radicle also features a blockchain-based tool called Radicle Orgs, which allows you to grant access control to code repositories via smart contracts. You can also share Radicle code repositories via your multi-signature wallet (a.k.a. multi-sig wallet), which gives a global team the ability to share access in a transparent and permissioned fashion. Radicle offers a desktop application for both the macOS and Linux operating systems (OSs) as well.

Multi-Sig Wallet

3. Get Started with Radicle

Radicle CLI Installation

👉 To install with 🍺 Homebrew, run:

brew tap radicle/cli https://seed.alt-clients.radicle.xyz/radicle-cli-homebrew.git
brew install radicle-cli

👉 To install on 🐧 Debian/Ubuntu, first download the package signing key:

curl https://europe-west6-apt.pkg.dev/doc/repo-signing-key.gpg | sudo apt-key add -

Then update your sources list with the radicle repository by creating a registry file:

echo deb https://europe-west6-apt.pkg.dev/projects/radicle-services radicle-cli main | sudo tee -a /etc/apt/sources.list.d/radicle-registry.list

Then update the package list and install radicle-cli:

sudo apt update
sudo apt install radicle-cli

Create Radicle Identity

The first time you run rad auth, you are prompted to create a new radicle identity and Ed25519 keypair.

rad auth
Initializing your 🌱 profile and identity

ok Username · nidhin
ok Passphrase · **************
ok Creating your 🌱 Ed25519 keypair...
ok Adding to ssh-agent...
ok Profile 3ae66df3-6ac7-8466-7013-83839749ed05 created.

Your radicle Peer ID is hyncoz7x4s8x9447g6yogy4iy41q8i4juy5uhou57w1ga7obt644wo. This identifies your device.
Your personal 🌱 URN is rad:git:hnrkmx6trm4bu19bwa4apbxj8ftw8f7amfdyy. This identifies you across devices.

\=> To create a radicle project, run `rad init` from a git repository.

Initialize Radicle to a project

Run rad init to create a Radicle project from the repo. This creates a unique peer-to-peer identity for your repository that can be shared on the network, and associates your radicle key with it.

Clone an existing git repo which has commits because when i tried for a fresh project it doens’t works

rad init
Initializing local 🌱 project ImageCompression

ok Description · This is to test how radicle works
ok Default branch · master
ok Initializing new project...
ok Project initialized: rad:git:hnrkqi6ohci8m59i54ppiy3fqkedkjt98ymdo

\=> To publish, run `rad push`.

Run rad push to publish to the network

The first time you push, you will be asked to select a seed node to push to. To push to your own seed, specify its address with the **--seed** option. seed is similar to Remote VM

rad push
Pushing 🌱 to remote `rad`
Everything up-to-date

Git version 2.35.1
Select a seed node to sync with...
* pine.radicle.garden
* willow.radicle.garden
* maple.radicle.garden

Your code will be synced and available on the network via the web or git.

Git signing key ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL460KIEccS4881p7PPpiiQBsxF+H5tgC6De6crw9rbU

Syncing 🌱 project rad:git:hnrkqi6ohci9m59i54ppiy3fqkedkjt98ymdo to willow.radicle.garden

ok Syncing delegate identity hnrkqdpm9ub19oc8dccx44echy76hzfsezyio...
ok Syncing project identity...
ok Syncing project refs...
ok Fetching remotes (*)...
ok Project synced.

🌱 Your project is synced and available at:

(web) app.radicle.xyz/seeds/willow.radicle.garden..
(git) willow.radicle.garden/hnrkqi6ohci9m59i54ppi..

Radicle CLI commands

Radicle CLI commands

Radicle Video

Radicle Interface
Interact with Radicle
app.radicle.xyz

Radicle
Sovereign code infrastructure
radicle.xyz

Congratulations!

In this post, we have seen the alternative for Github in Decentralized network named Radicle as well as how to initialize and deploy a project in Radicle using Radicle CLI

Will catch up in a new post with more interesting crafts till then Happy Learning :)