مقالات

blog-image

زاکورا (Zakura) چیست؟ معرفی فول نود مقیاس‌پذیر شبکه زی‌کش

  • توسط: ادمین پارس بیت
  • زمان مطالعه: 10 دقیقه
  • ساخته شده در : 17 آبان 1405 به روز شده در : 17 آبان 1405
  • 5
آنچه در این مقاله می‌خوانید:

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

    زاکورا (Zakura) یکی از پروژه‌هایی است که با تمرکز بر همین مسئله برای شبکه زی‌کش (Zcash) توسعه یافته است. زاکورا یک پیاده‌سازی فول نود محسوب می‌شود که از پروژه Zebra منشعب شده و توسعه‌دهندگان آن تلاش می‌کنند زیرساخت نود زی‌کش را برای مقیاس‌پذیری بیشتر، همگام‌سازی سریع‌تر و استفاده بهینه‌تر از منابع آماده کنند.

    در ادامه با مفهوم زاکورا، ارتباط آن با Zebra، قابلیت Pruning، Snapshot، سازگاری RPC، لایه P2P و فناوری‌هایی که ممکن است در آینده در این معماری مورد استفاده قرار گیرند آشنا می‌شویم.

    ⚠️ هشدار مهم: این مطلب صرفاً با هدف آموزش و افزایش آگاهی درباره زاکورا (Zakura)، ساختار فول نودهای شبکه زی‌کش و فناوری‌های مرتبط با مقیاس‌پذیری بلاکچین تهیه شده است. مطالب مطرح‌شده به‌معنای توصیه به استفاده از یک نرم‌افزار، شبکه یا سرویس خاص نیست. برخی قابلیت‌های زاکورا همچنان در حال توسعه یا آزمایش هستند و ممکن است در نسخه‌های آینده تغییر کنند. کاربران و اپراتورهای نود باید پیش از نصب یا استفاده از هر نرم‌افزار شبکه، مستندات رسمی، نسخه نرم‌افزار، الزامات فنی و ملاحظات امنیتی آن را به‌صورت مستقل بررسی کنند.

    زاکورا (Zakura) چیست؟

    زاکورا یک پیاده‌سازی نرم‌افزاری برای اجرای فول نود شبکه زی‌کش است. این پروژه از کد Zebra منشعب شده و با حفظ سازگاری با قوانین اجماع زی‌کش، مسیر توسعه متفاوتی را با تمرکز بیشتر بر عملکرد و مقیاس‌پذیری دنبال می‌کند. برای درک بهتر جایگاه زاکورا باید میان «شبکه بلاکچین» و «نرم‌افزار نود» تفاوت قائل شد. زی‌کش خود شبکه و پروتکل بلاکچینی است؛ در مقابل، نرم‌افزارهایی مانند zcashd، Zebra و Zakura ابزارهایی هستند که امکان اجرای یک گره و تعامل زیرساختی با این شبکه را فراهم می‌کنند. بنابراین، معرفی زاکورا به این معنا نیست که بلاکچین مستقلی جایگزین زی‌کش شده است. زاکورا را می‌توان یک پیاده‌سازی جایگزین برای اجرای نود زی‌کش در نظر گرفت که توسعه‌دهندگان آن روی بهینه‌سازی زیرساخت نرم‌افزاری تمرکز کرده‌اند.

    زاکورا (Zakura) چیست؟

    ⬅️ Zakura

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

    ⬅️ Zcash

    شبکه و پروتکل بلاکچینی

    ⬅️ Zebra

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

    ⬅️ zcashd

    کلاینت قدیمی‌تر شبکه زی‌کش

    ⬅️ Pruning

    کاهش داده‌های ذخیره‌شده روی نود

    ⬅️ Snapshot

    داده از پیش آماده‌شده برای تسریع راه‌اندازی نود

    ⬅️ RPC

    رابط ارتباط نرم‌افزارها با نود

    ⬅️ P2P

    ارتباط مستقیم میان گره‌های شبکه

    فول نود چه کاری انجام می‌دهد؟

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

    تمرکز زاکورا نیز عمدتاً روی همین لایه زیرساختی است.

    ارتباط زاکورا و Zebra چیست؟

    زاکورا از Zebra فورک شده است. در مهندسی نرم‌افزار متن‌باز، Fork به این معناست که توسعه‌دهندگان یک نسخه از کد پروژه موجود را مبنا قرار می‌دهند و توسعه آن را در مسیری جداگانه ادامه می‌دهند. این مفهوم را نباید لزوماً با «هاردفورک بلاکچین» یکسان دانست. در اینجا فورک به کد نرم‌افزار نود مربوط می‌شود و زاکورا همچنان برای تعامل با شبکه زی‌کش و رعایت قوانین اجماع آن طراحی شده است. بنابراین، استفاده از واژه فورک در این زمینه بیشتر به منشأ کد نرم‌افزار اشاره دارد.

    چرا پروژه زاکورا ایجاد شد؟

    یکی از مسائل مهم در توسعه شبکه‌های بلاکچینی، افزایش ظرفیت بدون ایجاد فشار غیرضروری بر اپراتورهای نود است. اگر افزایش ظرفیت یک شبکه باعث شود هر نود به حجم بسیار زیادی از فضای ذخیره‌سازی، پهنای باند یا توان پردازشی نیاز داشته باشد، اجرای نود می‌تواند دشوارتر شود. به همین دلیل، مقیاس‌پذیری فقط به افزایش تعداد تراکنش‌ها محدود نمی‌شود و معماری نود نیز بخشی از این مسئله است. توسعه‌دهندگان زاکورا تلاش می‌کنند بخش نرم‌افزاری این معادله را بهینه کنند. در این مسیر، موضوعاتی مانند سرعت همگام‌سازی، مدیریت داده‌های قدیمی، راه‌اندازی سریع‌تر نود، معماری شبکه همتا‌به‌همتا و سازگاری با نرم‌افزارهای موجود مورد توجه قرار گرفته‌اند.

    ارتباط زاکورا و Zebra چیست؟

    همگام‌سازی یا Sync در زاکورا

    هنگامی که یک نود برای نخستین بار راه‌اندازی می‌شود، باید وضعیت بلاکچین را دریافت و بررسی کند. به این فرایند معمولاً Synchronization یا Sync گفته می‌شود. هرچه حجم تاریخچه بلاکچین افزایش پیدا کند، این مرحله می‌تواند منابع بیشتری مصرف کند. یکی از حوزه‌هایی که زاکورا روی آن تمرکز دارد، کاهش زمان موردنیاز برای این فرایند است. براساس آزمایش‌های منتشرشده از سوی توسعه‌دهندگان پروژه، نسخه اولیه زاکورا در برخی سناریوهای آزمایشی توانسته همگام‌سازی را سریع‌تر از Zebra انجام دهد. بااین‌حال، نتایج Sync به عواملی مانند سخت‌افزار، پهنای باند، وضعیت شبکه، نسخه نرم‌افزار و روش راه‌اندازی وابسته است و نباید یک نتیجه آزمایشی را برای تمام محیط‌ها قطعی در نظر گرفت.

    Pruning در زاکورا چیست؟

    یکی از قابلیت‌های مهم زاکورا Pruning یا هرس داده‌ها است. در یک نود آرشیوی، حجم زیادی از داده‌های تاریخی بلاکچین نگهداری می‌شود. اما همه کاربردها الزاماً به نگهداری تمام این اطلاعات نیاز ندارند. Pruning به نود اجازه می‌دهد بخشی از داده‌های تاریخی را که برای فعالیت جاری آن ضروری نیستند حذف کند و در عین حال اطلاعات موردنیاز برای ادامه عملکرد خود را حفظ کند.

    حالت

    ویژگی اصلی

    ⬅️ Archive Node

    نگهداری گسترده تاریخچه داده‌های بلاکچین

    ⬅️ Pruned Node

    حذف بخشی از داده‌های تاریخی برای کاهش فضای ذخیره‌سازی

    ⬅️ Snapshot Bootstrap

    استفاده از وضعیت آماده برای کاهش زمان راه‌اندازی اولیه

    این قابلیت می‌تواند فضای ذخیره‌سازی موردنیاز برای برخی اپراتورهای نود را کاهش دهد؛ هرچند انتخاب میان نود آرشیوی و هرس‌شده باید براساس کاربرد موردنظر انجام شود.

    Snapshot چیست و چرا اهمیت دارد؟

    قابلیت دیگری که در معماری زاکورا مورد توجه قرار گرفته، استفاده از Snapshot است.

    در روش معمول، یک نود جدید ممکن است مجبور باشد حجم بزرگی از داده‌ها را از سایر همتایان شبکه دریافت و پردازش کند. Snapshot امکان شروع فعالیت از یک وضعیت از پیش آماده‌شده را فراهم می‌کند و می‌تواند زمان Bootstrap اولیه را کاهش دهد. البته Snapshot نیز باید با ملاحظات امنیتی همراه باشد. منبع فایل، صحت داده‌ها، روش اعتبارسنجی و نسخه نرم‌افزار از جمله مواردی هستند که اپراتور نود باید بررسی کند. به همین دلیل، دریافت Snapshot از منابع ناشناس یا بدون بررسی صحت آن روش مناسبی برای راه‌اندازی زیرساخت بلاکچینی محسوب نمی‌شود.

    سازگاری زاکورا با zcashd RPC

    یکی دیگر از موضوعات مهم در مهاجرت زیرساخت‌های بلاکچینی، سازگاری نرم‌افزاری است.

    سرویس‌هایی که قبلاً زیرساخت خود را براساس یک کلاینت مشخص ساخته‌اند ممکن است برای ارتباط با نود از RPCهای همان نرم‌افزار استفاده کنند. تغییر کلاینت در چنین شرایطی می‌تواند نیازمند بازنویسی بخشی از زیرساخت باشد.

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

    البته وجود Compatibility Mode به این معنا نیست که تمام نرم‌افزارهای موجود در هر شرایطی بدون آزمایش قابل مهاجرت هستند. سازگاری باید متناسب با RPCهای مورد استفاده و نسخه نرم‌افزار بررسی شود.

    لایه P2P زاکورا چه نقشی دارد؟

    نودهای یک بلاکچین برای تبادل اطلاعات با یکدیگر به شبکه Peer-to-Peer یا P2P متکی هستند. بلاک‌ها، تراکنش‌ها و برخی پیام‌های پروتکل از طریق همین ارتباطات میان گره‌ها جابه‌جا می‌شوند.

    زاکورا روی یک لایه P2P جدید نیز کار کرده است که هدف آن بهبود نحوه انتشار اطلاعات و افزایش مقاومت زیرساخت شبکه است. این بخش در معرفی اولیه پروژه ماهیت آزمایشی داشته و نباید آن را با تمام قابلیت‌های فعال و پایدار نرم‌افزار یکسان در نظر گرفت.

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

    Mempool Aggregation چیست؟

    Mempool را می‌توان فضای موقت نگهداری تراکنش‌هایی دانست که هنوز در یک بلاک ثبت نشده‌اند.

    نودهای مختلف ممکن است در یک لحظه دید یکسانی از تمام تراکنش‌های در انتظار نداشته باشند. به همین دلیل، نحوه انتشار و هماهنگ‌سازی داده‌های ممپول می‌تواند بر عملکرد شبکه تأثیر بگذارد.

    Mempool Aggregation به‌طور کلی به روش‌هایی اشاره دارد که برای تجمیع و مدیریت مؤثرتر این اطلاعات میان اجزای شبکه استفاده می‌شوند. توسعه‌دهندگان زاکورا این حوزه را نیز به‌عنوان بخشی از معماری مقیاس‌پذیری مورد توجه قرار داده‌اند.

    Gossip Protocol چیست؟

    یکی دیگر از مفاهیم مرتبط با معماری P2P، Gossip Protocol است.

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

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

    به همین دلیل، توسعه‌دهندگان زاکورا مقابله با حملات DoS را نیز یکی از ملاحظات طراحی لایه ارتباطی خود مطرح کرده‌اند.

    نقش اثبات‌های بازگشتی در برنامه مقیاس‌پذیری

    یکی از فناوری‌هایی که در برنامه‌های توسعه مرتبط با زاکورا و Project Tachyon مطرح شده، Recursive Proofs یا اثبات‌های بازگشتی است. در سیستم‌های اثبات رمزنگاری، امکان ترکیب یا اثبات مجموعه‌ای از محاسبات در قالب ساختارهای فشرده‌تر می‌تواند مقدار اطلاعاتی را که سایر اجزای شبکه باید پردازش کنند کاهش دهد.

    در یک معماری مقیاس‌پذیر، این ویژگی اهمیت زیادی دارد؛ زیرا افزایش تعداد عملیات نباید الزاماً باعث افزایش خطی حجم اطلاعاتی شود که تمام نودها باید دریافت یا بررسی کنند. بااین‌حال، باید میان قابلیت‌های فعلی نرم‌افزار زاکورا و فناوری‌هایی که برای معماری آینده آن مطرح شده‌اند تفاوت قائل شد.

    فناوری PIR چیست؟

    مفهوم دیگری که در برنامه‌های مرتبط با این اکوسیستم دیده می‌شود Private Information Retrieval یا PIR است.

    PIR مجموعه‌ای از تکنیک‌های رمزنگاری است که هدف آن فراهم‌کردن امکان دریافت اطلاعات از یک پایگاه داده بدون آشکارشدن کامل ماهیت درخواست برای ارائه‌دهنده داده است.

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

    گروه Valar روی استفاده از فناوری‌های مبتنی بر PIR در زیرساخت زی‌کش کار کرده است و این فناوری به‌عنوان یکی از اجزای احتمالی معماری مقیاس‌پذیری آینده مطرح می‌شود.

    زاکورا چه تفاوتی با یک کیف پول دارد؟

    یکی از اشتباهات احتمالی درباره پروژه‌هایی مانند زاکورا، یکسان دانستن آن‌ها با کیف پول است.

    زاکورا اساساً نرم‌افزار زیرساخت نود است. کیف پول معمولاً رابطی برای مدیریت کلیدها، آدرس‌ها و تعامل کاربر با شبکه فراهم می‌کند، در حالی که نود مسئول دریافت، بررسی و ارائه داده‌های شبکه است.

    ویژگی

    Zakura

    کیف پول

    ⬅️ اجرای نود شبکه

    بله

    معمولاً خیر

    ⬅️ اعتبارسنجی داده‌های شبکه

    بله

    بسته به معماری

    ⬅️ رابط عمومی برای مدیریت دارایی

    هدف اصلی نیست

    بله

    ⬅️ مدیریت کلیدهای کاربر

    هدف اصلی نیست

    معمولاً بله

    ⬅️ ارتباط P2P با نودها

    بله

    معمولاً از نود یا سرور واسط استفاده می‌کند

    ⬅️ تمرکز بر زیرساخت

    بالا

    کمتر

    بنابراین، کاربرد و مخاطبان این دو دسته نرم‌افزار متفاوت هستند.

    جایگاه زاکورا در معماری زی‌کش

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

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

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

    پیش از اجرای یک نود زاکورا چه مواردی باید بررسی شوند؟

    راه‌اندازی فول نود با نصب یک نرم‌افزار معمولی تفاوت دارد. نود بخشی از زیرساخت یک شبکه توزیع‌شده است و باید از نظر امنیت، منابع سخت‌افزاری و پایداری به‌درستی مدیریت شود.

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

    همچنین قابلیت‌های آزمایشی، به‌ویژه بخش‌های مربوط به شبکه P2P، نباید بدون بررسی مستندات و درک پیامدهای فنی در محیط‌های حساس فعال شوند.

    کلام آخر

    زاکورا (Zakura) یک پیاده‌سازی جدید فول نود برای شبکه زی‌کش است که از Zebra منشعب شده و توسعه آن با تمرکز بر مقیاس‌پذیری، عملکرد نود، مدیریت بهتر داده‌ها و توسعه زیرساخت ارتباطی شبکه ادامه دارد.

    قابلیت‌هایی مانند Pruning، Snapshot و سازگاری با zcashd RPC تلاش می‌کنند برخی از چالش‌های عملیاتی اجرای نود را کاهش دهند. در کنار آن‌ها، توسعه لایه جدید P2P و پژوهش روی فناوری‌هایی مانند Recursive Proofs و PIR نشان می‌دهد که هدف پروژه فقط بهینه‌سازی کوتاه‌مدت یک کلاینت نیست و بخشی از فعالیت‌ها به معماری آینده شبکه مربوط می‌شود.

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

    پرسش های متداول
    <p dir="rtl">زاکورا یک نرم‌افزار متن‌باز برای اجرای فول نود شبکه زی‌کش است که از پروژه Zebra منشعب شده و با هدف بهبود سرعت همگام‌سازی، مدیریت داده‌ها و مقیاس‌پذیری زیرساخت شبکه توسعه یافته است.</p>
    <p dir="rtl">زاکورا براساس کد Zebra توسعه یافته، اما بر بهینه‌سازی عملکرد، قابلیت هرس داده‌ها، استفاده از Snapshot و توسعه زیرساخت ارتباطی تمرکز بیشتری دارد. هر دو نرم‌افزار برای تعامل با شبکه زی‌کش طراحی شده‌اند.</p>
    <p dir="rtl">خیر. زاکورا یک پیاده‌سازی نرم‌افزاری برای اجرای نود زی‌کش است و به‌عنوان بلاکچین مستقل معرفی نشده است. فورک بودن آن به انشعاب کد نرم‌افزار Zebra اشاره دارد.</p>
    <p>Pruning به نود اجازه می‌دهد بخشی از داده‌های تاریخی غیرضروری برای عملکرد جاری را حذف کند. این قابلیت می‌تواند فضای ذخیره‌سازی موردنیاز را کاهش دهد، بدون آنکه لزوماً مانع اعتبارسنجی وضعیت جاری شبکه شود.</p>
    <p>Snapshot مجموعه‌ای از داده‌های آماده است که می‌تواند برای تسریع راه‌اندازی اولیه نود استفاده شود. استفاده از این قابلیت نیازمند بررسی صحت فایل‌ها، منبع انتشار و سازگاری آن‌ها با نسخه نرم‌افزار است.</p>
    اشتراک: