فایردنسر (Firedancer) چیست؟

فایردنسر

فایردنسر سولانا یک کلاینت اعتبارسنج مستقل و پرسرعت برای بلاک‌چین سولانا است که توسط شرکت Jump Crypto با همکاری بنیاد سولانا توسعه یافته است. این نرم‌افزار اعتبارسنج (Validator Client) با زبان برنامه‌نویسی C++ از پایه بازنویسی شده و تقریبا هیچ اشتراکی با کد کلاینت اصلی سولانا ندارد. هدف فایردنسر افزایش کارایی و مقیاس‌پذیری شبکه سولانا، بهبود پایداری آن و رفع نقاط ضعف کلاینت فعلی است. در گذشته سولانا چندین بار با توقف شبکه مواجه شده بود که نیاز به راه‌اندازی مجدد توسط صدها اعتبارسنج داشت و نگرانی‌هایی درباره قابلیت اطمینان شبکه ایجاد کرد. Firedancer به عنوان راهکاری برای تنوع‌بخشی به کلاینت‌های شبکه و جلوگیری از تکرار چنین اختلالاتی مطرح شده است. در این مقاله به زبان ساده بررسی می‌کنیم که Firedancer چیست، چه تفاوت‌های فنی با کلاینت اصلی سولانا (Agave) دارد، چه مزایایی برای شبکه سولانا ارائه می‌دهد، و چگونه می‌توان نسخه بتای آن را گام‌به‌گام نصب و راه‌اندازی کرد. هدف ما ارائه یک راهنمای جامع و قابل فهم برای تمام کاربران—از مبتدی تا حرفه‌ای—است.

معرفی فایردنسر به زبان ساده

فایردنسر (Firedancer) یک پیاده‌سازی جدید و مستقل از نرم‌افزار اعتبارسنج سولانا است. اگر سولانا را یک شبکه بلاک‌چین در نظر بگیریم، کلاینت اعتبارسنج نرم‌افزاری است که نودهای شبکه برای اعتبارسنجی و تولید بلاک از آن استفاده می‌کنند. تاکنون شبکه سولانا عمدتاً توسط یک کلاینت رسمی که توسط Solana Labs توسعه یافته (و اخیراً با نام Agave شناخته می‌شود) اداره می‌شد. وابستگی به یک کدبیس واحد، ریسک‌هایی مانند وجود باگ بحرانی یا حمله موفق را افزایش می‌دهد که می‌تواند کل شبکه را متوقف کند. فایردنسر آمده است تا این ریسک را کاهش دهد.

فایردنسر سولانا چه می‌کند؟ این کلاینت با بهره‌گیری از تخصص Jump Crypto در زمینه سیستم‌های پردازش با تأخیر پایین طراحی شده است. سه ویژگی کلیدی Firedancer عبارت‌اند از: سرعت بسیار بالا، امنیت بیشتر، و استقلال کدبیس. فایردنسر از پایه برای حداکثر سرعت طراحی شده و با استفاده از تکنیک‌های نوین موازی‌سازی و بهینه‌سازی سطح پایین، محدودیت‌های نرم‌افزار فعلی را برطرف می‌کند. این کلاینت جدید به لطف معماری ماژولار خود، وظایف مختلف اعتبارسنج را به بخش‌های مجزا (tiles) تفکیک کرده و از تمامی هسته‌های CPU به‌طور بهینه استفاده می‌کند. هر هسته پردازشی در Firedancer یک وظیفه مشخص (مانند دریافت تراکنش‌ها، تایید امضاها، بسته‌بندی تراکنش‌های موازی و غیره) را به عهده دارد که این رویکرد بر خلاف طراحی یکپارچه و تک‌پردازشی کلاینت Agave است. نتیجه این طراحی، افزایش چشمگیر توان پردازش تراکنش‌ها و کاهش تأخیر در شبکه است.

از منظر امنیت، فایردنسر ساختاری ایمن‌تر دارد. این کلاینت هر زیرسیستم را در یک فرآیند ایزوله اجرا می‌کند و با محدود کردن شدید دستورات سیستمی (سیستم‌کال‌ها)، یک «سندباکس» محافظ ایجاد می‌کند. بدین ترتیب حتی اگر یکی از ماژول‌های آن دچار مشکل شود یا هدف حمله قرار گیرد، از گسترش مشکل به کل نود جلوگیری می‌شود. همچنین مستقل بودن کدبیس Firedancer از کلاینت اصلی، ریسک بروز اشکال سراسری را کاهش می‌دهد؛ به این معنی که خطا یا حمله در یکی از کلاینت‌ها (Agave یا Firedancer) لزوماً بر دیگری تأثیر نمی‌گذارد و شبکه می‌تواند به کار خود ادامه دهد.

به زبان ساده، فایردنسر مانند یک موتور جدید برای سولانا است که همان وظایف موتور قبلی (Agave) را انجام می‌دهد، با این تفاوت که طراحی آن از ابتدا برای سرعت و پایداری بیشتر انجام شده است. این کلاینت توسط جامعه به شدت مورد انتظار بوده و از آن به عنوان یک «بازی‌چنجِر» برای سولانا یاد می‌شود، زیرا می‌تواند ظرفیت شبکه را به سطوح بی‌سابقه‌ای ارتقاء دهد و از سوی دیگر انعطاف و استقلال نرم‌افزاری بیشتری به شبکه ببخشد.

تفاوت‌ها و مقایسه فنی Firedancer و Agave

کلاینت Agave همان نرم‌افزار اصلی سولانا (Solana Labs Validator) است که با زبان Rust نوشته شده و سال‌ها توسط اعتبارسنج‌ها استفاده می‌شد. اخیراً تیم Anza (متشکل از توسعه‌دهندگان سابق Solana Labs) توسعه این کلاینت را با نام جدید آگاو (Agave) ادامه می‌دهد. در مقابل، Firedancer یک کلاینت کاملاً مستقل است که از ابتدا توسط تیم Jump Crypto به زبان C/C++ نوشته شده است. در ادامه، مهم‌ترین تفاوت‌های فنی و معماری این دو کلاینت را مقایسه کرده‌ایم:

در یک نگاه کلی، Agave همان موتور اثبات‌شده فعلی سولاناست که تمرکز آن تاکنون بر پایداری و عملکرد کافی بوده است؛ در حالی که Firedancer نسل جدیدی از موتور سولانا محسوب می‌شود که با تفکر بازطراحی شده تا به حداکثر توان بالقوه شبکه دست یابد. فایردنسر به عنوان یک پیاده‌سازی مستقل، تنوع نرم‌افزاری را برای اکوسیستم سولانا به ارمغان می‌آورد؛ موضوعی که برای عدم تکرار اختلالات گذشته بسیار حیاتی است. به علاوه، معماری ماژولار Firedancer اجازه می‌دهد نوآوری‌هایی مانند استفاده از AF_XDP (بای‌پس کردن کرنل در شبکه) و QUIC سفارشی برای ارتباط بین نودها به کار گرفته شود که در کلاینت Agave به شکل سنتی انجام می‌شد. همچنین فایردنسر از الگوریتم‌های رمزنگاری بهینه‌شده (مانند پیاده‌سازی AVX512 برای Ed25519) بهره می‌برد که سرعت تایید امضاها را نسبت به روش GPU-محور Agave به مراتب افزایش می‌دهد.

نکته دیگر، حضور Frankendancer است. فرنکن‌دنسر نسخه‌ی ترکیبی از Firedancer و Agave محسوب می‌شود که برای استقرار تدریجی فناوری Firedancer ایجاد شده است. در Frankendancer، بخش‌های مربوط به شبکه و تولید بلاک از Firedancer استفاده می‌شود و سایر بخش‌ها (مانند اجرای تراکنش‌ها و اجماع) همچنان از کد Agave بهره می‌برند. این رویکرد مرحله‌ای کمک کرده تا بخش‌های بهینه‌شده Firedancer زودتر وارد شبکه شوند و آزمایش خود را پس دهند. از سپتامبر ۲۰۲۴ فرنکن‌دنسر توسط برخی اعتبارسنج‌های پیشرو در شبکه اصلی سولانا اجرا شد و کارایی و پایداری خود را نشان داد. اما کلاینت کامل Firedancer تا اوایل ۲۰۲۵ هنوز برای استفاده در شبکه اصلی آماده نشده بود و انتظار می‌رود در ادامهٔ ۲۰۲۵ به صورت عمومی منتشر شود. به بیان دیگر، در حال حاضر اگر یک اعتبارسنج بخواهد از فناوری Firedancer بهره ببرد، می‌تواند نسخه Frankendancer را اجرا کند که هم‌اکنون در تست‌نت و حتی به صورت محدود در شبکه اصلی (Mainnet-Beta) در دسترس است. در بخش آموزش نصب، به‌طور مشخص نحوه راه‌اندازی Frankendancer (نسخه بتا) را توضیح خواهیم داد.

مزایای فایردنسر برای شبکه سولانا

استفاده از کلاینت جدید Firedancer مزایای متعددی برای شبکه Solana به همراه دارد که به طور ویژه در سه حوزه مقیاس‌پذیری، کارایی و امنیت/پایداری شبکه قابل توجه هستند:

  • افزایش چشمگیر مقیاس‌پذیری و توان پردازش: فایردنسر پتانسیل شبکه سولانا را از چند هزار تراکنش بر ثانیه به صدها هزار و حتی میلیون‌ها تراکنش در ثانیه ارتقاء می‌دهد. در آزمایش‌های اولیه (محیط‌های کنترل‌شده)، این کلاینت توانسته است بیش از 1 میلیون تراکنش در ثانیه (TPS) را پردازش کند که رکوردی بی‌سابقه در دنیای بلاک‌چین محسوب می‌شود. این سطح از توان پردازش به این معناست که سولانا می‌تواند در آینده بار کاری بسیار بیشتری را بدون افت سرعت تحمل کند؛ از ترافیک سنگین برنامه‌های DeFi گرفته تا بازی‌های بلاک‌چینی و بازارهای NFT. به عبارت دیگر، فایردنسر سولانا مسیر را برای مقیاس‌پذیری افقی هموار می‌کند و امکان رشد اکوسیستم بدون مواجهه با تنگناهای عملکردی را فراهم می‌سازد.
  • بهبود کارایی و بهره‌وری شبکه: Firedancer با حذف گلوگاه‌های نرم‌افزاری موجود، بهره‌وری سخت‌افزار را به حداکثر می‌رساند. به جای اتکا به روال‌های معمول سیستم‌عامل برای شبکه (که در Agave وجود داشت)، فایردنسر از استک شبکه‌ای بهینه‌شده با تکنیک‌هایی مانند kernel bypass استفاده می‌کند تا مستقیماً با سخت‌افزار شبکه درگیر شود. نتیجه این کار، کاهش تأخیر شبکه و توان ورودی/خروجی بسیار بالا در ارسال و دریافت داده‌هاست. همچنین پردازش موازی و خط لوله‌ای در تمام مراحل (از دریافت تراکنش تا اجرای آنها) باعث می‌شود هیچ کدام از منابع سیستم بیکار نماند. برای مثال، فایردنسر پردازش امضاهای دیجیتال را با استفاده از دستورالعمل‌های برداری پیشرفته (AVX512) و حتی بهره‌گیری از FPGA تسریع کرده است؛ چنان‌که در یک نمایش زنده، یک FPGA توانست 1 میلیون امضا در ثانیه را صحت‌سنجی کند (و با ۸ FPGA این رقم به ۸ میلیون امضا در ثانیه رسیده است). این پیشرفت‌ها به معنای کاهش هزینه عملیاتی برای اعتبارسنج‌ها نیز هست، چرا که یک سرور با سخت‌افزار مشابه می‌تواند با کلاینت Firedancer حجم کار بسیار بیشتری را انجام دهد. در بلندمدت، کارایی بالاتر می‌تواند به تعداد نودهای بیشتر (با سخت‌افزارهای ارزان‌تر) منجر شود که خود عامل تقویت غیرمتمرکز بودن شبکه است.
  • افزایش امنیت، پایداری و انعطاف شبکه: همان‌طور که اشاره شد، تنوع در نرم‌افزارهای اعتبارسنج یک ضرورت برای شبکه‌های اثبات سهام مانند سولانا است. ورود Firedancer به عرصه موجب می‌شود که سولانا دیگر متکی به یک کدبیس واحد نباشد. اگر در آینده یک باگ بحرانی یا حفره امنیتی در یکی از کلاینت‌ها پیدا شود، وجود کلاینت دیگر باعث می‌شود شبکه همچنان به فعالیت خود ادامه دهد و آسیب‌پذیری به صورت گسترده فلج‌کننده نباشد. این موضوع پایداری شبکه را به طور قابل ملاحظه‌ای افزایش می‌دهد و احتمال توقف کامل شبکه را کاهش می‌دهد. به بیان تصویری، اگر قبلاً سولانا با یک موتور حرکت می‌کرد که خرابی آن مساوی با توقف کل خودرو بود، اکنون دو موتور مجزا اما هماهنگ دارد که خرابی یکی از آنها به معنای از کار افتادن کامل نیست. افزون بر این، معماری امن‌تر Firedancer (با ایزوله کردن فرآیندها و اجرای sandbox شده) سطح حمله را برای بدافزارها یا مهاجمان کاهش می‌دهد. این کلاینت طوری طراحی شده که حتی در صورت نفوذ به یک بخش، بخش‌های دیگر و هسته سیستم عامل در امان بمانند. به طور کلی، Firedancer با تقویت تاب‌آوری شبکه در برابر خطاها و حملات، امنیت عملیاتی سولانا را به مرحله بالاتری می‌برد.
  • انعطاف‌پذیری و استقلال در توسعه: مزیت دیگر، آزادی عملی است که توسعه یک کلاینت مستقل به همراه دارد. جامعه توسعه‌دهندگان اکنون می‌توانند ویژگی‌های جدید یا بهبودهای دلخواه را ابتدا در Firedancer آزمایش و پیاده‌سازی کنند، بدون اینکه درگیر پیچیدگی‌ها و ملاحظات کدبیس اصلی سولانا باشند. این رقابت و تنوع در سطح کلاینت‌ها در نهایت به نفع شبکه و کاربران آن خواهد بود؛ چرا که بهترین ایده‌ها و بهینه‌سازی‌ها می‌توانند به مرور در هر دو کلاینت (یا حتی کلاینت‌های دیگر نظیر Jito و غیره) ادغام شوند. به عنوان مثال، مفهوم حراجی کارمزد (Priority Fee Auctions) که توسط کلاینت Jito برای بهبود MEV پیاده شده، می‌تواند در آینده هم در نسخه Rust و هم C++ سولانا به کار گرفته شود. به بیان دیگر، وجود چندین کلاینت، انعطاف‌پذیری حاکمیتی و فنی شبکه را افزایش می‌دهد و اکوسیستم سولانا را پویاتر می‌کند.

آموزش نصب و راه‌اندازی نسخه بتای Firedancer (برای اعتبارسنج‌ها)

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

  1. تهیه سخت‌افزار و سیستم‌عامل مناسب: اجرای Firedancer به یک سرور قدرتمند با سیستم‌عامل لینوکس نیاز دارد. حداقل مشخصات توصیه‌شده شامل پردازنده 24 هسته‌ای با فرکانس بالای 2.5GHz، حافظه RAM به میزان 64GB و فضای ذخیره‌سازی SSD حداقل 512GB است. با این حال برای عملکرد بهینه، پیشنهاد می‌شود از پردازنده 32 هسته‌ای (یا بیشتر) با پشتیبانی از AVX512، رم 128GB ECC و درایو NVMe یک ترابایت (به‌علاوه یک دیسک جداگانه برای سیستم‌عامل) استفاده کنید. پهنای باند شبکه 1Gbps یا بالاتر نیز جهت همگام‌سازی سریع بلاک‌ها توصیه می‌شود. سیستم‌عامل باید یکی از توزیع‌های لینوکسی ۶۴ بیتی باشد که کرنل آن نسخه 4.18 به بعد است (برای مثال اوبونتو 20.04 یا بالاتر). توجه: در حال حاضر Firedancer فقط روی لینوکس قابل اجراست و نصب آن روی ویندوز/مک به‌صورت مستقیم امکان‌پذیر نیست.
  2. نصب وابستگی‌های نرم‌افزاری (پیش‌نیازها): قبل از ساختن (کامپایل) Firedancer، باید چند ابزار و کتابخانه روی سرور نصب باشد. مهم‌ترین پیش‌نیاز، نصب بودن کامپایلر GCC نسخه 8.5 یا جدیدتر (ترجیحاً GCC 11/12/13 برای بهترین سازگاری) است. همچنین presence زبان Rust ضروری است، زیرا در روند ساخت فعلی، بخشی از کد Agave (کلاینت Rust سولانا) به عنوان وابستگی کامپایل می‌شود. برای این منظور، نصب بسته rustup توصیه می‌شود. علاوه بر این، وجود ابزارهایی مانند Clang، Git و Make نیز لازم است. در توزیع اوبونتو می‌توانید با دستوراتی مانند apt-get install build-essential clang git make این موارد را نصب کنید. خوشبختانه مخزن Firedancer یک اسکریپت خودکار برای نصب وابستگی‌ها دارد که در مرحله بعد از آن استفاده خواهیم کرد.
  3. دریافت کد منبع Firedancer: مخزن رسمی پروژه فایردنسر بر روی گیت‌هاب قرار دارد. برای دانلود کد، ابتدا در ترمینال وارد مسیری شوید که می‌خواهید سورس در آن قرار گیرد و سپس دستور کلون کردن را اجرا کنید:git clone --recurse-submodules https://github.com/firedancer-io/firedancer.git cd firedancerحتماً از گزینه --recurse-submodules استفاده کنید تا زیرماژول‌های مخزن (شامل کد Agave) نیز دانلود شوند. پس از کلون، می‌توانید روی یک نسخه پایدار (تگ شده) سوئیچ کنید. توسعه‌دهندگان Firedancer نسخه‌های فرنکن‌دنسر را با الگوی v0.x.y منتشر می‌کنند که x شماره نسخه و y نمایانگر نسخه معادل Agave است. برای مثال، دستور زیر را می‌توانید اجرا کنید تا به نسخه v0.503.20214 (فرضی) جابجا شوید (اطمینان حاصل کنید جدیدترین نسخه موجود را جایگزین کنید):git checkout v0.503.20214 # به‌جای این شماره، آخرین نسخه منتشر شده را قرار دهید
  4. نصب کتابخانه‌های وابسته و کامپایل برنامه: داخل دایرکتوری پروژه Firedancer، یک اسکریپت به نام deps.sh قرار دارد که وابستگی‌های سیستم را نصب کرده و کتابخانه‌های مورد نیاز را کامپایل می‌کند. این اسکریپت را با دسترسی روت اجرا کنید تا وابستگی‌ها به طور خودکار نصب شوند:sudo ./deps.shاین کار ممکن است چند دقیقه طول بکشد. پس از اتمام موفقیت‌آمیز deps.sh, اکنون آماده ساختن برنامه هستیم. دستور ساخت اصلی به صورت زیر است:make -j$(nproc) fdctl solanaاین دستور با استفاده حداکثری از هسته‌های CPU (nproc تعداد هسته‌ها را برمی‌گرداند) دو باینری را می‌سازد: یکی fdctl که در واقع خود سرویس Firedancer (کنترل‌کننده) است، و دیگری solana که نسخه‌ای از CLI سولانا (برای اجرای فرمان‌های RPC مثل solana balance یا solana transfer) می‌باشد. توجه داشته باشید فرایند کامپایل به حافظه RAM زیادی نیاز دارد (حدود 32GB فضای خالی) و ممکن است مدتی طول بکشد. اگر در حین کامپایل با خطای کمبود حافظه مواجه شدید، می‌توانید SWAP موقت اضافه کنید یا کامپایل را روی سیستمی با RAM بالاتر انجام دهید.✏️ نکته: Firedancer در هنگام کامپایل، به صورت خودکار از قابلیت‌های CPU میزبان استفاده بهینه می‌کند (مثل AVX512). بنابراین باینری ساخته‌شده ممکن است فقط روی همان مدل CPU یا مدل‌های هم‌خانواده اجرا شود. اگر قصد دارید باینری را در ماشین دیگری اجرا کنید که CPU قدیمی‌تری دارد، می‌توانید متغیر محیطی MACHINE را برای ساخت به معماری پایین‌تر تنظیم کنید (جزئیات در مستندات پروژه توضیح داده شده است).
  5. پیکربندی کلاینت Firedancer: پس از موفقیت‌آمیز بودن مرحله کامپایل، اکنون باید فایل تنظیمات Firedancer را آماده کنیم. تنظیمات در یک فایل متنی با فرمت TOML انجام می‌شود (مشابه فایل‌های تنظیم Solana). یک فایل به نام config.toml در پوشه خانگی خود (یا مسیر دلخواه) بسازید و تنظیمات اولیه زیر را در آن قرار دهید:user = "firedancer" # کاربری که فرایند پس از شروع به آن سوئیچ می‌کند

[gossip]
entrypoints = [ "entrypoint.testnet.solana.com:8001", "entrypoint2.testnet.solana.com:8001", "entrypoint3.testnet.solana.com:8001", ]

[consensus]
identity_path = "/home/firedancer/validator-keypair.json" vote_account_path = "/home/firedancer/vote-keypair.json" known_validators = [ "5D1fNXzvv5NjV1ysLjirC4WY92RNsVH18vjmcszZd8on", "dDzy5SR3AXdYWVqbDEkVFdvSPCtS9ihF5kJkHCtXoFs", "Ft5fbkqNa76vnsjYNwjDZUXoTWpP7VYm3mtsaQckQADN", "eoKpUABi59aT4rR9HGS3LcMecfut9x7zJyodWWP43YQ", "9QxCLckBiJc783jnMvXZubK4wH86Eqqvashtrwvcsgkv", ]

[rpc]
port = 8899 full_api = true private = true

[reporting]
solana_metrics_config = "host=https://metrics.solana.com:8086,db=tds,u=testnet_write,p=c4fa841aa918bf8274e3e2a44d77568d9861b3ea"

در تنظیمات بالا: بخش [gossip] فهرست گره‌های ورود (entrypoints) شبکه آزمایشی سولانا را تعیین می‌کند که نود شما برای پیوستن به شبکه باید به آن‌ها متصل شود. بخش [consensus] مسیر کلیدهای ولیدیتور را مشخص می‌کند؛ شما باید دو کلید JSON در مسیرهای ذکر شده داشته باشید: یکی کلید هویت ولیدیتور (validator-keypair.json) و دیگری کلید اکانت رأی‌دهی (vote-keypair.json). این کلیدها را می‌توانید با استفاده از ابزار Solana CLI (دستوری مثل solana-keygen new -o validator-keypair.json) تولید کنید. مقادیر داخل known_validators لیستی از شناسه ولیدیتورهای مورد اعتماد در شبکه تست‌نت است که به همگام‌سازی بهتر کمک می‌کند (می‌توانید از مستندات سولانا لیست جدیدتری دریافت کنید). در بخش [rpc] پورت RPC نود (8899) و فعال‌سازی کامل API مشخص شده است. گزینه private = true یعنی پورت RPC در Gossip به اشتراک گذاشته نمی‌شود، بنابراین بهتر است فقط خودتان یا از طریق فایروال به آن دسترسی داشته باشید. در انتها، بخش [reporting] برای تنظیم ارسال داده‌های تله‌متری به سرور مانیتورینگ سولانا (اختیاری) آمده است که در مثال بالا مقدار آن برای تست‌نت تنظیم شده است.

✏️ نکته امنیتی: در فایل تنظیمات، گزینه user = "firedancer" تعیین می‌کند که فرآیند Firedancer پس از شروع به کار، به یک کاربر عادی (firedancer) سوئیچ کند. لذا بهتر است پیش از اجرا، یک کاربر لینوکسی با نام مثلاً “firedancer” و بدون دسترسی sudo ایجاد کنید. وقتی Firedancer را اجرا می‌کنید (با کاربر روت)، ابتدا تنظیمات ویژه شبکه را انجام می‌دهد و سپس خود را به این کاربر غیرممتاز تنزل می‌دهد. این مکانیزم برای افزایش امنیت اجرای سرویس است.

پیکربندی اولیه سیستم (init) برای Firedancer: قبل از اجرای اصلی، نیاز است که برخی تنظیمات کرنل و سیستم (مثل ایجاد hugepageها، تنظیمات NIC و …) انجام شود تا کلاینت Firedancer بتواند با حداکثر کارایی اجرا گردد. خوشبختانه fdctl یک زیرفرمان به نام configure init دارد که این کارها را به صورت خودکار انجام می‌دهد. دستور زیر را اجرا کنید:

sudo ./build/native/gcc/bin/fdctl configure init all --config ~/config.toml

این فرمان با توجه به تنظیماتی که در فایل config.toml داده‌اید، سیستم را آماده می‌کند. برای مثال، پارتیشن‌های hugepage (با اندازه‌های 2MB و 1GB) را mount می‌کند، پارامترهای sysctl و تنظیمات کارت شبکه (مثل غیرفعال کردن GRO و تنظیم تعداد صف‌ها) را اعمال می‌کند. خروجی این فرمان نشان می‌دهد چه تغییراتی انجام شد. دقت کنید که باید این مرحله را بعد از هر بار ریستارت شدن سرور دوباره انجام دهید یا در اسکریپت‌های startup سیستم بگنجانید، زیرا برخی تنظیمات (مثل مونت hugepageها) موقتی هستند.

اجرای سرویس Firedancer: حال همه چیز برای اجرای نود آماده است. دستور زیر را وارد کنید تا اعتبارسنج Firedancer شما آغاز به کار کند:

sudo ./build/native/gcc/bin/fdctl run --config ~/config.toml

اگر همه چیز به درستی تنظیم شده باشد، Firedancer شروع به اجرای فرآیندهای خود می‌کند و لاگ‌هایی را در کنسول (stderr) نشان می‌دهد. همچنین یک لاگ تکمیلی در فایل (احتمالاً در مسیر .firedancer داخل پوشه خانگی) ذخیره می‌شود. Firedancer به صورت ماژولار اجرا می‌شود؛ یعنی با اجرای فرمان بالا، چندین فرآیند فرزند ایجاد می‌کند که هر کدام یکی از tiles (ماژول‌ها) مثل net, shred, verify, bank و … را اجرا می‌کنند. می‌توانید برای مشاهده ساختار فرآیندها از ابزاری مثل pstree استفاده کنید تا ببینید مثلاً فرآیندهای جداگانه‌ای برای fdctl run-agave (اجرای بخش Agave)، net, quic, verify (چندین مورد)، shred, bank و غیره ایجاد شده است. این معماری چندفرآیندی همان‌طور که قبلاً ذکر شد به ایزوله بودن و کارایی بیشتر منجر می‌شود. توجه: اگر هر یک از این فرآیندهای فرزند به هر دلیلی متوقف شود، مکانیزم داخلی Firedancer تمام فرآیندهای دیگر را نیز متوقف می‌کند تا یکپارچگی نود حفظ شود. بنابراین بعد از رفع مشکل باید مجدداً fdctl run را اجرا کنید.

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

  • رای دادن و تولید بلاک: با استفاده از ابزار CLI سولانا (که در مرحله کامپایل تولید شد)، می‌توانید بررسی کنید نود شما در حال رأی‌دهی و (در صورت انتخاب شدن) تولید بلاک هست یا خیر. برای مثال:solana -ut validators # نمایش وضعیت ولیدیتورها در تست‌نت solana -ut block-production # نمایش آمار تولید بلاکخروجی این دستورات باید نشان دهد که ولیدیتور شما فعال است (آی‌دی ولیدیتور خود را پیدا کنید) و اگر اسلات لیدری به آن رسیده، بلاک‌های خود را بدون خطا تولید کرده است.
  • رصد متریک‌ها: Firedancer تعداد زیادی شاخص عملکردی (metrics) را از طریق یک Endpoint محلی ارائه می‌کند که سازگار با Prometheus است. به طور پیش‌فرض این سرویس روی پورت 7999 فعال است. می‌توانید با دستور curl localhost:7999/metrics داده‌های خام آن را مشاهده کنید. برای مثال، درصد استفاده هر tile، تعداد تراکنش‌های در صف، زمان‌بندی‌ها و… همگی از این طریق در دسترس‌اند. در محیط عملیاتی می‌توانید این متریک‌ها را به یک سرور پرومتئوس و گرافانا ارسال کنید تا داشبورد نظارت لحظه‌ای داشته باشید.
  • واسط گرافیکی مانیتور (GUI): یکی از قابلیت‌های جالب Firedancer وجود یک رابط گرافیکی مانیتورینگ است که می‌تواند وضعیت هر tile و عملکرد کلی نود را به‌صورت جدول و نمودار نشان دهد. این GUI به‌صورت یک سرویس وب عمل می‌کند. برای فعال‌سازی آن، کافیست در فایل config خود بخش زیر را اضافه کنید:[tiles.gui] enabled = true # gui_listen_address و gui_listen_port را هم می‌توانید تنظیم کنید (پیش‌فرض 127.0.0.1:80)سپس پس از اجرای Firedancer، می‌توانید مرورگر خود را باز کرده و به آدرس http://127.0.0.1 (یا پورتی که تنظیم کردید) بروید. داشبورد Firedancer اطلاعات ارزشمندی مثل میزان تراکنش‌های در حال پردازش، نرخ امضاهای تایید شده در ثانیه، وضعیت هر ماژول (tile) و … را نمایش می‌دهد. طبق گفته دن آلبرت (مدیر Solana Foundation)، زمانی که این رابط گرافیکی به جمعی از اعتبارسنج‌ها نمایش داده شد، به دلیل کارایی چشمگیر آن صدای حیرت حضار بلند شد. استفاده از این GUI می‌تواند به شما در بهینه‌سازی تنظیمات کمک کند؛ برای مثال اگر متوجه شدید کاستی در یکی از منابع (CPU، دیسک یا شبکه) وجود دارد، می‌توانید با تنظیم layout در فایل پیکربندی (تعداد tileهای verify، bank و … یا بایند کردن CPUهای خاص) عملکرد را بهتر تنظیم کنید. مستندات Firedancer حتی نمونه تنظیماتی برای پروفایل‌های مختلف ارائه داده است که می‌توانید از آنها الگو بگیرید.
  • به‌روزرسانی‌های آینده: پروژه Firedancer به سرعت در حال توسعه است. پیشنهاد می‌شود مرتباً مخزن گیت‌هاب را بررسی کرده و در صورت انتشار نسخه‌های جدید (تگ‌های جدید در بخش Releases)، نود خود را به‌روز کنید. فرآیند آپدیت شبیه به نصب اولیه است با این تفاوت که به‌جای clone مجدد، کافیست آخرین تغییرات را pull کرده و کامپایل را تکرار کنید (و البته قبل از آن نود را متوقف کنید). در مستندات رسمی، روال به‌روزرسانی با دستورات Git و Make توضیح داده شده است. همچنین جامعه اعتبارسنج‌های سولانا (مثلاً در دیسکورد رسمی) منابع خوبی برای دریافت راهنمایی و تجربه‌های عملی در مورد Firedancer هستند.

با طی کردن مراحل بالا، شما باید یک نود Firedancer در حال اجرای موفق روی شبکه آزمایشی سولانا داشته باشید. یادآوری می‌کنیم که فایردنسر هنوز در مرحله بتا قرار دارد و ممکن است باگ‌ها یا کاستی‌هایی داشته باشد؛ لذا توصیه می‌شود در محیط اصلی تولید (مین‌نت) با احتیاط و پس از کسب اطمینان کافی از پایداری، از آن استفاده کنید. به هر روی، راه‌اندازی Firedancer تجربه‌ای پیشرو در تکنولوژی بلاک‌چین محسوب می‌شود، چرا که شما را با یکی از مدرن‌ترین زیرساخت‌های شبکه‌های غیرمتمرکز آشنا می‌کند؛ زیرساختی که احتمالاً هسته اصلی نسل آینده سولانا خواهد بود. با توجه به اهمیت این پروژه، حتی برنامه‌هایی برای حذف برچسب “بتا” از شبکه سولانا پس از استقرار کامل Firedancer در مین‌نت مطرح شده است که نشان‌دهنده اعتماد بالای جامعه به تأثیرات مثبت آن بر شبکه است.

جمع‌بندی

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

برای یک اعتبارسنج ایرانی یا هر کجای دنیا، آشنایی و به‌کارگیری Firedancer می‌تواند گامی استراتژیک باشد. راه‌اندازی یک نود فایردنسر شاید نیازمند دانش فنی و منابع سخت‌افزاری قابل توجهی باشد، اما مزایایی چون مشارکت در پیشگامی شبکه، بهره‌مندی از عملکرد بهتر (مثلاً تولید بلاک‌های بیشتر و دریافت پاداش بالاتر) و کمک به عدم تمرکز شبکه، از دلایل جذاب برای این سرمایه‌گذاری است. ما در این مقاله تلاش کردیم با زبانی ساده اما دقیق، چگونگی نصب و اجرای Firedancer را آموزش دهیم تا موانع ورود کاهش یابد.

در نهایت، فایردنسر سولانا تنها یک به‌روزرسانی نرم‌افزاری نیست، بلکه بخشی از چشم‌انداز بزرگ‌تری برای آینده سولانا است؛ آینده‌ای که در آن شبکه‌های بلاک‌چین لایه‌یک قادر خواهند بود مقیاس اینترنتی (میلیون‌ها کاربر و تراکنش) را پشتیبانی کنند بدون آنکه از اصول غیرمتمرکز بودن و امنیت کاسته شود. Firedancer با فراهم کردن یک زیرساخت قدرتمند و پایدار، شبکه سولانا را یک گام به تحقق این آینده نزدیک‌تر می‌کند. با ورود کامل این کلاینت به شبکه اصلی در سال ۲۰۲۵، انتظار می‌رود سولانا از برچسب “شبکه بتا” خارج شده و با اعتماد به نفس بیشتری به رقابت با سایر پلتفرم‌های نسل بعدی بلاک‌چین بپردازد. پس اگر تا به حال این سؤال برایتان مطرح بود که “فایردنسر چیست؟” اکنون با اطمینان می‌توان گفت: فایردنسر موتور جهش سولانا به سوی مقیاس وب و فراتر از آن است.

سوالات متداول

دیدگاه خود را بنویسید:

آدرس ایمیل شما نمایش داده نخواهد شد.