কম্পিউটার টিউটোরিয়াল

ইন্টারপ্লানেটারি ফাইল সিস্টেম (IPFS) কীভাবে ওয়েবকে ডিসেন্ট্রালাইজ করতে পারে

কল্পনা করুন আপনি লেটেস্ট মেম ডাউনলোড করছেন, এবং ধৈর্যের সাথে ডাউনলোড ফিনিশ হওয়ার অপেক্ষা করছেন। মেমটি অবশ্যই ফায়ার, তাই আপনি আপনার বন্ধুদের লিংক পাঠালেন। তারা আপনার ফোন থেকে ফাইলটি পেল, তারপর তাদের বন্ধুদের সাথে শেয়ার করতে শুরু করল। এই পয়েন্টে, মেমটি কয়েক দर्जন ডিভাইসে লিভিং করছে, তাই যখন কেউ নতুন লিংক পাবে, তারা আসলে সেভারেল অন্যান্য মানুষের সাথে কানেক্ট করবে এবং প্রত্যেকের কাছ থেকে কিছু পিস পাবে, مما ডাউনলোড প্রায় ইনস্ট্যান্টেনিয়াস হয়ে যাবে।

ইন্টারপ্লানেটারি ফাইল সিস্টেমেরおかげで, খুব রিয়েল, আশ্চর্যजनকভাবে ইজি-টু-ইউজ সিস্টেম আমাদের দ্রুততর, আরও ডেমوک্রেটিক ইন্টারনেটের চাবি হতে পারে। উপরে বর্ণনা করা বেসিক আইডিয়া হলো: ইউজার ডিভাইসগুলো সেট করবে, ইনডেক্স করবে, এবং সেন্ট্রালাইজড সার্ভারে বর্তমানে যেটা থাকে সেটি ডেলিভার করবে। আপনার কাছে এটি যদি কিছুটা ক্রিপ্টোকারেন্সির মতো লাগে, আপনি ভুল করছেন না—প্রজেক্টের পেছনে জন, জুয়ান বেনেট, IPFS কে বर्णনা করেছেন "In a sense, doing to websites… what Bitcoin did to money."

ইন্টারপ্লানেটারি ফাইল সিস্টেম কী?

আপনি যদি জানেন BitTorrent বা অন্য যেকোনো P2P (পিয়ার-টু-পিয়ার) টেকনোলজি কীভাবে কাজ করে, আপনি IPFS কী করছে সেটি বুঝতে প্রায় পৌঁছেছেন। এটি ফাইল পাঠায় (HTML, CSS, এবং JavaScript ফাইলসহ যা অধিকাংশ ওয়েবসাইট বানায়) এবং ফাইলের পিসগুলো ইউজার ডিভাইসের মাঝপথে, ঠিক যেভাবে আপনি পাবলিক ডোমেইন মিউজিক легаলি টরেন্ট করতেন।

এটি মানে একটি সার্ভারের সাথে কানেক্ট হয়ে সাইট দেখার বদলে, আপনি শুধু চেক করবেন আপনার কাছে কেউ আছে কিনা যারা পেজটি (বা এর কিছু পিস) স্টোর করছে এবং আপনি তাদের সাথে কানেক্ট করবেন। একবার আপনি পেজটি ডাউনলোড করলে, আপনার ডিভাইসও সেটি কিছুক্ষণ স্টোর করবে যাতে অন্যান্য লোকেরা আপনার কাছ থেকে (বা এর পিসগুলো থেকে) পেতে পারে। এটি কিছুটা জটিল শোনা হলেও, এটি আসলে আমাদের বর্তমান HTTP প্রোটোকল ব্যবহার করে সিঙ্গল সার্ভার-ক্লায়েন্ট পাইপলাইনের মাধ্যমে ডেটা পাঠানোর সিস্টেম চেয়ে অনেক বেশি ইফিশিয়েন্ট।

কেন এটি অসাধারণ?

IPFS-এর ট্রেডিশনাল ওয়েবের ওপর কয়েকটি বড় অ্যাডভান্টেজ আছে:

  • দ্রুততর এবং আরও ইফিশিয়েন্ট কন্টেন্ট ডেলিভারি: আপনি ম্যানি জিওগ্রাফিক্যালি ক্লোজ সোর্স থেকে ফাইলের পিসগুলো ডাউনলোড করতে পারেন, ট্রাভেল টাইম এবং ব্যান্ডউইথ মিনিমাইজ করে।
  • ডিসেন্ট্রালাইজেশন: কোনো সিঙ্গেল সোর্স ডেটা বা এটিকে অ্যাক্সেস কন্ট্রোল করতে পারে না।
  • ইনফরমেশন প্রিজারভেশন: যেহেতু কোনো সিঙ্গেল সার্ভার সকল ডেটা স্টোর করে না, এটি সহজে গায়েব হয়ে যেতে পারে না আপনার, মনে করুন, GeoCities ওয়েবসাইটগুলোকে সাথে নিয়ে।
  • খারাপ কানেক্টিভিটি वाले এলাকায় দ্রুততর এবং স্টেবল কানেকশন: যতক্ষণ না আপনি যে কন্টেন্ট চান সেটি কোথাও ডাউনলোড হয়ে থাকে যেখানে আপনি অ্যাক্সেস করতে পারেন, আপনাকে আসলে লম্বা দূরত্বের কানেকশন করতে হবে না, যা স্পোরাডিক বা কমপ্রোমাইজড কানেকশন والے এলাকায় ম্যাসিভলি হেল্পফুল হবে।
  • সেন্সরশিপ রেজিস্ট্যান্স: পারফেক্ট নয়, কিন্তু সেন্ট্রালাইজড মডেল চেয়ে बेटার।

কীভাবে এটি কাজ করে: সংক্ষিপ্ত ভার্সন

কেউই IPFS নেটওয়ার্ক এখনই ব্যবহার করতে পারে, কারণ এটি খুব ইউজার-ফ্রেন্ডলি হয়ে গেছে। এখানে কী হয়:

  1. আপনি IPFS-এ একটি ফাইল অ্যাড করলে, ফাইলটি ব্লকে ভাগ হয়, যেকোনো একটি এলগরিদমের মাধ্যমে রান করে এবং একটি ইউনিক আইডি পায়। পুরো ফাইলটি, এই ব্লক আইডিগুলো সহ, একটি আইডি পায়। প্রাথমিকভাবে, আপনার মেশিনই একমাত্র জায়গা হবে যেখানে থেকে লোকেরা ফাইলটি পাবে, কিন্তু অন্যান্য নোড (মেশিন) সেটি পিক আপ করে ডিস্ট্রিবিউট করতে পারে।
  2. যদি নেটওয়ার্ক লক্ষ্য করে আপনার কিছু ডেটা ইতিমধ্যে সেখানে স্টোর করা কন্টেন্টের সাথে আইডেন্টিক্যাল, তবে এটি কপি অ্যাড করার বদলে সেটি ব্যবহার করে। ধরুন আপনি আপনার রেকর্ড করা একটি অ্যালবামের "ডিলাক্স এডিশন" হোস্ট করছেন। দশটি গান সেমি আপনার আগের রেকর্ড করা অ্যালবামের মতো, কিন্তু দুটি নতুন, তাই আপনি সেগুলো IPFS-এ অ্যাড করলে, সিস্টেম ডুপ্লিকেট ট্র্যাকগুলো রিকগ্নাইজ করবে এবং সেগুলোর জন্য এক্সিস্টিং আইডি ব্যবহার করবে, শুধু দুটি নতুন গানের জন্য নতুন আইডি অ্যাড করবে।
  1. নেটওয়ার্কের প্রতিটি নোড কিছু ডেটা স্টোর করে (প্রবাবলি ডেটা যা নোডটি ডিস্ট্রিবিউট করতে চায়, প্লাস ডেটা যা নোডটি সম্প্রতিক খুলেছে) এবং একটি ইনডেক্সের অংশ যা লোকেদের নেটওয়ার্কে কন্টেন্ট খুঁজে বের করতে সাহায্য করে।
  2. আপনি যদি একটি ফাইল খোলতে চান, আপনি নেটওয়ার্ককে এর আইডি লুকআপ করে আপনাকে তার সাথে কানেক্ট করতে বলবেন যাদের কাছে সেটি আছে। IPNS নামের একটি নেমিং সিস্টেম হিউম্যান-রিডেবল নামগুলো মেশিন-রিডেবল আইডিতে কনভার্ট করে যা সিস্টেম সার্চ করবে।

একদম সহজ অনুবাদ: IPFS প্রতিটি ডেটা পিসকে একটি নাম দেয়, একটি লিস্ট বানায় যে ডেটাটি যেকোনো সময় কোথায় লিভিং করছে, এবং ডিভাইসগুলোকে ডেটা সরাসরি একে অপরের কাছে পাঠাতে সাহায্য করে।

কীভাবে এটি কাজ করে: টেকনিক্যাল ভার্সন

IPFS কে টিক করাতে তিনটি প্রধান জিনিস আছে: কন্টেন্ট অ্যাড্রেসিং ডেটাকে একটি আইডেন্টিটি দেয়, Merkel-DAGs স্ট্রাকচার দেয়, এবং ডিস্ট্রিবিউটেড হ্যাশ টেবিল বলে দেয় কোথায় পাবেন।

কন্টেন্ট অ্যাড্রেসিং: কোথায় নয়, কী

আমাদের বর্তমান অধিকাংশ কন্টেন্টের লোকেশন-বেসড অ্যাড্রেস আছে (C:/Users/Username/Documents, 192.124.249.3, ইত্যাদি) যা আমাদের বলে কোথায় যেতে হবে ডেটা পেতে। ডিসেন্ট্রালাইজড সিস্টেমে এটা কাজ করবে না, কারণ কন্টেন্ট প্রায় যেকোনো জায়গায় স্টোর করা যেতে পারে, তাই IPFS এবং BitTorrent-এর মতো সিস্টেম "কন্টেন্ট অ্যাড্রেসিং" ব্যবহার করে।

একটি কন্টেন্ট-অ্যাড্রেসিং সিস্টেম একটি ডেটা পিসকে একটি এলগরিদমের মাধ্যমে রান করে যা এটিকে একটি ইউনিক আইডি, বা হ্যাশ অ্যাসাইন করে। ফাইলের প্রতিটি আইডেন্টিক্যাল কপির একই আইডি থাকবে, অর্থাৎ IPFS যখন সেটি লুকআপ করবে, নেটওয়ার্কে স্টোর করা সকল ইনস্ট্যান্স খুঁজে পাবে।

Merkle-DAGs: সবকিছুর একটি CID আছে, এবং সবগুলো কানেক্টেড

জার্মান পলিটিক্যাল পার্টির মতো শোনা হলেও, একটি Merkel-DAG (Directed Acyclic Graph) আসলে ডেটা অর্গানাইজ করার একটি পদ্ধতি। এই সিস্টেমে প্রতিটি ডেটা পিসের নিজস্ব কন্টেন্ট আইডি (CID) থাকে: ফোল্ডার, ফাইল, ফাইলের ভিতরে ডেটা ব্লক—সবকিছু। এর মানে ফাইলগুলো ভিন্ন ভাগে বিভক্ত, অথেন্টিকেট, এবং রি-অ্যাসেম্বল করা যায়।

IPFS ডকুমেন্টেশন এটিকে "turtles all the way down scenario" হিসেবে বর্ণনা করে, কারণ সবকিছু ডেটার একটি কালেকশনে ব্রেক ডাউন করা যায় যেগুলো CID দ্বারা আইডেন্টিফায়idable। একটি ফোল্ডারের CID আপনাকে ফাইল ও ফোল্ডার CID-এর একটি কালেকশনে নিয়ে যাবে, যাদের CID আবার অন্যান্য কন্টেন্টের পিস রিপ্রেজেন্ট করা CID-এ নিয়ে যাবে, যেগুলোরও নিজস্ব CID আছে। যেকোনো ফাইলে যেকোনো চেঞ্জ এর হ্যাশ এবং এর ফোল্ডারের হ্যাশ বদলাবে।

ডেটা আসলে এখানে লিভ করে না—এটি শুধু বলে কোথায় সকল ডেটা পাওয়া যাবে এবং একবার পাওয়া যাক সেগুলো কীভাবে অ্যাসেম্বল করতে হবে। Merkel-DAG এসেনশিয়ালি সেটি যা এই সকল আইডিকে একটি স্ট্রাকচার দেয়, আপনার কম্পিউটারের ফাইল সিস্টেমের মতো।

ডিস্ট্রিবিউটেড হ্যাশ টেবিল: IPFS কীভাবে কন্টেন্ট লোকেট করে

তাহলে আমরা কীভাবে যাব যারা ডেটা আমরা চাই সেগুলোর কাছে? বেসিক্যালি, একটি বড় ডাটাবেস আছে যা কন্টেন্ট আইডিকে সে কম্পিউটারের লোকেশনের সাথে ম্যাচ করে যারা সেই কন্টেন্ট হোস্ট করছে, এবং ডাটাবেসটি নেটওয়ার্কের সবার মাঝপথে ভাগ করা হয়। আপনি যখন একটি CID দ্বারা রিপ্রেজেন্ট করা কন্টেন্টের একটি পিস রিকোয়েস্ট করেন, আপনার কম্পিউটার CID সার্চ করবে যতক্ষণ না সেটি সেই লোকদের লিস্ট পায় যাদের কাছে সেটি আছে। আপনার কম্পিউটার তারপর তাদের সাথে কানেক্ট করে, আপনার প্রয়োজনীয় স্টাফের পিসগুলো ডাউনলোড করে, এবং সেগুলো অ্যাসেম্বল করে। সেটিই ডিস্ট্রিবিউটেড হ্যাশ টেবিল—এসেনশিয়ালি কে কী হোস্ট করছে তার একটি বড় লিস্ট।

IPFS কুল, কিন্তু এটি টেক অফ করবে কি?

IPFS ২০১৫ সালে শুরু হয়েছে, এবং তখন থেকে দ্রুত প্রগ্রেস করেছে। ডজনরা অ্যাপ ও সাইট এতে বিল্ট হয়েছে, যেমন একটি ব্লকচেইন ফাইল স্টোরেজ সিস্টেম (Filecoin), এবং একটি GeoCities রিপ্লেসমেন্ট (Neocities)। এটি ডিসেন্ট্রালাইজেশন এবং ইউজার-ফ্রেন্ডলিনেসের সঠিক মিক্স হিট করতে পেরেছে, যা সম্ভবত কারণ এটি ডিসেন্ট্রালাইজেশনে যেতে চায় এমন প্রজেক্টের গো-টু হয়ে উঠেছে, যেমন Sociall (একটি ডিসেন্ট্রালাইজড সোশ্যাল নেটওয়ার্ক) এবং Brave।

Cloudflare-এর IPFS গেটওয়ে একটি বড় হিট ছিল, এবং নেটওয়ার্ক ব্যবহার করা সবসময় ইজি হচ্ছে; আপনাকে শুধু একটি প্রোগ্রাম ডাউনলোড করতে হবে এবং একটি ব্রাউজার এক্সটেনশন ইনস্টল করতে হবে। অবশ্যই, এই ডিবেট আছে যে এটি কি রিয়েলি বেস্ট সলিউশন—এটি একমাত্র প্রজেক্ট নয় যেন একই ভিশন ধারণ করে— কিন্তু এটি স্লো ডাউন করার কোনো সাইন দেখাচ্ছে না। এমনকি যদি এটি HTTP-কে ফুলি রিপ্লেস না করে, এটি নিশ্চিতভাবে ইন্টারনেক্সট ভার্সনের অংশ হব বলে মনে হয়।

  1. ডার্ক ওয়েব অ্যাক্সেস ও ব্রাউজ করার পূর্ণ গাইড

  2. OS.js: ওয়েবের জন্য একটি নতুন ধরনের অপারেটিং সিস্টেম

  3. ফাইল সিস্টেম এরর -2147219196 সমাধান করুন

  4. macOS-এ 'File System Check Exit Code 8' এরর সমাধান: ধাপে ধাপ গাইড