اليوم، تم تصميم حلول اختبار وقياس سلاسل الكتل خصيصًا لسلسلة كتل معينة أو شوكاتها. ولكن هناك أيضًا العديد من الحلول العامة التي تختلف في الوظائف: بعضها عبارة عن مشاريع مفتوحة المصدر، والبعض الآخر يتم توفيره كخدمة SaaS، ولكن معظمها عبارة عن حلول داخلية تم إنشاؤها بواسطة فريق تطوير blockchain. ومع ذلك، فإنهم جميعا يحلون مشاكل مماثلة. في هذه المقالة، حاولت مراجعة العديد من المنتجات المصممة خصيصًا لاختبار blockchain.
يشبه تشغيل شبكة blockchain تشغيل قاعدة البيانات الموزعة، لذلك يمكن استخدام أدوات وأساليب مماثلة للاختبار. لفهم كيفية اختبار قواعد البيانات الموزعة بشكل أفضل، قم بإلقاء نظرة على مجموعة جيدة من الموارد والمقالات
سأصف العديد من الحلول الشائعة لاختبار وقياس blockchain. سأكون سعيدًا إذا وصفت في التعليقات منتجات برمجية مفيدة أخرى لحل نفس المشكلات.
سأبدأ بأداة، على الرغم من أنها لم يتم إنشاؤها خصيصًا لسلاسل الكتل، إلا أنها تسمح لك باختبار عملها بشكل فعال، بشرط أن تكون هناك شبكة قيد التشغيل بالفعل يمكنك تجربتها. العامل الأكثر أهمية في موثوقية النظام الموزع هو القدرة على مواصلة العمل في حالة حدوث مشاكل مع الخوادم والشبكة. يمكن أن يكون ذلك بسبب تأخر الشبكة، وامتلاء القرص، وعدم توفر الخدمات الخارجية (DNS)، وفشل الأجهزة ومئات الأسباب الأخرى. للتحقق من استقرار أي أنظمة تعمل بشكل متضافر على عدد كبير من أجهزة الأنظمة، يمكنك استخدام
باستخدام وكيل الشبكة الخاص به، يقوم Gremlin بإنشاء العديد من أنواع المشاكل المختلفة على العدد المطلوب من الأجهزة: تأخر الشبكة، والتحميل الزائد لأي مورد (وحدة المعالجة المركزية، القرص، الذاكرة، الشبكة)، تعطيل البروتوكولات الفردية، وما إلى ذلك. بالنسبة لسلاسل الكتل، يمكن استخدام Gremlin على خوادم testnet، لمحاكاة مشاكل الحياة الواقعية ومراقبة سلوك الشبكة. من خلاله، يمكن للمطورين والمسؤولين مراقبة ما سيحدث في حالة تعطل النظام أو عند تحديث التعليمات البرمجية في بيئة خاضعة للرقابة. في هذه الحالة، يجب تكوين الشبكة ونشرها مسبقًا، بالإضافة إلى تكوينها لجمع المقاييس اللازمة.
Gremlin هي أداة مناسبة للمهندسين المعماريين والمطورين والمتخصصين في مجال الأمن وحل عالمي لاختبار أي أنظمة موزعة جاهزة وقيد التشغيل، بما في ذلك أنظمة blockchain.
يعد Hyperledger Caliper حلاً أكثر تخصصًا
باستخدام Caliper، يمكنك تعيين طوبولوجيا شبكة blockchain وعقود الاختبار، بالإضافة إلى وصف تكوين العقدة. يتم رفع عقد Blockchain في حاويات الإرساء على جهاز واحد. بعد ذلك، يمكنك تحديد ما هو ضروري
Hyperledger Caliper هي أداة تستهدف المطورين ومهندسي الأنظمة، حيث توفر إمكانية تكرار الاختبار وأتمتة الاختبار وقياس الأداء. يتم استخدامه في تطوير جوهر blockchain: خوارزميات الإجماع، وآلة افتراضية لمعالجة العقود الذكية، وطبقة نظير إلى نظير وآليات النظام الأخرى.
يستخدم MixBytes Tank العديد من الخدمات السحابية (Digital Ocean، Google Cloud Engine، وما إلى ذلك)، حيث يمكنه تشغيل العديد من العقد، وتنفيذ إجراءات التكوين الأولية، وتشغيل العديد من المعايير بالتوازي على أجهزة مختلفة، وجمع المقاييس اللازمة وإيقاف تشغيل الشبكة تلقائيًا. شبكة.
يتيح لك MixBytes Tank توفير المال على الخوادم السحابية عن طريق تقليل الموارد غير الضرورية تلقائيًا بعد الاختبار. ميزة أخرى مميزة هي استخدام حزمة Molecule، والتي تسمح للمطور باختبار نشر blockchain المطلوب محليًا.
يسمح لك MixBytes Tank بالكشف المبكر عن الاختناقات والأخطاء في الخوارزميات التي تنشأ في الشبكات الحقيقية مع عدد كبير من الخوادم والعملاء الموزعين جغرافيًا. سيساعدك الخزان على فهم ما سيحدث على العقد إذا أرسل العملاء معاملات مع tps معينة في ظروف قابلة للتكرار للغاية ومع عدد حقيقي من العقد المنتشرة عبر قارات مختلفة، إذا لزم الأمر.
Whiteblock Genesis عبارة عن منصة اختبار لسلاسل الكتل المستندة إلى Ethereum. تتمتع هذه الأداة بوظيفة واسعة جدًا: فهي تتيح لك تشغيل شبكة وإنشاء العدد المطلوب من الحسابات فيها وزيادة العدد المطلوب من العملاء وتكوين طوبولوجيا الشبكة وتحديد معلمات النطاق الترددي وفقدان البيانات وإجراء اختبار.
يوفر Whiteblock Genesis مرافق الاختبار الخاصة به. يحتاج المطورون فقط إلى تحديد معلمات الاختبار، وتشغيلها باستخدام واجهة برمجة التطبيقات الجاهزة، والحصول على النتائج باستخدام لوحة معلومات ملائمة.
يتيح لك Whiteblock Genesis تكوين اختبار مفصل إلى حد ما والذي ستجريه المنصة تلقائيًا لكل تغيير مهم في التعليمات البرمجية. سيسمح لك ذلك باكتشاف الأخطاء في مرحلة مبكرة وتقييم تأثير التغييرات على الفور على معلمات الشبكة المهمة، مثل سرعة المعاملة والموارد التي تستهلكها العقد.
مادت
منتج شاب آخر مثير للاهتمام لاختبار الأنظمة الموزعة هو
لقد ظهر Madt مؤخرًا فقط، ولكن نظرًا لبنيته المرنة للغاية، فيمكن أن يتطور إلى منتج وظيفي.
حلول أخرى
يتطلب أي اختبار لجزء النظام من blockchain تقريبًا تشغيل نصوص برمجية أولية، وإعداد الحسابات والشروط للاختبار (يمكن أن يكون هذا بمثابة اختبار أخطاء الإجماع التي يمكن أن تولد العديد من تفرعات السلاسل، واختبار سيناريوهات الانقسام الكلي، وتغيير معلمات النظام، وما إلى ذلك). يتم تنفيذ كل هذه المعالجات بشكل مختلف في سلاسل الكتل المختلفة، لذلك من الأسهل على الفرق التكيف تدريجيًا مع اختبار المنتج وقياس الأداء مع CI/CD الداخلي واستخدام التطورات الخاصة بهم، والتي تصبح أكثر تعقيدًا تدريجيًا مع تطور وظائف blockchain.
ومع ذلك، فإن استخدام الحلول الجاهزة يمكن أن يقلل بشكل كبير من وقت الاختبار لهذه الفرق، لذلك أعتقد أنه سيتم تطوير هذا البرنامج بنشاط في السنوات القادمة.
اختتام
في ختام هذه المراجعة القصيرة، سأقوم بإدراج العديد من الخصائص المهمة لأدوات اختبار البلوكشين:
- القدرة على نشر شبكة blockchain تلقائيًا في ظل ظروف قابلة للتكرار. هذا العامل مهم عند تطوير أجزاء النظام من blockchain: خوارزميات الإجماع، والنهائية، والعقود الذكية للنظام.
- تكلفة امتلاك النظام والموارد المستهلكة وسهولة الاستخدام المستمر. يوفر هذا العامل للمشروع اختبارات عالية الجودة مقابل القليل من المال.
- المرونة والبساطة في تكوين الاختبار. يزيد هذا العامل من فرص اكتشاف مشاكل النظام - حيث تكون فرصة فقدان شيء مهم أقل.
- التخصيص لأنواع محددة من blockchains. إن تطوير حل يعتمد على حل موجود يمكن أن يؤدي إلى تحسين الجودة بشكل كبير وتقليل تكاليف الوقت.
- سهولة الوصول إلى النتائج التي تم الحصول عليها ونوعها (التقارير والمقاييس والرسوم البيانية والسجلات وما إلى ذلك). يعد هذا ضروريًا للغاية إذا كنت تريد تتبع تاريخ تطوير المنتج، أو إذا كنت بحاجة إلى تحليلات عميقة لسلوك شبكة blockchain.
حظًا سعيدًا في اختبارك، وقد تكون blockchains الخاصة بك سريعة ومتسامحة مع الأخطاء!
المصدر: www.habr.com