227 / 736BTPL

Block Template

مسودة كتلة قبل بدء التعدين

قبل أن يبحث جهاز التعدين عن نتيجة ناجحة، يجب أن يعرف لأي كتلة يحسب. يُعدّ البرنامج أولًا المعطيات: الكتلة التي سيبني عليها، والمعاملات التي سيدرجها، والمكافأة التي يجوز تخصيصها. تسمى هذه المسودة Block Template. تشبه مخطوطًا جاهزًا للنشر: المحتوى موجود، لكنه لم يمر بعد بالخطوة التي تجعله جزءًا من التاريخ المشترك. القالب وحده لا يؤكد أي معاملة.

Block Template مجموعة معلومات لبناء كتلة مرشحة جديدة على شبكة Bitcoin. بعد ذلك فقط يبحث المعدّن عن إثبات عمل صالح لترويستها، وهي ملخص موجز لبيانات الكتلة. يربط القالب المعاملات المختارة والمكافأة وقواعد البناء؛ والحصول عليه لا يعني أن كتلة قد عُدّنت أو قبلتها الشبكة.

تُبنى كل كتلة جديدة على سابقتها المحددة. يعرّفها القالب عبر ⁦previousblockhash⁩، بصمتها الفريدة، بينما يحدد ⁦height⁩ موقع الكتلة المقترحة في السلسلة. وتشمل الحقول الأخرى ⁦version⁩، إصدار الترويسة، و⁦bits⁩، الترميز المختصر للهدف الذي يجب أن تحققه نتيجة التعدين، وبيانات الوقت. هذه معطيات لبناء كتلة بعينها، وليست قائمة مدفوعات مستقلة. وضع المعاملات نفسها بعد كتلة سابقة مختلفة يصنع تكليفًا مختلفًا بالفعل. [1]

تتلقى آنا بيتكوين ثم تدفع به. إذا أُريد إدراج التحويلين في الكتلة نفسها، فلا بد من وضع المعاملة التي أعطتها الأموال أولًا، ثم المعاملة التي تنفقها. تعرّف ⁦BIP 22⁩، وهي وثيقة تقنية تصف تنسيق القالب، هذه الروابط بحقل ⁦depends⁩، الذي يشير إلى عناصر سابقة في قائمة ⁦transactions⁩ بترقيم يبدأ من الواحد. لا تضم القائمة ⁦coinbase⁩، المعاملة الأولى الخاصة التي تخصص مكافأة المعدّن. غياب ⁦depends⁩ يعني أن التبعيات غير معروفة، لا التأكد من عدم وجودها. لذلك لا يجوز للبرنامج اعتبار المعلومة المفقودة قائمة فارغة. [1]

تشمل المكافأة البيتكوين المُصدر حديثًا وفق قواعد ذلك الارتفاع ورسوم المعاملات المدرجة فعلًا. ويحسبها ⁦Bitcoin Core v29.0⁩ المشار إليه بالطريقة نفسها. يتحقق هذا البرنامج من الكتل والمعاملات، ويمكنه أيضًا إعداد قوالب للتعدين. في مثالنا، توفر المعاملات ⁦10000 sats⁩؛ وبعد حذف معاملة مستقلة برسوم ⁦3000 sats⁩ تبقى ⁦7000 sats⁩ من الرسوم. و⁦sats⁩ وحدات صغيرة من البيتكوين. يبين حقل ⁦coinbasevalue⁩ أقصى مكافأة يجوز للمعدّن تخصيصها لنفسه مع مجموعة المعاملات الأصلية. وإذا تغيّرت المجموعة، وجب إعادة حساب المبلغ. يجب أن يعتمد الحساب على الرسوم الفعلية، لا المجموع المحسوب للمحتوى القديم. [4] [1]

تضم الكتلة أيضًا بصمات تشفيرية تتيح التحقق من بياناتها. تصف ⁦BIP 141⁩ مفهوم ⁦witness commitment⁩، وهو ارتباط تشفيري ببيانات ⁦witness⁩ التي تشمل مثلًا توقيعات تثبت حق إنفاق الأموال. يُشتق من معرّفات ⁦wtxid⁩ التي تشمل هذه البيانات. يوفر ⁦Bitcoin Core 29⁩ حقل ⁦default_witness_commitment⁩ للقالب غير المعدّل. بعد تغيير المعاملات المعنية أو ترتيبها، يلزم فحص هذا الارتباط أو إعادة حسابه. ويجب أيضًا حساب ⁦Merkle root⁩، بصمة المعاملات المجمعة في الترويسة، من معرّفات ⁦TXID⁩ النهائية، ومنها معرّف ⁦coinbase⁩ المعدّلة. الختم القديم لا يناسب محتوى تغير. [5] [3]

مساحة الكتلة محدودة، والمعدّن يختار محتواها. يقيّم ⁦Bitcoin Core v29.0⁩ حزم المعاملات المرتبطة ووزنها، وهو مقياس لحِمل البيانات، و⁦sigops⁩، أي عمليات فحص التوقيعات المحتسبة ضمن حد الكتلة. تؤثر إعدادات ⁦blockmaxweight⁩ و⁦blockmintxfee⁩ في حجم الكتلة المُنشأة ومعدل الرسوم المطلوب. هذه سياسة اختيار. فالدفعة المستبعدة لهذا السبب ليست بالضرورة مخالفة لقواعد الشبكة. كما أن إعدادات المعدّن لا ترفع حدود الشبكة التي تتحقق منها العقد الأخرى. [4] [3]

في ⁦BIP 23⁩، تسرد ⁦mutable⁩ التعديلات التي يسمح بها الخادم، مثل ضبط الوقت أو إضافة معاملات. إنها اتفاق حول استخدام قالب محدد. الإذن لا يلغي الإجماع، أي قواعد الصلاحية التي يتحقق منها بقية المشاركين بصورة مستقلة. يجب أن تظل الكتلة السابقة والوقت والصعوبة والمعاملات صحيحة. والوصول إلى القالب لا يعني أن كل جهاز متصل يستطيع تعديل محتواه بحرية؛ فهذا يعتمد على ترتيب المنظومة والمهمة التي يتلقاها. [2]

قد يمدّ معدّن آخر السلسلة بينما تستمر الحسابات. للبناء على أحدث كتلة مقبولة، لا يكفي استبدال بصمة الكتلة السابقة في القالب القديم. ربما تأكدت بعض المعاملات، ويتغير الارتفاع وشروط أخرى. تصف ⁦BIP 23⁩ الحقل ⁦expires⁩ بوصفه حدًا زمنيًا للعمل، و⁦prevblock⁩ بوصفه إذنًا لاستخدامه مع كتلة سابقة مختلفة. حتى هذا الإذن لا يحل محل التحقق: يجب إعادة تقييم المعاملات والمكافأة والسياق الجديد كله. [2]

من الأفضل اكتشاف خطأ المسودة قبل بحث طويل. يتيح نمط ⁦proposal⁩ وفق ⁦BIP 23⁩ عرض المقترح للفحص دون اشتراط ⁦Proof of Work⁩ صالح، أي دون نتيجة مكتشفة مسبقًا تثبت العمل الحسابي اللازم. التقييم الإيجابي لا يعني العثور على كتلة أو بثها، ولا يضمن مكانًا دائمًا لها في السلسلة. يعني فقط أن المسودة اجتازت الفحص المسبق المعني. أما الكتلة المكتملة فيجب أن تمر عند تقديمها بالتحقق المناسب، بما فيه إثبات العمل. [2]

للحصول على صورة أوضح، اقرأ هذا المدخل مع Mining Pool, Block Header, Extranonce, Merkle Tree, Bitcoin, Bitcoin Core. تشير إلى هذا المدخل أيضًا معاملة كوينبيس, ASIC Miner, Mining Pool, Nonce.

DOC · 001BIP 22 — Block template structureمواصفة DOC · 002BIP 23 — Mutations and proposalsمواصفة DOC · 003Bitcoin Core 29 — getblocktemplate RPCتوثيق DOC · 004Bitcoin Core v29.0 — Block assemblerمصدر أولي DOC · 005BIP 141 — Witness commitmentمواصفة
تمت المراجعة: المصادر أولًا · ليست نصيحة استثمارية