Raspberry Pi 4-এ একটি ইথেরিয়াম নোড চালান
আর্ম-এ ইথেরিয়াম (Ethereum on Arm) হলো একটি কাস্টম Linux ইমেজ যা একটি Raspberry Pi-কে একটি ইথেরিয়াম নোড-এ পরিণত করতে পারে।
আর্ম-এ ইথেরিয়াম ব্যবহার করে একটি Raspberry Pi-কে ইথেরিয়াম নোড-এ পরিণত করতে, নিচের হার্ডওয়্যারগুলো সুপারিশ করা হয়:
- Raspberry 4 (মডেল B 8GB), Odroid M1 বা Rock 5B (8GB/16GB RAM) বোর্ড
- মাইক্রোএসডি কার্ড (ন্যূনতম 16 GB ক্লাস 10)
- ন্যূনতম 2 TB SSD USB 3.0 ডিস্ক বা USB থেকে SATA কেস সহ একটি SSD।
- পাওয়ার সাপ্লাই
- ইথারনেট কেবল
- পোর্ট ফরোয়ার্ডিং (আরও তথ্যের জন্য ক্লায়েন্টগুলো দেখুন)
- হিটসিঙ্ক এবং ফ্যান সহ একটি কেস
- USB কীবোর্ড, মনিটর এবং HDMI কেবল (মাইক্রো-HDMI) (ঐচ্ছিক)
ARM-এ ইথেরিয়াম কেন চালাবেন?
ARM বোর্ডগুলো খুবই সাশ্রয়ী, নমনীয় এবং ছোট কম্পিউটার। ইথেরিয়াম নোড চালানোর জন্য এগুলো ভালো পছন্দ কারণ এগুলো সস্তায় কেনা যায়, এমনভাবে কনফিগার করা যায় যাতে এদের সমস্ত রিসোর্স শুধুমাত্র নোডের ওপর ফোকাস করে, যা এদেরকে দক্ষ করে তোলে। এগুলো কম বিদ্যুৎ খরচ করে এবং শারীরিকভাবে ছোট হওয়ায় যেকোনো বাড়িতে সহজেই রাখা যায়। নোড চালু করাও খুব সহজ কারণ Raspberry Pi-এর মাইক্রোএসডি-কে কোনো সফটওয়্যার ডাউনলোড বা বিল্ড করার প্রয়োজন ছাড়াই একটি প্রি-বিল্ট ইমেজ দিয়ে সহজেই ফ্ল্যাশ করা যায়।
এটি কীভাবে কাজ করে?
Raspberry Pi-এর মেমরি কার্ডটি একটি প্রি-বিল্ট ইমেজ দিয়ে ফ্ল্যাশ করা হয়। এই ইমেজে একটি ইথেরিয়াম নোড চালানোর জন্য প্রয়োজনীয় সবকিছু থাকে। একটি ফ্ল্যাশ করা কার্ডের সাহায্যে, ব্যবহারকারীকে শুধুমাত্র Raspberry Pi চালু করতে হয়। নোড চালানোর জন্য প্রয়োজনীয় সমস্ত প্রক্রিয়া স্বয়ংক্রিয়ভাবে শুরু হয়। এটি কাজ করে কারণ মেমরি কার্ডে একটি Linux-ভিত্তিক অপারেটিং সিস্টেম (OS) থাকে, যার ওপর সিস্টেম-স্তরের প্রক্রিয়াগুলো স্বয়ংক্রিয়ভাবে চলে যা ইউনিটটিকে একটি ইথেরিয়াম নোড-এ পরিণত করে।
জনপ্রিয় Raspberry Pi Linux OS "Raspbian" ব্যবহার করে ইথেরিয়াম চালানো যায় না কারণ Raspbian এখনও 32-বিট আর্কিটেকচার ব্যবহার করে, যার ফলে ইথেরিয়াম ব্যবহারকারীরা মেমরি সংক্রান্ত সমস্যার সম্মুখীন হন এবং কনসেনসাস ক্লায়েন্টগুলো 32-বিট বাইনারি সমর্থন করে না। এটি কাটিয়ে উঠতে, আর্ম-এ ইথেরিয়াম (Ethereum on Arm) টিম "Armbian" নামক একটি নেটিভ 64-বিট OS-এ স্থানান্তরিত হয়েছে।
ইমেজগুলো সমস্ত প্রয়োজনীয় পদক্ষেপের যত্ন নেয়, পরিবেশ সেট আপ করা এবং SSD ডিস্ক ফর্ম্যাট করা থেকে শুরু করে ইথেরিয়াম সফটওয়্যার ইনস্টল করা এবং চালানো, সেইসাথে ব্লকচেইন সিঙ্কিং শুরু করা পর্যন্ত।
এক্সিকিউশন ক্লায়েন্ট এবং কনসেনসাস ক্লায়েন্ট সম্পর্কিত নোট
আর্ম-এ ইথেরিয়াম (Ethereum on Arm) ইমেজে প্রি-বিল্ট এক্সিকিউশন ক্লায়েন্ট এবং কনসেনসাস ক্লায়েন্ট পরিষেবা হিসেবে অন্তর্ভুক্ত থাকে। একটি ইথেরিয়াম নোড-এর জন্য উভয় ক্লায়েন্টকেই সিঙ্কিং এবং চলমান অবস্থায় থাকতে হয়। আপনাকে শুধুমাত্র ইমেজটি ডাউনলোড এবং ফ্ল্যাশ করতে হবে এবং তারপর পরিষেবাগুলো শুরু করতে হবে। ইমেজটিতে নিচের এক্সিকিউশন ক্লায়েন্টগুলো আগে থেকেই লোড করা থাকে:
- Geth
- নেদারমাইন্ড
- বেসু
এবং নিচের কনসেনসাস ক্লায়েন্টগুলো:
- লাইটহাউস
- নিম্বাস
- প্রিজম
- টেকু
চালানোর জন্য আপনার প্রতিটির একটি করে বেছে নেওয়া উচিত - সমস্ত এক্সিকিউশন ক্লায়েন্ট সমস্ত কনসেনসাস ক্লায়েন্ট-এর সাথে সামঞ্জস্যপূর্ণ। আপনি যদি স্পষ্টভাবে কোনো ক্লায়েন্ট নির্বাচন না করেন, তবে নোডটি তার ডিফল্ট - Geth এবং লাইটহাউস-এ ফিরে যাবে - এবং বোর্ড চালু হলে স্বয়ংক্রিয়ভাবে সেগুলো চালাবে। আপনাকে অবশ্যই আপনার রাউটারে 30303 পোর্ট খুলতে হবে যাতে Geth পিয়ারদের খুঁজে পেতে এবং তাদের সাথে কানেক্ট করতে পারে।
ইমেজ ডাউনলোড করা
Raspberry Pi 4 ইথেরিয়াম ইমেজটি হলো একটি "প্লাগ অ্যান্ড প্লে" ইমেজ যা স্বয়ংক্রিয়ভাবে এক্সিকিউশন ক্লায়েন্ট এবং কনসেনসাস ক্লায়েন্ট উভয়কেই ইনস্টল এবং সেট আপ করে, একে অপরের সাথে কথা বলতে এবং ইথেরিয়াম নেটওয়ার্ক-এর সাথে কানেক্ট করতে কনফিগার করে। ব্যবহারকারীকে শুধুমাত্র একটি সাধারণ কমান্ড ব্যবহার করে তাদের প্রক্রিয়াগুলো শুরু করতে হবে।
আর্ম-এ ইথেরিয়াম (Ethereum on Arm) (opens in a new tab) থেকে Raspberry Pi ইমেজটি ডাউনলোড করুন এবং SHA256 হ্যাশ যাচাই করুন:
# ডাউনলোড করা ইমেজ থাকা ডিরেক্টরি থেকে
shasum -a 256 ethonarm_22.04.00.img.zip
# হ্যাশ আউটপুট হওয়া উচিত: fb497e8f8a7388b62d6e1efbc406b9558bee7ef46ec7e53083630029c117444f
মনে রাখবেন যে Rock 5B এবং Odroid M1 বোর্ডের জন্য ইমেজগুলো Ethereum-on-Arm-এর ডাউনলোড পেজ (opens in a new tab)-এ পাওয়া যায়।
মাইক্রোএসডি ফ্ল্যাশ করা
Raspberry Pi-এর জন্য যে মাইক্রোএসডি কার্ডটি ব্যবহার করা হবে তা প্রথমে একটি ডেস্কটপ বা ল্যাপটপে ঢোকাতে হবে যাতে এটি ফ্ল্যাশ করা যায়। তারপর, নিচের টার্মিনাল কমান্ডগুলো ডাউনলোড করা ইমেজটিকে SD কার্ডে ফ্ল্যাশ করবে:
# MicroSD কার্ডের নাম চেক করুন
sudo fdisk -l
>> sdxxx
নামটি সঠিকভাবে পাওয়া সত্যিই গুরুত্বপূর্ণ কারণ পরবর্তী কমান্ডে dd অন্তর্ভুক্ত রয়েছে যা কার্ডে ইমেজ পুশ করার আগে এর বিদ্যমান বিষয়বস্তু সম্পূর্ণভাবে মুছে ফেলে। চালিয়ে যেতে, জিপ করা ইমেজ থাকা ডিরেক্টরিতে নেভিগেট করুন:
# আনজিপ করুন এবং ইমেজ ফ্ল্যাশ করুন
unzip ethonarm_22.04.00.img.zip
sudo dd bs=1M if=ethonarm_22.04.00.img of=/dev/<sdxx> conv=fdatasync status=progress
কার্ডটি এখন ফ্ল্যাশ করা হয়েছে, তাই এটি Raspberry Pi-তে ঢোকানো যেতে পারে।
নোড চালু করুন
Raspberry Pi-তে SD কার্ড ঢোকানোর পর, ইথারনেট কেবল এবং SSD কানেক্ট করুন তারপর পাওয়ার চালু করুন। OS বুট আপ হবে এবং স্বয়ংক্রিয়ভাবে প্রি-কনফিগার করা কাজগুলো সম্পাদন করা শুরু করবে যা Raspberry Pi-কে একটি ইথেরিয়াম নোড-এ পরিণত করে, যার মধ্যে ক্লায়েন্ট সফটওয়্যার ইনস্টল এবং বিল্ড করা অন্তর্ভুক্ত। এতে সম্ভবত 10-15 মিনিট সময় লাগবে।
সবকিছু ইনস্টল এবং কনফিগার হয়ে গেলে, একটি ssh কানেকশনের মাধ্যমে ডিভাইসে লগ ইন করুন অথবা বোর্ডে মনিটর এবং কীবোর্ড যুক্ত থাকলে সরাসরি টার্মিনাল ব্যবহার করুন। লগ ইন করতে ethereum অ্যাকাউন্ট ব্যবহার করুন, কারণ এতে নোড চালু করার জন্য প্রয়োজনীয় অনুমতি রয়েছে।
User: ethereum
Password: ethereum
ডিফল্ট এক্সিকিউশন ক্লায়েন্ট, Geth, স্বয়ংক্রিয়ভাবে শুরু হবে। আপনি নিচের টার্মিনাল কমান্ড ব্যবহার করে লগ চেক করে এটি নিশ্চিত করতে পারেন:
sudo journalctl -u geth -f
কনসেনসাস ক্লায়েন্ট-কে স্পষ্টভাবে শুরু করতে হবে। এটি করতে, প্রথমে আপনার রাউটারে 9000 পোর্ট খুলুন যাতে লাইটহাউস পিয়ারদের খুঁজে পেতে এবং তাদের সাথে কানেক্ট করতে পারে। তারপর লাইটহাউস পরিষেবা সক্ষম করুন এবং শুরু করুন:
sudo systemctl enable lighthouse-beacon
sudo systemctl start lighthouse-beacon
লগ ব্যবহার করে ক্লায়েন্ট চেক করুন:
sudo journalctl -u lighthouse-beacon
মনে রাখবেন যে কনসেনসাস ক্লায়েন্ট কয়েক মিনিটের মধ্যে সিঙ্কিং করবে কারণ এটি চেকপয়েন্ট সিঙ্কিং ব্যবহার করে। এক্সিকিউশন ক্লায়েন্ট-এর বেশি সময় লাগবে - সম্ভবত কয়েক ঘণ্টা, এবং কনসেনসাস ক্লায়েন্ট-এর সিঙ্কিং শেষ না হওয়া পর্যন্ত এটি শুরু হবে না (এর কারণ হলো এক্সিকিউশন ক্লায়েন্ট-এর সিঙ্কিং করার জন্য একটি টার্গেট প্রয়োজন, যা সিঙ্ক করা কনসেনসাস ক্লায়েন্ট প্রদান করে)।
Geth এবং লাইটহাউস পরিষেবাগুলো চলমান এবং সিঙ্ক হওয়ার সাথে সাথে, আপনার Raspberry Pi এখন একটি ইথেরিয়াম নোড! Geth-এর JavaScript কনসোল ব্যবহার করে ইথেরিয়াম নেটওয়ার্ক-এর সাথে ইন্টারঅ্যাক্ট করা সবচেয়ে সাধারণ, যা 8545 পোর্টে Geth ক্লায়েন্টের সাথে যুক্ত করা যেতে পারে। Curl-এর মতো একটি রিকোয়েস্ট টুল ব্যবহার করে JSON অবজেক্ট হিসেবে ফর্ম্যাট করা কমান্ড জমা দেওয়াও সম্ভব। Geth ডকুমেন্টেশন (opens in a new tab)-এ আরও দেখুন।
Geth-কে একটি Grafana ড্যাশবোর্ডে মেট্রিক্স রিপোর্ট করার জন্য আগে থেকেই কনফিগার করা হয়েছে যা ব্রাউজারে দেখা যেতে পারে। আরও উন্নত ব্যবহারকারীরা ipaddress:3000-এ নেভিগেট করে, user: admin এবং passwd: ethereum পাস করে তাদের নোডের স্বাস্থ্য নিরীক্ষণ করতে এই বৈশিষ্ট্যটি ব্যবহার করতে চাইতে পারেন।
ভ্যালিডেটর
কনসেনসাস ক্লায়েন্ট-এ ঐচ্ছিকভাবে একটি ভ্যালিডেটর-ও যোগ করা যেতে পারে। ভ্যালিডেটর সফটওয়্যার আপনার নোডকে সক্রিয়ভাবে ঐক্যমত-এ অংশগ্রহণ করতে দেয় এবং নেটওয়ার্ক-কে ক্রিপ্টো-অর্থনৈতিক নিরাপত্তা প্রদান করে। আপনি এই কাজের জন্য ETH-এ পুরস্কৃত হবেন। একটি ভ্যালিডেটর চালানোর জন্য, আপনার প্রথমে 32 ETH থাকতে হবে, যা অবশ্যই ডিপোজিট কন্ট্রাক্ট-এ জমা করতে হবে। লঞ্চপ্যাড (opens in a new tab)-এর ধাপে ধাপে নির্দেশিকা অনুসরণ করে ডিপোজিট করা যেতে পারে। এটি একটি ডেস্কটপ/ল্যাপটপে করুন, তবে কী (keys) তৈরি করবেন না — এটি সরাসরি Raspberry Pi-তে করা যেতে পারে।
Raspberry Pi-তে একটি টার্মিনাল খুলুন এবং ডিপোজিট কী তৈরি করতে নিচের কমান্ডটি চালান:
sudo apt-get update
sudo apt-get install staking-deposit-cli
cd && deposit new-mnemonic --num_validators 1
(অথবা একটি এয়ারগ্যাপড মেশিনে চালানোর জন্য staking-deposit-cli (opens in a new tab) ডাউনলোড করুন এবং deposit new-mnemnonic কমান্ডটি চালান)
নেমোনিক (mnemonic) ফ্রেজটি নিরাপদে রাখুন! ওপরের কমান্ডটি নোডের কীস্টোর-এ দুটি ফাইল তৈরি করেছে: ভ্যালিডেটর কী এবং একটি ডিপোজিট ডেটা ফাইল। ডিপোজিট ডেটা লঞ্চপ্যাডে আপলোড করতে হবে, তাই এটি অবশ্যই Raspberry Pi থেকে ডেস্কটপ/ল্যাপটপে কপি করতে হবে। এটি একটি ssh কানেকশন বা অন্য কোনো কপি/পেস্ট পদ্ধতি ব্যবহার করে করা যেতে পারে।
লঞ্চপ্যাড চালানো কম্পিউটারে ডিপোজিট ডেটা ফাইলটি উপলব্ধ হয়ে গেলে, এটি লঞ্চপ্যাড স্ক্রিনে +-এ টেনে এনে ছেড়ে দেওয়া যেতে পারে। ডিপোজিট কন্ট্রাক্ট-এ একটি ট্রানজ্যাকশন পাঠাতে স্ক্রিনের নির্দেশাবলী অনুসরণ করুন।
আবার Raspberry Pi-তে ফিরে এসে, একটি ভ্যালিডেটর শুরু করা যেতে পারে। এর জন্য ভ্যালিডেটর কী ইমপোর্ট করা, পুরস্কার সংগ্রহের জন্য ঠিকানা সেট করা এবং তারপর প্রি-কনফিগার করা ভ্যালিডেটর প্রক্রিয়া শুরু করা প্রয়োজন। নিচের উদাহরণটি লাইটহাউস-এর জন্য—অন্যান্য কনসেনসাস ক্লায়েন্ট-এর নির্দেশাবলী আর্ম-এ ইথেরিয়াম (Ethereum on Arm) ডক্স (opens in a new tab)-এ উপলব্ধ রয়েছে:
# ভ্যালিডেটর কীগুলো ইমপোর্ট করুন
lighthouse account validator import --directory=/home/ethereum/validator_keys
# রিওয়ার্ড ঠিকানা সেট করুন
sudo sed -i 's/<ETH_ADDRESS>' /etc/ethereum/lighthouse-validator.conf
# ভ্যালিডেটর চালু করুন
sudo systemctl start lighthouse-validator
অভিনন্দন, আপনার এখন একটি Raspberry Pi-তে একটি সম্পূর্ণ ইথেরিয়াম নোড এবং ভ্যালিডেটর চলছে!
আরও বিস্তারিত
এই পেজটি Raspberry Pi ব্যবহার করে কীভাবে একটি Geth-লাইটহাউস নোড এবং ভ্যালিডেটর সেট আপ করতে হয় তার একটি ওভারভিউ দিয়েছে। আরও বিস্তারিত নির্দেশাবলী Ethereum-on-Arm ওয়েবসাইট (opens in a new tab)-এ উপলব্ধ রয়েছে।
মতামতের প্রশংসা করা হয়
আমরা জানি Raspberry Pi-এর একটি বিশাল ব্যবহারকারী বেস রয়েছে যা ইথেরিয়াম নেটওয়ার্ক-এর স্বাস্থ্যের ওপর খুব ইতিবাচক প্রভাব ফেলতে পারে। অনুগ্রহ করে এই টিউটোরিয়ালের বিস্তারিত জানুন, টেস্টনেটগুলোতে চালানোর চেষ্টা করুন, আর্ম-এ ইথেরিয়াম (Ethereum on Arm) GitHub দেখুন, মতামত দিন, ইস্যু এবং পুল রিকোয়েস্ট তৈরি করুন এবং প্রযুক্তি ও ডকুমেন্টেশনকে এগিয়ে নিতে সাহায্য করুন!
তথ্যসূত্র
- https://ubuntu.com/download/raspberry-pi (opens in a new tab)
- https://wikipedia.org/wiki/Port_forwarding (opens in a new tab)
- https://prometheus.io (opens in a new tab)
- https://grafana.com (opens in a new tab)
- https://forum.armbian.com/topic/5565-zram-vs-swap/ (opens in a new tab)
- https://geth.ethereum.org (opens in a new tab)
- https://nethermind.io (opens in a new tab)
- https://www.hyperledger.org/projects/besu (opens in a new tab)
- https://github.com/prysmaticlabs/prysm (opens in a new tab)
- https://lighthouse.sigmaprime.io (opens in a new tab)
- https://docs.ethswarm.org/ (opens in a new tab)
- https://raiden.network (opens in a new tab)
- https://ipfs.io (opens in a new tab)
- https://status.im (opens in a new tab)
- https://vipnode.org (opens in a new tab)