Luke Dashjr، المعروف باسم luke-jr، مطوّر في Bitcoin. تشمل أعماله واجهات التعدين وبرنامج Bitcoin Knots ووثائق BIP، أي المقترحات والمعايير الموصوفة علنًا. وتوضح مساهماته كيف يمكن لشخص أن يؤثر كثيرًا في التطوير من دون أن يقرر نيابة عن الشبكة كلها.
يستخدم Luke Dashjr اسم luke-jr على GitHub، حيث تُحفظ الشيفرة المصدرية ومقترحات التعديل وتاريخها. ويربط ملفه، من بين مشاريع أخرى، ببرنامج Bitcoin Knots وبرنامج التعدين BFGMiner. لكن الملف الشخصي ليس سيرة كاملة لكل المساهمين، ولا قائمة بأعمال أنجزها شخص واحد وحده. التعديلات المحددة وأسماء مؤلفي المواصفات أدلة أدق. والأمثلة التالية تتناول أسئلة عملية: كيف يُعطى المُعدّن عمله، وكيف يُكتشف الخطأ مبكرًا، وكيف نعرف إن كان المقترح مستخدمًا بالفعل. [1]
يعني التعدين تكرار الحسابات على كتلة مُعدّة حتى تظهر نتيجة تحقق الصعوبة المطلوبة. لكن يجب أولًا تجميع محتواها. تصف BIP 22 التي كتبها Dashjr واجهة getblocktemplate، التي تعطي البرنامج بنية الكتلة المقترحة بما فيها المعاملات. فلا يلزم أن يتلقى ترويسة قصيرة فقط لحساب التجزئة؛ يستطيع تجميع الكتلة وتعديلها ضمن الحدود المسموحة. يشبه ذلك استلام مستندات مهمة كاملة بدل تكليفه بخطوة منفصلة. وتظل قواعد صلاحية الكتلة الناتجة واجبة التطبيق. [2]
تخيّل معاملة تنفق مخرجًا أنشأته معاملة أخرى داخل الكتلة المقترحة نفسها. يجب تضمين تلك المعاملة السابقة أيضًا. يسجل الحقل depends في BIP 22 هذه الاعتماديات. إذا غاب الحقل، فالاعتماديات غير معروفة، ولا يجوز للبرنامج افتراض عدم وجودها. وينطبق الأمر على رسم غير مذكور أو على sigops، أي عدد عمليات التحقق من التوقيعات المحتسبة ضمن حدود الكتلة. غياب المعلومة لا يساوي قيمة صفرية. ويساعد هذا الفرق الصغير على تجنب تجميع كتلة غير صالحة بسبب سوء فهم البيانات المستلمة. [2]
توسّع BIP 23 التي كتبها Dashjr الواجهة لمجمعات التعدين التي تجمع عمل المُعدّنين. يسمح وضع proposal الاختياري بتقديم كتلة مُعدّة إلى الخادم لفحصها، باستثناء إثبات العمل. بذلك يمكن كشف مشكلة في المحتوى قبل البحث المكلف عن نتيجة الحساب المناسبة. لكن الرد الإيجابي يعني فقط أن المقترح يطابق قواعد ذلك الخادم. لا يزال إثبات العمل المطلوب وتقييم العقد الأخرى غير منجزين. إذن، اجتياز الفحص الأولي لا يعني أن كتلة جديدة قد عُدّنت بالفعل. [3]
مجال آخر هو إدخال تغييرات القواعد. تستخدم BIP 8، التي ألّفها Shaolin Fry وLuke Dashjr، ارتفاع الكتلة، أي موضعها في السلسلة، لتحديد المراحل. يحدد خيار lockinontimeout ما إذا كانت الفترة الأخيرة تشترط إشارات المُعدّنين وفق الشروط المقررة لضمان التفعيل اللاحق. حالة LOCKED_IN ليست ACTIVE: الأولى تضمن انتقالًا لاحقًا ضمن هذه الآلية، بينما تُطبّق القاعدة الجديدة في الثانية. يشبه ذلك الفرق بين تحديد موعد النفاذ والوصول إليه. ولا تؤدي كتابة المقترح وحدها إلى تحويل الشبكة بأكملها. [4]
Bitcoin Knots برنامج لتشغيل عقدتك الخاصة، أي حاسوب ينزّل الكتل والمعاملات ويتحقق منها بالكامل. تصف وثائقه دمج التطوير القادم من Bitcoin Core مع إمكانية إضافة تعديلات أخرى؛ ويمكن أن يتضمن محفظة وواجهة رسومية أيضًا. وقت هذه المراجعة، يعرّف الموقع الرسمي Dashjr بوصفه المسؤول الرئيسي عن الصيانة. هذه مسؤولية عن برنامج معين، وليست سلطة لفرض قواعد جديدة على الشبكة كلها. عند اختيار البرنامج، اقرأ ميزات وإعدادات كل إصدار بدل افتراض أن البرنامجين يتصرفان دائمًا بالطريقة نفسها. [5] [6]
عند تنزيل Bitcoin Knots، تحتاج إلى التأكد من أن الملف صادر عن الناشر المقصود. يوصي الموقع بفحص توقيعات OpenPGP ومقارنة المفاتيح العامة من مصادر مستقلة. يُستخدم المفتاح العام للتحقق من التوقيع الرقمي، لكن يجب أولًا التأكد ممن يملكه. التوقيع الصحيح بمفتاح موثّق على نحو سليم يثبت مصدر الملف وأن البيانات الموقّعة لم تتغير. لكنه لا يضمن برنامجًا خاليًا من الأخطاء. التحقق من المصدر، ومراجعة الشيفرة، واختيار الإعدادات مهام مختلفة. [6]
كتب Dashjr أيضًا BIP 2 بشأن إعداد المقترحات ونشرها. وتحل محلها اليوم BIP 3 التي كتبها Murch. وتوضح صراحة أن نشر BIP لا يمثل بحد ذاته إجماع مجتمع Bitcoin أو توصية عامة بالتنفيذ. قد يبقى المقترح على الورق، أو يتبناه برنامج بعينه، أو يؤدي لاحقًا إلى تغيير قواعد يُلتزم بها بصورة مشتركة. إعطاء رقم لا يفعّل شيئًا. لذلك، عند قراءة خبر عن BIP جديدة، اسأل أيضًا من نفّذها وما إذا كانت تُستخدم فعلًا. [7] [8]
للحصول على صورة أوضح، اقرأ هذا المدخل مع Matt Corallo, Peter Todd, Satoshi Nakamoto. تشير إلى هذا المدخل أيضًا Matt Corallo, Peter Todd.