- Yggdrasil एक ऐसा नेटवर्क है जो structured routing protocol के decentralized विकल्प का प्रयोग करता है, और बड़े पैमाने के mesh network को ध्यान में रखकर compact routing का उपयोग करता है
- वर्तमान implementation एक आसान-से-configure होने वाला हल्का user-space software router है, जो प्रतिभागियों के बीच end-to-end encrypted IPv6 routing को जोड़ता है
- node peering को LAN, point-to-point link, और इंटरनेट पर TCP/TLS connection के जरिए बनाया जा सकता है, और वास्तविक peering IPv4 या IPv6 पर संभव है
- इसकी विशेषताएँ हैं बड़े पैमाने की topology, failure और mobility event recovery, हमेशा चालू end-to-end encryption, बिना किसी central point के P2P operation, और कई operating system का support
- यह अभी भी alpha stage में है, इसलिए compatibility break होने की संभावना बनी हुई है, लेकिन रोज़मर्रा के उपयोग के लिए यह सामान्यतः स्थिर है और कुछ उपयोगकर्ता इसे कड़े stress test में इस्तेमाल कर रहे हैं
Yggdrasil जिन networking समस्याओं को हल करना चाहता है
- Yggdrasil एक नया experimental compact routing तरीका है
- इसका लक्ष्य इंटरनेट में आमतौर पर इस्तेमाल होने वाले structured routing protocol का future-oriented, decentralized alternative बनना है
- इसे भविष्य में बड़े पैमाने के mesh network को संभव बनाने वाली तकनीक के रूप में डिज़ाइन किया गया है
-
नेटवर्क डिज़ाइन की विशेषताएँ
- Scalability: यह बड़े और जटिल topology या इंटरनेट-स्तर की topology को support करता है
- Self-healing: यह connection failure या mobility event पर तेज़ी से प्रतिक्रिया करता है
- Encryption: नेटवर्क से गुजरने वाला traffic हमेशा पूर्ण end-to-end encryption का उपयोग करता है
- P2P: यह बिना किसी built-in central point के ad-hoc तरीके से काम करता है
- Cross-platform: यह Linux, macOS, Windows, iOS, Android आदि को support करता है
implementation का तरीका और नेटवर्क में भागीदारी
- वर्तमान implementation एक हल्का user-space software router है
- इसे configure करना आसान है और यह विभिन्न platform को support करता है
- यह सभी network participants के बीच end-to-end encrypted IPv6 routing को जोड़ता है
- nodes के बीच peering को TCP/TLS connection के रूप में बनाया जा सकता है
- इसे local area network, point-to-point link, और इंटरनेट पर इस्तेमाल किया जा सकता है
- Yggdrasil Network nodes के बीच IPv6 routing प्रदान करता है, लेकिन peering connection स्वयं IPv4 या IPv6 network पर सेट किया जा सकता है
- project अभी भी alpha stage में है
- भविष्य में compatibility break हो सकती है
- फिर भी यह रोज़मर्रा के उपयोग के लिए सामान्यतः स्थिर है
- कुछ उपयोगकर्ता इसे विभिन्न उद्देश्यों के लिए गहन रूप से इस्तेमाल करते हुए stress test कर रहे हैं
-
शुरुआत और योगदान के रास्ते
- installation और configuration के माध्यम से आप अपने personal computer या router से नेटवर्क में भाग ले सकते हैं
- आप उपयोगकर्ताओं द्वारा संचालित नेटवर्क के भीतर internal services को देख सकते हैं
- developer page और GitHub के जरिए project में योगदान किया जा सकता है
- bug और समस्याएँ GitHub Issues पर report की जा सकती हैं
1 टिप्पणियां
Hacker News की राय
वेबसाइट और GitHub पर मैंने सबसे पहले protocol specification ढूंढी, ताकि इसे reference implementation से स्वतंत्र रूप से implement किया जा सके, लेकिन scheme/protocol के तौर पर प्रचार करने के बावजूद कहीं भी specification लिंक नहीं थी
खुद खंगालने पर मुझे किसी दूसरे GitHub प्रोजेक्ट की side branch में [1] मिला, और लेखक को इसके लिए सराहना. इसमें cryptographic identity, message format, transport protocol, peering और stream semantics, spanning tree updates और root selection, DHT, forwarding logic, sessions वगैरह जैसी ज़रूरी चीजें काफी अच्छी तरह शामिल हैं
हालांकि root update verification/signing method जैसी TODO चीजें हैं, और next hop selection में tie handling algorithm को लेकर अस्पष्टता है. साथ ही हर packet को reliably और in-order deliver होना चाहिए और MTU में फिट करने के लिए छोटे packets में fragment किया जा सकना चाहिए, इसलिए transport layer TCP से काफी मजबूती से जुड़ी हुई लगती है
[1] https://github.com/yggdrasil-network/yggdrasil-specs/blob/ys...
v0.4 में DHT काफी बदला, और v0.5 में DHT को पूरी तरह हटा दिया गया. यह एक research project है, इसलिए जब तक कोई अधिक संतोषजनक design नहीं मिल जाता, इसके बदलते रहने की संभावना ज्यादा है, और उस समय हम documentation पर निश्चित रूप से अधिक समय लगाएंगे
ordered/reliable links की जरूरत फिलहाल development convenience के लिए काफी हद तक है, लेकिन वह हिस्सा निश्चित रूप से ठीक किया जा सकता है
मेरी समझ के मुताबिक yggdrasil और cjdns मौजूदा Internet के ऊपर बने virtual P2P networks हैं, और सामान्य layer-3 routing service देते हैं
इसलिए अभी भी ISP और Internet backbone वगैरह की जरूरत रहती है. क्या कोई ऐसा project है जो Verizon या Cisco routers के बिना चल सके, यानी IP layer को replace करने वाला worldwide P2P network बनाने की कोशिश कर रहा हो?
छोटे disconnected networks के लिए mesh network technologies कुछ जानता हूं, लेकिन consumer-targeted और हजारों nodes से ज्यादा support करने वाली चीजों के बारे में ज्यादा पता नहीं
https://github.com/cjdelisle/cjdns/blob/master/doc/Whitepape... का पहला paragraph देखें. दुर्भाग्य से वह routing method व्यवहार में पर्याप्त scalable नहीं निकला. Yggdrasil अलग routing algorithm इस्तेमाल करता है, इसलिए शायद उसमें संभावना हो सकती है
इस तरीके के बहुत फायदे हैं, खासकर adoption आसान हो जाता है. अब legacy apps के लिए telephone network को IP के ऊपर चलाया जाता है. अगर यह Yggdrasil सफल होता है, तो मुझे लगता है कि अंततः legacy systems के लिए IP को इसके ऊपर चलाया जाएगा
यह कई समस्याओं में से एक नहीं, बल्कि design की एक मूलभूत सीमा है. Internet (ARPAnet) भी शुरुआत में mesh network के रूप में शुरू हुआ था, और इसी scalability problem को हल करने के लिए trunk, backbone और routing जैसी concepts आईं
या आपका मतलब “Internet” के ऊपर नहीं, बल्कि किसी अलग network के ऊपर IP layer से है? अगर ऐसा है, तो जानना चाहूंगा कि आप लोगों को एक-दूसरे से कैसे जोड़ना चाहते हैं. जैसे-जैसे scale बढ़ता है, mesh routing की वजह से mesh inefficient हो जाता है, और अंततः जल्द ही आप “अपना Internet” फिर से invent कर बैठते हैं. हालांकि दुनिया को सच में जोड़ने के resources नहीं होंगे, इसलिए वह global नहीं हो पाएगा
उस समय यह 2009–2010 के Pirate Bay फैसले पर एक idealistic/anarchist प्रतिक्रिया जैसा था. मेरी याद में cjdns थोड़ा बाद में आया और group के ज्यादातर लोगों को अपने में समेट लिया
किसे पता था कि नाराज hackers और software pirates मिलकर अगर और भी घटिया Internet बनाएंगे, तो वह ज्यादा दिन नहीं चलेगा?
[0] https://en.m.wikipedia.org/wiki/Athens_Wireless_Metropolitan...
संबंधित लिंक:
Yggdrasil Network - https://news.ycombinator.com/item?id=41669625 - सितंबर 2024, 3 टिप्पणियां
Yggdrasil P2P mesh E2EE IPv6 network - https://news.ycombinator.com/item?id=30156551 - जनवरी 2022, 77 टिप्पणियां
Yggdrasil – Early-stage implementation of an end-to-end encrypted IPv6 network - https://news.ycombinator.com/item?id=27577201 - जून 2021, 102 टिप्पणियां
Show HN: Yggdrasil Network – compact mesh routing experiment for mesh networks - https://news.ycombinator.com/item?id=18863554 - जनवरी 2019, 15 टिप्पणियां
Announcing Yggdrasil Network v0.3 - https://news.ycombinator.com/item?id=18751991 - दिसंबर 2018, 3 टिप्पणियां
Yggdrasil: End-To-end Encrypted IPv6 Networking - https://news.ycombinator.com/item?id=18666245 - दिसंबर 2018, 1 टिप्पणी
अगर आपको firewall/NAT पार कर सकने वाला असली mesh P2P IP network चाहिए, तो Tailscale/Headscale इस्तेमाल कर सकते हैं
अगर आप encryption keys से address किए जाने वाला P2P connection network चाहते हैं, तो अपेक्षाकृत हाल के projects में एक है जो यह काफी अच्छी तरह करता है: https://www.iroh.computer
यह firewall/NAT पार करके QUIC connection बनाता है। पहले से इस्तेमाल लायक दो proof of concept भी हैं:
https://github.com/n0-computer/sendme
https://github.com/n0-computer/dumbpipe
क्या इसके फायदे हैं? अगर मकसद बस personal lightweight private VPN चलाना है, तो Tailscale शानदार है, और अगर आप network को खुद host करना चाहते हैं तो Headscale भी है, जिसके काफी फायदे हैं
3–4 साल पहले मुझे इससे काफी उम्मीद थी, लेकिन अब यह कुछ हद तक छोड़ा हुआ project जैसा दिखता है। जानना चाहूंगा कि क्या कोई इसे सच में इस्तेमाल करता है और उनका अनुभव कैसा है
पिछले साल के अंत में हमने नए protocol design वाला 0.5 version निकाला था, और करीब एक महीने पहले link cost में बदलाव के साथ 0.5.9 release किया, जिससे network latency में काफी सुधार हुआ
मैं इसे अपने phone और home network को जोड़ने वाले VPN की तरह इस्तेमाल करता हूं, और दोनों को एक VPS से private तौर पर peer कराया हुआ है
घर से सीधे connect करने की तुलना में यह थोड़ा ज्यादा जटिल है, लेकिन dynamic IP, port forwarding और WireGuard key exchange की चिंता करने से setup आसान था
multicast peering ठीक काम करता है, इसलिए घर पर होने पर भी मैं उसी Ygg IP से home server तक सीधे पहुंच सकता हूं। दिक्कत यह है कि IP इस्तेमाल करना पड़ता है। iOS app Ygg VPN connection के लिए custom DNS server setting support नहीं करता
इस use case के लिए Headscale असल में बेहतर समाधान है, लेकिन सिर्फ एक peering जोड़ने से alternative internet मिल जाना काफी मजेदार है
मैं अब अपने सभी devices पर yggdrasil इस्तेमाल करता हूं, ताकि NAT के पीछे होने पर भी वे एक-दूसरे में ssh से connect हो सकें
Android पर termux और yggdrasil Android app इस्तेमाल करके, चलते-फिरते भी files को किसी cloud में store किए बिना घर के computer पर मौजूद files access कर सकता हूं
development काफी active है, और latest release में routing algorithm को lowest-latency hop को prefer करने के लिए बेहतर किया गया, जिससे noticeable improvement मिला
अगर आप network के अंदर कोई बड़ा community hub expect कर रहे हैं तो निराश हो सकते हैं, लेकिन खुद एक बना भी सकते हैं। बहुत लोग इसे अपनी जरूरत के हिसाब से इस्तेमाल करते हैं और project छोड़ा हुआ होने से बहुत दूर है
मुझे लगा था कि यह कोई Linux distribution है
https://en.m.wikipedia.org/wiki/Yggdrasil_Linux/GNU/X
इस क्षेत्र में Reticulum Network Stack भी है: https://reticulum.network/
FAQ में लिखा है, “क्या Yggdrasil anonymous है? नहीं, Yggdrasil project का लक्ष्य anonymity देना नहीं है।”
मैं समझता/समझती हूँ कि समस्या कठिन है और इसे हल करने के लिए सिर्फ़ technical issue से आगे के मुद्दे भी हैं, लेकिन सच कहूँ तो मेरे लिए यह शुरुआत में ही बाहर हो जाता है। मेरे हिसाब से अगर यह असली Internet का evolution है, तो इसमें व्यावहारिक anonymity शामिल होनी चाहिए।
उसे हटा दें, तो मुझे समझ नहीं आता कि मौजूदा setup में यह existing Internet की कौन-सी ऐसी समस्या सच में हल करता है जो पहले से हल नहीं हुई है।
anonymous networks में आम तौर पर cost और overhead बहुत ज़्यादा होते हैं, क्योंकि छिपाने के लिए जानबूझकर लंबे और indirect routes बनाए जाते हैं। Tor circuits की कुल मिलाकर कम performance और reliability देखकर समझ आता है कि हम पूरा Internet उस तरह operate क्यों नहीं करवाना चाहेंगे।
Yggdrasil network चलाकर उसके अंदर I2P network operate न कर पाने की कोई वजह नहीं है। तब जिन communications को anonymity की ज़रूरत नहीं है उनमें performance loss कम होगा, और anonymous peers भी clearnet पर आए बिना बनाए जा सकेंगे।
यह idea कि address public key से derived होता है, सच में अच्छा है, लेकिन इस approach में समस्या है। क्योंकि Yggdrasil अभी IPv6 addresses इस्तेमाल करता है, length बहुत limited है और collisions ढूँढे जा सकते हैं।
एक workaround है जिसमें brute force से ऐसी key ढूँढी जाती है जिसमें leading bits ज़्यादा हों। मेरी समझ के अनुसार long-term plan ऐसा custom protocol जोड़ने का है जिसमें address length की limit न हो।
लेकिन पहले से इस्तेमाल हो रहे address set से collide करवाना अभी भी अव्यावहारिक लगता है। Yggdrasil के context में पहला मामला असल में कितना बड़ा issue होगा?
फिर भी फिलहाल इसका मतलब है कि लगभग सभी existing IPv6-supported applications बिना modification के Yggdrasil पर चलती हैं, और testnet के लिए यह अच्छी property है।
लिखा है, “Yggdrasil is a new experimental compact routing scheme”, लेकिन अब यह इतना नया तो नहीं रहा, है न? कम से कम 6 साल हो चुके हैं।