Radicle: स्वायत्त code forge
(radicle.xyz)- Radicle Git के ऊपर बनाया गया एक विकेंद्रीकृत open source code collaboration network है, जो केंद्रीय सर्वर के बिना peers के बीच सीधे repositories को replicate और manage करता है
- सभी डेटा और social artifacts public-key cryptography से signed होते हैं, जिससे प्रामाणिकता और लेखक सत्यापन संभव होता है
- उपयोगकर्ता अपना node चलाकर censorship-resistant collaboration environment बनाए रख सकते हैं, और इंटरनेट कनेक्शन के बिना भी local-first तरीके से काम कर सकते हैं
- Collaborative Objects(COBs) के जरिए issues, discussions, code review जैसी collaboration features को Git objects के रूप में लागू किया जाता है, और डेवलपर्स इन features को स्वतंत्र रूप से extend कर सकते हैं
- यह modular architecture के साथ बना है, जिसमें CLI, web, TUI शामिल हैं, इसलिए विभिन्न clients का विकास और अदला-बदली संभव है; यह एक highly extensible code forge platform है
परिचय(Synopsis)
- Radicle एक Git-आधारित peer-to-peer code collaboration stack है, और centralized code hosting platforms के विपरीत इसमें कोई एकल नियंत्रण इकाई नहीं है
- repositories peers के बीच distributed replication के साथ साझा होती हैं, और उपयोगकर्ता अपने डेटा व workflow पर पूरी तरह नियंत्रण रखते हैं
- यह open source के रूप में उपलब्ध है, और MIT तथा Apache 2.0 license के तहत स्वतंत्र रूप से इस्तेमाल किया जा सकता है
- मुख्य repository की पहचान
rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5है
इंस्टॉलेशन और शुरुआत
- इंस्टॉल करने के लिए shell में यह कमांड चलाएँ:
curl -sSLf https://radicle.xyz/install | sh - या source code से सीधे build किया जा सकता है
- फिलहाल यह केवल Linux, macOS, BSD परिवार पर काम करता है
- Radicle Desktop client के जरिए ग्राफिकल collaboration environment भी उपलब्ध है
यह कैसे काम करता है(How it works)
- यह cryptographic identity system का उपयोग करता है, जो code और social data की integrity तथा author authentication सुनिश्चित करता है
- peers के बीच efficient data transfer के लिए Git का उपयोग किया जाता है
- custom gossip protocol के जरिए repository metadata का आदान-प्रदान किया जाता है
डेटा सुरक्षा और स्थायित्व
- सभी social artifacts Git में store किए जाते हैं और public-key cryptography से signed होते हैं
- Radicle डेटा की प्रामाणिकता और लेखक की पहचान का स्वतः सत्यापन करता है
स्वायत्तता और censorship resistance
- उपयोगकर्ता अपना node स्वयं चलाकर third-party पर निर्भरता के बिना collaboration environment बनाए रख सकते हैं
- नेटवर्क को resilient और censorship-resistant architecture के रूप में डिजाइन किया गया है
local-first
- इंटरनेट कनेक्शन न होने पर भी हमेशा सुलभ functionality प्रदान करता है
- उपयोगकर्ता डेटा का स्वामित्व अपने पास रखते हैं, और स्थानांतरण, backup, access आसान रहते हैं
विस्तारशीलता और विकास की क्षमता
- Collaborative Objects(COBs) के जरिए issues, discussions, code review जैसी collaboration features को Git objects के रूप में लागू किया जाता है
- डेवलपर्स COBs को extend करके नए collaboration flows बना सकते हैं
modular design
- Radicle Stack में CLI, web interface, TUI शामिल हैं
- इन्हें Radicle Node और HTTP Daemon support करते हैं
- हर component को बदला जा सकता है, और अन्य clients का विकास भी संभव है
कम्युनिटी और भागीदारी
- Radicle एक free और open source software है, जिसमें कोई भी code contribute कर सकता है
- कम्युनिटी Zulip, Mastodon, Bluesky, Twitter आदि पर सक्रिय है
- फीडबैक feedback@radicle.xyz पर भेजा जा सकता है, और वह अपने-आप Zulip के
#feedbackचैनल में पोस्ट हो जाता है
1 टिप्पणियां
Hacker News की राय
लगा कि Radicle का परिचय वाला पैराग्राफ यह साफ़ नहीं करता कि यह self-hosted Git से कैसे अलग है
अगर यह gitea या forgejo जैसे विकल्पों में से एक है, तो Git के ऊपर यह कौन-सी अतिरिक्त सुविधाएँ जोड़ता है, यह संक्षेप में बताना अच्छा होगा
मैंने इसे ऐसे टूल के रूप में समझा जो ईमेल पैच शेयरिंग की अव्यवस्था के बिना सहयोग करने देता है
gitea या forgejo को न जानने की वजह से तुलना उल्टा मददगार नहीं लगी
पहले वाक्य में Git का ज़िक्र होना बात को स्पष्ट करता है
दूसरी ओर forgejo का landing page Git या source control का उल्लेख करने से बचता है, इसलिए वह और भ्रमित करता है
यह forgejo/gitea/gitlab की तरह local hosting देता है, लेकिन P2P नेटवर्क पर चलता है, इसलिए failures के प्रति ज़्यादा resilient है और decentralized public project hosting संभव बनाता है
इसे किस तरह लिखना बेहतर होगा, इस पर आप सीधे सुझाव दें तो अच्छा लगेगा
नई social forge बनाने की कोशिश अच्छी लगी
सिर्फ़ इतना भी काफ़ी मायने रखता है कि ऐसे projects GitHub और GitLab पर सुधार का दबाव बनाते हैं
FAQ देखने पर लगता है कि Radicle, Git की trust समस्या को PKI-आधारित identity system से हल करने की कोशिश करता है
लेकिन अंत में “किसकी पहचान पर भरोसा किया जाए” यह सवाल फिर भी बचा रहता है
अभी यह SSH keys के साथ 1:1 mapping है, लेकिन इसे group identities तक बढ़ाया जा रहा है
यह कोई पूर्ण समाधान नहीं है, लेकिन cryptographic identity के ज़रिए ऐसी संरचना देता है जो ‘कुछ लोगों से अधिक भरोसे तक फैल’ सकती है
आखिरकार भरोसा, लोगों के बीच रिश्तों की तरह, social connections के माध्यम से वितरित होता है
एक बार भरोसा बन जाए, तो उसी DID वाली दूसरी repositories भी खोजी जा सकती हैं
अगर कई versions हों, तो trusted source या ज़्यादा सक्रिय repository को चुना जा सकता है
पुराने internet services (IRC, Gopher आदि) चलाने वाले छोटे sysadmin groups के साथ रहते हुए, P2P systems में deletion की असंभवता पर सोचने लगा
अगर गलती से निजी जानकारी अपलोड हो जाए, या कानून बदलने के बाद कोई content समस्या बन जाए, तो क्या किया जाए, यह सवाल है
बेलारूस में amateur radio operators की गिरफ़्तारी का मामला जैसी खतरनाक स्थितियाँ भी हैं
इसका मतलब यह नहीं कि P2P बुरा है, लेकिन deletion की समस्या अब भी कठिन है
GitHub पर भी अगर secret key वाला code अपलोड हो जाए, तो कई बार तब तक बहुत देर हो चुकी होती है
P2P कोई नई समस्या नहीं बनाता, बल्कि मौजूदा समस्या को सामने ले आता है
ईमेल की तरह कोई delayed publishing feature हो, जिसमें कुछ समय तक प्रकाशन रद्द किया जा सके, तो अच्छा होगा
नेटवर्क स्तर पर content expiration feature पर भी चर्चा हो रही है
admins deletion को manipulate कर सकते हैं, या सरकार को report कर सकते हैं
कानूनी समस्या आखिरकार राजनीतिक व्यवस्था की निष्पक्षता पर निर्भर करती है
Tangled से अंतर पूछने वाला सवाल
सारे operations (issues, patch review आदि) local data store में होते हैं, server round-trip नहीं होता
नेटवर्क सिर्फ़ sync के समय शामिल होता है
इसके उलट Tangled, AT Protocol-आधारित federated संरचना है, जो व्यवहार में centralized servers (AppView) पर निर्भर करती है
संरचनात्मक रूप से यह client-server मॉडल है
Radicle में server की अवधारणा ही नहीं है, और सभी nodes बराबर हैं
हाँ, कुछ nodes browser access में मदद के लिए HTTP server की तरह काम कर सकते हैं
FAQ के अनुसार, Radicle में abuse और illegal content के लिए हर node अपनी policy के हिसाब से block कर सकता है
साथ ही यह trusted peers के बीच private repositories को support करता है
data encrypted नहीं होता, लेकिन selective replication की वजह से पूरे network के सामने उजागर नहीं होता
FAQ लिंक
लगा कि homepage पर public repository index तक पहुँचने के लिए एक gateway होना चाहिए
तभी पूरे network को explore किया जा सकेगा
अगर ऐसा index हो, तो इसमें GitHub को replace करने की क्षमता है
लेकिन homepage से इसका स्पष्ट लिंक है या नहीं, यह पता नहीं
Radicle सच में बहुत शानदार project है
मैं कई महीनों से node चला रहा हूँ, लेकिन अभी इसे main के रूप में इस्तेमाल नहीं कर रहा
मुझे विश्वास है कि P2P forge ही web का भविष्य है
भागीदारी अपने-आप में एक वोट है
जब भी GitHub किसी project को block करता है, तो यही लगता है कि “Radicle इस्तेमाल करना चाहिए था”
Tor के पीछे node चलाने पर क़ानूनी दबाव से भी बचा जा सकता है
पहले कुछ projects में ऐसी setup पर समस्याएँ रही हैं
जिज्ञासा है कि permissive seeders बड़े binary uploads से खुद को कैसे बचाते हैं
अगर सारे issues और discussions store होंगे, तो repository size बहुत बड़ा हो सकता है
Git के shallow clone जैसी partial replication सुविधा की ज़रूरत लगती है
Forgejo (ForgeFed protocol) से अंतर पूछने वाला सवाल
हर node एक ही process के रूप में चलता है, और user accounts self-certifying तरीके के हैं
इसके उलट Forgejo, ActivityPub के माध्यम से servers के बीच संवाद करने वाली federated संरचना है
GitHub : Forgejo = Twitter : Mastodon, और file sharing : BitTorrent = software development : Radicle जैसी तुलना की जा सकती है
Radicle references को central server नहीं, बल्कि project-स्तरीय cryptographic namespace के ज़रिए मैनेज करता है
access control भी server नहीं, बल्कि user identity पर आधारित है