कल्पना कीजिए कि आप नवीनतम मीम्स डाउनलोड कर रहे हैं, और आप डाउनलोड खत्म होने का धैर्यपूर्वक इंतजार कर रहे हैं। मीम, निश्चित रूप से, आग है, इसलिए आप अपने दोस्तों को एक लिंक भेजते हैं। वे आपके फोन से फाइल प्राप्त करते हैं, फिर अपने दोस्तों के साथ साझा करना शुरू करते हैं। इस बिंदु पर, मीम कुछ दर्जन उपकरणों पर रह रहा है, इसलिए जब कोई नया व्यक्ति लिंक प्राप्त करता है, तो वे वास्तव में कई अन्य लोगों से जुड़ते हैं और उनमें से प्रत्येक से कुछ टुकड़े प्राप्त करते हैं, जिससे डाउनलोड बहुत तात्कालिक हो जाता है।
इंटरप्लेनेटरी फाइल सिस्टम की बदौलत, यह बहुत वास्तविक, आश्चर्यजनक रूप से उपयोग में आसान सिस्टम एक तेज, अधिक लोकतांत्रिक इंटरनेट की हमारी कुंजी हो सकती है। जैसा कि ऊपर वर्णित है, मूल विचार यह है कि उपयोगकर्ता उपकरण वर्तमान में केंद्रीकृत सर्वर पर रहने वाले डेटा को संग्रहीत, इंडेक्स, और वितरित करेंगे। यदि यह थोड़ा क्रिप्टोकरेंसी जैसा लगता है, तो आप गलत नहीं हैं - परियोजना के पीछे के व्यक्ति, जुआन बेनेट ने IPFS को "एक अर्थ में, वेबसाइटों के साथ... वही करने के रूप में वर्णित किया है जो बिटकॉइन ने पैसे के साथ किया था।"
इंटरप्लेनेटरी फाइल सिस्टम क्या है?
यदि आप जानते हैं कि BitTorrent या कोई अन्य P2P (पीयर-टू-पीयर) तकनीक कैसे काम करती है, तो आप IPFS क्या कर रहा है इसे समझने के अधिकांश रास्ते पर हैं। यह फ़ाइलों (HTML, CSS, और JavaScript फ़ाइलों सहित जो अधिकांश वेबसाइटों को बनाते हैं) और फ़ाइलों के टुकड़ों को उपयोगकर्ता उपकरणों के बीच भेज रहा है, बहुत कुछ वैसे ही जैसे आप पूरी तरह से कानूनी रूप से सार्वजनिक डोमेन संगीत का टोरेंट करेंगे।
इसका मतलब है कि किसी साइट को देखने के लिए सर्वर से कनेक्ट करने के बजाय, आप बस यह जांचते हैं कि क्या आपके पास कोई पेज (या इसके कुछ टुकड़े) संग्रहीत कर रहा है और आप इसके बजाय उनसे कनेक्ट करते हैं। एक बार जब आप पेज डाउनलोड कर लेते हैं, तो आपका डिवाइस इसे थोड़ी देर के लिए संग्रहीत करेगा ताकि अन्य लोग इसे (या इसके टुकड़े) आपसे प्राप्त कर सकें। यह थोड़ा जटिल लगता है, लेकिन यह वास्तव में HTTP प्रोटोकॉल का उपयोग करके एकल सर्वर-क्लाइंट पाइपलाइन पर डेटा भेजने की हमारी वर्तमान प्रणाली की तुलना में बहुत अधिक कुशल साबित होता है।
यह शानदार क्यों है?
IPFS के पारंपरिक वेब पर कुछ बड़े फायदे हैं:
- तेज और अधिक कुशल कंटेंट डिलीवरी: आप भौगोलिक रूप से करीबी कई स्रोतों से फ़ाइलों के टुकड़े डाउनलोड कर सकते हैं, यात्रा समय और बैंडविड्थ को कम कर सकते हैं।
- विकेंद्रीकरण: कोई एकल स्रोत डेटा या उस तक पहुंच को नियंत्रित नहीं कर सकता।
- सूचना संरक्षण: चूंकि कोई एकल सर्वर सभी डेटा को संग्रहीत नहीं करता, यह बस गायब नहीं हो सकता और आपके सभी, जैसे, GeoCities वेबसाइटों को अपने साथ ले जा सकता है।
- खराब कनेक्टिविटी वाले क्षेत्रों में तेज और अधिक स्थिर कनेक्शन: जब तक आप जो कंटेंट चाहते हैं वह कहीं डाउनलोड किया गया है जहां आप पहुंच सकते हैं, आपको वास्तव में लंबी दूरी का कनेक्शन बनाने की आवश्यकता नहीं है, जो छिटपुट या समझौता किए गए कनेक्शन वाले क्षेत्रों में बड़े पैमाने पर मददगार होगा।
- सेंसरशिप प्रतिरोध: पूर्ण नहीं, लेकिन केंद्रीकृत मॉडल से बेहतर।
यह कैसे काम करता है: संक्षिप्त संस्करण
कोई भी अभी IPFS नेटवर्क का उपयोग कर सकता है, क्योंकि यह बहुत उपयोगकर्ता-अनुकूल हो गया है। यहां क्या होता है:
- जब आप IPFS में एक फ़ाइल जोड़ते हैं, तो फ़ाइल ब्लॉकों में विभाजित हो जाती है, जिनमें से प्रत्येक को एक एल्गोरिदम के माध्यम से चलाया जाता है और एक अद्वितीय ID दिया जाता है। इन ब्लॉक IDs सहित पूरी फ़ाइल को भी एक ID दिया जाता है। प्रारंभ में, आपकी मशीन ही एकमात्र स्थान होगी जहां से लोग फ़ाइल प्राप्त कर सकते हैं, लेकिन अन्य नोड्स (मशीनें) भी इसे उठा सकते हैं और वितरित कर सकते हैं।
- यदि नेटवर्क नोटिस करता है कि आपका कुछ डेटा वहां पहले से संग्रहीत कंटेंट के समान है, तो यह उसकी कॉपी जोड़ने के बजाय बस उसका उपयोग करता है। मान लीजिए आप अपने द्वारा रिकॉर्ड किए गए एल्बम का "डीलक्स एडिशन" होस्ट कर रहे हैं। दस गाने आपके द्वारा पहले से रिकॉर्ड किए गए एल्बम के समान हैं, लेकिन उनमें से दो नए हैं, इसलिए जब आप उन्हें IPFS में जोड़ते हैं, तो सिस्टम डुप्लिकेट ट्रैक को पहचान लेगा और उनके लिए मौजूदा IDs का उपयोग करेगा, केवल दो नए गानों के लिए नए IDs जोड़ देगा।
- नेटवर्क पर प्रत्येक नोड कुछ डेटा संग्रहीत करता है (शायद वह डेटा जिसे नोड वितरित करना चाहता है, साथ ही वह डेटा जिसे नोड ने हाल ही में खोला है) और एक इंडेक्स का हिस्सा जो लोगों को नेटवर्क पर कंटेंट ढूंढने में मदद करता है।
- यदि आप कोई फ़ाइल खोलना चाहते हैं, तो आप नेटवर्क से उसके ID को देखने और आपको जो कोई भी इसे रखता है उससे जोड़ने के लिए कहते हैं। IPNS नामक एक नामकरण प्रणाली मानव-पठनीय नामों को मशीन-पठनीय IDs में बदलने में मदद करती है जिन्हें सिस्टम खोजेगा।
और भी सरल अनुवाद: IPFS डेटा के हर टुकड़े को एक नाम देता है, एक सूची बनाता है कि वह डेटा किसी भी समय कहां रह रहा है, और उपकरणों को डेटा को सीधे एक-दूसरे को भेजने में मदद करता है।
यह कैसे काम करता है: तकनीकी संस्करण
तीन मुख्य चीजें हैं जो IPFS को चलाती हैं: कंटेंट एड्रेसिंग डेटा को एक पहचान देती है, Merkle-DAGs इसे संरचना देते हैं, और डिस्ट्रिब्यूटेड हैश टेबल्स आपको बताते हैं कि इसे कहां ढूंढना है।
कंटेंट एड्रेसिंग: क्या, कहां नहीं
हमारे अधिकांश वर्तमान कंटेंट के स्थान-आधारित पते हैं (C:/Users/Username/Documents, 192.124.249.3, आदि.) जो हमें बताते हैं कि डेटा ढूंढने के लिए कहां जाना है। यह वास्तव में विकेंद्रीकृत प्रणाली में काम नहीं करेगा, क्योंकि कंटेंट बहुत अधिक कहीं भी संग्रहीत किया जा सकता है, इसलिए IPFS और BitTorrent जैसे सिस्टम इसके बजाय "कंटेंट एड्रेसिंग" का उपयोग करते हैं।
कंटेंट-एड्रेसिंग सिस्टम डेटा के एक टुकड़े को एक एल्गोरिदम के माध्यम से चलाकर काम करता है जो इसे एक अद्वितीय ID, या हैश देता है। फ़ाइल की हर समान कॉपी का वही ID होगा, जिसका अर्थ है कि जब IPFS इसे खोजता है, तो यह नेटवर्क पर संग्रहीत हर उदाहरण को ढूंढ सकता है।
Merkle-DAGs: हर चीज का एक CID है, और वे सभी जुड़े हुए हैं
जितना यह एक जर्मन राजनीतिक पार्टी की तरह लगता है, एक Merkle-DAG (डायरेक्टेड एसाइक्लिक ग्राफ) वास्तव में डेटा को व्यवस्थित करने का एक तरीका है। इस प्रणाली में डेटा के हर टुकड़े का अपना कंटेंट ID (CID) होता है: फ़ोल्डर, फ़ाइलें, फ़ाइलों के अंदर डेटा के ब्लॉक - सब कुछ। इसका मतलब है कि फ़ाइलों को अलग-अलग भागों में विभाजित किया जा सकता है, प्रमाणित किया जा सकता है, और पुनः संयोजित किया जा सकता है।
IPFS डॉक्यूमेंटेशन इसे "टर्टल्स ऑल द वे डाउन परिदृश्य" के रूप में वर्णित करता है, क्योंकि सब कुछ CID द्वारा पहचाने जाने योग्य डेटा के संग्रह में विभाजित किया जा सकता है। एक फ़ोल्डर का CID आपको फ़ाइल और फ़ोल्डर CIDs के संग्रह की ओर निर्देशित करेगा, जिनके CIDs फिर आपको अन्य CIDs की ओर निर्देशित करेंगे जो कंटेंट के अन्य टुकड़ों का प्रतिनिधित्व करते हैं, उनके अपने CIDs के साथ भी। किसी भी फ़ाइल में कोई भी परिवर्तन उसके हैश और उसके फ़ोल्डर के हैश को भी बदल देगा।
डेटा वास्तव में यहां नहीं रहता - यह सिर्फ आपको बताता है कि यह सब कहां ढूंढना है और एक बार जब आपके पास यह हो तो सभी टुकड़ों को कैसे एक साथ रखा जाए। Merkle-DAG अनिवार्य रूप से वही है जो इन सभी IDs को एक संरचना देता है, बहुत कुछ आपके कंप्यूटर पर फाइल सिस्टम की तरह।
डिस्ट्रिब्यूटेड हैश टेबल्स: IPFS कंटेंट का पता कैसे लगाता है
तो हम कैसे पता लगाते हैं कि हमारे इच्छित डेटा के पास कौन है? मूल रूप से, एक बड़ा डेटाबेस है जो कंटेंट IDs का उन कंप्यूटरों के स्थानों के साथ मिलान करता है जो उस कंटेंट को होस्ट कर रहे हैं, और डेटाबेस स्वयं नेटवर्क में सभी के बीच विभाजित है। जब आप एक CID द्वारा दर्शाए गए कंटेंट के एक टुकड़े का अनुरोध करते हैं, तो आपका कंप्यूटर CID की खोज करता है जब तक कि यह उन लोगों की सूची नहीं ढूंढ लेता जिनके पास यह है। आपका कंप्यूटर तब उन लोगों से जुड़ता है, आपके द्वारा आवश्यक सामान के टुकड़े डाउनलोड करता है, और उन्हें असेंबल करता है। वह डिस्ट्रिब्यूटेड हैश टेबल है - अनिवार्य रूप से कौन क्या होस्ट कर रहा है इसकी एक बड़ी सूची।
IPFS कूल है, लेकिन क्या यह उड़ान भरेगा?
IPFS को 2015 में इसकी शुरुआत मिली, और तब से इसने तेजी से प्रगति की है। इस पर दर्जनों ऐप्स और साइट्स बनाई गई हैं, जैसे ब्लॉकचेन फाइल स्टोरेज सिस्टम (Filecoin), और एक GeoCities प्रतिस्थापन (Neocities)। यह विकेंद्रीकरण और उपयोगकर्ता-मित्रता के सही मिश्रण को हिट करने में कामयाब रहा है, जो शायद यही कारण है कि यह विकेंद्रीकरण में आने वाली परियोजनाओं के लिए एक गो-टू बन गया है, जैसे Sociall (एक विकेंद्रीकृत सोशल नेटवर्क) और Brave।
Cloudflare का IPFS गेटवे एक बड़ी हिट था, और नेटवर्क का उपयोग करना हर समय आसान होता जा रहा है; आपको बस एक प्रोग्राम डाउनलोड करना है और एक ब्राउज़र एक्सटेंशन इंस्टॉल करना है। बेशक, इस बात पर बहस है कि क्या यह वास्तव में सबसे अच्छा समाधान है - वहां इसी दृष्टिकोण वाली अन्य परियोजनाएं हैं - लेकिन यह धीमा होने के कोई संकेत नहीं दिखाता। भले ही यह HTTP को पूरी तरह से प्रतिस्थापित न करे, यह निश्चित रूप से ऐसा लगता है जैसे यह इंटरनेट के अगले संस्करण का हिस्सा होगा।