# تست برابری ویژگی

ساخت وبلاگ

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

# حقایق

  • ویژگی ها قابلیت هایی هستند که به اعتبار سنج های Solana معرفی می شوند و برای استفاده از آن نیاز به فعال سازی دارند.
  • ویژگی ها ممکن است در یک خوشه فعال شود (به عنوان مثال TestNet) اما در دیگری چنین نیست (به عنوان مثال Maiet-Beta).
  • با این حال؛هنگام اجرای برنامه پیش فرض Solana-Test-Test-Test به صورت محلی ، تمام ویژگی های موجود در نسخه Solana شما به صورت خودکار فعال می شوند. نتیجه این است که هنگام آزمایش محلی ، قابلیت ها و نتایج آزمایش شما ممکن است هنگام استقرار و دویدن در یک خوشه متفاوت یکسان نباشد!

# سناریو

فرض کنید معامله ای دارید که شامل سه (3) دستورالعمل است و هر دستورالعمل تقریباً 100_000 واحد محاسباتی (CU) را مصرف می کند. هنگام کار در نسخه Solana 1. 8. x ، مصرف CU دستورالعمل خود را شبیه به:

 

دستورالعمل شروع مس اجرا CU باقی مانده
1 200_000 -100_000 100_000
2 200_000 -100_000 100_000
3 200_000 -100_000 100_000

در Solana 1. 9. 2 یک ویژگی به نام "Cap Capte Capte Transaction" معرفی شد که در آن معامله ، به طور پیش فرض ، بودجه 200_000 CU را دارد و دستورالعمل های محصور شده از آن بودجه معامله کاهش می یابد. انجام همان معامله همانطور که در بالا ذکر شد رفتار بسیار متفاوتی خواهد داشت:

 

دستورالعمل شروع مس اجرا CU باقی مانده
1 200_000 -100_000 100_000
2 100_000 -100_000 0
3 0 شکست. شکست.

yikes! اگر از این امر آگاه نبودید ، احتمالاً ناامید خواهید شد زیرا هیچ تغییری در رفتار دستورالعمل شما وجود ندارد که باعث این امر شود. در Devnet خوب کار کرد ، اما از نظر محلی ناکام بود.

این امکان وجود دارد که بودجه کلی معاملات را افزایش دهد ، اجازه دهیم 300_000 CU را بگوییم و سلامت خود را نجات دهید اما این نشان می دهد که چرا آزمایش با برابری ویژگی یک روش فعال برای جلوگیری از هرگونه سردرگمی فراهم می کند.

# وضعیت ویژگی

بررسی اینکه چه ویژگی هایی برای یک خوشه خاص با دستور وضعیت ویژگی Solana فعال شده است ، بسیار آسان است.

از طرف دیگر ، شما می توانید از ابزاری مانند SCFSD برای مشاهده تمام حالت ویژگی ها در خوشه هایی که نمایش داده می شود ، صفحه نمایش جزئی که در اینجا نشان داده شده است ، استفاده کنید ، و نیازی به اجرای اعتبار سنجی Solana ندارد:

Feature Status Heatmap

# تست برابری

همانطور که در بالا ذکر شد ، اعتبار سنجی Solana همه ویژگی ها را به صورت خودکار فعال می کند. بنابراین برای پاسخ به این سؤال "چگونه می توانم به صورت محلی در محیطی که دارای برابری با Devnet ، TestNet یا حتی Maiet-Beta است ، آزمایش کنم؟"

راه حل: PRS به Solana 1. 9. 6 اضافه شد تا غیرفعال کردن ویژگی ها امکان پذیر باشد:

# تظاهرات ساده

فرض کنید شما یک برنامه ساده دارید که داده های دریافت شده در نقطه ورود خود را ثبت می کند. و شما در حال آزمایش معامله ای هستید که دو (2) دستورالعمل را برای برنامه شما اضافه می کند.

# همه ویژگی های فعال شده

  1. اعتبار سنج تست را در یک ترمینال شروع می کنید:
  1. در یک ترمینال دیگر ، جریان ورود به سیستم را شروع می کنید:
  1. سپس معامله خود را اجرا می کنید. شما می توانید چیزی مشابه را در ترمینال ورود به سیستم مشاهده کنید (برای وضوح ویرایش شده است):

از آنجا که ویژگی ما "کلاه محاسبات گسترده معامله" به طور خودکار به طور خودکار فعال می شود ، ما هر دستورالعمل را از بودجه معامله 200_000 CU استفاده می کنیم.

# ویژگی های انتخابی غیرفعال شده

  1. برای این اجرا ، ما می خواهیم اجرا کنیم تا رفتار بودجه CU با آنچه در Devnet اجرا می شود ، برابری کند. با استفاده از ابزاری (های) شرح داده شده در وضعیت ویژگی ، ما کلید عمومی CAP CAP TRANSACTION را جدا می کنیم و از--Deactivate-Beature در راه اندازی اعتبار سنج آزمون استفاده می کنیم
  1. اکنون در سیاهههای خود می بینیم که دستورالعمل های ما اکنون بودجه 200_000 CU خود را دارند (برای وضوح ویرایش شده) که در حال حاضر دولت در تمام خوشه های بالادست است:

# تست برابری کامل

شما می توانید با یک خوشه خاص با شناسایی هر ویژگی که هنوز فعال نشده است ، در یک خوشه خاص قرار بگیرید و در هنگام فراخوانی با ارزش Solana-Test-Test-Test-Test-Test را برای هر یک اضافه کنید:

از طرف دیگر ، SCFSD یک سوئیچ فرمان را برای خروجی ویژگی کامل غیرفعال شده برای یک خوشه فراهم می کند تا مستقیماً در راه اندازی اعتبار سنجی Solana-Test:

اگر ترمینال دیگری را باز کنید ، در حالی که اعتبار سنج در حال اجرا است ، و وضعیت ویژگی Solana ، ویژگی های غیرفعال شده ای را مشاهده می کنید که در DevNet غیرفعال شده اند

# تست کامل برابری به صورت برنامه ای

برای کسانی که کنترل اعتبار سنج آزمون را در کد آزمون خود کنترل می کنند ، اصلاحات معتبر آزمون فعال شده/غیرفعال شده با استفاده از TestValidatorGenesis امکان پذیر است. با استفاده از Solana 1. 9. 6 تابعی برای پشتیبانی از این امر به سازنده معتبر اضافه شده است.

در ریشه پوشه برنامه خود ، یک پوشه جدید به نام تست ها ایجاد کنید و یک فایل parity_test. rs اضافه کنید. در اینجا توابع دیگ بخار (در صورت تمایل به صفحه دیگ بخار) است که توسط هر تست استفاده می شود

کتاب آموزش بورس...
ما را در سایت کتاب آموزش بورس دنبال می کنید

برچسب : نویسنده : محسن زنجانچی بازدید : <-PostHit-> تاريخ : پنجشنبه 7 ارديبهشت 1402 ساعت: 11:43