مع Nix ، يمكن لمشاريع Bitcoin تسريع المساهمات والنشر

هذه مقالة افتتاحية بقلم niftynei ، مُعلم مطور يدير أكاديمية بروتوكول Base58 Bitcoin ومنظم مؤتمر Bitcoin ++ القادم الذي يركز على Nix.
عندما تريد تثبيت تطبيق جديد على جهاز الكمبيوتر الخاص بك ، من أين تحصل عليه؟
يعد تحديد المصدر الذي يجب استخدامه مشكلة يصعب حلها بشكل مدهش ، ولكنها مشكلة تعاني منها كل منصة حوسبة.
قبل انتشار الإنترنت ، تم توزيع “حزم” برامج جديدة على وسائط صلبة ، مثل الأقراص المضغوطة أو أقراص USB. إذا كنت ترغب في الحصول على أحدث إصدار من نظام تشغيل جهاز الكمبيوتر الخاص بك (OS) أو أحدث إصدار من Bitcoin Core ، على سبيل المثال ، فستحتاج إلى شرائه فعليًا من المتجر أو إرساله إليك بالبريد. ستقوم بعد ذلك بتحميل القرص أو USB في جهاز الكمبيوتر الخاص بك ، وعمل نسخة من البرنامج الجديد على القرص المحلي الخاص بك.
بصفتك مطورًا يقوم بكتابة التعليمات البرمجية ، يجب أن تقوم فعليًا بتوزيع نسخ من برامجك على الأصدقاء والعائلة. أو كنت تعمل في شركة كبيرة لديها علاقات مع الشركات ومتاجر الكمبيوتر ، والتي ستكتشف كيفية توزيع البرنامج الذي كتبته على عملائها وعملائها.
مع ظهور أجهزة الكمبيوتر المتصلة دائمًا ، تغير مشهد توزيع البرامج إلى الأبد. الآن ، بدلاً من الاضطرار إلى التقاط نسخة من البتات في أحد البرامج ، يمكنك بسهولة تنزيل نسخة منها من الإنترنت.
سهّل ذلك على المطورين الجدد كتابة التطبيقات التي يمكن لأي شخص تنزيلها. لكن المشكلة الآن هي الإجابة على السؤال: من أين على الإنترنت يجب على المستخدمين تنزيل البرنامج الجديد؟
متجر تطبيقات هاكر
الطريقة التي تحل بها الأنظمة البيئية للهاتف المحمول مشكلة توزيع التطبيقات الجديدة هي من خلال برنامج على هاتفك يسمى “متجر التطبيقات” (أو “متجر Google Play” على Android).
يقوم المطورون بتحميل أحدث نسخة من تطبيقاتهم على خوادم Apple أو Google. ثم ترسل تلك الشركات إشعارًا صامتًا إلى جميع الهواتف التي تم تثبيت التطبيق عليها ، ويتم تحديث التطبيق في الخلفية على هواتف المستخدمين ، دون مشاركة المستخدمين.
إذا كنت مستخدمًا وترغب في إضافة تطبيق جديد إلى هاتفك ، فستتمكن في معظم الحالات من العثور عليه في متجر التطبيقات وتنزيله من هناك.
ولكن ليست كل البرامج متاحة كتطبيق للهاتف المحمول. بعض مشاريع البرامج عبارة عن تطبيقات أو أدوات سطح مكتب يستخدمها المطورون لكتابة أجزاء جديدة من البرامج. تحتاج هذه التطبيقات إلى قناة توزيع أيضًا. في أنظمة تشغيل سطح المكتب ، نميل إلى تسمية برنامج “App Store” بمصطلح “مديرو الحزم”. يديرون حزم البرامج التي تقوم بتنزيلها على جهاز الكمبيوتر الخاص بك.
تتكون مديري الحزم الحديثة من خادم مركزي ، يسمى أحيانًا مستودع ، يمكنه تتبع أحدث إصدار من التطبيق ، وتطبيق من جانب العميل يعمل على كمبيوتر مستخدم الحزمة.
إذا كنت مطورًا ، فمن المحتمل أنك واجهت “homebrew” أو “apt-get install” في مكان ما في حياتك. “Homebrew” و “apt” هما مديرو حزم.
في الطريقة التي يعمل بها مديرو الحزم ، سيتحقق التطبيق من جانب العميل من المستودع المركزي من حين لآخر لمعرفة ما إذا كان هناك أي تحديثات جديدة لأي من الحزم المثبتة حاليًا. أو ، إذا كان لديك نظام التشغيل الصحيح ومجموعة الأذونات الصحيحة ، فربما يقوم جهاز الكمبيوتر الخاص بك تلقائيًا بتشغيل هذه الفحوصات وتنزيل أحدث إصدار من التطبيق وتثبيته.
(كإضافة إلى ذلك ، يمكنك إضافة مصادر أخرى لحزم البرامج إلى عميل مدير الحزم المحلي الخاص بك. إذا استضاف المطور نفسه تطبيقاته بدلاً من تحميلها إلى المستودع المركزي ، فستحتاج إلى إضافة موقع الويب المستضاف ذاتيًا إلى قائمة الأماكن للبحث عن التحديثات في تطبيق عميل مدير الحزم الخاص بك.)
ماذا لو تمكنا من إعادة إنتاج كل شيء؟
لا شىء هو مدير حزم يهدف إلى جلب تصميمات قابلة للتكرار لجميع الحزم التي يساعد في توزيعها.
يحل Nix المشاكل المتعلقة بتوزيع البرامج من خلال تتبع مفصل لجميع المدخلات الخاصة بالبنية ، وتحديد كل مدخلات بشكل فريد واستخدام نفس المدخلات التي استخدمها المنشئ الأصلي. يضمن ذلك قدرته على بناء نفس الشيء في كل مرة وعلى أي جهاز.
يقوم Nix بتجزئة كل مدخلات ومخرجات بناء ؛ هذا يجعل من السهل تحديد متى تغير أحد المدخلات. عندما تتغير مدخلات بناء ، فإن المخرجات ستتغير أيضًا.
تتمثل إحدى المشكلات الكبيرة في الإنشاءات القابلة للتكرار في أن المستخدمين المختلفين سيكون لديهم إصدارات مختلفة من المدخلات التي يحتاج البرنامج إلى البناء عليها. قد يحتاج كل برنامج جديد تقوم ببنائه على جهازك إلى إصدار مختلف من مدخلاته حتى يكون قابلاً للتكرار.
يعمل Nix على إصلاح هذا من خلال تتبع الإنشاءات من خلال قوائم التجزئة ، واستخدام المدخلات التي تتطابق فقط مع قائمة التجزئة التي تتوقعها. المفاضلة هي أن Nix يستخدم مساحة أكبر بكثير على القرص ويمكن أن يستغرق وقتًا أطول قليلاً للتنزيل ، حيث سيحتاج إلى تنزيل المدخلات الصحيحة لعملية إنشاء ثنائي إذا لم يكن لديك بالفعل على جهاز الكمبيوتر الخاص بك.
أحب أن أمزح أن Nix أصبح ممكنًا فقط بفضل قانون مور ، مما يعني أن لدينا الآن مساحة إضافية كافية على القرص حتى لا داعي للقلق بشأن وجود نسخ متعددة من نفس البرنامج ، فقط في إصدارات مختلفة قليلاً.
لذلك ، يتيح Nix توزيع بنية قابلة للتكرار من برنامجك بسهولة أكبر ، مما يعني أنه يمكن للمستخدم إعادة بناء برنامجك على أجهزته بشكل موثوق وتشغيله فقط ، دون طرح أي أسئلة.
وبغض النظر عن شيء صغير ، لاحظ أن ما تعنيه كلمة “إعادة إنتاج” لبناء Nix هو أنه “إذا كانت الحزمة تعمل على جهاز ما ، فستعمل أيضًا على جهاز آخر”. هذا ليس هو نفس التكاثر الذي يحاول مطورو Bitcoin Core ضمانه لثنائيات Bitcoin الرسمية ، والتي لها عملية منفصلة للتحقق من أنها متطابقة.
نيكس وبيتكوين
يعد توزيع البرامج مفتوحة المصدر بطريقة يسهل على المستخدمين النهائيين تشغيلها ، وقابلة للتكرار على أي نظام ، ميزة مفيدة ومهمة للغاية. إنه يسهل على أي شخص البدء في استخدام المشروع ويسهل أيضًا على المطورين الجدد البدء في المساهمة مرة أخرى في المشروع.
قبل بضع سنوات ، أطلقت مجموعة من المطورين الجريئين مستودعًا لأكثر مشاريع برامج Bitcoin شيوعًا والتي تم تجميعها في شكل حزم ووحدات Nix.
تسهل الحزم على أي شخص يستخدم مدير حزمة Nix تثبيت عقدة Bitcoin وبدء تشغيلها على أي بنية تقريبًا. لا داعي للقلق بشأن تثبيت التبعيات الصحيحة قبل تشغيل أوامر الإنشاء ، وسيقوم المشروع بالبناء من المصدر على جهازك الخاص. إنه مثالي جدًا من حيث القدرة على تنزيل عقدة Bitcoin وبناءها وتشغيلها بسرعة من البداية.
يوفر مستودع Nix-Bitcoin “وحدات” Nix ، وهي تكوينات لتطبيقات البرامج التي تهدف إلى العمل على NixOS. تسمح وحدات Nix-Bitcoin لأي شخص يقوم بتشغيل NixOS بإعادة إنتاج بنية Bitcoin Core وغيرها من مشاريع Bitcoin مفتوحة المصدر ، وتشغيلها بسرعة على أجهزتهم بأقل قدر من الضجة.
في مقابلة مع هذه المقالة ، قال جوناس نيك ، أحد المشرفين الرئيسيين على مشروع Nix-Bitcoin ، ما يلي ليقوله عن استخدام المشروع:
“الفائدة الرئيسية التي يحصل عليها Nix-Bitcoin من Nix / NixOS هي إدارة التكوين التقريري. يسمح تكوين نظامك باستخدام لغة برمجة Nix بالتجريد ، حتى تتمكن من توحيد منطقك لإعادة استخدام واختبار المكونات الفردية. وهذا يسمح بإدارة التعقيد ، وهو أمر لا مفر منه يحدث عند إنشاء أنظمة ، ويساعد في بناء نظام صحيح وآمن. على سبيل المثال ، سيكون الكثير من ميزات الأمان التي يوفرها Nix-Bitcoin مزعجة للغاية إذا لم يكن لدينا نظام الوحدة النمطية. تساعد إمكانية إعادة الإنتاج في NixOS أيضًا الكثير من التحديثات ، لأننا نعرف بالضبط ما يتم تشغيله على أنظمة مستخدمينا. أخيرًا ، مع NixOS يمكن أيضًا الحصول على أخطاء في وقت التقييم بدلاً من وقت التشغيل. “
Bitcoin Core ليس المشروع الوحيد الذي تم تجميعه للتوزيع على Nix.
هناك أيضًا Core Lightning و BTCPay Server وعدد من المشاريع الأخرى. بالنسبة للجزء الأكبر ، تتم إضافة هذه المشاريع وتجميعها للتوزيع على Nix بواسطة محبي نظام إدارة الحزم Nix ، وليس المطورين الذين يكتبون البرنامج. للحصول على قائمة كاملة بالحزم المتاحة ، تحقق من قائمة “الوحدات النمطية” في مستودع Nix-Bitcoin GitHub.
لماذا لا نيكس في كل مكان؟
إذا كان Nix يمثل تغييرًا كبيرًا في الطريقة التي يتم بها إنشاء مشروعات Bitcoin وشحنها ، فلماذا لا يستخدمها الجميع؟ الحقيقة هي أن Nix هو مشروع كبير يصعب الدخول فيه إلى حد ما. منحنى التعلم لاستخدام Nix شديد الانحدار ، ويمكن أن يكون نموذج تشغيل Nix كمدير للحزم مختلفًا تمامًا عما اعتاد عليه معظم المستخدمين.
بدأ NixOS كمشروع بحثي بواسطة Eelco Dolstra في عام 2003 ، ومنذ ذلك الحين كان يبني ببطء قاعدة مستخدمين ومتابعين.
Bitcoin ++ Berlin: توسيع استخدام Nix في Bitcoin
من خلال تنظيم مؤتمر Bitcoin ++ القادم في برلين ، نهدف إلى تغيير هذا. Bitcoin ++ عبارة عن سلسلة مؤتمرات تركز على المطور وتركز على مواضيع مختلفة في مساحة مطوري Bitcoin. بدأ في الأصل في أوستن ، تكساس ، في عام 2022 ، وكان أحدث مؤتمر في أواخر أبريل 2023 يركز على تقنيات الطبقة الثانية في Bitcoin ، مثل Ark ، وشبكة Lightning Network
ومجموعات الصلاحية.
يهدف مؤتمر برلين القادم ، المقرر عقده في 6 أكتوبر و 7 أكتوبر 2023 ، إلى أن يكون حدث “Nix-pilling” للنظام البيئي لمطوري Bitcoin. سيحضر المشرفون الأساسيون على مشروع Nix-Bitcoin في Fort Nix (بما في ذلك Nick و Pavol Rusnak و Eric Sirion ، إلى
غيض من فيض). سيكون الحدث الذي يستمر لمدة يومين مليئًا بورش العمل والمحاضرات العملية
مصمم لتعليم المطورين من جميع أنحاء النظام البيئي كيفية استخدام Nix للحزم
مشاريعهم وتجميع تبعياتهم التنموية بشكل أفضل بحيث تكون جديدة
يمكن للمساهمين بدء الترميز والمساهمة بشكل أسرع ، بالإضافة إلى توضيح مدى سرعة وسهولة نشر البرامج باستخدام وحدات على NixOS.
مراجع مادة إضافية
- التكاثر مع نيكس
- مقابلة مع “nixbitcoindev”
- من أين أبدا
- لماذا Nix-Bitcoin لعملاء Bitcoin
هذا هو ضيف آخر من قبل niftynei. الآراء المعبر عنها خاصة بها تمامًا ولا تعكس بالضرورة آراء BTC Inc أو Bitcoin Magazine.