বিকেন্দ্রীকৃত ইউজার ইন্টারফেসের জন্য IPFS
আপনি একটি চমৎকার নতুন বিকেন্দ্রীকৃত অ্যাপ্লিকেশন (dapp) তৈরি করেছেন। এমনকি আপনি এর জন্য একটি ইউজার ইন্টারফেস-ও লিখেছেন। কিন্তু এখন আপনার ভয় হচ্ছে যে কেউ আপনার ইউজার ইন্টারফেসটি বন্ধ করে দিয়ে এটিকে সেন্সর করার চেষ্টা করবে, যা ক্লাউডের একটি মাত্র সার্ভারে রয়েছে। এই টিউটোরিয়ালে আপনি শিখবেন কীভাবে আপনার ইউজার ইন্টারফেসটি ইন্টারপ্ল্যানেটারি ফাইল সিস্টেমে (IPFS) (একটি নতুন ট্যাবে খোলে) রেখে সেন্সরশিপ এড়ানো যায়, যাতে আগ্রহী যে কেউ ভবিষ্যতের অ্যাক্সেসের জন্য এটিকে একটি সার্ভারে পিন করতে পারে।
সব কাজ করার জন্য আপনি Fleek (একটি নতুন ট্যাবে খোলে)-এর মতো কোনো থার্ড-পার্টি পরিষেবা ব্যবহার করতে পারেন। এই টিউটোরিয়ালটি তাদের জন্য যারা একটু বেশি কাজ হলেও তারা কী করছেন তা বোঝার জন্য যথেষ্ট কাজ করতে চান।
লোকালি শুরু করা
একাধিক থার্ড-পার্টি IPFS প্রোভাইডার (একটি নতুন ট্যাবে খোলে) রয়েছে, তবে টেস্টিংয়ের জন্য লোকালি IPFS রান করে শুরু করা সবচেয়ে ভালো।
-
IPFS ইউজার ইন্টারফেস (একটি নতুন ট্যাবে খোলে) ইনস্টল করুন।
-
আপনার ওয়েবসাইট দিয়ে একটি ডিরেক্টরি তৈরি করুন। আপনি যদি Vite (একটি নতুন ট্যাবে খোলে) ব্যবহার করেন, তবে এই কমান্ডটি ব্যবহার করুন:
pnpm vite build -
IPFS ডেস্কটপে, Import > Folder-এ ক্লিক করুন এবং আগের ধাপে আপনার তৈরি করা ডিরেক্টরিটি নির্বাচন করুন।
-
আপনার আপলোড করা ফোল্ডারটি নির্বাচন করুন এবং Rename-এ ক্লিক করুন। এটিকে আরও অর্থবহ একটি নাম দিন।
-
এটি আবার নির্বাচন করুন এবং Share link-এ ক্লিক করুন। ক্লিপবোর্ডে URL-টি কপি করুন। লিঙ্কটি
https://ipfs.io/ipfs/QmaCuQ7yN6iyBjLmLGe8YiFuCwnePoKfVu6ue8vLBsLJQJ-এর মতো হবে। -
Status-এ ক্লিক করুন। গেটওয়ে ঠিকানা দেখতে Advanced ট্যাবটি প্রসারিত করুন। উদাহরণস্বরূপ, আমার সিস্টেমে ঠিকানাটি হলো
http://127.0.0.1:8080। -
আপনার ঠিকানা খুঁজে পেতে লিঙ্ক ধাপের পাথের সাথে গেটওয়ে ঠিকানাটি যুক্ত করুন। উদাহরণস্বরূপ, উপরের উদাহরণের জন্য, URL-টি হলো
http://127.0.0.1:8080/ipfs/QmaCuQ7yN6iyBjLmLGe8YiFuCwnePoKfVu6ue8vLBsLJQJ। আপনার সাইটটি দেখতে একটি ব্রাউজারে সেই URL-টি খুলুন।
আপলোড করা
সুতরাং এখন আপনি লোকালি ফাইল সার্ভ করতে IPFS ব্যবহার করতে পারেন, যা খুব একটা রোমাঞ্চকর নয়। পরবর্তী ধাপ হলো আপনি অফলাইনে থাকার সময়ও সেগুলোকে বিশ্বের জন্য উপলব্ধ করা।
বেশ কয়েকটি সুপরিচিত পিনিং পরিষেবা (একটি নতুন ট্যাবে খোলে) রয়েছে। সেগুলোর মধ্যে একটি বেছে নিন। আপনি যে পরিষেবাই ব্যবহার করুন না কেন, আপনাকে একটি অ্যাকাউন্ট তৈরি করতে হবে এবং আপনার IPFS ডেস্কটপে এটিকে কন্টেন্ট আইডেন্টিফায়ার (CID) প্রদান করতে হবে।
ব্যক্তিগতভাবে, আমার কাছে 4EVERLAND (একটি নতুন ট্যাবে খোলে) ব্যবহার করা সবচেয়ে সহজ মনে হয়েছে। এর জন্য নির্দেশনাগুলো নিচে দেওয়া হলো:
-
ড্যাশবোর্ডে (একটি নতুন ট্যাবে খোলে) ব্রাউজ করুন এবং আপনার ওয়ালেট দিয়ে লগইন করুন।
-
বাম দিকের সাইডবারে Storage > 4EVER Pin-এ ক্লিক করুন।
-
Upload > Selected CID-এ ক্লিক করুন। আপনার কন্টেন্টের একটি নাম দিন এবং IPFS ডেস্কটপ থেকে CID প্রদান করুন। বর্তমানে একটি CID হলো এমন একটি স্ট্রিং যা
Qmদিয়ে শুরু হয় এবং এর পরে 44টি অক্ষর ও সংখ্যা থাকে যা একটি base-58 এনকোডেড (একটি নতুন ট্যাবে খোলে) হ্যাশ উপস্থাপন করে, যেমনQmaCuQ7yN6iyBjLmLGe8YiFuCwnePoKfVu6ue8vLBsLJQJ, তবে এটি পরিবর্তিত হওয়ার সম্ভাবনা রয়েছে (একটি নতুন ট্যাবে খোলে)। -
প্রাথমিক স্ট্যাটাস হলো Queued। এটি Pinned-এ পরিবর্তিত না হওয়া পর্যন্ত রিলোড করুন।
-
লিঙ্কটি পেতে আপনার CID-তে ক্লিক করুন। আপনি আমার অ্যাপ্লিকেশনটি এখানে (একটি নতুন ট্যাবে খোলে) দেখতে পারেন।
-
এক মাসের বেশি সময় ধরে পিন করে রাখার জন্য আপনাকে আপনার অ্যাকাউন্ট সক্রিয়করণ করতে হতে পারে। অ্যাকাউন্ট সক্রিয়করণ করতে প্রায় $1 খরচ হয়। আপনি যদি এটি বন্ধ করে থাকেন, তবে লগ আউট করুন এবং আবার সক্রিয় করার প্রম্পট পেতে পুনরায় লগ ইন করুন।
IPFS থেকে ব্যবহার করা
এই পর্যায়ে আপনার কাছে একটি সেন্ট্রালাইজড গেটওয়ের লিঙ্ক রয়েছে যা আপনার IPFS কন্টেন্ট সার্ভ করে। সংক্ষেপে, আপনার ইউজার ইন্টারফেসটি কিছুটা নিরাপদ হতে পারে তবে এটি এখনও সেন্সরশিপ প্রতিরোধী নয়। প্রকৃত সেন্সরশিপ প্রতিরোধের জন্য, ব্যবহারকারীদের সরাসরি একটি ব্রাউজার থেকে (একটি নতুন ট্যাবে খোলে) IPFS ব্যবহার করতে হবে।
একবার আপনি সেটি ইনস্টল করলে (এবং ডেস্কটপ IPFS কাজ করলে), আপনি যেকোনো সাইটে /ipfs/<CID> (একটি নতুন ট্যাবে খোলে)-এ যেতে পারেন এবং আপনি সেই কন্টেন্টটি পাবেন, যা একটি বিকেন্দ্রীকৃত উপায়ে সার্ভ করা হয়।
অসুবিধাগুলো
আপনি নির্ভরযোগ্যভাবে IPFS ফাইলগুলো মুছতে পারবেন না, তাই যতক্ষণ আপনি আপনার ইউজার ইন্টারফেস পরিবর্তন করছেন, সম্ভবত এটিকে সেন্ট্রালাইজড রাখাই ভালো, অথবা ইন্টারপ্ল্যানেটারি নেম সিস্টেম (IPNS) (একটি নতুন ট্যাবে খোলে) ব্যবহার করা ভালো, যা IPFS-এর উপরে মিউটেবিলিটি প্রদান করে। অবশ্যই, পরিবর্তনযোগ্য যেকোনো কিছু সেন্সর করা যেতে পারে, IPNS-এর ক্ষেত্রে সংশ্লিষ্ট প্রাইভেট কী থাকা ব্যক্তিকে চাপ প্রয়োগ করে এটি করা সম্ভব।
এছাড়াও, কিছু প্যাকেজের IPFS-এর সাথে সমস্যা রয়েছে, তাই আপনার ওয়েবসাইটটি যদি খুব জটিল হয় তবে এটি একটি ভালো সমাধান নাও হতে পারে। এবং অবশ্যই, সার্ভার ইন্টিগ্রেশনের উপর নির্ভর করে এমন কোনো কিছুকে শুধুমাত্র ক্লায়েন্ট সাইড IPFS-এ রেখে বিকেন্দ্রীকৃত করা যায় না।
ENS-এর মাধ্যমে ডিসকভারেবিলিটি
আপনি যদি আপনার ওয়েবসাইটে একটি ENS নাম (যেমন vitalik.eth) পয়েন্ট করেন, তবে এটিকে একটি সম্পূর্ণ বিকেন্দ্রীকৃত ওয়েবপেজ হিসেবে বিবেচনা করা হবে এবং এটি স্বয়ংক্রিয়ভাবে dweb3.wtf (একটি নতুন ট্যাবে খোলে) পরিষেবা দ্বারা পিন করা হবে, পাশাপাশি web3compass.net (একটি নতুন ট্যাবে খোলে) সার্চ ইঞ্জিনের মাধ্যমে অনুসন্ধানযোগ্য করা হবে, ঠিক যেমন DuckDuckGo, Brave Search বা Google প্রথাগত ওয়েবের জন্য করে থাকে।
উপসংহার
ইথেরিয়াম যেমন আপনাকে আপনার dapp-এর ডেটাবেস এবং বিজনেস লজিকের দিকগুলোকে বিকেন্দ্রীকৃত করতে দেয়, তেমনি IPFS আপনাকে ইউজার ইন্টারফেসকে বিকেন্দ্রীকৃত করতে দেয়। এটি আপনাকে আপনার dapp-এর বিরুদ্ধে আরও একটি অ্যাটাক ভেক্টর বন্ধ করতে সাহায্য করে।