- Radicle Heartwood Radicle Protocol का तीसरा implementation है, जो centralized code forge के बिना peer-to-peer तरीके से code collaboration और publishing stack प्रदान करता है
- repository में developers के सीधे उपयोग के लिए command-line tool
rad और network daemon radicle-node शामिल हैं
- इसे GitHub·GitLab जैसे code forge के विकल्प के रूप में डिज़ाइन किया गया है, और security व decentralization, साथ ही user sovereignty को सुरक्षित रखना इसका मुख्य लक्ष्य है
- installation environment के लिए Linux या Unix आधारित operating system, Git 2.34 या उससे ऊपर, और
ssh-agent सहित OpenSSH 9.1 या उससे ऊपर आवश्यक है
- यह binary installation और Rust source installation दोनों को support करता है, लेकिन feedback email public Zulip channel पर अपने-आप पोस्ट हो जाती है, जिससे नाम और email address उजागर हो सकते हैं
Radicle Heartwood क्या प्रदान करता है
- Heartwood Radicle Protocol का तीसरा iteration version है, और peer-to-peer code collaboration व publishing के लिए एक full stack है
- repository में Heartwood implementation के लिए आवश्यक मुख्य components शामिल हैं
rad: user-friendly command-line interface
radicle-node: network daemon
- Radicle को GitHub और GitLab जैसे code forge के विकल्प के रूप में डिज़ाइन किया गया है
- इसका लक्ष्य security, decentralization, और user sovereignty व freedom को संरक्षित रखना है
- सामान्य जानकारी Radicle home page पर देखी जा सकती है
- project discussion Zulip chat में की जा सकती है
- Radicle कैसे काम करता है, यह Protocol Guide में विस्तार से व्यवस्थित है
इंस्टॉलेशन और रन करना
- installation requirements इस प्रकार हैं
- Linux या Unix आधारित operating system
-
Git 2.34 या उससे ऊपर
ssh-agent सहित OpenSSH 9.1 या उससे ऊपर
- binary installation के लिए
curl और tar की आवश्यकता है, और latest release निम्न command से install की जाती है
curl -sSf https://radicle.dev/install | sh
- binaries [download](https://radicle.dev/download) page से भी प्राप्त की जा सकती हैं
- source से install करने के लिए **Rust toolchain** की आवश्यकता होती है, और repository के भीतर निम्न commands चलाए जाते हैं
cargo install --path crates/radicle-cli --force --locked --root ~/.radicle
cargo install --path crates/radicle-node --force --locked --root ~/.radicle
cargo install --path crates/radicle-remote-helper --force --locked --root ~/.radicle
- सीधे seed node से भी install किया जा सकता है
cargo install --force --locked --root ~/.radicle \
--git https://seed.radicle.dev/z3gqcJUoA1n9HaHKufZs5FCSGazv5.git \
crates/radicle-cli crates/radicle-node crates/radicle-remote-helper
- node के लिए **systemd unit** files `/systemd` folder में हैं, और इन्हें अतिरिक्त customization की शुरुआत के बिंदु के रूप में उपयोग किया जा सकता है
- debug mode में चलाने के लिए [HACKING.md](https://radicle.network/nodes/iris.radicle.network/rad%3Az3gqcJUoA1n9HaHKufZs5FCSGazv5/tree/HACKING.md) देखें
फीडबैक, योगदान, लाइसेंस
- feedback
rad issue, Zulip, या feedback@radicle.dev पर भेजा जा सकता है
- email से भेजा गया feedback Zulip के public #feedback channel में अपने-आप पोस्ट हो जाता है
- पोस्टिंग प्रक्रिया में
From header सार्वजनिक हो जाता है, जिसमें आमतौर पर नाम और email address शामिल होते हैं
- योगदान मार्गदर्शिका CONTRIBUTING.md और HACKING.md में है
- Radicle को MIT License और Apache License 2.0 की शर्तों के तहत वितरित किया जाता है
- विस्तृत जानकारी LICENSE-APACHE और LICENSE-MIT में है
1 टिप्पणियां
Hacker News की रायें
मैं Radicle का सह-संस्थापक हूँ। अगर प्रोटोकॉल की अंदरूनी कार्यप्रणाली के बारे में जानना हो, तो पहले docs देखें: https://docs.radicle.xyz/
docs अभी लिखे जा रहे हैं
अगर यह मूल रूप से P2P file sharing app है, तो abuse को protocol के किस हिस्से में handle किया जाता है, यह जानना चाहूँगा। वरना यह BitTorrent या Winny जैसी पिछली पीढ़ी की file sharing apps से कैसे अलग है, जिनमें लोग movies, music, software जैसी copyrighted content मनमाने ढंग से share करते थे, यह समझ नहीं आता। लगता है कुछ malicious users इसे खराब कर देंगे, और यह भी जानना चाहूँगा कि क्या “private” network अलग किए जा सकते हैं ताकि यह भरोसा हो सके कि हम किसी illegal चीज़ में शामिल नहीं हैं
Crunchbase पर लिखा है कि इन्हें 12 million dollars funding मिली है, तो शायद monetization की कोई योजना होगी
जिन प्रकार के projects में मैं मदद करता हूँ, उनके लिए यह fatal हो सकता है। Code Rust में दिखता है, तो जानना चाहूँगा कि MS Windows support की कोई योजना है या नहीं। Mac OS को Unix family में शामिल मान सकते हैं, है न? Official Windows support न भी हो, तो क्या MSYS2 port संभव है?
थोड़ा background जोड़ूँ तो, मैं service provider selection जैसे फैसले लेने की position में नहीं हूँ, और एक semi-government organization से जुड़ा हूँ जिसने GitHub पर काफी open source codebase रखा हुआ है। कभी-कभी कुछ ideas suggest करने का मौका मिलता है, लेकिन adoption मेरे अधिकार में नहीं है। इस organization की motivation private provider policies के प्रभाव से बचने वाली resilience बनाने की है, और sustainability या broad accessibility जैसे “अच्छे काम” भी करना चाहती है। एक typical European government organization होने के कारण GitHub ऐसी policies से टकराता है।
Archiving या network support संभालने वाली दूसरी government agencies भी हैं, लेकिन उनकी capabilities कम हैं या वे पुराने तरीकों में अटकी हैं, और providers द्वारा बिछाए गए traps में भी अक्सर फँसती हैं। उदाहरण के लिए, archiving service ने यह जाने बिना ही DataBricks को पूरी तरह अपना लिया कि वह commercial closed-source product है। इसलिए उस organization से self-hosting solution का अच्छा उपयोग करने की उम्मीद कम है, और distributed solution बेहतर दिखता है। लेकिन कोई tool जो major consumer PC environments पर न चले, इस्तेमाल नहीं किया जा सकता
यह भी जानना चाहूँगा कि पहले और अब adoption के किस level की उम्मीद थी, और actual results उन expectations से मेल खाते हैं या नहीं
Radicle पिछले करीब 5 सालों में कैसे evolve हुआ है, यह देखना दिलचस्प रहा। मैंने Protocol Berg 2023 workshop attend की थी, और मुझे लगता है कि उन्होंने काफी powerful और नया कुछ बनाया है।
खास तौर पर दिलचस्प बात यह है कि collaboration features भी local-first हैं। Internet न होने पर भी patches और issues submit किए जा सकते हैं, और GitHub में कोई समस्या आते ही पूरी team को HN से चिपके रहने की जरूरत नहीं पड़ती
उद्देश्य के हिसाब से यह ठीक project लगता है, लेकिन मुझे लगता है कि Git खुद भी पहले से open source और P2P है। Binaries को
sh <(curl)से लेने की जरूरत नहीं; किसी दूसरे Git server से connect करके Git commands से सीधे code ला या merge कर सकते हैं।Git में जो नहीं है, वह code issues, wiki, discussions, GitHub Pages, और सबसे बढ़कर developer profiles का network है। ऐसा तरीका चाहिए जिसमें project metadata को
.gitमें ही रखा जा सके, ताकि source code commits wiki या issues के साथ mix न हों।git notesजैसे independent references शायद काम आ सकते हैं।https://git-scm.com/docs/git-notes
उदाहरण के लिए,
git cloneसे मिली repository वही है जो मैंने मांगी थी, इसे verify करने का कोई तरीका नहीं है। इसलिए किसी trusted source, यानी known server से clone करना पड़ता है। यह practical P2P से मेल नहीं खाता।Radicle इस समस्या को locally verifiable stable repository identifier[0] देकर हल करता है, और untrusted entities को repositories provide करने देता है।
[0]: https://docs.radicle.xyz/guides/protocol#trust-through-self-...
Mobile पर original link के नीचे दिए buttons दबाने पर issue tracking tab, pull request tab आदि दिख सकते हैं
मुझे याद है कि Gerrit पहले code reviews को Git में store करता था
दस्तावेज़ में लिखा है कि “केवल वही repository publish करना ज़रूरी है जिसके आप owner या maintainer हैं, और दूसरे maintainers से communicate करना ज़रूरी है ताकि duplicate repository identifiers न बनें”
मैंने ऐसे लोगों को देखा है जो मेरा code उठाकर GitHub पर डाल देते हैं, और product docs या बीच की UI में “कृपया X न करें, इससे दूसरे users को समस्या होगी” जैसी सूचना डालने पर भी बहुत लोग उसे पढ़ते नहीं, सोचते नहीं, परवाह नहीं करते और सीधे X कर देते हैं। इसलिए लगता है कि बहुत से लोग docs की इस request का पालन नहीं करेंगे; ऊपर से homepage सिर्फ code push करने का तरीका बताता है, और यह “महत्वपूर्ण” request user guide में है जिसे लोग शायद ही पढ़ते हैं
अंत में, homepage के निर्देशों के मुताबिक जिस open source code पर काम चल रहा है उसे बस push कर देना—जो काफी तर्कसंगत लगने वाला व्यवहार है—protocol और storage के तरीके की वजह से समय के साथ किसी महत्वपूर्ण चीज़ को बिगाड़ या confusing बना सकता है, यही बात काफी चिंताजनक है
GitHub पर stars की संख्या से अतिरिक्त भरोसा मिल सकता है, और Radicle में उसका equivalent किसी specific repository के seeds की संख्या है
आम तौर पर एक दिन की computing में हम दर्जनों prompts देखते हैं, और दर्जनों tools इस्तेमाल करते हैं। उन सभी prompts को पढ़ने और हर tool के docs को ध्यान से पढ़ने में लगने वाले समय के बारे में सोचें तो वह बहुत ज़्यादा होगा
इसलिए न पढ़कर heuristics इस्तेमाल करना कहीं बेहतर है। उदाहरण के लिए, अगर आप unsaved changes वाले document को बंद करते हैं, तो पता होता है कि dialog “discard?” जैसा होगा, इसलिए उसे पढ़ने की ज़रूरत नहीं। यह अच्छी बात है
निष्कर्ष यह है कि software design करते समय यह मानकर चलना चाहिए कि लोग ऐसे ही behave करते हैं। आम तौर पर यह संभव होता है। अगर कोई specific example हो, तो “कृपया करें और उम्मीद करें कि लोग पढ़ेंगे” वाली approach से बेहतर solution सुझाया जा सकता है
release के लिए बधाई। मैं इस project को देखता आया हूँ और यह काफी mature हो गया है, यह देखकर सच में उत्साह है। अभी GitHub पर मौजूद project को migrate करने का सबसे अच्छा तरीका क्या है, यह जानना चाहता हूँ। यह भी जानना चाहता हूँ कि try करने के लिए कोई mirror mode है या नहीं
cronjob set करना इतना simple होना चाहिएgit pull github mastergit push rad masterआम users के लिए ये repositories कितनी discoverable होंगी, यह जानना चाहता हूँ। https://app.radicle.xyz/robots.txt नहीं दिख रहा, इसलिए लगता है कि search engines इसे fetch कर सकते हैं, और सच में Google और DDG पर
site:app.radicle.xyzसे search करने पर results आते हैंअभी site filter के बिना top पर नहीं आते, लेकिन ranking बेहतर हो सकती है
CI support और integration करने वाले tools भी हों तो अच्छा होगा। ultimately यह
while true; do wait_repo_update; git pull && ./run_ci.sh; doneजैसे loop जैसा होगा, लेकिन इसका बेहतर रूप चाहिए जो सिर्फ trusted identifiers के pushes तक limited हो सकेअंत में artifact storage भी चाहिए। हालांकि Radicle को हर चीज़ solve करने की ज़रूरत शायद न हो। खासकर बड़े binaries share करने वाला distributed network काफी जल्दी unwanted uses के लिए इस्तेमाल होने लगेगा
app.radicle.xyzजैसे gateways को शायद crawlers को network की पूरी repository set index करने की अनुमति देनी चाहिए“P2P” या ज्यादा आम तौर पर कहें तो “distributed” का ठीक-ठीक मतलब क्या है, लोग इसे साफ define करें तो अच्छा होगा। अभी यह इतना अस्पष्ट buzzword बन गया है कि इसे किसी भी मतलब में इस्तेमाल किया जा सकता है
इसलिए P2P system वह system है जिसमें सभी participants के पास “network के भीतर समान अधिकार” होते हैं। आम तौर पर इसका मतलब यह भी होता है कि सभी वही software run करते हैं
[0]: https://en.wikipedia.org/wiki/Peer-to-peer
इंस्टॉलेशन निर्देश
curl -sSf [https://radicle.xyz/install](<https://radicle.xyz/install>) | shहैं—उम्मीद तुरंत curl-bash कचरे में ढह गईइस तरह का इंस्टॉलेशन तरीका बिना सोचे-समझे development का मजबूत संकेत है। अगर यह project लोकप्रिय हुआ तो शायद हमें एक security disaster देखने को मिलेगा। उम्मीद है कि किसी दिन “open-source P2P GitHub alternative” आएगा जो सबसे खराब इंस्टॉलेशन तरीके से शुरू नहीं होगा
pipe installer के जोखिम बहुत से लोगों को अच्छी तरह पता हैं। उस logic से तो Homebrew [1](GitHub पर 38 हजार से अधिक stars), PiHole [2](46 हजार से अधिक), Chef [3], RVM [4] और
bashमें pipe करने वाले 1-step automatic installer इस्तेमाल करने वाले अनगिनत open-source projects को छोड़ देना चाहिएज्यादा उचित प्रतिक्रिया यह होगी कि developers के साथ मिलकर docs में alternative installation methods दिए जाएँ या risks को बेहतर ढंग से समझाया जाए, न कि एक छोटे मुद्दे के लिए पूरा घर जला दिया जाए
[1] https://brew.sh/
[2] https://github.com/pi-hole/pi-hole
[3] https://docs.chef.io/chef_install_script/#run-the-install-sc...
[4] https://rvm.io/rvm/install
transfer बीच में रुक जाने वाली समस्या के बारे में, जब तक आपके system में
^(t(e(m(p(d(ir?)?)?)?)?|a(r(g(et?)?)?)?)?|i(n(_(p(a(th?)?)?)?|fo?)?)?|s(u(c(c(e(s?s)?)?)?)?)?|f(a(t(al?)?)?)?|m(a(in?)?)?|w(a(rn?)?)?|u(rl?)?)से match करने वाली कोई खतरनाक command नहीं है, script safe हैउसे handle करने के बाद, मुझे समझ नहीं आता कि सिर्फ script देना और run command न देना—इनमें फर्क क्या है। अगर review करना है तो script download करके अलग से चला सकते हैं। शायद piped script और downloaded script को detect करने का कोई तरीका था, लेकिन इतनी छोटी script पर शायद काम नहीं करेगा
[0] https://files.radicle.xyz/latest/
[1] https://app.radicle.xyz/nodes/seed.radicle.garden/rad:z3gqcJ...
crypto market जब भी ऊपर जाता है, मुझे Radicle की चर्चा सुनाई देती है। क्या कोई इसे seriously इस्तेमाल कर रहा है?
यह तो झट से downvote हो गया। मैं सच में पूछ रहा हूँ—Radicle में कितना budget लगा, कितने लोगों ने इस पर काम किया, और इसे कौन इस्तेमाल कर रहा है?
मैं crypto industry में काम करता हूँ और मुझे भी यही impression मिला। Radicle के बारे में आखिरी बार पिछले bull market में सुना था, और bear market में यह शांत रहा। सब कहते हैं कि bear market बनाने का समय होता है, और Radicle तो साफ तौर पर developer tool है, इसलिए यह काफी अजीब है
उत्सुक हूँ कि क्या सिर्फ खास nodes के set को repository उपलब्ध कराने वाले use case को support करने की योजना है। शायद ऐसे लोग होंगे जो GitHub पर नहीं रहना चाहते, लेकिन private collaboration करना चाहते हैं
हालांकि storage के समय यह encrypted नहीं होता, इसलिए इसे trust set में शामिल न होने वाले intermediary nodes पर store नहीं किया जा सकता