پایه و اساس دنیای ارزهای دیجیتال و امور مالی غیر متمرکز، فناوری بلاک چین است. این فناوری با قابلیتهای بینظیر خود مثل غیر متمرکز بودن و امکان انجام تراکنشهای مالی و به صورت ناشناس، روز به روز محبوبیت بیشتری کسب میکند و پروژههای بلاک چینی جدیدی راهاندازی میشوند. یکی از مراحل بسیار مهم در توسعه هر پروژه رمزارز یا دیفای بر بستر بلاک چین، تست نت (Testnet) است. در این مقاله خواهیم گفت که تست نت چیست و چه تفاوتی با مین نت (Mainnet) دارد.
هدف از راهاندازی تست نت، همانطور که نامش نشان میدهد، تست کردن شبکه است. در مقابل تست نت، مین نت قرار دارد که همان بلاک چین اصلی و عملکردی است. میتوان تست نتها را به دو دسته تقسیمبندی کرد: تست نتهایی که قبل و بعد از شروع به کار مین نت، اجرا میشوند.
روزانه، تراکنشهایی به ارزش میلیاردها دلار آمریکا بر بستر بلاک چینها انجام میشود. در حال حاضر، داراییهای دیجیتالی به ارزش بیش از ۹۰ میلیارد دلار آمریکا در پلتفرمهای دیفای قفل شده است. پول و داراییهای دیجیتالی در این پلتفرمها مبادله میشوند و پلتفرمها، dAppها و بلاک چینهای جدیدی با سرعت بالایی منتشر میشوند.
تصور کنید که اگر این بلاک چینها و پلتفرمها بدون تست شدن راهاندازی میشدند، چه مشکلاتی به وجود میآمد؛ بلاک چینها و اپلیکیشنهای تست نشده میتوانند مشکلاتی داشته باشند که خسارتهای چند میلیارد دلاری به مردم وارد کنند و کل دنیای رمزارزها و دیفای را تحت تأثیر قرار دهند.
به دلایلی که در بالا برای شما توضیح دادیم، از تست نتها استفاده میشود. در ادامه برای شما خواهیم گفت که Testnet چیست و چه تفاوتهایی با مین نت دارد. با ما همراه باشید.
تست نت Testnet چیست؟
تست نت، نوعی شبکه بلاک چین آزمایشی است که برای اجرا و تست کردن بلاک چینها یا پروژههای بلاک چین پیش از راهاندازی یا حتی پس از راهاندازی آنها ایجاد و اجرا میشود.
راهاندازی تست نت سادهترین روشی است که برنامهنویسان و توسعهدهندگان میتوانند از طریق آن، قابلیتهای مختلف پروژههای بلاک چین و دیفای، مثل انواع مختلف قراردادهای هوشمند و dAppها را تست و اصلاح کنند و تا زمانی که برای استفاده در دسترس عموم قرار میگیرند، به عملکرد آنها نظارت داشته باشند. برنامهنویسان و توسعهدهندگان در تست نتها، ایرادات پروژهها، اپلیکیشنها، قراردادهای هوشمند، صرافیهای غیر متمرکز و هر قابلیت بلاک چین و دیفای را آزمایش کرده و ایرادات آن را شناسایی و برطرف میکنند.
در محیط Testnet میتوان آزمایشهای مختلفی را به صورت مکرر انجام داد و عملکرد هر قابلیت را پیش از عمومی شدن آن، تحت نظر داشت و بررسی کرد. از آنجایی که تست نتها به صورت کاملا مجزا از مین نتها عمل میکنند، میتوان در آنها پروژههای بلاک چین را بدون تداخل با تراکنشها در مین نت، به طور کامل تست کرد.
مدل جعبه شن یا سند باکس (Sandbox) به توسعهدهندگان و برنامهنویسان امکان میدهد تا ریسکها و آزمایشهای مختلفی را انجام دهند و به بهترین مدل ممکن برای راهاندازی بر بستر مین نت برسند.
از آنجایی که تست نتها، پیشنمونه یا پروتوتایپ محسوب میشوند، هرگز نباید از آنها برای انتقال داراییهای ارزشمند استفاده کرد بلکه برای انجام تستها و آزمایش مدلها در این شبکهها باید از توکنهای فیک و بدون ارزش استفاده شود.
معمولا، توسعهدهندگان برای راهاندازی و آزمایش بلاک چینها، تست نتها را میسازند و زمانی که توسعه بلاک چین پس از پشت سر گذاشتن تمامی آزمایشها و رفع تمامی نواقص به پایان رسید، آن را در مین نت راهاندازی میکنند.
بعضی از بلاک چینها مثل اتریوم دارای روشهای استانداردی برای تست کردن پروژهها، اپلیکیشنها و دیگر انواع قابلیتهای دیفای هستند. این بلاک چینها، به پروژههایی که تستها را با موفقیت پشت سر میگذارند، گواهینامه میدهند. این گواهینامهها خیال کاربران را راحت میکنند و سبب جلب اعتماد آنها میشوند. به علاوه، یکی از مدارک مورد نیاز برای پذیرش پروژهها در آن بلاک چینها هستند.
مین نت چیست؟
در بالا برای شما به طور کامل توضیح دادیم که تست نت چیست و حالا وقت این است که مین نت را برای شما توضیح دهیم.
مین نت هم همانطور که نامش نشان میدهد، به معنی شبکه اصلی است که بلاک چین یا پروژه بلاک چین روی آن اجرا میشود. راهاندازی پروژه یا بلاک چین در مین نت، بعد از تست کردن موفق آن در Testnet انجام میشود.
مین نت، یک شبکه کاملا توسعه یافته است که میتوان در آن تراکنشهای واقعی انجام داد و تراکنشها را ثبت و تأیید کرد. وقتی توسعهدهندگان پروژهای، آن را در مین نت راهاندازی میکنند، در واقع اعلام میدارند که تستهای لازم را روی پروژه انجام دادهاند و به آن اعتماد کامل دارند.
مین نتها، بلاک چینهایی کاملا عملکردی هستند که کاربران میتوانند تراکنشهای ارزهای دیجیتال یا NFTها را بر بستر آنها انجام دهند یا به مبادله اطلاعات بپردازند. به علاوه، میتوان از مین نتها برای اجرای پروژهای که نیازمند نوعی پروتکل ویژه بلاک چین است، استفاده کرد؛ برای مثال، میتوان به اجرای dAppها بر بستر مین نت اتریوم اشاره داشت.
مین نتها امکان استفاده عمومی از dAppها را فرآهم میآورند. از آنجایی که در مین نتها، از داراییهای دارای ارزش واقعی استفاده میشود، تأیید کنندهها برای مشارکت در آنها، انگیزه کافی دارند.
پروژههایی که مین نت دارند، بیشتر مورد اعتماد کاربران هستند و میتوان آنها را پروژههای پختهتری دانست. وقتی پروژهای مین نت داشته باشد، کاربران میدانند که منابع زیادی به آن پروژه اختصاص یافته و کار زیادی روی آن انجام شده است.
مین نت و تست نت چه تفاوت هایی با هم دیگر دارند؟
در جدول زیر، تفاوت تست نت با مین نت را از جنبههای مختلف بررسی کردهایم:
جنبه تفاوت | تست نت | مین نت |
هدف | هدف از اجرای آزمایشی پروژه با داراییهای بدون ارزش و غیر واقعی به منظور پیدا کردن نقاط ضعف، خطاها، باگها و ایرادات و برطرف کردن آنها پیش از راهاندازی در مین نت است. | پروژه بلاک چین اصلی که تراکنشهای داراییهای با ارزش و واقعی در آن انجام میشوند. |
هزینه عملیات | توکنها در تست نت هیچ ارزشی ندارند و بنابراین، تراکنشها در تست نت بدون کارمزد هستند. | در تراکنشهای مین نت از توکنهای واقعی استفاده میشود و بنابراین، هر تراکنش دارای کارمزد است. در نتیجه، هزینه عملیات در مین نت بالاتر از تست نت است. |
آی دی شبکه | آی دی تست نت با آی دی مین نت تفاوت دارد. آی دی تست نتهای Ropsten، Rinkeby و Kovan در اتریوم به ترتیب، ۳، ۴ و ۴۲ است. | آی دی Testnet با آی دی مین نت تفاوت دارد. آی دی مین نت اتریوم، ۱ است. |
نخستین بلاک شبکه یا جنسیس بلاک (Genesis Block) | نخستین بلاک شبکه مستقل از نخستین بلاک شبکه در مین نت است. | نخستین بلاک شبکه، مستقل از نخستین بلاک شبکه در تست نت است. |
گرهها | تعداد گرهها، کمتر از تعداد گرهها در مین نت است. | تعداد گرهها، بیشتر از تعداد گرهها در تست نت است. |
تعداد تراکنشها | تعداد تراکنشها، کمتر از تعداد تراکنش در مین نت است. | تعداد تراکنشها، بیشتر از تعداد تراکنشها در Testnet است. |
وضعیت انتشار کد | کد تست نتها منتشر نمیشود زیرا هنوز روند توسعه، کامل نشده است. | کد مین نتها منتشر میشود و در دسترس عموم قرار میگیرد. |
تست نت چه کاربردهایی دارد؟
- توسعه در محیطی ایمن: سندباکس تست نت، محیطی ایمن برای تست کردن ایدههای مختلف توسعه پروژهها و اپلیکیشنها است.
- به حداقل رساندن اختلالات در مین نتها: تیمهای بلاک چین با سرعت بالایی، برای حل کردن مشکلاتی مثل مقیاسپذیری، امنیت و غیر متمرکز بودن، تلاش میکنند. تستهای متعددی در Testnet ها انجام میشوند و این تستها، هیچ اختلالی در مین نتها ایجاد نمیکنند.
- تستهای سازگاری dAppها: هر اپلیکیشن غیر متمرکز یا dApp، پیش از اجرایی شدن بر بستر بلاک چین باید تستهای متعددی را پشت سر بگذارد و باگهای آن برطرف شود. پچهای جدید، قابلیتهای جدید و … پیش از اجرایی شدن در تست نت آزمایش میشوند. بعضی از این تستها به شرح زیر هستند:
- تستهای امنیتی
- تست بارگذاری
- مهاجرت بلاک چین
- تست یکپارچهسازی
- تست مدیریت بحران و بازیابی پس از حادثه
کاربردهای مین نت چیست؟
در بالا برای شما توضیح دادیم که کاربردهای تست نت چیست. در اینجا میخواهیم کاربردهای Testnet ها را برای شما توضیح دهیم. مهمترین کاربردهای مین نتها به شرح زیر هستند:
- جلب اطمینان کاربران: داشتن مین نت نشان میدهد که آن پروژه بلاک چین، عملکردی است و باگ مهمی ندارد. بنابراین، کاربران به پروژههای دارای مین نت اطمینان میکنند و وارد آنها میشوند. به علاوه، پس از راهاندازی مین نت، اکثر پروژهها کدهای خودشان را عمومی و متن-باز میکنند و این موضوع نیز در افزایش اعتبار پروژه و اعتماد کاربران نقش دارد.
- افزایش موارد کاربرد اپلیکیشنها: هر بلاک چین، پیش از راهاندازی مین نت با توسعهدهندگان اپلیکیشنها وارد همکاری میشود. بنابراین، بعضی از آن اپلیکیشنها، با راهاندازی مین نت، شروع به کار میکنند و موارد کاربرد اپلیکیشنها افزایش پیدا میکند.
- فرصتهای جدید: مین نتها به عنوان شبکههای عمومی بدون نیاز به مجوز، فرصتهایی برای پروژههای جدید ایجاد میکنند.
- قابلیتهای دیگر: مین نتها قابلیتهای دیگری مثل قابلیتهای امنیتی یا آنتی اسپم را امکانپذیری میکنند.
چرا تست نت ها اهمیت دارند؟
در این بخش میخواهیم به این سوال پاسخ دهیم که اهمیت Testnet چیست؟
همانطور که در شروع مقاله گفتیم، از آنجایی که روزانه میلیاردها دلار بر بستر بلاک چینها جا به جا میشود، خیلی مهم است که پیش از راهاندازی هر پروژه بلاک چینی، آن پروژه، به طور کامل تست و باگهای آن برطرف شود. سوال اینجا است که چرا این تستها روی مین نتها انجام نمیشوند؟
اول از همه اینکه به دلایل زیر انجام تستها بر بستر مین نتها بسیار هزینهبر است:
- در مین نتها از توکنهای واقعی استفاده میشود و بنابراین، هر تراکنش، کارمزد خودش را دارد. حتی راهاندازی پروژه در مین نت و اعمال هر تغییر روی آن، بدون پرداخت کارمزد به تأمینکننده مین نت امکانپذیر نیست. بنابراین، تست کردن کامل پروژه در مین نت با هزینههای زیادی همراه است.
- اگر مشکلی در فاز آزمایشی پروژه در مین نت رخ دهد، کل شبکه با اختلال مواجه میشود و داراییهای کاربران در معرض خطر قرار میگیرد. این موضوع میتوان برای تأمینکننده مین نت بسیار گران تمام شود و آن رمزارز، اعتبارش را به طور کامل از دست بدهد.
دومین دلیل استفاده از Testnet ها برای تست کردن پروژههای بلاک چینی، مشکل سازگاری (Compatibility) است:
- در تست نتها از توکنهای دارای ارزش مالی استفاده نمیشود و به جای آن، داراییهای بدون ارزش (Fake Money) مورد استفاده قرار میگیرد.
- کوینهایی که در تست نتها استفاده میشوند با مین نتها سازگاری ندارند و بنابراین، باید برای تست کردن پروژهها در مین نتها، کوینهای جدیدی ایجاد یا مینت (Mint) شوند که کاری بسیار پیچیده و پرهزینه است.
به دلایلی که در بالا گفته شد، حتما باید پروژههای بلاک چین در تست نتها مورد آزمایش قرار بگیرند و تست کردن آنها در مین نتها پرهزینه و پرخطر است. با تست کردن پروژهها در تست نتها، این پروژهها به صورت کاملا مجزا از بازار رمزارزها مورد آزمون و خطا قرار میگیرند و توسعهدهندگان میتوانند با خیال آسوده، هر قابلیتی را در این پروژهها آزمایش کنند.
چه کسانی باید از تست نتها استفاده کنند؟
حالا که گفتیم کاربردهای تست نت چیست و چرا از تست نتها استفاده میشود، میتوانیم به این این موضوع بپردازیم که چه کسانی باید از تست نتها استفاده کنند.
هر کسی که بخواهد پروژه جدیدی را توسعه دهد و آن را آزمایش کند، میتواند از Testnet ها استفاده کند. تست نتها روشی ساده برای تست کردن محصول در مقیاس نزدیک به مقیاس واقعی، بدون کارمزد و بدون خطر تداخل با مین نتها هستند.
همانطور که پیش از این گفتیم، اکثر مین نتها، دارای نوعی سرویس Testnet هم هستند. توسعهدهندگان پروژهها باید با توجه به نیازهای خود، Testnet مناسبتر برای خودشان را انتخاب کنند. برای مثال، بلاک چین Symbol دارای یک مین نت و یک تست نت است که تست نت آن از نظر ساختاری، کاملا به مین نت شباهت دارد اما اتریوم تعداد زیادی Testnet دارد که شبیهترین آنها به خود مین نت اتریوم، تست نت Ropsten است.
به علاوه، اگر توسعهدهندهای بخواهد بلاک چین خودش را بسازد و آن را تست کند، نیازمند Testnet است.
سوالات پر تکرار در رابطه با تست نت
۱- تست نت چیست؟
تست نت به شبکههایی گفته میشود که برای اجرای آزمایشی پروژههای بلاک چین مورد استفاده قرار میگیرند.
۲- مین نت چیست؟
به نسخه اصلی بلاک چین که در دسترس عموم قرار دارد و میتوان در آن تراکنشهای واقعی با رمزارزهای واقعی انجام داد، مین نت میگویند.
۳- چرا از تست نت استفاده می شود؟
توسعهدهندگان پروژههای بلاک چین از Testnet برای آزمایش کردن پروژههای خود استفاده میکنند زیرا تست کردن در تست نت بسیار کمهزینهتر از تست کردن در مین نت است و برخلاف تست کردن در مین نت، را ریسک همراه نیست.
جمع بندی
در این مقاله از سری مقالات داموندمگ در رابطه با Testnet ها و تفاوت آنها با مین نتها صحبت کردیم. روز به روز به تعداد پروژهها و اپلیکیشنهای بلاک چین و دیفای اضافه میشود و مردم دنیا روزانه میلیاردها دلار را بر بستر بلاک چینهای مختلف جا به جا میکنند. در صورتی که قرار باشد هر پروژه بلاک چین بدون تست کردن شروع به کار کند، ممکن است به دلیل باگهای احتمالی، خسارات مالی سنگینی ایجاد شود. بنابراین، پیش از راهاندازی هر پروژه بلاک چین، آن را در بستری به نام تست نت، آزمایش میکنند تا باگها و ایرادات آن را پیدا کرده و آنها را برطرف کنند.
در مقابل تست نت، مین نت قرار دارد. مین نت همان بلاک چین اصلی است که تراکنشهای واقعی و با داراییهای دیجیتالی واقعی در آن انجام میشوند. هر پروژه، پس از تکمیل آزمایشها در Testnet ، برای اجرایی شدن و در دسترس عموم قرار گرفتن وارد مین نت میشود.
هر مین نت مثل اتریوم میتواند یک یا چند تست نت داشته باشد و هر پروژهای که آزمونهای تست نت را با موفقیت پشت سر بگذارد، گواهینامه لازم برای فعالیت در مین نت دریافت میکند.
تست نت و مین نت تفاوتهای زیادی با هم دیگر دارند. در تست نت برخلاف مین نت از داراییهای دیجیتالی واقعی استفاده نمیشود بلکه در تراکنشهای تست نت از توکنهای بدون ارزش استفاده میکنند. عملیات و تراکنشها در Testnet هیچ هزینهای ندارند اما هر تراکنش در مین نت دارای کارمزد است. ی دی شبکه و بلاک چین نخستین تست نت و مین نت نیز با هم دیگر متفاوت هستند. از دیگر تفاوتهای مین نت و تست نت میتوان به کمتر بودن تعداد تراکنشها و تعداد گرهها در تست نت در مقایسه با مین نت اشاره کرد. وجه تفاوت دیگر تست نت با مین نت در این است که Testnet ها، متن-باز نیستند اما اکثر مین نتها، متن-باز هستند.
توسعهدهندگان پروژههای بلاک چینی مثل توسعهدهندگان dAppها و صرافیهای غیر متمرکز و نیز، توسعهدهندگان بلاک چینهای جدید از تست نتها برای تست کردن پروژهها در محیطی امن، به حداقل رساندن اختلالات در مین نتها و تست کردن سازگاری dAppها با بلاک چینها استفاده میکنند.
اما دلیل استفاده از تست نت چیست؟ از آنجایی که در Testnet ها از داراییهای واقعی استفاده نمیشود، آزمون و خطا کردن در آنها هیچ خطر و کارمزدی ندارد اما تست کردن پروژهها و اپلیکیشنها در مین نتها بسیار پرهزینه و پرریسک است. Testnet ها به توسعهدهندگان امکان میدهند تا با خیال راحت، پروژهها یا اپلیکیشنهای خود را آزمایش کنند.
یک پاسخ
مقاله خوب و جامعی بود مرسی