78 / 736CORE

Bitcoin Core

برنامج للتحقق من Bitcoin بنفسك

Bitcoin Core برنامج حر لتشغيل عقدة Bitcoin خاصة بك. يتيح لجهازك التحقق من المدفوعات وقواعد الشبكة، مع استخدام المحفظة الاختيارية أو من دونها.

يتلقى Bitcoin Core الكتل والمعاملات من عقد أخرى ويفحصها وفق قواعد البرنامج الذي تشغله. بذلك لا تعتمد في التحقق على كلام خدمة خارجية وحده. تشغيل العقدة ليس تعدينًا ولا يمنح مكافآت BTC.

يبيع بافل الكتب مقابل البيتكوين. تعرض عليه عميلة إيصالًا على هاتفها، لكنه يريد معرفة ما إذا كانت الدفعة قد وصلت فعلًا وأُدرجت في كتلة صالحة. يمكنه سؤال مستكشف عام، أو استخدام محفظة متصلة بعقدته الخاصة. Bitcoin Core هو البرنامج الذي يشغل به هذه العقدة. والمقصود بالعقدة هنا حاسوب يشغّل برنامجًا يتحقق بنفسه من قواعد Bitcoin؛ أما الكتلة فهي مجموعة معاملات تُضاف إلى السجل المشترك. يستقبل البيانات من الآخرين، لكنه يقيّم صحتها بنفسه. بافل شخصية توضيحية: الفكرة أن تستبدل الاكتفاء بتصديق شاشة الغير بتحققك الخاص. تثبيت البرنامج لا يحوله إلى معدّن، ولا يمنحه BTC تلقائيًا، ولا يمكّنه من إلغاء مدفوعات الآخرين. ينشر المشروع الشفرة بترخيص MIT، الذي يسمح بدراستها وتعديلها وإعادة توزيعها وفق شروطه. [1] [16]

يسهل الخلط بين المهمتين لأن Bitcoin Core يستطيع أداءهما معًا. تفحص العقدة التاريخ والكتل الجديدة، بينما تتتبع المحفظة الأموال المرتبطة بها وتنشئ العناوين وتجهّز المعاملات. وإذا كانت تدير مفاتيح خاصة، فيمكنها التوقيع بها أيضًا. المفتاح الخاص بيانات سرية تستخدمها المحفظة لإنشاء توقيع رقمي يجيز إنفاق البيتكوين المرتبط به. ولا ترسل المفتاح نفسه إلى العقد الأخرى. لكن Core يعمل من دون محفظة أصلًا. يستطيع بافل الدفع بتطبيق آخر متوافق واستخدام عقدته مصدرًا للبيانات المتحقَّق منها؛ وقد تحتاج بعض طرق الربط إلى برامج إضافية. تشغيل Core وحده لا يوجّه جميع المحافظ الأخرى إلى عقدته تلقائيًا. ولتمييز الأسماء: يقدم bitcoin-qt واجهة رسومية، ويعمل bitcoind في الخلفية، ويرسل bitcoin-cli الأوامر إلى البرنامج. [12] [17]

تحتاج العقدة الجديدة أولًا إلى اللحاق بالتاريخ. تسمى هذه العملية Initial Block Download واختصارها IBD، أي التنزيل الأولي للكتل. أثناء المزامنة المعتادة تنزّل الكتل وتفحص ترابطها وعمل المعدّنين وقواعد المعاملات. وتبني من ذلك chainstate: سجلًا محليًا للمخرجات التي لم تُنفق بعد، المعروفة باسم UTXO. يحدد مخرج المعاملة مبلغًا وشروط إنفاقه، مثل التوقيع المطلوب. ويبقى في هذا السجل حتى تنفقه معاملة أخرى. ليس هذا قائمة أسماء وحسابات مصرفية. تعتمد السرعة على الجهاز والتخزين والاتصال، لذلك لا يعني البطء الأولي وحده وجود عطل. يتأكد بافل من اكتمال المزامنة قبل التحقق من المدفوعات الحالية.

وللدقة، قد تسمح assumevalid، بشروط محددة، بتجاوز فحص scripts، أي شروط الإنفاق، في الجزء القديم من السجل؛ ويعطّل ضبط assumevalid على القيمة 0 هذا الاختصار. أما AssumeUTXO فهي وظيفة مختلفة تسمح بالبدء من لقطة حالة يجري التحقق منها، ومعالجة التاريخ الأقدم في الخلفية. تحفظ اللقطة حالة UTXO عند كتلة معينة. يقارن البرنامج أولًا hash اللقطة، أي بصمتها الرقمية، بالقيمة المتوقعة في شفرته؛ ولا يعني ذلك أنه أتم بنفسه التحقق من التاريخ السابق كله. تختلف افتراضات الطريقتين، فلا يصح القول إن كل تثبيت أجرى الفحوص نفسها تمامًا منذ اللحظة الأولى. [9] [10] [12] [17]

بعد المزامنة يواصل Core استقبال بيانات العقد المتصلة، المسماة peers. ويحفظ المعاملات غير المؤكدة التي يقبلها في Mempool، أي غرفة انتظار مؤقتة تخصه. وجود المعاملة هناك ليس تأكيدًا داخل كتلة، وقد تختلف محتويات هذه الغرفة بين العقد. عندما تصل كتلة جديدة، يفحصها Core. وبين السلاسل المرشحة الصالحة يختار أكبر عمل متراكم، لا أكثر أصوات الحواسيب ولا مجرد أكبر عدد من الكتل. لذلك يميز بافل بين رؤية الدفعة وحصولها على تأكيد. وعقدته الخاصة لا تضمن إدراجًا فوريًا، ولا تلغي احتمال إعادة التنظيم، عندما يحل فرع صالح آخر محل جزء من التاريخ الذي كانت تتبعه. [16]

لنفترض أن عقدة بافل لم تقبل معاملة غير مؤكدة في Mempool. لا يعني ذلك تلقائيًا أنها لن تظهر أبدًا في كتلة صالحة. تحدد قواعد الإجماع صلاحية الكتل والإنفاق بالنسبة إلى العقدة. وتضيف relay policy المحلية، أي سياسة الترحيل، شروطًا لقبول المعاملات غير المؤكدة وتمريرها، مثل حماية موارد العقدة من الإغراق. لا تُطبق هذه السياسة بالطريقة نفسها على المعاملات داخل كتلة مستقبلة؛ فالمهم هناك هو صلاحيتها وفق الإجماع. لذا لا يكفي اختلاف إعدادات Mempool وحده لتقسيم الشبكة. فهم هذا الحد يساعدك على قراءة نقاشات Core من دون اعتبار كل إعداد تغييرًا لقواعد المال. [13]

يحفظ Core بيانات الكتل وحالة العقدة، والمحافظ إن استُخدمت. يوفر pruning مساحة بحذف ملفات الكتل القديمة وبيانات التراجع عن تغييراتها بعد المعالجة. تظل العقدة تتحقق من الكتل الجديدة، لكنها لا تحتفظ بالأرشيف كاملًا في متناولها. وقد تتطلب الاستعلامات التاريخية أو إعادة البحث عن دفعات قديمة تنزيل البيانات مجددًا. الفهارس سجلات مساعدة لتسريع البحث؛ مثلًا، لا يتوافق txindex مع pruning. يُختار ما يلزم منها بحسب وظيفة العقدة. والفرق الحاسم أن الكتل العامة يمكن تنزيلها ثانية، لكن لا يمكن استرجاع المفاتيح الخاصة المفقودة منها. تحتاج محفظة Core إلى نسخة احتياطية آمنة خاصة بها. أثناء تشغيل البرنامج استخدم وظيفة النسخ، مثل backupwallet، بدل نسخ قاعدة بيانات عشوائيًا وهي قيد الكتابة. [11] [12]

يبدأ بافل بالموقع الرسمي ويقرأ تعليمات الإصدار المختار. مجموع SHA-256 بصمة للملف المنزّل، تكشف اختلافه عن الملف المتوقع. لكنه لا يخبرك وحده بمن نشر البصمة المتوقعة. لذلك يجب أيضًا التحقق من التوقيعات الرقمية وهوية مفاتيح التوقيع. إذا قدّم المهاجم البرنامج ومجموعه الخاص معًا، فلن يهزم الهجومَ مجردُ تطابقهما. ولتحقق أعمق، يستخدم المشروع بناءً قابلًا لإعادة الإنتاج: يستطيع أشخاص مستقلون إنتاج ملفات متطابقة من الشفرة نفسها ومقارنة النتائج. يساعد Guix على توحيد بيئة البناء. يعزز ذلك التحقق من منشأ البرنامج، لكنه لا يثبت خلو الشفرة من الأخطاء. [8] [7]

يوفر Core واجهة JSON-RPC التي تستطيع البرامج الأخرى التحكم به عبرها. تفيد في قراءة الحالة وربط الخدمات، لكنها قد تتيح أيضًا عمليات على الأموال بحسب المحافظ والصلاحيات المتاحة. لذلك لا تُسلّم بيانات الدخول إلى شخص يزعم المساعدة. الواجهة نفسها لا تشفّر الاتصال الشبكي، ولم تُصمم لتُكشف للإنترنت العام. الاتصال المعتاد بعقد Bitcoin الأخرى يختلف عن إتاحة هذه الأوامر. وللوصول المحلي يستخدم Core أيضًا بيانات مؤقتة في ملف .cookie. تحتاج الإدارة عن بعد إلى اتصال محمي ووصول محدود وفق الوثائق. إذا كنت تجرب عقدة، فلا حاجة لأن تبدأ بفتح إدارتها للعالم كله. [14]

يستطيع أي شخص اقتراح تغيير في الشفرة. يقرأه مشاركون آخرون ويختبرونه ويناقشونه، ويمكن لمسؤولي المستودع، maintainers، دمج التغييرات المقبولة. لكن ذلك لا يمنحهم تحكمًا عن بعد بعقدة بافل. يختار المشغّل البرنامج الذي ينفذه. وهذا الاختيار ليس أيضًا ورقة اقتراع تسمح لفرد بإعادة كتابة قواعد الجميع: قد يفصل تغيير غير متوافق عقدته عن البقية. Bitcoin Core تطبيق مهم للقواعد، وليس شركة تملك الشبكة كلها. لذلك ميّز في الإعلانات بين اقتراح، ودمج في الشفرة، ونشر إصدار، واستخدام فعلي. قد تكون المسافة بين هذه المراحل طويلة. [15]

يمكن البدء بتشغيل عقدة من دون حفظ مفاتيح خاصة عليها. يتحقق بافل من الملف والتوقيعات، وينتظر اكتمال IBD، ثم يتأكد أن محفظته تستخدم بيانات عقدته بالفعل. بعد ذلك يراقب الاتصالات وتقدم الكتل والمساحة الحرة. وقبل التحديث يقرأ release notes، أي شرح التغييرات وشروط الانتقال المحتملة؛ وإن كان يستخدم محفظة، يفحص النسخة الاحتياطية والاستعادة. يساعد ملف التشخيص debug.log في فهم المشكلات، لكن لا ينبغي نشره بلا تفكير. يجب أن تناسب إعدادات pruning والفهارس وRPC استخدامه، لا دليلًا غريبًا نسخه من دون فهم. العقدة الخاصة أداة تحقق يفترض أن تكون مفهومة. ليست شرطًا لأول شراء صغير، لكنها مفيدة عندما تريد معرفة الأساس الذي تعتبر به مدفوعاتك صالحة. [12] [14]

للحصول على صورة أوضح، اقرأ هذا المدخل مع Full Node, قواعد الإجماع, BIP (Bitcoin Improvement Proposal), Bitcoin, Soft Fork, Mempool. تشير إلى هذا المدخل أيضًا Soft Fork, Hard Fork, BIP (Bitcoin Improvement Proposal), قواعد الإجماع.

DOC · 001Bitcoin Core — integration/staging repositoryمصدر أولي DOC · 002Bitcoin Core — transaction relay and mempool policyتوثيق DOC · 003Bitcoin Core — contributing and maintainer modelتوثيق DOC · 004Bitcoin Core — installed files and componentsتوثيق DOC · 005Bitcoin Core — JSON-RPC interfaceتوثيق DOC · 006Bitcoin Core — release processتوثيق DOC · 007Bitcoin Core — bootstrappable Guix buildsتوثيق DOC · 008Bitcoin Core — download and signature verificationتوثيق DOC · 009Bitcoin Core v30.0 — AssumeUTXOمصدر أولي DOC · 010Bitcoin Core 0.14.0 — Assumevalidمصدر أولي DOC · 011Bitcoin Core v30.0 — Startup options and pruningمصدر أولي DOC · 012Bitcoin Core v30.0 — Files and wallet backupsمصدر أولي DOC · 013Bitcoin Core v30.0 — Relay policyمصدر أولي DOC · 014Bitcoin Core v30.0 — RPC securityمصدر أولي DOC · 015Bitcoin Core v30.0 — Contributingمصدر أولي DOC · 016Bitcoin Developer Guide — Block chainمصدر أولي DOC · 017Bitcoin Developer Guide — Transactionsمصدر أولي
تمت المراجعة: المصادر أولًا · ليست نصيحة استثمارية