تشغيل عقدة إيثيريوم على Raspberry Pi 4
إيثيريوم على Arm هي صورة Linux مخصصة يمكنها تحويل Raspberry Pi إلى عقدة إيثيريوم.
لاستخدام إيثيريوم على Arm لتحويل Raspberry Pi إلى عقدة إيثيريوم، يوصى باستخدام الأجهزة التالية:
- لوحة Raspberry 4 (model B 8GB) أو Odroid M1 أو Rock 5B (8GB/16GB RAM)
- بطاقة MicroSD (بحد أدنى 16 GB Class 10)
- قرص SSD بحد أدنى 2 TB بمنفذ USB 3.0 أو SSD مع حاوية USB to SATA.
- مزود طاقة
- كابل إيثرنت
- توجيه المنافذ (راجع العملاء لمزيد من المعلومات)
- حاوية مع مشتت حراري ومروحة
- لوحة مفاتيح USB وشاشة وكابل HDMI (micro-HDMI) (اختياري)
لماذا تشغيل إيثيريوم على ARM؟
لوحات ARM هي أجهزة كمبيوتر صغيرة ومرنة وبأسعار معقولة جدًا. إنها خيارات جيدة لتشغيل عقد إيثيريوم لأنه يمكن شراؤها بتكلفة زهيدة، وتكوينها بحيث تركز جميع مواردها فقط على العقدة، مما يجعلها فعالة، وتستهلك كميات منخفضة من الطاقة وهي صغيرة الحجم بحيث يمكن وضعها بشكل غير ملحوظ في أي منزل. من السهل جدًا أيضًا تشغيل العقد لأنه يمكن ببساطة تفليش بطاقة MicroSD الخاصة بـ Raspberry Pi بصورة مبنية مسبقًا، دون الحاجة إلى تنزيل أو بناء برامج.
كيف تعمل؟
يتم تفليش بطاقة ذاكرة Raspberry Pi بصورة مبنية مسبقًا. تحتوي هذه الصورة على كل ما يلزم لتشغيل عقدة إيثيريوم. باستخدام بطاقة مفلشة، كل ما يحتاجه المستخدم هو تشغيل Raspberry Pi. يتم بدء جميع العمليات المطلوبة لتشغيل العقدة تلقائيًا. يعمل هذا لأن بطاقة الذاكرة تحتوي على نظام تشغيل (OS) قائم على Linux يتم تشغيل عمليات على مستوى النظام فوقه تلقائيًا لتحويل الوحدة إلى عقدة إيثيريوم.
لا يمكن تشغيل إيثيريوم باستخدام نظام تشغيل Linux الشهير لـ Raspberry Pi "Raspbian" لأن Raspbian لا يزال يستخدم بنية 32-bit مما يؤدي إلى مواجهة مستخدمي إيثيريوم لمشكلات في الذاكرة ولا يدعم عملاء الإجماع الثنائيات 32-bit. للتغلب على ذلك، انتقل فريق إيثيريوم على Arm إلى نظام تشغيل أصلي 64-bit يسمى "Armbian".
تتولى الصور جميع الخطوات اللازمة، بدءًا من إعداد البيئة وتهيئة قرص SSD إلى تثبيت وتشغيل برنامج إيثيريوم بالإضافة إلى بدء مزامنة سلسلة الكتل.
ملاحظة حول عملاء التنفيذ والإجماع
تتضمن صورة إيثيريوم على Arm عملاء تنفيذ وإجماع مبنيين مسبقًا كخدمات. تتطلب عقدة إيثيريوم أن يكون كلا العميلين قيد التشغيل والمزامنة. يُطلب منك فقط تنزيل الصورة وتفليشها ثم بدء الخدمات. الصورة محملة مسبقًا بعملاء التنفيذ التاليين:
- جو إيثريوم (geth)
- نيذرميند
- بيسو
وعملاء الإجماع التاليين:
- لايتهاوس
- نيمبوس
- برايزم
- تيكو
يجب عليك اختيار واحد من كل نوع لتشغيله - جميع عملاء التنفيذ متوافقون مع جميع عملاء الإجماع. إذا لم تختر عميلاً بشكل صريح، فستعود العقدة إلى إعداداتها الافتراضية - جو إيثريوم (geth) ولايتهاوس - وتقوم بتشغيلهما تلقائيًا عند تشغيل اللوحة. يجب عليك فتح المنفذ 30303 على جهاز التوجيه الخاص بك حتى يتمكن جو إيثريوم (geth) من العثور على الأقران والاتصال بهم.
تنزيل الصورة
صورة إيثيريوم لـ Raspberry Pi 4 هي صورة "التوصيل والتشغيل" التي تقوم تلقائيًا بتثبيت وإعداد كل من عملاء التنفيذ والإجماع، وتكوينهم للتواصل مع بعضهم البعض والاتصال بشبكة إيثيريوم. كل ما يحتاجه المستخدم هو بدء عملياتهم باستخدام أمر بسيط.
قم بتنزيل صورة Raspberry Pi من إيثيريوم على Arm (opens in a new tab) وتحقق من تجزئة SHA256:
# من الدليل الذي يحتوي على الصورة التي تم تنزيلها
shasum -a 256 ethonarm_22.04.00.img.zip
# يجب أن يكون ناتج التجزئة: fb497e8f8a7388b62d6e1efbc406b9558bee7ef46ec7e53083630029c117444f
لاحظ أن الصور الخاصة بلوحات Rock 5B و Odroid M1 متوفرة في صفحة تنزيلات (opens in a new tab) إيثيريوم على Arm.
تفليش MicroSD
يجب أولاً إدخال بطاقة MicroSD التي سيتم استخدامها لـ 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.
بدء العقدة
مع إدخال بطاقة SD في Raspberry Pi، قم بتوصيل كابل الإيثرنت و SSD ثم قم بتشغيل الطاقة. سيقلع نظام التشغيل والبدء تلقائيًا في أداء المهام المكونة مسبقًا التي تحول 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 الخاص بك الآن عقدة إيثيريوم! من الشائع التفاعل مع شبكة إيثيريوم باستخدام وحدة تحكم JavaScript الخاصة بـ جو إيثريوم (geth)، والتي يمكن إرفاقها بعميل جو إيثريوم (geth) على المنفذ 8545. من الممكن أيضًا إرسال أوامر منسقة ككائنات JSON باستخدام أداة طلب مثل Curl. شاهد المزيد في وثائق جو إيثريوم (geth) (opens in a new tab).
تم تكوين جو إيثريوم (geth) مسبقًا للإبلاغ عن المقاييس إلى لوحة معلومات Grafana والتي يمكن عرضها في المتصفح. قد يرغب المستخدمون الأكثر تقدمًا في استخدام هذه الميزة لمراقبة صحة العقدة الخاصة بهم عن طريق الانتقال إلى ipaddress:3000، وتمرير user: admin و passwd: ethereum.
المُدَقِّقون
يمكن أيضًا إضافة مُدَقِّق اختياريًا إلى عميل الإجماع. يسمح برنامج المُدَقِّق للعقدة الخاصة بك بالمشاركة بنشاط في الإجماع ويوفر للشبكة أمانًا اقتصاديًا مشفرًا. تتم مكافأتك على هذا العمل بـ ETH. لتشغيل مُدَقِّق، يجب أن يكون لديك أولاً 32 ETH، والتي يجب إيداعها في عقد الإيداع. يمكن إجراء الإيداع باتباع الدليل التفصيلي على منصة الإطلاق (Launchpad) (opens in a new tab). قم بذلك على كمبيوتر مكتبي/محمول، ولكن لا تقم بإنشاء مفاتيح — يمكن القيام بذلك مباشرة على 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) للتشغيل على جهاز معزول عن الشبكة (airgapped)، وقم بتشغيل الأمر deposit new-mnemnonic)
حافظ على أمان العبارة التذكيرية! أنشأ الأمر أعلاه ملفين في مخزن المفاتيح الخاص بالعقدة: مفاتيح المُدَقِّق وملف بيانات الإيداع. يجب تحميل بيانات الإيداع إلى منصة الإطلاق، لذا يجب نسخها من Raspberry Pi إلى الكمبيوتر المكتبي/المحمول. يمكن القيام بذلك باستخدام اتصال ssh أو أي طريقة نسخ/لصق أخرى.
بمجرد توفر ملف بيانات الإيداع على الكمبيوتر الذي يقوم بتشغيل منصة الإطلاق، يمكن سحبه وإفلاته في + على شاشة منصة الإطلاق. اتبع التعليمات التي تظهر على الشاشة لإرسال معاملة إلى عقد الإيداع.
بالعودة إلى Raspberry Pi، يمكن بدء مُدَقِّق. يتطلب هذا استيراد مفاتيح المُدَقِّق، وتعيين العنوان لجمع المكافآت، ثم بدء عملية المُدَقِّق المكونة مسبقًا. المثال أدناه خاص بـ لايتهاوس—تتوفر تعليمات لعملاء الإجماع الآخرين في وثائق إيثيريوم على 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!
مزيد من التفاصيل
قدمت هذه الصفحة نظرة عامة حول كيفية إعداد عقدة جو إيثريوم (geth)-لايتهاوس ومُدَقِّق باستخدام Raspberry Pi. تتوفر تعليمات أكثر تفصيلاً على موقع إيثيريوم على Arm (opens in a new tab).
نقدر ملاحظاتك
نحن نعلم أن Raspberry Pi لديه قاعدة مستخدمين ضخمة يمكن أن يكون لها تأثير إيجابي للغاية على صحة شبكة إيثيريوم. يرجى التعمق في التفاصيل في هذا البرنامج التعليمي، ومحاولة التشغيل على شبكات الاختبار، والتحقق من GitHub الخاص بـ إيثيريوم على Arm، وتقديم الملاحظات، والإبلاغ عن المشكلات وطلبات السحب والمساعدة في تطوير التكنولوجيا والوثائق!
المراجع
- 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)