لمحة موجزة عن أدوات الاختبار وقياس المجموعات


اليوم ، يتم توضيح حلول الاختبار وقياس بلوكات القياس لسلسلة بلوك معينة أو شوكاتها. ولكن هناك العديد من الحلول العامة التي تختلف في الوظائف: بعضها عبارة عن مشاريع مفتوحة المصدر ، بينما يتم توفير حلول أخرى كـ SaaS ، ولكن معظمها عبارة عن حلول داخلية تم إنشاؤها بواسطة فريق تطوير blockchain. ومع ذلك ، فإنهم جميعا حل مشاكل مماثلة. في هذه المقالة ، حاولت التفكير بإيجاز في العديد من المنتجات المصممة خصيصًا لاختبار البلوك.


يشبه تشغيل شبكة blockchain عمل قاعدة البيانات الموزعة ، وبالتالي ، يمكنك تطبيق أدوات وأساليب مماثلة للاختبار. لفهم كيفية اختبار قواعد البيانات الموزعة بشكل أفضل ، ألق نظرة على مجموعة جيدة من الموارد والمقالات من هنا . على سبيل المثال ، يتم تقسيم زمن الوصول في هذه المقالة ، ومن أجل فهم كيفية البحث عن الأخطاء في خوارزميات النسخ المتماثل ، أوصي بأن تقرأ هذه المقالة .


سوف أصف العديد من الحلول الشائعة للاختبار وقياس المجموعات. سأكون مسرورًا إذا كنت في التعليقات تصف منتجات البرامج الأخرى المفيدة لحل المشكلات نفسها.



سأبدأ باستخدام أداة ، على الرغم من أنه لم يتم إنشاؤها خصيصًا لقوالب الحظر ، لكن ذلك يتيح لك اختبار عملهم بفعالية شريطة أن يكون هناك بالفعل شبكة قيد التشغيل يمكنك تجربتها. أهم عامل في موثوقية النظام الموزع هو القدرة على مواصلة العمل في حالة وجود مشاكل مع الخوادم والشبكة. يمكن أن يكون تأخر الشبكة ، القرص ممتلئ ، عدم إمكانية الوصول إلى الخدمات الخارجية (DNS) ، فشل الأجهزة ومئات من الأسباب الأخرى. للتحقق من ثبات أي أنظمة تعمل بالتنسيق على عدد كبير من أنظمة الماكينات ، يمكنك استخدام Gremlin . ويستخدم نهجًا فعالًا جدًا يسمى Chaos Engineering.


باستخدام وكيل الشبكة الخاص به ، ينشئ Gremlin العديد من أنواع المشاكل المختلفة على العدد الصحيح من الأجهزة: تأخر الشبكة ، التحميل الزائد لأي مورد (وحدة المعالجة المركزية ، القرص ، الذاكرة ، الشبكة) ، تعطيل البروتوكولات الفردية ، إلخ. بالنسبة لقوائم الحظر ، يمكن استخدام Gremlin على خوادم شبكة الاختبار ، ومحاكاة المشاكل الحقيقية ومراقبة سلوك الشبكة. مع ذلك ، يمكن للمطورين والمسؤولين في بيئة يتم التحكم فيها مراقبة ما يحدث في حالة تعطل النظام أو عند تحديث التعليمات البرمجية. في هذه الحالة ، يجب تهيئة الشبكة ونشرها مسبقًا ، وكذلك تكوينها لجمع المقاييس اللازمة.


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



Hyperledger Caliper هو حل Hyperledger Caliper أكثر تخصصًا. في الوقت الحالي ، يدعم Caliper العديد من القطع في وقت واحد - ممثلون عن عائلة Hyperledger (Fabric ، Sawtooth ، Iroha ، Burrow ، Besu) ، بالإضافة إلى Ethereum وشبكة FISCO BCOS.


باستخدام Caliper ، يمكنك تحديد طوبولوجيا شبكة blockchain وعقود الاختبار ، وكذلك وصف تكوين العقدة. العقد Blockchain ترتفع في حاويات عامل ميناء على نفس الجهاز. بعد ذلك ، يمكنك تحديد تكوينات الاختبار اللازمة والحصول على ملف مع تقرير عن نتائج الاختبار بعد الإطلاق. يمكن العثور على قائمة كاملة بمقاييس Caliper ونهج القياس هنا مقاييس الأداء Hyperledger Blockchain ، وهذا مقال رائع إذا كنت مهتمًا بموضوع تحديد معايير blockchain. يمكنك أيضًا تكوين مجموعة المقاييس في Prometheus / Grafana منفصلة.


Hyperledger Caliper هي أداة تهدف إلى المطورين ومهندسي النظام ، حيث توفر إمكانية تكرار الاختبارات وأتمتة الاختبار والقياس. يتم استخدامه في تطوير لب blockchain الأساسية: خوارزميات الإجماع ، آلة افتراضية لمعالجة العقود الذكية ، طبقة نظير إلى نظير وآليات النظام الأخرى.



MixBytes Tank هي أداة ظهرت في عملية تطوير خوارزميات الإجماع والنهائية للشبكات القائمة على EOS واختبار المظلات المستندة إلى Parity Substrate (Polkadot). من حيث الوظيفة ، فهي قريبة من Hyperledger Caliper ، لأنها تتيح لك جمع مقاييس مهمة من العقد في أي نظام موزعة وأجهزة العميل التي تقوم بتشغيل البرامج النصية للاختبار.


يستخدم MixBytes Tank العديد من الخدمات السحابية (Digital Ocean ، Google Cloud Engine ، وما إلى ذلك) ، حيث يمكنه تشغيل العديد من العقد ، وتنفيذ إجراءات التكوين الأولية ، وفي وقت واحد تشغيل العديد من المعايير على أجهزة مختلفة ، وجمع المقاييس اللازمة وإطفاء الشبكة تلقائيًا.


يتيح لك MixBytes Tank توفير المال على الخوادم السحابية ، مما يقلل تلقائيًا من الموارد غير الضرورية بعد الاختبار. الميزة المميزة الأخرى هي استخدام حزمة Molecule ، والتي تتيح للمطور اختبار نشر سلسلة البلوك المطلوبة محليًا.


يسمح MixBytes Tank بالكشف المبكر عن الاختناقات والأخطاء في الخوارزميات التي تحدث في الشبكات الحقيقية مع عدد كبير من الخوادم والعملاء الموزعين جغرافيا. سيساعدك الخزان في فهم ما سيحدث على العقد إذا قام العملاء بإرسال المعاملات مع tps معين في ظروف قابلة للتكرار للغاية مع وجود عدد حقيقي من العقد متباعدة عبر قارات مختلفة ، إذا لزم الأمر.



Whiteblock Genesis عبارة عن منصة لاختبار blockchain تستند إلى Ethereum. تتمتع هذه الأداة بوظائف واسعة إلى حد ما: فهي تتيح لك بدء تشغيل الشبكة وإنشاء العدد اللازم من الحسابات فيها ورفع العدد المطلوب من العملاء وتكوين طبولوجيا الشبكة وتحديد النطاق الترددي ومعلمات packetloss وإجراء الاختبار.


يوفر Whiteblock Genesis مرافق الاختبار الخاصة به. يكفي للمطورين تحديد معلمات الاختبار وتشغيلها باستخدام واجهة برمجة تطبيقات جاهزة والحصول على النتائج باستخدام لوحة معلومات مريحة.


يسمح لك Whiteblock Genesis بتكوين اختبار مفصل إلى حد ما ، والذي ستجريه المنصة تلقائيًا لكل تغيير رمز مهم. سيتيح لك ذلك اكتشاف الأخطاء في المراحل المبكرة وتقييم تأثير التغييرات فورًا على معلمات الشبكة المهمة ، مثل سرعة المعاملات والموارد التي تستهلكها العقد.


Madt


منتج شاب آخر مثير للاهتمام لاختبار الأنظمة الموزعة هو madt . هو مكتوب في بيثون ويسمح لك بإنشاء طوبولوجيا الشبكة اللازمة والعدد المطلوب من الخوادم والعملاء باستخدام برنامج نصي بسيط التكوين ( مثال ). بعد ذلك ، تنشر الخدمة الشبكة في عدة حاويات لرسو السفن وترفع واجهة ويب يمكنك من خلالها مشاهدة الرسائل من الخوادم وعملاء الشبكة. يمكن استخدام Madt لاختبار المجموعات الرئيسية - في مستودع المشروع يوجد اختبار شبكة p2p يستند إلى بروتوكول Kademlia ، حيث يتم زيادة التأخير في تسليم البيانات إلى العقد تدريجياً ويتم التحقق من حالة هذه البيانات.


ظهر Madt مؤخرًا ، ولكن نظرًا للهيكل المرن للغاية ، يمكن أن يتطور إلى منتج وظيفي.


حلول أخرى


يتطلب أي اختبار تقريبًا لجزء النظام من قيود المجموعات بدء تشغيل البرامج النصية الأولية وإعداد الحسابات وشروط الاختبار (يمكن أن يكون هذا بمثابة اختبار لأخطاء الإجماع التي يمكن أن تولد العديد من سلاسل الشوكة ، والتوصل إلى نصوص شوكة صلبة ، وتغيير معلمات النظام ، إلخ). يتم تنفيذ كل هذه العمليات في مجموعات مختلفة من الطرق بطرق مختلفة ، لذلك من الأسهل على الفرق أن تكيف تدريجياً اختبار وقياس المنتج مع CI / CD الداخلية واستخدام تطوراتها الخاصة ، والتي أصبحت تدريجياً أكثر تعقيدًا مع تطوير وظيفة blockchain.


ومع ذلك ، فإن استخدام الحلول الجاهزة يمكن أن يقلل بدرجة كبيرة من وقت الاختبار لهذه الفرق ، لذلك ، أعتقد أن هذا البرنامج سوف يتم تطويره بنشاط في السنوات القادمة.


استنتاج


في ختام هذا الاستعراض القصير ، سأدرج العديد من الخصائص المهمة لأدوات اختبار blockchain:


  • القدرة على نشر شبكة blockchain تلقائيًا في ظروف قابلة للتكرار. يعد هذا العامل مهمًا عند تطوير أجزاء النظام من المجموعات الرئيسية: خوارزميات الإجماع ، والنهاية ، والعقود الذكية للنظام.
  • سعر ملكية النظام والموارد المستهلكة والراحة للاستخدام المستمر. يوفر هذا العامل للمشروع اختبارات عالية الجودة مقابل القليل من المال.
  • مرونة وبساطة تكوين الاختبار. يزيد هذا العامل من فرص تحديد مشاكل النظام - من غير المرجح أن يفوتك شيء مهم.
  • التخصيص لأنواع محددة من blockchains. يمكن أن يؤدي تطوير حل قائم على حل موجود إلى تحسين الجودة وتقليل تكاليف الوقت.
  • سهولة الوصول وإمكانية الوصول إلى النتائج ونوعها (تقارير ، مقاييس ، رسوم بيانية ، سجلات ، وما إلى ذلك). يعد هذا ضروريًا للغاية إذا كنت تريد تتبع تاريخ تطوير المنتج ، أو كنت بحاجة إلى تحليلات متعمقة لسلوك شبكة blockchain.

نتمنى لك التوفيق في الاختبار والسماح للكتل المكعبة أن تكون سريعة ومتسامحة مع الأخطاء!

Source: https://habr.com/ru/post/ar481150/


All Articles