世界を動かす技術を、日本語で。

ラディクル:ソブリンフォージ

概要

  • Radicle はGit上に構築された分散型コードコラボレーション基盤
  • 中央集権的な管理者が存在せず、 ピア間でリポジトリを複製
  • ユーザーがデータとワークフローを完全管理
  • 暗号技術と独自プロトコルで セキュリティと拡張性 を両立
  • CLI・Web・TUI・デスクトップクライアント など多様な利用方法

Radicleとは

  • Radicle は、 Git を基盤とした オープンソースのピアツーピア型コードコラボレーションスタック
  • 中央集権型のコードホスティング とは異なり、単一の運営主体が存在しない構造
  • リポジトリは分散的にピア間で複製・共有 される仕組み
  • ユーザー自身がデータ・ワークフローを完全にコントロール 可能

主要機能

  • 暗号技術による本人性とデータの真正性検証
    • すべてのソーシャルアーティファクトはGitに保存・公開鍵暗号で署名
  • ノードの自己運用が可能
    • 検閲耐性・高可用性ネットワークの構築
  • ローカルファースト設計
    • オフラインでも利用可能、データ所有権はユーザーに帰属
  • COBs (Collaborative Objects) による拡張性
    • Issues、ディスカッション、コードレビューなどをGitオブジェクトで実装
    • 開発者による自由なコラボレーションフローの拡張
  • モジュラー構造
    • CLI、Web、TUI、デスクトップクライアントが利用可能
    • 各コンポーネントは独立して入れ替え・拡張が可能

インストール・利用方法

  • インストールコマンド
    • curl -sSLf https://radicle.xyz/install | sh で簡単導入
    • ソースからのビルドも可能
    • 対応OS:Linux、macOS、BSD系
  • Radicle Desktop
    • グラフィカルなコラボレーション体験
    • 専用クライアントによる操作性向上

プロトコル・アーキテクチャ

  • Gitによる効率的なデータ転送
  • 独自のゴシッププロトコル によるリポジトリメタデータの交換
  • Radicle Node・Radicle HTTP Daemon などのコンポーネントで構成
  • CLI・Web・TUI など多様なクライアントからアクセス可能

コミュニティ・貢献

  • MITおよびApache 2.0ライセンス で公開
  • コード貢献やフィードバック歓迎
  • コミュニティチャット: Zulip
  • 最新情報発信: Mastodon、Bluesky、Twitter
  • フィードバック用メール: feedback@radicle.xyz (Zulip #feedbackチャンネルに自動投稿)

リリース・アップデート履歴

  • 2026年1月14日 Radicle 1.6.0リリース
  • 2025年9月30日 Radicle 1.5.0リリース
  • 2025年8月12日 Radicle 1.3.0リリース
  • 2025年7月13日 Radicle Desktopリリース
  • 2024年9月10日 Radicle 1.0.0リリース
    • その他詳細なリリース履歴は公式サイト参照

参考・学習リソース

  • 公式ガイド・ブログ
    • Jujutsu + Radicle連携事例
    • Radicle CI活用法
    • GitHub Actionsとの連携方法
  • リポジトリ一覧・ブラウズ
    • Radicle heartwoodリポジトリ(ID: rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5)

まとめ

  • Radicleは分散・検閲耐性・拡張性・ローカルファースト を重視した次世代コードコラボレーション基盤
  • Gitユーザー・OSS開発者・分散型ネットワーク志向者 に最適

Hackerたちの意見

誰か、これがTangledとどう違うのか説明してくれない?どっちもすごく面白そうだけど、どちらも深く理解してないから違いが分からないんだよね。

TangledはATプロトコルの上に構築されていて、「ノット」と呼ばれるものの間を「仲介」している。Gitサーバーだね。彼らの強みは、ATプロトコルを使って複数のGitサーバー間の通信をスムーズにすることだ。Radicleは完全にピアツーピアで、サーバーやクライアントなんてものはなくて、ただノードだけがある。ただし、いくつかのノードはHTTPサーバーとして機能して、ブラウザを通じて便利にアクセスできるようにしている。

Radicleはアーキテクチャ的にローカルファーストなんだ。自分のノードを運営して、P2Pゴシップネットワークからリポジトリを同期して、コードの閲覧やイシューの作成、パッチのレビューはすべてローカルのデータストアで行われる。サーバーへの往復はないよ。イシューやパッチは署名されたGitオブジェクト(COB)として保存され、リポジトリ自体と一緒に複製される。ネットワークは、同期することを選択したときだけ関与するんだ。これにより、日常の作業が非常に効率的で、オフラインでも完全に機能する。私の理解では、Tangledは理論的にはフェデレーテッドだけど、実際には中央集権的なんだ。「ノット」(Gitリポジトリをホストするサーバー)と、ネットワークを集約する中央のAppView(tangled.shにある)に依存してる。イシューやソーシャルアーティファクトは、ローカルではなくパーソナルデータサーバーに存在する。ノットを自己ホストすることもできるけど、デフォルトの体験はTangledの管理インフラを経由することになる。アーキテクチャは基本的にクライアント-サーバーで、君の操作はデータが存在するところへネットワークを通じて行われる。

新しいソーシャルフォージを作る努力に心が温まるよ。最低限、こういう取り組みはGitHubやGitLabにプレッシャーをかけて、製品を改善させることになるからね。FAQから引用すると: 「まず、[git]は、git cloneの後にダウンロードしたリポジトリが、あなたが求めたものかどうかを確認する方法がない。つまり、信頼できるソース(つまり、知られたサーバー)からクローンする必要がある。これは、ピアツーピアとは有用な形では互換性がない。」 「Radicleは、リポジトリに安定したアイデンティティを割り当て、ローカルで確認できるようにすることで、信頼できないパーティからリポジトリを提供できるように解決している。」 実際にはこれがどういうことを意味するの? 一見すると、Radicleはサービスの信頼性の問題をPKI型の問題に変えているように聞こえるけど、これは解決策というよりは変換に近い。もっと正確に言うと、どの安定したリポジトリのアイデンティティを信頼すればいいのか、そしてその信頼はネットワーク内のパーティにどう分配されるのかってことだよね。

信頼は他のチャネルを通じて確立する必要があるし、知らない開発者のリポジトリと同じように、慎重なコードレビューを通じて確立されるべきだ。信頼が確立されたら、同じDIDが所有する他のリポジトリを探して、その開発者の他の作品を見つけることができる。もし同じリポジトリの複数のバージョンが存在して、「本物」を見つけたいなら、信頼できるソースから推奨されているものや、他で最も言及されているものを探すといい。そうでなければ、そのリポジトリの開発活動を見てみるのも手だね。GitHubに複数のリポジトリがあるプロジェクトを想像してみて(「フォーク」ではなく、誰かが実際に新しいリポジトリとしてアップロードしたもの)。似たような問題だ。何年も変わっていないシンプルなCライブラリでこれを見たことがあるよ。

AD: ちょっと頑張ってみるけど、私は新しく参加したばかりだよ!各リポジトリは、署名された身分証明書によって管理されていて、その身分証明書は一組の代表者によって署名されてる。今は各代表者が誰かのsshキーに1:1で対応してるんだ。グループアイデンティティを持てるようにこの仕組みを調整中だけど、難しい問題で、私たちだけじゃなくて他の人たちも取り組んでるよ(このトンネルの先には光が見えてるからね)。君が哲学を学んだことを考えると、じゃあ「解決策」って何を意味するの?全ての解決策は以前の「もの」の変容じゃない?複雑な領域では、これを「エクスパタション」と呼ぶんだ。新しい文脈でのものの再利用。さて、君が人に会ったとき、どの人を信頼するかどうやって知るの?そして、出会った人たちにどうやって信頼を示すの?Radicleでは安定した暗号的アイデンティティを持つことが、ゼロからいくつかの信頼問題を解決するわけじゃないけど、いくつかからもっと多くの信頼問題は解決するよ。アイデンティティを認識して知ることで、信頼を続けられるからね。だから「ネットワーク内の当事者にその信頼はどう分配されるのか?」っていう質問には、安定した暗号的アイデンティティによって分配されるよ。「どの安定したリポジトリアイデンティティを信頼するかどうやって知るの?」っていう質問には、社交的に知ることだよ。君が世界で会った人を信頼できるのは、他の信頼できる誰かに紹介されたからだよね。

Radicleは本当にクールだよ。数ヶ月間ノードを運営してるけど、まだメインとして使う決断ができてない。もっと良いフォージが必要で、それは生き残るためにp2pであるべきだ。p2pこそがウェブの唯一の実現可能な未来だと思う。

AD: 参加してくれてありがとう!私も許可されたシードノードを運営してるよ、参加で投票してる!

AD: 何があって、メインとして使うのをためらってるの?

古いインターネットのもの、例えばircやgopherを楽しむ小さなsysadminグループと一緒にいるんだ。それでUsenetについて考えたんだけど、たくさんのソフトウェア(大抵は海賊版)や画像(大抵はポルノ)が投稿されてたよね。若い頃に言ったバカなことを投稿する人も多かったし(大抵は若さゆえの一瞬のバカさ加減だと思う)。p2p分散システムの問題の一つは「ミス」をどう扱うかだと思う。削除したいものとかね。誰かが住所や電話番号をうっかり投稿したらどうする?暗号化手段を持つ通信システムを投稿したけど、政府がそれを犯罪とする法律を通したらどうなる?ある政権では、それが逮捕リストに載ることもあるかもしれない。ベラルーシのHAM無線オペレーターに何が起こっているか見てみて... https://www.niemanlab.org/reading/ham-radio-operators-in-bel... 私にとって、これらの問題は分散p2pコンテンツを使うべきではないという考えを超えるものではない。ただ、いくつかの問題があるだけだ。また、関係ないけど、「これとXYZはどう比較されるの?」みたいなコメントが多すぎてあまり役に立たないと思う。そういう投稿を書くのは簡単だけど、答えるのはずっと難しいからね。

AD: 今、その問題に取り組んでるところで、デフォルトをもっと安全にしようとしてるよ。ネットワークレベルでのコンテンツの取り消しをどう実現するかも内部で話し合ってる。完璧にはならないけど、GitHubやその類も完璧じゃないしね。

中央集権的なシステムは、ここで挙げてる問題から免れないよ。君のミスが削除できるかどうかは運営者次第だからね。運営者は、君のコンテンツが削除されたと思わせながら、実際には当局に報告することもできる。

「暗号化手段を使った通信システムを投稿したら、政府がそれを犯罪とする法律を通したらどうなるの?」 合法だった時に投稿した?うん。違法と見なされた後に配布してる?いいえ。公正な司法制度がある国なら心配しなくていいけど、ない国だと、もっと簡単な方法で捕まるよ。

中央集権的なサービスからもコンテンツをダウンロードできるんじゃないの?

これは現実を認めてるだけに見えるね。何かを公開したら、それはほぼ永遠に残る可能性が高い。ユーザークライアントが公開を一定時間遅らせるっていうのが合理的な解決策かもね(送信したメールをキャンセル/取り消しできるメールクライアントみたいに)。

歴史的なusenetの投稿の大部分はアーカイブされていて、今でも自由にアクセスできるよね。Googleが大きな商業アーカイブの一つを持っているんじゃなかったっけ?だからその「バカなもの」は、削除されていない限り今も残ってる。GitHubへの新しいアップロードは、善意の人や悪意のある人によって秘密が無意識にチェックインされていないか常にスキャンされてる。気づいて削除する頃にはもう手遅れだよ。このP2Pシステムは、すでに広まっている問題を新たに引き起こすようには見えない。

GitHubから始まるエミュレーションやファイル共有プロジェクトの話を読むたびに思うんだよね。Radicleを使えばよかったのにって。ちなみに、もし差し止め命令が心配なら、ノードをTorの背後に置けるよ。

複数のネットワークで同時に利用可能なシードノードを設定するのは簡単なの?例えば、Tor、i2p、クリアネット、さらにはYggdrasilも同時に。過去にそういう風に設定したプロジェクトがうまくいかなかったことを思い出すから聞いてる。

確かに、これは素晴らしいシステムに見えるね。FAQから、私が最も気になっていた2つのことは、—— Radicleはネットワーク上での潜在的な悪用や違法コンテンツの共有にどう対処してるの?各ノードは設定されたポリシーを使って、ホストするリポジトリを自由に選べるよ。ノードは、悪用行為を示す特定のリポジトリやピアをブロックできるんだ。Radicleでプライベートリポジトリをホストする方法はあるの?うん、Radicleは信頼できるピアのセットの間だけで共有されるプライベートリポジトリをサポートしてるよ。これらは静止時に暗号化されていないけど、選択的な複製に依存していて、ネットワークの他の部分には完全に見えないんだ。

提案: オープニングの要約段落を改善した方がいいよ。「Radicleは、Gitをベースにしたオープンソースのピアツーピアコードコラボレーションスタックです。中央集権的なコードホスティングプラットフォームとは違って、ネットワークを制御する単一のエンティティは存在しません。リポジトリはピア間で分散的に複製され、ユーザーは自分のデータとワークフローを完全にコントロールできます。」これを読んでも、普通のセルフホスティングのGitと何が違うのか全然わからない。良い紹介文は、ソフトウェアが実際に何をするのかをすぐに読者に伝えるべきだよ。もしgiteaやforgejoの代替を目指しているなら、そのことを言って、Gitの上に構築された機能の簡単な要約を加えてほしい。

お知らせ: 代替案を考えてみてください。私たちはオープンソースプロジェクトで、議論を受け入れ歓迎していますが、パッチの方がもっと大歓迎です!あなたの意見では、どんな表現が良いと思いますか?

イントロを読んで、これが何かについて良いヒントを得た気がする。「チームのためのローカルファーストGitで、パッチをメールで共有する地獄なし」って感じだった。giteaやforgejoが何か知らないから、比較してもあまり助けにならない。

最後にチェックした時から何か変わってなければ、これは「ブロックチェーン上のGit」だよ。自分のRADコイントークンも含まれてる。編集: 皮肉な表現を削除した。

いや、これはGitHubみたいなものの分散型ピアツーピアの代替なんだ。ローカルでホストされたForgejo/Gitea/GitLabの機能は全部揃ってるけど、パブリックプロジェクトをホストするための分散型で耐障害性のあるピアツーピアネットワーク上に構築されてるんだよ。

Radicleをjjと一緒に使ってみてるけど、ちょっとしたおもちゃプロジェクトで自分だけが貢献してる。なかなか面白いよ。うまくスケールして、コラボレーションにとって使いやすくなるといいな。

このホームページには、ネットワーク上のすべての公開リポジトリを簡単に見つけられるように、基盤となるゴシッププロトコルへの目立つゲートウェイが必要だと思う。目的に反するかもしれないけど、そうは思わない。もしかしたらすでに存在するかもしれないけど、見つけられなかった。もし技術的に不可能なら、誰かがそれを解決する必要がある。ピッチは魅力的だし、プロジェクトのホームページにそのインデックスが表示されれば、GitHubから取って代わる未来が見える。でも、そうでないなら、ちょっと難しいかな。

公開リポジトリを検索したいなら、https://search.radicle.xyz/があるよ。でも、ホームページからどこかにリンクされてるかはわからない。

「許容的なシーダー」をどうやって大きなバイナリファイルを押し込む人から守るんだろう?それに、リポジトリのすべてを保存するのって、すごく大きくならない?大きなGitプロジェクトをクローンする時も、何百メガバイトもダウンロードしないように「シャロークローン」を作る必要があることがあるし、議論が全部入るともっとひどくなるんじゃないかな。