نظرة عامة مختصرة على أدوات اختبار وقياس Blockchain

نظرة عامة مختصرة على أدوات اختبار وقياس Blockchain

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

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

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

نظرة عامة مختصرة على أدوات اختبار وقياس Blockchain

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

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

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

نظرة عامة مختصرة على أدوات اختبار وقياس Blockchain

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

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

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

نظرة عامة مختصرة على أدوات اختبار وقياس Blockchain

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

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

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

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

نظرة عامة مختصرة على أدوات اختبار وقياس Blockchain

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

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

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

مادت

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

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

حلول أخرى

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

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

اختتام

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

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

حظًا سعيدًا في اختبارك، وقد تكون blockchains الخاصة بك سريعة ومتسامحة مع الأخطاء!

المصدر: www.habr.com

إضافة تعليق