NEO به دلیل ویژگی های خود که چشم انداز خود در مورد اقتصاد هوشمند دیجیتال را هدف قرار می دهد ، ابتکاری است. این ویژگی ها در درجه اول نهایی سریع تک بلوک و پشتیبانی از قراردادهای به راحتی قابل برنامه ریزی هستند. برای دستیابی به تک بلوک تک بلوک ، NEO از یک پروتکل استفاده می کند که آن را DBFT (تحمل گسل بیزانس) توصیف می کند ، اقتباس از PBFT (تحمل گسل بیزانس عملی). احتمالاً چالش برانگیزترین جنبه های اجرای موفقیت آمیز یک پروتکل اجماع BFT مربوط به برخورد با خرابی های موردی است که می تواند به دلیل تأخیر شبکه و راه اندازی مجدد گره رخ دهد.
برای یک blockchain با هدف تسهیل معاملات مالی مناسب برای استفاده روزمره در تجارت (اقتصاد هوشمند) ، در دسترس بودن شبکه مهم است. در این مقاله موضوعات عملیاتی را که با DBFT 1. 0 روبرو شده اند توضیح خواهم داد و در مورد چگونگی حذف این موضوعات با پیشرفت های انجام شده در پروتکل اجماع DBFT 2. 0 که اخیراً به NEO Maiet مستقر شده اند ، بحث خواهم کرد.
زمینه
برای اینکه بتوانیم مزایای DBFT 2. 0 را درک کنیم ، لازم است برخی از جزئیات مربوط به عملکرد پروتکل اجماع را درک کنیم. الگوریتم های BFT مانند DBFT NEO تقریباً به 2/3 از امضاهای گره های اعتبار سنج نیاز دارند تا به اجماع برسند. برای DBFT ، جایی که F تعداد گره های مجاز مجاز است ، معادلات زیر تعداد گره های اعتبار سنج مورد نیاز و تعداد امضاهای مورد نیاز را نشان می دهد.
- f = تعداد گره های شکست خورده مجاز
- گره های معتبر = 3f+1
- امضاهای مورد نیاز = 2f+1
اجماع NEO 1. 0 مراحل زیر را برای مسیر شاد داشت:
- آماده سازی: گره های معتبر به نوبه خود گره اصلی برای پیشنهاد معاملات که باید در بلوک فعلی گنجانده شود ، می شود. یک مدول ساده از شماره بلوک برای تعیین اولین اعتبار سنج یک بلوک استفاده می شود.
- آماده سازی: گره های اعتبار سنجی که آماده سازی را دریافت می کنند ، اطمینان حاصل می کنند که تمام معاملات موجود در آن معتبر هستند و با امضای آنها در یک پیام ResporeSponse پاسخ می دهند.
- پس از دریافت آمپرانهای 2F+1 ، بلوک جدید با امضاها ایجاد می شود.
اگر تعداد لازم از امضاها در زمان فعلی به دست نیامد ، گره ها یک پیام ChangeView را برای انتخاب اعتبار سنج اصلی بلوک قبلی ارسال می کنند تا اصلی باشد. زمان بندی در ابتدا 2 برابر زمان بلوک است و با هر زمان که تا زمانی که یک بلوک ایجاد شود ، دو برابر می شود. پس از دریافت پیام های مشاهده 2F + 1 ، این روند دوباره از مرحله 1 تکرار می شود.
مسئله
الگوریتم DBFT 1. 0 NEO در موارد نادر از تأخیر شبکه مستعد یک چنگال بلوک واحد بود. این مشکل مدتی است که شناخته شده است و مستند شده است (مانند این مقاله). بلوک چنگال ممکن است رخ دهد زیرا گره ها پس از ارسال پیام پاسخ آماده سازی مجاز به زمان وقوع بودند. از آنجا که ساعتهای گره CN هرگز هماهنگ نمی شوند (و هرگز نخواهند بود) ، گره ها در زمان های کمی متفاوت به اعتبار سنج بعدی منتقل می شوند. اگر همه به جز یک اعتبار سنج وقت خود را از دست ندهند ، و آن اعتبار سنجی قبلاً پیام های پاسخ 2F را دریافت کرده بود ، یک بلوک امضا شده معتبر ایجاد می کرد ، در حالی که دیگران به ابتدای بعدی تغییر می کردند ، جایی که می توانستند به اجماع بیایند و یک بلوک دیگر را امضا کنند. در همان ارتفاعدر این مرحله ، گره های اجماع فقط روی یکی از چنگال ها بنا می شوند. بنابراین گاهی اوقات مشکل به عنوان یک لکه بلوک نامیده می شد. در حالی که این سناریو می تواند بدون اجماع متوقف شود ، بسیاری از گره های شبکه کامل Neo می توانند به طور بالقوه بلوک چنگال را بپذیرند و متوقف شوند و منجر به مشکلات عملیاتی با گره های شبکه شود که در نهایت توسط کاربران نهایی به آنها اعتماد می شود.
راه حل
DBFT 2. 0 با اضافه کردن یک مرحله تعهد مشابه آنچه در سند PBFT (تحمل گسل بیزانس عملی) شرح داده شده است ، این مشکل را برطرف می کند. به منظور جلوگیری از غرفه های شبکه ، DBFT 2. 0 همچنین اجرای پیام بازیابی را به پروتکل اجماع اضافه می کند. مکانیسم بازیابی در صورت بروز مشکلات مختلف عملیاتی با گره های اجماع ، سود بیشتری در بهبود زمان بلوک دارد. عملکرد برای موقعیت هایی مانند:
- اتصال ضعیف شبکه مانند به دلیل قطع شبکه یا حمله شبکه که در یک گره اجماع قرار گرفته است.
- فرآیند گره اجماع به دلیل خرابی سخت افزار ، قطع برق یا مسئله دیگر سیستم ، راه اندازی مجدد یا راه اندازی مجدد سیستم.
اجرای DBFT 2. 0 باعث می شود تا هرگونه رفتار نادرست از گره های اجماع ، حسابرسی را انجام دهد. CNS (گره های اجماع) تمام تعهداتی را که رخ داده است پیگیری می کند و اجازه نمی دهد که CN دیگری بتواند بیش از یک بلوک بالقوه را در یک ارتفاع معین امضا کند. سیاهههای اجماع CN این اطلاعات را به راحتی در اختیار اپراتور گره CN و همچنین هر گره کامل قرار می دهد که فقط حالت تماشای اجماع را فعال می کند.
آزمایش و تضمین کیفیت
به منظور اطمینان از کیفیت اجرای DBFT 2. 0 ، تغییرات کد طی چندین مرحله از آزمایش انجام شد. توسعه دهندگان Neo Core آزمایش های گسترده ای را در شبکه های خصوصی انجام دادند که با استفاده از افزونه P2P NEO ، شکست های شبکه را شبیه سازی می کنند. تست خودکار و دستی مشابه نیز در شبکه های خصوصی انجام شد که توسط NGD اداره می شدند. سرانجام ، این کد در Neo Public Testnet آزمایش شد.
نتیجه
با استفاده از NEO 2. 10. 2 که اکنون از تاریخ 3 ژوئن روی گره های اجماع Maiet اجرا می شود ، پیشرفت DBFT 2. 0 را می توان در تمرین امروز در قالب زمان کاهش بلوک مشاهده کرد ، همانطور که در نمودارهای شکل 1 و شکل 2 در زیر مشاهده می شود. علاوه بر این ، با این ارتقاء گره های اجماع NEO نیز اکنون کدی را که عملکرد استخر حافظه را بهبود می بخشد ، در حال اجرا هستند و این باعث می شود بار عملیاتی در شبکه را کاهش دهد و تضمین می کند که زمان بلوک می تواند در طول حجم بالاتر معامله در شبکه به حداقل برسد.
پذیرش و استفاده در نقطه فروش
Neo DBFT 2. 0 به عنوان یکی از پیشرفت های ابتکار NEO 3. 0 توسعه یافته است که پیش از زمان در NEO 2. X در دسترس قرار گرفته است. اکنون که DBFT 2. 0 در Maiet در حال تولید است ، اکثریت قریب به اتفاق مسائل عملیاتی که مشاغل زمانی هنگام اتخاذ NEO در تولید با آنها روبرو شده اند ، دیگر مسئله ای نیستند. با استفاده از این مسدود کننده به فرزندخواندگی ، استفاده از شبکه NEO برای معاملات نقطه فروش آماده شکوفا شدن است.
برای استفاده از یک رمزنگاری به طور مؤثر در نقطه فروش ، لازم است که هم در دسترس بودن بالا و هم زمان کوتاهی برای نهایی بودن داشته باشیم. حتی با وجود راه حل های لایه دوم مانند کانال های پرداخت که تقریباً می توانند معاملات فروش فوری را امکان پذیر کنند ، مهم است که بتوانید در یک زمان کوتاه یک کانال را باز کنید در این مورد که یکی از قبل تعیین نشده است. با بهبود اجماع DBFT 2. 0 ، NEO اکنون باید قابلیت اطمینان لازم را برای کسب و کار بیشتر برای شروع استفاده از blockchain Neo برای راه حل های نقطه فروش داشته باشد.
کسب درآمد از بیت کوین...
ما را در سایت کسب درآمد از بیت کوین دنبال می کنید
برچسب :
نویسنده : ماهور الوند
بازدید : <-PostHit->
تاريخ : دوشنبه
23 مرداد
1402 ساعت: 16:15