كيفية تشغيل GETH من حاوية عامل الميناء

يمكن أن يكون تثبيت عميل العقدة Ethereum على جهاز عملية شاقة. هناك طريقة أكثر بساطة يمكن القيام بذلك باستخدام عميل Docker. هذا دليل لتشغيل عميل عقدة GETH (Ethereum-Go) من داخل حاوية Docker. GETH هو تطبيق GoLang لبروتوكول Ethereum. هناك صورة متاحة للسحب من مستودع لوحة الوصل Docker الذي يمكنه تشغيل البيئة.

يسرد موقع GoEthereum على الويب الصور المتاحة التالية مع الوصف.

  • ethereum / client-go: الأحدث هو أحدث إصدار من Geth
  • ethereum / client-go: مستقرة هي أحدث إصدار ثابت من Geth
  • ethereum / client-go: {version} هو الإصدار الثابت من Geth على رقم إصدار محدد
  • ethereum / client-go: release- {version} هو أحدث إصدار ثابت من Geth في عائلة إصدار معين

يتم فتح المنافذ التالية افتراضيًا عند التشغيل من الحاوية.

  • 8545 TCP ، يستخدم من قبل HTTP JSON RPC API
  • 8546 TCP ، يستخدمه WebSocket المستندة إلى JSON RPC API
  • 30303 TCP و UDP ، يستخدمهما بروتوكول P2P الذي يدير الشبكة
  • 30304 UDP ، يُستخدم بواسطة تراكب اكتشاف النظير الجديد لبروتوكول P2P

يجب تثبيت برنامج عميل Docker على الجهاز الذي ستقوم بتشغيل الحاوية منه. يمكن تشغيل الحاويات فقط إذا كان لديك عميل Docker مثبتًا. وفقًا لنظام التشغيل الخاص بك ، ستكون هناك حاجة إلى الإصدار الصحيح من العميل.

هناك إصدارات منفصلة لنظام التشغيل Windows و Linux و MacOS. يمكن تشغيل الحاوية على مثيل Linux يعمل على AWS ، مثل تثبيت Linux النموذجي. بمجرد تثبيت عميل Docker ، لا يهم النظام الأساسي الأساسي. الأوامر ستكون هي نفسها للجميع.

الحصول على الصورة

افتح محطة على نظام التشغيل Linux أو MacOS أو PowerShell موجه الأوامر من Windows. في موجه CLI ، اكتب الأمر التالي:

عامل ميناء سحب ethereum / العميل تذهب

يؤدي ذلك إلى سحب صورة Docker من مستودع لوحة الوصل حيث تم تحميلها بواسطة مطوري Ethereum. بمجرد إصدار هذا الأمر ، يجب عرض المطول أو ما شابه ذلك:

لقد قمت بالفعل بسحب الصورة ، لذا قد تبدو المطوّلة مختلفة. عندما تصدر أمر السحب ، فسيتم تنزيله دائمًا على أحدث صورة متاحة ، وهي ممارسة جيدة.

تشغيل العقدة

يمكنك الآن بدء العقدة بإصدار الأمر التالي:

نريد تشغيل العقدة باستخدام خيارات العلم - i و - لعرض المعلومات من الحاوية الخاصة بنا. يشير المعيار -p إلى استخدام رقم المنفذ ، في هذه الحالة 30303. وبالمثل ، يمكن تشغيل الأمر بدون إشارات وسيستخدم ببساطة المنافذ والإعدادات الافتراضية من داخل الحاوية.

يجب أن تظهر المعلومات التالية من المحطة.

يكشف خط INFO الذي يعرض التكوين ما قام برنامج عميل العقدة بتثبيته. يقوم عميل العقدة بتشغيل أحدث إصدار (اعتبارًا من هذا النشر) من برنامج Ethereum وهو القسطنطينية وهو عبارة عن شوكة صلبة تم تنشيطها من قِبل المستخدم على ارتفاع الكتلة 7280000.

عند التشغيل في JSON-RPC API:

لاحظ أن تشغيل الخيار rpcaddr "0.0.0.0" غير آمن ، لأنك تفتح العقدة أمام كل حركة المرور. إذا تم إلغاء قفل محفظتك ETH ، يمكن للمتسلل الوصول إلى العقدة الخاصة بك بهذه الطريقة وأخذ عملاتك المعدنية. لا أغطي الأمان في هذه المقالة ، لكن يمكنك قراءة المزيد حول هذا الموضوع هنا (تأمين منافذ RPC لعقدة GETH الخاصة بك). دائما الالتزام بالممارسات الآمنة وأفضل.

إذا عرضت العقدة ما يلي في سطر INFO ، فستحدث مشكلة:

config = "{ChainID: 1 Homestead: 1150000 DAO: 1920000 DAOSupport: true EIP150: 2463000 EIP155: 2675000 EIP158: 2675000 Byzantium: 4370000 Constantinople: Engine: ethash}"

القسطنطينية: تشير إلى أنه لم يتم تحديث البرنامج. لا يوجد أيضًا أي خط لـ ConstantinopleFix ، والذي يظهر في التكوين الصحيح.

البيانات المستمرة

بالنسبة لبيانات blockchain المستمرة ، يجب استخدام وحدات تخزين بيانات Docker مع الخيار -v. يجب استبدال / path / on / host بالموقع الذي تحدده. لهذا الأمر يجب استخدام الأمر التالي:

التحقق من حالة العقدة

يمكنك التحقق من حالة الحاوية باستخدام الأمر التالي:

عامل ميناء ps

سيعرض هذا معرف الحاوية مع اسم الصورة والحالة والمنافذ المستخدمة.

تشغيل GETH من حاوية عامل الميناء

لاحظ أن هذا لا يؤدي تلقائياً إلى استخراج ETH. هذه عملية مختلفة. للوصول السريع إلى سلسلة Ethereum blockchain ، هذا هو الغرض من تشغيل GETH.

للحصول على مصدر الشفرة الكامل ، تفضل بزيارة: https://github.com/Play3rZer0/GETHDocker.git