امروزه راهحلهایی برای آزمایش و محک زدن بلاکچینها برای یک بلاک چین خاص یا فورکهای آن طراحی شدهاند. اما چندین راه حل کلی دیگر نیز وجود دارد که از نظر عملکرد متفاوت هستند: برخی از آنها پروژه های منبع باز هستند، برخی دیگر به عنوان SaaS ارائه می شوند، اما اکثر آنها راه حل های داخلی هستند که توسط تیم توسعه بلاک چین ایجاد شده اند. با این حال، همه آنها مشکلات مشابه را حل می کنند. در این مقاله سعی کردم به طور خلاصه چندین محصول طراحی شده برای آزمایش بلاک چین را بررسی کنم.
عملکرد یک شبکه بلاکچین شبیه عملکرد یک پایگاه داده توزیع شده است، بنابراین می توان از ابزارها و روش های مشابه برای آزمایش استفاده کرد. برای درک بهتر نحوه آزمایش پایگاه های داده توزیع شده، به مجموعه ای از منابع و مقالات خوب نگاه کنید
من چندین راه حل محبوب برای آزمایش و محک زدن بلاک چین ها را شرح خواهم داد. خوشحال می شوم اگر در نظرات سایر محصولات نرم افزاری مفید را برای حل مشکلات مشابه توضیح دهید.
من با ابزاری شروع می کنم که اگرچه به طور خاص برای بلاک چین ایجاد نشده است، اما به شما امکان می دهد عملکرد آنها را به طور مؤثر آزمایش کنید، مشروط بر اینکه یک شبکه در حال اجرا وجود داشته باشد که می توانید روی آن آزمایش کنید. مهمترین عامل در قابلیت اطمینان یک سیستم توزیع شده، توانایی ادامه کار در صورت بروز مشکل در سرورها و شبکه است. این می تواند تاخیر شبکه، پر بودن دیسک، در دسترس نبودن سرویس های خارجی (DNS)، خرابی های سخت افزاری و صدها دلیل دیگر باشد. برای بررسی پایداری هر سیستمی که به طور هماهنگ بر روی تعداد زیادی از ماشین های سیستم کار می کند، می توانید استفاده کنید
Gremlin با استفاده از عامل شبکه خود، انواع مختلفی از مشکلات را بر روی تعداد مورد نیاز ماشین ایجاد می کند: تاخیر شبکه، اضافه بار هر منبع (CPU، دیسک، حافظه، شبکه)، غیرفعال کردن پروتکل های فردی و غیره. برای بلاک چین ها، Gremlin را می توان در سرورهای تست نت، شبیه سازی مشکلات واقعی و مشاهده رفتار شبکه استفاده کرد. با استفاده از آن، توسعه دهندگان و مدیران می توانند در یک محیط کنترل شده مشاهده کنند که در صورت خرابی سیستم یا زمانی که کد به روز می شود چه اتفاقی می افتد. در این حالت، شبکه باید از قبل پیکربندی و مستقر شود و همچنین برای جمع آوری معیارهای لازم پیکربندی شود.
Gremlin یک ابزار مناسب برای معماران، توسعه دهندگان و متخصصان امنیتی و یک راه حل جهانی برای آزمایش هر سیستم توزیع شده آماده و در حال اجرا، از جمله بلاک چین است.
Hyperledger Caliper راه حل بسیار تخصصی تری است
با استفاده از Caliper می توانید توپولوژی شبکه بلاک چین و قراردادها را برای آزمایش تنظیم کنید و همچنین پیکربندی گره را توضیح دهید. گره های بلاک چین در کانتینرهای داکر روی یک دستگاه بزرگ می شوند. بعد، می توانید موارد لازم را انتخاب کنید
Hyperledger Caliper ابزاری است که توسعهدهندگان و معماران سیستم را هدف قرار میدهد، زیرا تکرارپذیری تست و اتوماسیون تست و محک زدن را فراهم میکند. از آن در توسعه هسته بلاک چین استفاده می شود: الگوریتم های اجماع، ماشین مجازی برای پردازش قراردادهای هوشمند، لایه همتا به همتا و دیگر مکانیسم های سیستم.
MixBytes Tank از چندین سرویس ابری (Digital Ocean، Google Cloud Engine و غیره) استفاده می کند که در آنها می تواند بسیاری از گره ها را راه اندازی کند، مراحل اولیه پیکربندی را انجام دهد، چندین معیار را به صورت موازی بر روی ماشین های مختلف اجرا کند، معیارهای لازم را جمع آوری کند و به طور خودکار خاموش کند. شبکه.
MixBytes Tank به شما امکان می دهد با به حداقل رساندن خودکار منابع غیرضروری پس از آزمایش، در هزینه سرورهای ابری صرفه جویی کنید. یکی دیگر از ویژگی های متمایز، استفاده از بسته Molecule است که به توسعه دهنده اجازه می دهد تا استقرار بلاک چین مورد نظر را به صورت محلی آزمایش کند.
MixBytes Tank به شما امکان می دهد تا گلوگاه ها و خطاهای الگوریتم هایی را که در شبکه های واقعی با تعداد زیادی سرور و کلاینت توزیع شده جغرافیایی ایجاد می شوند، زود تشخیص دهید. مخزن به شما کمک میکند تا بفهمید اگر مشتریان تراکنشهایی را با tps معین در شرایط بسیار تکرارپذیر و با تعداد واقعی گرههای پراکنده در قارههای مختلف در صورت لزوم ارسال کنند، در گرهها چه اتفاقی میافتد.
Whiteblock Genesis یک پلت فرم آزمایشی برای بلاک چین های مبتنی بر اتریوم است. این ابزار دارای عملکرد بسیار گسترده ای است: به شما امکان می دهد یک شبکه را راه اندازی کنید، تعداد حساب های مورد نیاز را در آن ایجاد کنید، تعداد مورد نیاز مشتری را افزایش دهید، توپولوژی شبکه را پیکربندی کنید، پارامترهای پهنای باند و تلفات بسته را مشخص کنید و آزمایشی را اجرا کنید.
Whiteblock Genesis امکانات تست خود را فراهم می کند. توسعه دهندگان فقط باید پارامترهای آزمایشی را مشخص کنند، آنها را با استفاده از یک API آماده اجرا کنند و با استفاده از یک داشبورد مناسب، نتایج را دریافت کنند.
Whiteblock Genesis به شما این امکان را می دهد که یک آزمایش نسبتاً دقیق را پیکربندی کنید که پلتفرم به طور خودکار برای هر تغییر مهم کد انجام می دهد. این به شما این امکان را می دهد که خطاها را در مراحل اولیه تشخیص دهید و بلافاصله تأثیر تغییرات را بر پارامترهای مهم شبکه، مانند سرعت تراکنش و منابع مصرف شده توسط گره ها ارزیابی کنید.
مدت
یکی دیگر از محصولات جوان جالب برای آزمایش سیستم های توزیع شده است
Madt به تازگی ظاهر شده است، اما با توجه به معماری بسیار انعطاف پذیر آن، می تواند به یک محصول کاربردی تبدیل شود.
راه حل های دیگر
تقریباً هر آزمایش بخشی از سیستم بلاک چین ها به اجرای اسکریپت های اولیه، آماده سازی حساب ها و شرایط برای آزمایش نیاز دارد (این می تواند خطاهای اجماع را آزمایش کند که می تواند فورک های متعددی از زنجیره ها ایجاد کند، سناریوهای هارد فورک را آزمایش کند، پارامترهای سیستم را تغییر دهد و غیره). همه این دستکاریها در بلاکچینهای مختلف بهطور متفاوتی انجام میشوند، بنابراین برای تیمها آسانتر است که بهتدریج آزمایش و محکگذاری محصول را با CI/CD داخلی تطبیق دهند و از پیشرفتهای خود استفاده کنند، که به تدریج با توسعه عملکرد بلاکچین پیچیدهتر میشود.
با این وجود، استفاده از راه حل های آماده می تواند زمان تست این تیم ها را تا حد زیادی کاهش دهد، بنابراین فکر می کنم این نرم افزار در سال های آینده به طور فعال توسعه یابد.
نتیجه
برای پایان دادن به این بررسی کوتاه، چندین ویژگی مهم ابزارهای تست بلاک چین را فهرست می کنم:
- توانایی استقرار خودکار شبکه بلاک چین در شرایط تکرارپذیر. این عامل هنگام توسعه بخشهای سیستم بلاک چین مهم است: الگوریتمهای اجماع، نهایی بودن، قراردادهای هوشمند سیستم.
- هزینه مالکیت سیستم، منابع مصرف شده و راحتی برای استفاده مداوم. این فاکتور تست های باکیفیت را با هزینه کمی برای پروژه فراهم می کند.
- انعطاف پذیری و سادگی پیکربندی تست. این عامل شانس شناسایی مشکلات سیستم را افزایش می دهد - احتمال کمتری برای از دست دادن چیزی مهم وجود دارد.
- سفارشی سازی برای انواع خاصی از بلاک چین. توسعه راه حلی بر اساس راه حل موجود می تواند کیفیت را تا حد زیادی بهبود بخشد و هزینه های زمانی را کاهش دهد.
- سهولت و دسترسی به نتایج بهدستآمده و نوع آنها (گزارشها، معیارها، نمودارها، گزارشها و غیره). اگر می خواهید تاریخچه توسعه محصول را ردیابی کنید یا اگر به تجزیه و تحلیل عمیق رفتار شبکه بلاک چین نیاز دارید، کاملاً ضروری است.
در آزمایش خود موفق باشید و بلاک چین های شما سریع و مقاوم در برابر خطا باشند!
منبع: www.habr.com