كيفية تشغيل عقدة Bitcoin الكاملة عبر Tor على جهاز أوبونتو الظاهري (Linux)

دليل خطوة بخطوة لتشغيل Bitcoin Full Node على جهاز الكمبيوتر الخاص بك - لا توجد خبرة سابقة مطلوبة!

العقد الكاملة هي نظام بيتكوين العصبي!

نظرًا لأن كل هذا يعمل داخل جهاز افتراضي ، فلا داعي للقلق بشأن إتلاف نظام التشغيل الرئيسي / المضيف. سيوفر لك هذا ملعبًا لعقدة بيتكوين منخفضة المخاطر. تم إعداد هذا الدليل باستخدام إصدار Microsoft Windows من VirtualBox ، لكن العملية متطابقة تقريبًا على نظام MacOS.

لأنني أعلم مدى صعوبة العثور على أدلة محدّثة لهذا النوع من الإعداد ، أخطط لتحديث هذا الدليل بانتظام مع الإصدارات الجديدة من Bitcoin Core و VirtualBox و Ubuntu. نأمل أن يضمن ذلك أن يكون لدى العبثيين الفضوليين دائمًا دليل دقيق وحديث.

ستكون هذه النسخة الأولية قائمة على النص في الغالب ، لكن في المراجعات المستقبلية آمل أن أضيف لقطات شاشة أو حتى فيديو من خطوات مختلفة. يرجى الاطلاع على المراجع في الأسفل - لم أستطع تجميع هذا الدليل بدونها.

الجزء صفر - نظرة عامة

في هذا الدليل ، سننجز أربع مهام رئيسية:

  1. إعداد مضيف VirtualBox على الجهاز الظاهري
  2. تثبيت وتكوين أحدث إصدار مستقر وطويل الأجل من دعم Ubuntu Server داخل مضيف الجهاز الظاهري هذا
  3. تثبيت وتكوين Bitcoin Core (bitcoind) Full Node
  4. تكوين bitcoind للتشغيل عبر شبكة Tor (هذا يحمي خصوصيتك مع تجنب الحاجة إلى تعديل أي إعدادات جهاز توجيه منزلي للسماح بحركة مرور شبكة Bitcoin الواردة)

الجزء الأول - المتطلبات الأساسية

نظرًا لأن العقدة الكاملة الحقيقية تتطلب تنزيل وتخزين محفوظات سلسلة Bitcoin بأكملها بالكامل ، ستحتاج إلى التأكد من توفر مساحة خالية على القرص الصلب تبلغ 200 جيجابايت تقريبًا ، ومن الناحية المثالية أقرب إلى 250 جيجابايت. على الرغم من أنه يمكنك تنفيذ ما يُعرف باسم "التقليم" لتقليص مساحة القرص المستخدمة بعد التنزيل الأولي لـ blockchain ، إلا أنني لن أغطي ذلك هنا.

يعني حجم blockchain أيضًا أنه بناءً على اتصال الشبكة ، قد يستغرق التنزيل / المزامنة الأولي ساعات أو أيام ... أو حتى وقتًا أطول. كن صبورا!

الجزء الثاني - إعداد النظام الأساسي لـ VirtualBox

VirtualBox هو برنامج مجاني ومفتوح المصدر لتشغيل الأجهزة الافتراضية على جهاز الكمبيوتر الخاص بك. للتنزيل ، تفضل بزيارة https://www.virtualbox.org/

قم بتنزيل أحدث إصدار (حاليًا 5.2.22) لنظامك الأساسي ، وهو بالنسبة لي (على نظام التشغيل Windows 10) هو VirtualBox-5.2.22–126460-Win.exe

قم بتشغيل برنامج التثبيت exe وقبول كل الإعدادات الافتراضية. عندما يكمل هذا ، نحن على استعداد لتثبيت أوبونتو!

الجزء الثالث - تكوين الجهاز الظاهري لخادم Ubuntu Linux

Ubuntu هي واحدة من أكثر توزيعات نظام التشغيل Linux شعبية وهي مجانية للتنزيل والاستخدام. في هذا الدليل ، سأستخدم ما يعرف بإصدار LTS (الدعم طويل الأجل) ، والذي يتم دعمه وتوفير تحديثات الأمان لمدة خمس سنوات.

هذا أمر رائع بالنسبة لخادم "بدون رأس" (بدون واجهة المستخدم الرسومية) حيث لا توجد حاجة إلى رسومات فاخرة أو أحدث وأكبر التطبيقات الاستهلاكية. ومع ذلك ، يمكنك استخدام الإصدار الأحدث والمحدث بشكل متكرر أكثر. فقط كن على دراية بأن الأشياء قد تنكسر ... لكن Bitcoin معروفة باستقرار الشفرة ، لذلك من المنطقي تشغيله على نظام تشغيل معروف أيضًا باستقرار الشفرة الخاص به!

للبدء ، قم بتنزيل أحدث إصدار من LTS (حاليًا 18.04 LTS) من موقع Ubuntu على الويب: https://www.ubuntu.com/download/server/thank-you؟version=18.04.1&architecture=amd64. اسم الملف لهذا الإصدار هو ubuntu-18.04.1-live-server-amd64.iso

بمجرد تنزيل ملف ISO (صورة القرص) ، ابدأ Virtual Box. ستظهر لك الواجهة الرئيسية ، وهي فارغة إلى حد ما في الوقت الحالي. لذلك دعونا نضيف VM جديد:

(الإضافة المستقبلية: كيفية إضافة مضيف الشبكة الثاني حتى نتمكن من SSH في VM لجعل نسخة / لصق النص سهل)

انقر فوق جديد

اعط اسم VM ، مثل خادم أوبونتو - كل ما تريد

في النوع حدد Linux

في الإصدار ، حدد Ubuntu (64 بت)

في مربع حوار حجم الذاكرة ، اختر أكبر قدر ممكن من الذاكرة دون التأثير سلبًا على قدرتك على استخدام جهاز الكمبيوتر الخاص بك أثناء تشغيل VirtualBox. لدي 16 جيجابايت من ذاكرة الوصول العشوائي على الكمبيوتر المضيف الخاص بي ، لذلك سأختار ~ 4 جيجابايت هنا. كلما زادت مساحة الذاكرة التي يمكنك تخصيصها ، كلما كان تنزيل / مزامنة Bitcoin blockchain الأولي كثيف الذاكرة. يمكنك دائمًا تغيير حجم هذا (أو أعلى) لاحقًا حسب الحاجة.

في مربع الحوار Hard disk ، حدد إنشاء قرص ثابت افتراضي الآن ، ثم انقر فوق الزر "إنشاء"

في مربع الحوار نوع ملف القرص الثابت ، اترك VDI محددًا.

في مربع الحوار التخزين على القرص الثابت الفعلي ، اترك تخصيصًا حيويًا محددًا.

في مربع الحوار موقع وحجم الملف ، ستحتاج إلى اختيار 200 جيجابايت على الأقل. حتى كتابة هذه السطور ، تستهلك قاعدة بيانات blockchain حوالي 180 جيجابايت ، وستحتاج إلى مساحة للنمو. لاحظ أن VirtualBox لن يستهلك هذه المساحة على الفور ، ولكنه سيزيد حجم القرص الظاهري حسب الحاجة ، حتى هذا الحد.

انقر فوق إنشاء

سيكتمل الإعداد ، وسترى إدخالًا جديدًا في العمود الأيسر يسرد الجهاز الظاهري الجديد. الآن نحن بحاجة للحصول عليه وتشغيله!

الجزء الرابع - تثبيت Ubuntu Linux على قرص الجهاز الظاهري الجديد

اختر ابدأ من قائمة VirtualBox الرئيسية. سيُطلب منك قرص بدء التشغيل. اختر ملف Ubuntu .iso الذي قمنا بتنزيله مسبقًا ، ثم انقر فوق ابدأ.

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

للتنقل في برنامج التثبيت المستند إلى النص ، يجب عليك استخدام مفاتيح الأسهم للتنقل بين الاختيارات ، ومفتاح Tab للانتقال إلى أزرار التأكيد (نعم / لا / تم الانتهاء / المتابعة) ، ومفتاح Enter للتحديد. يمكنك أيضًا استخدام مفاتيح الأسهم للتمرير وصولاً إلى أزرار التأكيد ، ولكن علامة التبويب أسرع بكثير.

صفحة 1 - شاشة الترحيب

اختر لغتك المفضلة (تذكير - انتقل باستخدام مفاتيح الأسهم ، ثم اضغط على Enter عندما يتم تمييز لغتك)

صفحة 2 - تكوين لوحة المفاتيح

حدد تخطيط لوحة المفاتيح (عادة ما يكون الإعداد الافتراضي جيدًا - يمكنك فقط الضغط على Enter)

صفحة 3 - تثبيت أوبونتو

اترك تثبيت أوبونتو المحدد

صفحة 4 - اتصالات الشبكة

يجب تحديد إعدادات الشبكة تلقائيًا وإنشاء عنوان IP محلي. إذا لم يحدث ذلك ، فستكون الدقة خارج نطاق هذا الدليل - ستحتاج إلى طلب المساعدة.

صفحة 5 - تكوين الوكيل

اتركه فارغا

صفحة 6 - تكوين مرآة أرشيف أوبونتو

اترك المرآة الافتراضية محددة

صفحة 7 - إعداد نظام الملفات

اترك استخدام قرص كامل محددًا

صفحة 7 ب

اختر القرص الافتراضي لتثبيت

صفحة 7 ج

اقبل تخطيط نظام الملفات الافتراضي

اختر "متابعة" في مربع الحوار "تأكيد الإجراء المدمر" (تذكر ، نحن في جهاز افتراضي ، لذلك هذا لا يمسح أي شيء على مضيفك / نظام التشغيل الرئيسي!)

صفحة 7 د

أدخل اسمك (أو ما تريد) ، واسم الخادم ، واسم المستخدم وكلمة المرور. سيكون اسم المستخدم الذي تم إدخاله هنا هو الاسم الذي نستخدمه لتشغيل خدمة Bitcoind نفسها. بالنسبة لهذا الدليل ، سأستخدم الأساسية

اترك مجموعة هوية استيراد SSH على لا

الصفحة 7e

اترك كل لقطات الخادم المميزة غير محددة

صفحة 10 (نعم يتخطى 7 إلى 10) - تثبيت النظام

ستحتاج فقط إلى الانتظار هنا حتى يكتمل التثبيت ، وعادة ما يكون ذلك لبضع دقائق فقط

صفحة 11 - اكتمال التثبيت!

اختر إعادة التشغيل الآن

اضغط على Enter عند مطالبتك بإزالة وسائط التثبيت

سيتم إعادة تشغيل جهاز VM ، وبعد بضع دقائق سترى مطالبة تسجيل الدخول! (قد تحتاج إلى الضغط على Enter بمجرد توقف رسائل التمهيد - في بعض الأحيان لن يظهر موجه تسجيل الدخول بطريقة أخرى).

قبل أن ننتقل إلى القسم التالي من هذا الدليل ، سنود التأكد من أن خادمنا مُحدّث بأحدث تحديثات الأمان والبرامج.

للقيام بذلك ، تسجيل الدخول ، ثم من نوع المطالبة

sudo apt-get update && sudo apt-get الترقية

أدخل كلمة المرور عند المطالبة ، اضغط على Enter ، وانتظر حتى يتم تحديث كل شيء. يجب عليك تشغيل الأمر أعلاه بشكل دوري للتأكد من تحديث الخادم الخاص بك مع تصحيحات الأمان!

الآن يمكننا الوصول إلى الجزء الممتع: تثبيت خادم Bitcoin-Core ، bitcoind!

الجزء الخامس - تثبيت خادم Bitcoin Core (bitcoind)

لتثبيت bitcoind ، سنقوم بتنزيل وتجميع الكود المصدري لكل من bitcoin وقاعدة بيانات Berkeley التي يستخدمها لتخزين معلومات المحفظة. قبل أن نتمكن من القيام بذلك ، سنحتاج إلى تثبيت بعض البرامج المطلوبة مسبقًا.

أولاً ، نحتاج إلى تمكين مستودع برمجيات إضافي يحتوي على بعض أدوات الترجمة الأساسية (ستحتاج إلى إدخال كلمة المرور لمعظم الأوامر التالية):

sudo add-apt-repository الكون

سيتم تثبيت حزم إضافية. بمجرد الانتهاء ، يمكننا تثبيت المتطلبات الأساسية الأخرى الخاصة بنا:

sudo-apt-get install build-autoconf libtool pkg-config libboost-all-dev libssl-dev libevent-dev doxygen libzmqpp-dev

نحن على استعداد لتثبيت برنامج قاعدة بيانات BerkeleyDB المطلوب لوظيفة محفظة Bitcoin. أولاً ، سنستخدم الأمر wget لتنزيل البرنامج:

wget http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz

بعد ذلك ، سوف نتحقق من أن عملية التنزيل أصلية / لم يتم العبث بها:

echo '12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef db-4.8.30.NC.tar.gz' | sha256sum -c

إذا كان الإخراج ينتهي بـ "OK" ، فإن الملف آمن! ستقوم الأوامر القليلة التالية باستخراج البرنامج وتعيين بعض متغيرات البيئة وتكوينه وتجميعه وتثبيته. أدخل كل أمر على حدة!

tar -xvf db-4.8.30.NC.tar.gz
cd db-4.8.30.NC/build_unix
mkdir -p بناء
BDB_PREFIX = $ (الأشخاص ذوي الإعاقة) / بناء
../dist/configure - قابل للمشاركة - قابل للتشغيل - cxx - مع pic --prefix = $ BDB_PREFIX
جعل تثبيت

ستستغرق الخطوة الأخيرة بضع دقائق. عند الانتهاء ، يمكننا - أخيرًا! - تنزيل وتكوين وتجميع وتثبيت Bitcoin Core.

أولاً ، تأكد من الرجوع إلى دليل Ubuntu الرئيسي الخاص بك (هذا عبارة عن لوحة ، عادةً ما تكون على لوحة المفاتيح على يسار الرقم 1):

مؤتمر نزع السلاح ~

سنستخدم أداة إصدار برنامج Git لتنزيل شفرة مصدر Bitcoin ومزامنتها مع VM الخاص بنا:

بوابة استنساخ https://github.com/bitcoin/bitcoin.git

نحتاج الآن إلى التحقق من أحدث إصدار ثابت (الإصدار v0.17.0.1 حاليًا - يمكنك تشغيل git tag إلى قائمة الإصدارات):

بيتكوين مؤتمر نزع السلاح
بوابة الخروج v0.17.0.1
حالة بوابة

يجب أن يبلغ الأمر الأخير عن HEAD منفصلة في متبوعة برقم الإصدار الذي طلبته. نحن مستعدون للحصول على نصوص بناء جاهزة لإعداد ترجمة للمصدر:

./autogen.sh

بعد بضع دقائق ، ونحن على استعداد لتكوين الخيارات التي نريد تجميعها في بناء Bitcoin الخاص بنا. بالنسبة لهذه المقالة ، لن نستخدم واجهة المستخدم الرسومية (gui) ، لذلك يمكننا تعطيل ذلك. يتم استخدام الأعلام الغامضة الأخرى لإعلام المترجم أين / كيفية استخدام قاعدة بيانات بيركلي:

./configure CPPFLAGS = "- I $ {BDB_PREFIX} / include / -O2" LDFLAGS = "- L $ {BDB_PREFIX} / lib /" - with-gui = no

وأخيرا ، نحن على استعداد لتجميع! قد تستغرق هذه الخطوة وقتًا طويلاً اعتمادًا على سرعة نظامك ، لذا كن صبورًا - اصنع القهوة!

يصنع
جعل الاختيار
سودو جعل تثبيت

بعد الانتهاء من القهوة ، يمكننا المضي قدمًا في تكوين Bitcoin لاستخدام Tor.

الجزء السادس - تكوين Bitcoin لاستخدام Tor

قبل تشغيل خادم Bitcoin Core (bitcoind) ، سنحتاج إلى إنشاء ملف التكوين الخاص به للتأكد من قيامه بتنزيل محفوظات blockchain الكاملة (حتى نتمكن من فحص أي معاملة مباشرة) واستخدام اتصالات Tor فقط. بشكل افتراضي ، حتى إذا قمت بتثبيت Tor وتكوينه ، فسيظل bitcoind على اتصال بالعقد عبر TCP - يتعين علينا إخباره صراحة باستخدام TOR فقط لحماية خصوصيتنا:

مؤتمر نزع السلاح ~
mkdir. بيتكوين
المس. بيتكوين / بيتكوين
صدى "txindex = 1" >> .bitcoin / bitcoin.conf
صدى "onlynet = بصل" >> .cbcoin / bitcoin.conf

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

صدى "maxconnections = 20" >> .bitcoin / bitcoin.conf

قم بتجربة أرقام مختلفة حيث استخدمت 20 أعلاه حتى تصل إلى مستوى مقبول من سرعة الشبكة.

لاحظ أن تنزيل blockchain الأولي يستغرق وقتًا طويلاً ، ولكنه يستغرق وقتًا أطول عبر Tor ، لأن شبكة Tor تمثل عنق الزجاجة. قد تفكر في السماح بتنزيل blockchain الأولي مباشرة عبر TCP (بوضع علامة # أمام سطر Onlynet لتعطيله). بعد ذلك ، يمكنك متابعة تمكين ميزات Tor أدناه. لاحظ أن القيام بذلك سوف يعرض عنوان IP الخارجي للشبكة.

نحتاج الآن إلى تثبيت Tor ، وهو أمر بسيط على أوبونتو:

sudo - الحصول على تثبيت تثبيت تور

تأكد من أن الأسطر التالية موجودة (في أي مكان) في ملف تكوين Tor - / usr / share / tor-service-defaults-torrc:

ControlPort 9051
ملف تعريف الارتباط 1
CookieAuthFileGroupReadable 1

لعرض الإعدادات الافتراضية ، استخدم الأمر:

أقل / usr / share / tor / tor-service-defaults-torrc

في حالة فقد أي من الأسطر أعلاه ، قم بإضافتها باستخدام الأمر echo كما كان من قبل ، على سبيل المثال:

sudo sh -c "echo 'ControlPort 9051' >> / usr / share / tor / tor-service-defaults-torrc"

إذا كان عليك إضافة أي من الأسطر أعلاه ، فتأكد من إعادة تشغيل خدمة Tor:

sudo /etc/init.d/tor إعادة التشغيل

من أجل السماح ل bitcoind بالوصول إلى المصادقة التي يستخدمها Tor ، يتعين علينا إضافة المستخدم الذي يقوم بتشغيل bitcoind (المستخدم الذي قمت بإعداده مسبقًا أثناء تثبيت Ubuntu) إلى مجموعة Tor (بالنسبة لي ، سأضع اسم المستخدم الأساسي في القائمة أدناه ، لأن هذا هو المستخدم الذي قمت بإعداده مسبقًا):

sudo usermod -a -G debian-tor اسم المستخدم

تأكد الآن من تسجيل الدخول والعودة مرة أخرى للتأكد من تحديث عضوية المجموعة (يمكنك أيضًا إعادة تشغيل جهاز VM إذا أردت). بمجرد الانتهاء من ذلك ، نحن مستعدون أخيرًا لإطلاق Bitcoin عبر Tor!

bitcoind-daemon

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

tail -f ~ / .bitcoin / debug.log

قد يستغرق الأمر عدة أيام (أو أكثر) لتنزيل وتهيئة blockchain بأكملها. بمجرد اكتمال ذلك ، ستصبح العقدة جاهزة للتشغيل ويمكن أن تخدم كتل العقد الأخرى على شبكة Tor. ستحتاج إلى التحقق من ضبط IPv4 و IPv6 على "false" في إخراج الأمر التالي للتأكد من أنك تعمل فقط عبر Tor:

بيتكوين- CLI getnetworkinfo

بمجرد أن تتم مزامنة العقدة بالكامل وتخدم الكتل بنشاط في العقد الأخرى ، يمكنك تشغيل الأمر التالي لمعرفة ما إذا كانت تفعل ذلك. إذا رأيت أي نتائج "حقيقية" ، فهي تعمل!

bitcoin-cli getpeerinfo | grep صحيح

لا تتردد في طرح أي أسئلة أو الرد على المشاكل في التعليقات. شكرا للقراءة!

المراجع

https://medium.com/@lopp/how-to-run-bitcoin-as-a-tor-hidden-service-on-ubuntu-cff52d543756

https://github.com/bitcoinbook/bitcoinbook/blob/develop/ch03.asciidoc

https://www.reddit.com/r/Bitcoin/comments/4y7nc3/create_bitcoin_full_node_with_tor_step_by_step/؟st=j5n7z1q1&sh=392084c9

https://hackernoon.com/a-complete-beginners-guide-to-installing-a-bitcoin-full-node-on-linux-2018-edition-cb8e384479ea