مروری کوتاه بر ابزارهای تست و محک زدن بلاک چین

مروری کوتاه بر ابزارهای تست و محک زدن بلاک چین

امروزه راه‌حل‌هایی برای آزمایش و محک زدن بلاک‌چین‌ها برای یک بلاک چین خاص یا فورک‌های آن طراحی شده‌اند. اما چندین راه حل کلی دیگر نیز وجود دارد که از نظر عملکرد متفاوت هستند: برخی از آنها پروژه های منبع باز هستند، برخی دیگر به عنوان SaaS ارائه می شوند، اما اکثر آنها راه حل های داخلی هستند که توسط تیم توسعه بلاک چین ایجاد شده اند. با این حال، همه آنها مشکلات مشابه را حل می کنند. در این مقاله سعی کردم به طور خلاصه چندین محصول طراحی شده برای آزمایش بلاک چین را بررسی کنم.

عملکرد یک شبکه بلاکچین شبیه عملکرد یک پایگاه داده توزیع شده است، بنابراین می توان از ابزارها و روش های مشابه برای آزمایش استفاده کرد. برای درک بهتر نحوه آزمایش پایگاه های داده توزیع شده، به مجموعه ای از منابع و مقالات خوب نگاه کنید از این رو. به عنوان مثال، تأخیر در این به قطعات دسته بندی شده است مقالهو برای درک اینکه چگونه آنها به دنبال اشکال در الگوریتم های تکرار می گردند، توصیه می کنم این را بخوانید مقاله.

من چندین راه حل محبوب برای آزمایش و محک زدن بلاک چین ها را شرح خواهم داد. خوشحال می شوم اگر در نظرات سایر محصولات نرم افزاری مفید را برای حل مشکلات مشابه توضیح دهید.

مروری کوتاه بر ابزارهای تست و محک زدن بلاک چین

من با ابزاری شروع می کنم که اگرچه به طور خاص برای بلاک چین ایجاد نشده است، اما به شما امکان می دهد عملکرد آنها را به طور مؤثر آزمایش کنید، مشروط بر اینکه یک شبکه در حال اجرا وجود داشته باشد که می توانید روی آن آزمایش کنید. مهمترین عامل در قابلیت اطمینان یک سیستم توزیع شده، توانایی ادامه کار در صورت بروز مشکل در سرورها و شبکه است. این می تواند تاخیر شبکه، پر بودن دیسک، در دسترس نبودن سرویس های خارجی (DNS)، خرابی های سخت افزاری و صدها دلیل دیگر باشد. برای بررسی پایداری هر سیستمی که به طور هماهنگ بر روی تعداد زیادی از ماشین های سیستم کار می کند، می توانید استفاده کنید گرمیلی. از یک رویکرد بسیار مؤثر به نام مهندسی آشوب استفاده می کند.

Gremlin با استفاده از عامل شبکه خود، انواع مختلفی از مشکلات را بر روی تعداد مورد نیاز ماشین ایجاد می کند: تاخیر شبکه، اضافه بار هر منبع (CPU، دیسک، حافظه، شبکه)، غیرفعال کردن پروتکل های فردی و غیره. برای بلاک چین ها، Gremlin را می توان در سرورهای تست نت، شبیه سازی مشکلات واقعی و مشاهده رفتار شبکه استفاده کرد. با استفاده از آن، توسعه دهندگان و مدیران می توانند در یک محیط کنترل شده مشاهده کنند که در صورت خرابی سیستم یا زمانی که کد به روز می شود چه اتفاقی می افتد. در این حالت، شبکه باید از قبل پیکربندی و مستقر شود و همچنین برای جمع آوری معیارهای لازم پیکربندی شود.

Gremlin یک ابزار مناسب برای معماران، توسعه دهندگان و متخصصان امنیتی و یک راه حل جهانی برای آزمایش هر سیستم توزیع شده آماده و در حال اجرا، از جمله بلاک چین است.

مروری کوتاه بر ابزارهای تست و محک زدن بلاک چین

Hyperledger Caliper راه حل بسیار تخصصی تری است کولیس هایپرلجر. در حال حاضر، Caliper از چندین بلاک چین به طور همزمان پشتیبانی می کند - نمایندگان خانواده Hyperledger (Fabric، Sawtooth، Iroha، Burrow، Besu)، و همچنین Ethereum و شبکه FISCO BCOS.

با استفاده از Caliper می توانید توپولوژی شبکه بلاک چین و قراردادها را برای آزمایش تنظیم کنید و همچنین پیکربندی گره را توضیح دهید. گره های بلاک چین در کانتینرهای داکر روی یک دستگاه بزرگ می شوند. بعد، می توانید موارد لازم را انتخاب کنید تنظیمات تست و پس از راه اندازی فایلی با گزارش نتایج آزمایش دریافت کنید. فهرست کاملی از معیارهای کالیپر و رویکرد معیارسنجی را می‌توانید در اینجا پیدا کنید معیارهای عملکرد بلاک چین Hyperledger، اگر به مبحث بنچمارک بلاک چین علاقه دارید، این یک مقاله عالی است. همچنین می‌توانید مجموعه معیارها را در Prometheus/Grafana جداگانه تنظیم کنید.

Hyperledger Caliper ابزاری است که توسعه‌دهندگان و معماران سیستم را هدف قرار می‌دهد، زیرا تکرارپذیری تست و اتوماسیون تست و محک زدن را فراهم می‌کند. از آن در توسعه هسته بلاک چین استفاده می شود: الگوریتم های اجماع، ماشین مجازی برای پردازش قراردادهای هوشمند، لایه همتا به همتا و دیگر مکانیسم های سیستم.

مروری کوتاه بر ابزارهای تست و محک زدن بلاک چین

مخزن MixBytes ابزاری است که در فرآیند توسعه الگوریتم‌های اجماع و نهایی برای شبکه‌های مبتنی بر EOS و آزمایش پاراچین‌ها بر اساس Substrate برابری (Polkadot) پدیدار شد. از نظر عملکرد، به Hyperledger Caliper نزدیک است، زیرا به شما امکان می دهد معیارهای مهم را از گره های هر سیستم توزیع شده و ماشین های مشتری که اسکریپت های آزمایشی روی آنها اجرا می شوند، جمع آوری کنید.

MixBytes Tank از چندین سرویس ابری (Digital Ocean، Google Cloud Engine و غیره) استفاده می کند که در آنها می تواند بسیاری از گره ها را راه اندازی کند، مراحل اولیه پیکربندی را انجام دهد، چندین معیار را به صورت موازی بر روی ماشین های مختلف اجرا کند، معیارهای لازم را جمع آوری کند و به طور خودکار خاموش کند. شبکه.

MixBytes Tank به شما امکان می دهد با به حداقل رساندن خودکار منابع غیرضروری پس از آزمایش، در هزینه سرورهای ابری صرفه جویی کنید. یکی دیگر از ویژگی های متمایز، استفاده از بسته Molecule است که به توسعه دهنده اجازه می دهد تا استقرار بلاک چین مورد نظر را به صورت محلی آزمایش کند.

MixBytes Tank به شما امکان می دهد تا گلوگاه ها و خطاهای الگوریتم هایی را که در شبکه های واقعی با تعداد زیادی سرور و کلاینت توزیع شده جغرافیایی ایجاد می شوند، زود تشخیص دهید. مخزن به شما کمک می‌کند تا بفهمید اگر مشتریان تراکنش‌هایی را با tps معین در شرایط بسیار تکرارپذیر و با تعداد واقعی گره‌های پراکنده در قاره‌های مختلف در صورت لزوم ارسال کنند، در گره‌ها چه اتفاقی می‌افتد.

مروری کوتاه بر ابزارهای تست و محک زدن بلاک چین

Whiteblock Genesis یک پلت فرم آزمایشی برای بلاک چین های مبتنی بر اتریوم است. این ابزار دارای عملکرد بسیار گسترده ای است: به شما امکان می دهد یک شبکه را راه اندازی کنید، تعداد حساب های مورد نیاز را در آن ایجاد کنید، تعداد مورد نیاز مشتری را افزایش دهید، توپولوژی شبکه را پیکربندی کنید، پارامترهای پهنای باند و تلفات بسته را مشخص کنید و آزمایشی را اجرا کنید.

Whiteblock Genesis امکانات تست خود را فراهم می کند. توسعه دهندگان فقط باید پارامترهای آزمایشی را مشخص کنند، آنها را با استفاده از یک API آماده اجرا کنند و با استفاده از یک داشبورد مناسب، نتایج را دریافت کنند.

Whiteblock Genesis به شما این امکان را می دهد که یک آزمایش نسبتاً دقیق را پیکربندی کنید که پلتفرم به طور خودکار برای هر تغییر مهم کد انجام می دهد. این به شما این امکان را می دهد که خطاها را در مراحل اولیه تشخیص دهید و بلافاصله تأثیر تغییرات را بر پارامترهای مهم شبکه، مانند سرعت تراکنش و منابع مصرف شده توسط گره ها ارزیابی کنید.

مدت

یکی دیگر از محصولات جوان جالب برای آزمایش سیستم های توزیع شده است دیوانه. این در پایتون نوشته شده است و به شما امکان می دهد توپولوژی شبکه مورد نیاز و تعداد مورد نیاز سرور و کلاینت را با استفاده از یک اسکریپت پیکربندی ساده ایجاد کنید (مثال). پس از این، سرویس شبکه را در چندین کانتینر Docker مستقر می کند و یک رابط وب را باز می کند که در آن می توانید پیام های سرورها و کلاینت های شبکه را مشاهده کنید. Madt را می توان برای آزمایش بلاک چین استفاده کرد - مخزن پروژه دارای یک تست شبکه p2p بر اساس پروتکل Kademlia است که در آن تاخیر در تحویل داده ها به گره ها به تدریج افزایش می یابد و وضعیت این داده ها بررسی می شود.

Madt به تازگی ظاهر شده است، اما با توجه به معماری بسیار انعطاف پذیر آن، می تواند به یک محصول کاربردی تبدیل شود.

راه حل های دیگر

تقریباً هر آزمایش بخشی از سیستم بلاک چین ها به اجرای اسکریپت های اولیه، آماده سازی حساب ها و شرایط برای آزمایش نیاز دارد (این می تواند خطاهای اجماع را آزمایش کند که می تواند فورک های متعددی از زنجیره ها ایجاد کند، سناریوهای هارد فورک را آزمایش کند، پارامترهای سیستم را تغییر دهد و غیره). همه این دستکاری‌ها در بلاک‌چین‌های مختلف به‌طور متفاوتی انجام می‌شوند، بنابراین برای تیم‌ها آسان‌تر است که به‌تدریج آزمایش و محک‌گذاری محصول را با CI/CD داخلی تطبیق دهند و از پیشرفت‌های خود استفاده کنند، که به تدریج با توسعه عملکرد بلاک‌چین پیچیده‌تر می‌شود.

با این وجود، استفاده از راه حل های آماده می تواند زمان تست این تیم ها را تا حد زیادی کاهش دهد، بنابراین فکر می کنم این نرم افزار در سال های آینده به طور فعال توسعه یابد.

نتیجه

برای پایان دادن به این بررسی کوتاه، چندین ویژگی مهم ابزارهای تست بلاک چین را فهرست می کنم:

  • توانایی استقرار خودکار شبکه بلاک چین در شرایط تکرارپذیر. این عامل هنگام توسعه بخش‌های سیستم بلاک چین مهم است: الگوریتم‌های اجماع، نهایی بودن، قراردادهای هوشمند سیستم.
  • هزینه مالکیت سیستم، منابع مصرف شده و راحتی برای استفاده مداوم. این فاکتور تست های باکیفیت را با هزینه کمی برای پروژه فراهم می کند.
  • انعطاف پذیری و سادگی پیکربندی تست. این عامل شانس شناسایی مشکلات سیستم را افزایش می دهد - احتمال کمتری برای از دست دادن چیزی مهم وجود دارد.
  • سفارشی سازی برای انواع خاصی از بلاک چین. توسعه راه حلی بر اساس راه حل موجود می تواند کیفیت را تا حد زیادی بهبود بخشد و هزینه های زمانی را کاهش دهد.
  • سهولت و دسترسی به نتایج به‌دست‌آمده و نوع آنها (گزارش‌ها، معیارها، نمودارها، گزارش‌ها و غیره). اگر می خواهید تاریخچه توسعه محصول را ردیابی کنید یا اگر به تجزیه و تحلیل عمیق رفتار شبکه بلاک چین نیاز دارید، کاملاً ضروری است.

در آزمایش خود موفق باشید و بلاک چین های شما سریع و مقاوم در برابر خطا باشند!

منبع: www.habr.com

اضافه کردن نظر