یک برچسب در حال حاضر با نام شاخه ارائه شده وجود دارد. بسیاری از دستورات GIT نام برچسب و شاخه را می پذیرند ، بنابراین ایجاد این شاخه ممکن است باعث رفتار غیر منتظره شود. آیا مطمئن هستید که می خواهید این شاخه را ایجاد کنید؟
موج دار / docs / consensus. md
- به پرونده T بروید
- به خط L بروید
- مسیر کپی
- پیوند ثابت را کپی کنید
این تعهد متعلق به هیچ شعبه ای در این مخزن نیست و ممکن است متعلق به یک چنگال در خارج از مخزن باشد.
- با دسک تاپ باز کنید
- مشاهده خام
- محتوای خام را کپی کنید و محتوای خام را کپی کنید
محتوای خام را کپی کنید
محتوای خام را کپی کنید
اجماع و اعتبار سنجی
این بخش یک کار در حال انجام است !!
اجماع وظیفه دستیابی به توافق در یک سیستم توزیع شده در حضور شرکت کنندگان معیوب یا حتی مخرب است. این سند الگوریتم اجماع Ledger XRP را که در Rippled اجرا شده است ، تشریح می کند ، اما بر روی ابزار آن به عنوان یک الگوریتم اجماع عمومی مستقل از مکانیک دقیق دفتر اجماع موج دار متمرکز است. مهمتر از همه ، این الگوریتم نیازی به برقراری ارتباط کاملاً همزمان بین همه گره های شبکه یا حتی یک توپولوژی شبکه ثابت ندارد ، بلکه در عوض از طریق زیر شبکه های مورد اعتماد به طور جمعی به اجماع می رسد.
یک چالش برای سیستم های توزیع شده ، دستیابی به توافق در مورد تغییرات در حالت مشترک است. برای شبکه Ripple ، دولت مشترک دفترچه فعلی است-اطلاعات حساب ، مانده حساب ، کتاب سفارش و سایر داده های مالی. ما به حالت توزیع شده مشترک به عنوان A / Ledger / در طول باقیمانده این سند اشاره خواهیم کرد.

همانطور که در بالا نشان داده شده است ، دفترچه های جدید با استفاده از مجموعه ای از معاملات به دفترچه قبلی انجام می شوند. برای شبکه Ripple ، معاملات شامل پرداخت ها ، اصلاح تنظیمات حساب ، به روزرسانی در پیشنهادات و موارد دیگر است.
در یک سیستم متمرکز ، تولید دفترچه بعدی بی اهمیت است زیرا یک داور منحصر به فرد وجود دارد که معاملات آن را شامل می شود و چگونه می توان آنها را در یک دفترچه اعمال کرد. برای سیستم های غیرمتمرکز ، شرکت کنندگان باید اختلاف نظرها را در مورد مجموعه معاملات شامل شوند ، دستور استفاده از آن معاملات و حتی دفترچه حاصل پس از اعمال معاملات. این حتی در شرایطی که برخی از شرکت کنندگان معیوب یا مخرب هستند حتی دشوارتر است.
شبکه Ripple یک شبکه غیر متمرکز و اعتماد به نفس است. هرکسی آزاد است و شرکت کنندگان در انتخاب زیرمجموعه ای از همسالان آزاد هستند که به طور جمعی به آنها اعتماد می کنند که در تلاش برای جعل شرکت کننده به هم نرسند. با استفاده از این شبکه اعتماد ، الگوریتم موج دار دو مؤلفه اصلی دارد.
- اجماعی که شرکت کنندگان در شبکه در مورد معاملات برای اعمال در دفتر قبلی ، براساس مواضع همسالان منتخب خود موافقت می کنند.
- اعتبار سنجی که شرکت کنندگان در شبکه بر اساس دفترچه تولید شده توسط همسالان منتخب ، در مورد آنچه لجر ایجاد شده است توافق می کنند.
این مراحل به طور مداوم برای پردازش معاملات ارسال شده به شبکه تکرار می شود ، باعث ایجاد دفترچه های پی در پی و ایجاد تاریخچه دفترچه blockchain شده در زیر می شود. در این نمودار ، زمان به سمت راست جریان دارد ، اما پیوند بین دفترچه ها به عقب به والدین می رود. همچنین توجه داشته باشید که لجر 2 متناوب 2 که توسط برخی از شرکت کنندگان تولید شده است ، اما اعتبارسنجی ناموفق و رها شده است.

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

نمودار فوق مروری بر روند اجماع از منظر یک شرکت کننده واحد است. به یاد بیاورید که در طول یک دور اجماع ، یک گره در تلاش است تا با همسالان خود موافقت کند که در هنگام تولید دفترچه بعدی ، معاملات خود را به دفتر قبلی خود اعمال کنند. همچنین سعی می کند با بسته شدن دفترچه ، در مورد زمان شبکه توافق کند. 3 مرحله اصلی برای دور اجماع وجود دارد:
- تماس با Startround گره را در مرحله باز قرار می دهد. در این مرحله ، گره در انتظار معاملات در دفترچه باز خود است.
- در بعضی از مواقع ، گره دفترچه باز و انتقال به مرحله ایجاد را می بندد. در این مرحله ، گره پیشنهادات همسالان را که باید معاملات را در دفتر بسته بسته پذیرفته باشد ، سهام/دریافت می کند.
- در بعضی از مواقع ، گره تعیین می کند که با همسالان خود به اجماع رسیده است که در آن معاملات قرار دارند. به مرحله پذیرش منتقل می شود. در این مرحله ، گره در استفاده از معاملات به دفتر قبلی کار می کند تا یک دفترچه بسته جدید تولید کند. پس از اتمام دفترچه جدید ، گره هش معتبر لجر را با شبکه به اشتراک می گذارد و برای شروع دوباره چرخه برای دفترچه بعدی تماس می گیرد.
در کل ، یک تایمر ضربان قلب تایمرنوتری را با فرکانس معمولی فراخوانی می کند تا روند را به جلو سوق دهد. اگرچه فراخوان استریت در زمان دلخواه بر اساس زمان شروع دور اولیه و زمان انجام معاملات انجام می شود ، انتقال از باز برای ایجاد و ایجاد پذیرش فقط در هنگام تماس به زمان سنج اتفاق می افتد. به همین ترتیب ، معاملات می توانند به زمان دلخواه ، مستقل از تایمر ضربان قلب وارد شوند. معاملات دریافت شده پس از باز شدن برای بستن انتقال و نه بخشی از پیشنهادات همسالان تا دور اجماع بعدی در نظر گرفته نمی شود. آنها در بالا توسط مثلث های سبز روشن نشان داده شده اند.
پیشنهادات همسالان توسط یک گره در طی یک تماس تایمرنوتی صادر می شود ، اما از آنجا که همسالان تماس های تایمرنتی را همگام نمی کنند ، آنها توسط سایر همسالان در زمان دلخواه دریافت می شوند. پیشنهادات همسالان فقط در صورت دریافت قبل از تأسیس برای پذیرش انتقال در نظر گرفته می شود و تنها در صورتی که همسالان روی همان دفترچه قبلی کار می کنند. پیشنهادات همسالان دریافت شده پس از دستیابی به اجماع معنی دار نخواهد بود و در بالا توسط دایره با X در آن نشان داده می شود. فقط پیشنهادات همسالان منتخب در نظر گرفته می شود.
زمان نزدیک موثر ###
علاوه بر توافق در مورد مجموعه معامله ، هر دور اجماع سعی می کند در مورد زمان بسته شدن دفترچه توافق کند. هر گره هنگام بسته شدن دفترچه باز ، زمان نزدیک خود را محاسبه می کند. این زمان نزدیک دقیق به نزدیکترین چند وضوح موثر موثر فعلی در جریان است. این زمان نزدیک مؤثر است که گره ها به دنبال توافق هستند. این به سرورها اجازه می دهد تا بدون نیاز به ساعتهای کاملاً هماهنگ ، زمان مشترکی را برای یک دفترچه بدست آورند. همانطور که در زیر به تصویر کشیده شده است ، 3 فلش صورتی با توجه به وضوح فعلی ، زمان دقیق نزدیک را از 3 گره اجماع نشان می دهند که به همان زمان نزدیک موثر می روند. فلش بنفش نشان دهنده همسایه ای است که با توجه به وضوح فعلی ، برآورد آن به یک زمان نزدیک موثر متفاوت می رسد.

زمان نزدیک مؤثر بخشی از موقعیت گره است و در پیشنهادات خود با همسالان به اشتراک گذاشته می شود. درست مانند موقعیت در مجموعه معاملات اجماع ، یک گره موقعیت زمان نزدیک خود را در پاسخ به موقعیت های زمان موثر همسالان خود به روز می کند. همسالان می توانند در مورد زمان نزدیک مخالف باشند ، در این صورت زمان نزدیک موثر به عنوان 1 ثانیه گذشته از نزدیک گذشته گرفته می شود.
وضوح زمان نزدیک خود پویا است ، وضوح (درشت) در دورهای اجماع بعدی اگر گره ها نتوانند در یک زمان نزدیک مؤثر و وضوح (ظریف تر) و وضوح (ظریف تر) به اجماع برسند ، وضوح (درشت) کاهش یابد.
در داخل ، یک گره تحت یکی از حالت های اجماع زیر عمل می کند. هر یک از دو حالت اول ممکن است با شروع یک اجماع انتخاب شود.
- پیشنهاد نشان می دهد که گره یک شرکت کننده اجماع تمام عیار است. این موقعیت ها را به خود می گیرد و پیشنهادهایی را به همسالان خود می فرستد.
- مشاهده نشان می دهد گره یک شرکت کننده اجماع منفعل است. این موقعیت را در داخل حفظ می کند ، اما آن موقعیت را به همسالان خود پیشنهاد نمی کند. در عوض ، پیشنهادات همسالان را دریافت می کند و موقعیت خود را برای ردیابی اکثریت همسالان خود به روز می کند. این ممکن است ترجیح داده شود اگر از گره فقط برای ردیابی وضعیت شبکه یا در مرحله راه اندازی استفاده شود در حالی که هنوز هم در حال همگام سازی با شبکه است.
دو حالت دیگر در طول دور اجماع داخلی تنظیم می شوند که گره معتقد است که دیگر بر اساس اعتبار سنجی همسالان دیگر روی زنجیره لجر غالب کار نمی کند. این را در هر تماس به TimerEntry بررسی می کند.
- Ledger اشتباه نشان می دهد که گره روی دفترچه قبلی صحیح کار نمی کند و آن را در دسترس ندارد. این درخواست را از شبکه درخواست می کند ، اما در حالی که منتظر است ، در این دور به دنبال اجماع است. اگر پیشنهاد می داد ، یک پیشنهاد ویژه "تعقیب" را به همسالان خود ارسال می کند تا تغییر آن در حالت را برای بقیه این دور نشان دهد. برای مدت زمان دور ، برای تعیین نتیجه اجماع به نظر می رسد که فقط مشاهده می شود.
- Switch Ledger نشان می دهد که گره دفترچه قبلی صحیح را از شبکه به دست آورده است. اگرچه اکنون دارای دفترچه قبلی صحیح است ، اما این واقعیت که در این دور در بعضی از موارد اشتباه داشته است به این معنی است که احتمالاً عقب مانده است و باید برای تعیین نتیجه اجماع به موقعیت های همسالان متوسل شود.

پس از رسیدن به لجر اشتباه یا سوئیچ ، گره نمی تواند به پیشنهاد یا مشاهده تا دور اجماع بعدی برگردد. با این حال ، گره می تواند دیدگاه خود را در مورد دفترچه قبلی صحیح تغییر دهد ، بنابراین رفتن از Ledger Switch به Ledger اشتباه و دوباره امکان پذیر است.
تمایز بین حالتهای اشتباه و سوئیچ شده به وجود می آید زیرا ممکن است شناسه منحصر به فرد یک لجر توسط یک گره قبل از خود لجر شناخته شود. این نشان می دهد این واقعیت است که داده های مربوط به یک دفترچه ممکن است بزرگ باشد و برای به اشتراک گذاشتن در شبکه زمان می برد ، در حالی که شناسه کوچکتر می تواند خیلی سریعتر در اعتبار سنجی همسالان به اشتراک گذاشته شود. تمایز این دو حالت به گره اجازه می دهد تا تصمیم بگیرد که چگونه می تواند دفترچه بعدی را پس از اعلام اجماع تولید کند.
همانطور که در نمودار نمای کلی نشان داده شده است ، اجماع به بهترین وجه به عنوان پیشرفت در 3 مرحله مشاهده می شود. 4 روش عمومی از الگوریتم اجماع عمومی وجود دارد که این پیشرفت را تعیین می کند
- Startround دور اجماع را آغاز می کند.
- TimerEntry با فرکانس معمولی (LEDGER_MIN_CLOSE) خوانده می شود و تنها فراخوانی برای اجماع است که می تواند مرحله را از باز برای ایجاد یا پذیرش تغییر دهد.
- Peerproposal هر زمان که یک پیشنهاد همسالان دریافت شود ، خوانده می شود و همان چیزی است که به یک گره اجازه می دهد تا موقعیت خود را در یک تماس تایمرنتر بعدی به روز کند.
- Gottxset هنگام دریافت مجموعه معامله از شبکه فراخوانی می شود. این به طور معمول در پاسخ به درخواست قبلی از گره برای به دست آوردن مجموعه معامله مربوط به موقعیت همسالان مخالف است.
زیر بخش های زیر هر مرحله اجماع را با جزئیات بیشتر توصیف می کند و چه اقداماتی در پاسخ به این تماس ها انجام می شود.
مرحله باز یک دوره ترکیبی است که می تواند معاملات را در دفترچه باز گره انجام دهد. مدت زمان تجارت بین تأخیر و توان است. یک پنجره کوتاه تر باعث کاهش تأخیر در تولید دفترچه بعدی می شود ، اما همچنین به دلیل معاملات کمتر پذیرفته شده در دفترچه ، توان معاملات را کاهش می دهد.
تماس با Startround به زور دور اجماع بعدی را آغاز می کند و از پایان دوره فعلی دور می شود. این در حین کار عادی انتظار نمی رود. تماس با peerproposal یا gottxset به سادگی پیشنهاد یا معامله تنظیم شده را برای استفاده در مرحله تعیین شده آینده ذخیره می کند.
تماس با TimerEntry ابتدا بررسی می کند که گره روی دفترچه قبلی صحیح کار می کند. اگر اینگونه نباشد ، حالت را به روز می کند و دفترچه صحیح را درخواست می کند. در غیر این صورت ، گره بررسی می کند که آیا به مرحله تعیین شده تغییر می کند و لجر را می بندد.
در شرایط عادی ، دوره دفترچه باز زمانی به پایان می رسد که یکی از موارد زیر صحیح است
- در صورت وجود معاملات در دفترچه باز و بیشتر از LEDGER_MIN_CLOSE سپری شده است. این رفتار معمولی است.
- اگر معاملات باز وجود نداشته باشد و فاصله زمانی مناسب طولانی مدت طولانی تر شود. این باعث می شود فرصتی برای دریافت برخی از معامله ها به دفترچه بعدی و جلوگیری از انجام کار بی فایده در بستن یک دفترچه خالی باشد.
- اگر بیش از نیمی از تعداد همسالان دور قبلی در این دور بسته یا به پایان رسیده باشد. این نشان می دهد که گره عقب می افتد و نیاز به جلب توجه دارد.
هنگام بستن دفترچه ، گره موقعیت اولیه خود را بر اساس معاملات موجود در دفترچه باز می گیرد و از زمان فعلی به عنوان برآورد اولیه نزدیک زمان خود استفاده می کند. اگر در حالت پیشنهادی باشد ، گره موقعیت اولیه خود را با همسالان به اشتراک می گذارد. اکنون که گره موقعیتی را به خود اختصاص داده است ، هر موقعیتی را برای این دور که زودتر وارد شده است ، در نظر می گیرد. این گره معاملات مورد مناقشه ای را برای هر معامله ای که با موقعیت همسالان مشترک نیست ، ایجاد می کند. گره همچنین رأی هر یک از همسالان را برای هر معامله مورد اختلاف ثبت می کند.
در مثال زیر ، فرض می کنیم گره ما با معاملات 1،2 و 3 بسته شده است. این اختلاف برای معاملات 2،3 و 4 ایجاد می کند ، زیرا حداقل یک موقعیت همسالان در هر یک متفاوت است.

مرحله تعیین شده ، دوره فعال اجماع است که در آن گره در تلاش برای دستیابی به توافق در مورد معاملات اجماع و زمان نزدیک مؤثر ، پیشنهادات خود را با همسالان مبادله می کند.
تماس با Startround به زور دور اجماع بعدی را آغاز می کند و از پایان دوره فعلی دور می شود. این در حین کار عادی انتظار نمی رود. تماس با peerproposal یا gottxset که منعکس کننده مواضع جدید است ، معاملات مورد اختلاف را برای هرگونه اختلاف نظر جدید ایجاد می کند و رای همسالان را برای کلیه معاملات مورد مناقشه به روز می کند.
تماس با TimerEntry ابتدا بررسی می کند که گره از دفترچه قبلی صحیح کار می کند. اگر اینطور نیست ، گره حالت را به روز می کند و درخواست دفترچه صحیح را می کند. در غیر این صورت ، گره موقعیت گره را به روز می کند و در نظر می گیرد که آیا به مرحله پذیرفته شده تغییر می کند و اعلام اجماع را اعلام می کند. با این حال ، حداقل LEDGER_MIN_CONSENSUSS باید قبل از انجام انجام شود. این به همسالان فرصتی می دهد تا از موقعیت اولیه استفاده کنند و آن را به اشتراک بگذارند.
به منظور دستیابی به اجماع ، گره به دنبال مجموعه ای از معامله است که توسط یک مقام فوق العاده همسالان پشتیبانی می شود. گره با افزودن یا حذف معاملات مورد مناقشه از موقعیت خود بر اساس آستانه فزاینده ای برای ورود به سمت این مجموعه کار می کند.

با شروع با آستانه پایین تر ، یک گره در ابتدا اجازه می دهد تا مجموعه گسترده ای از معاملات را در موقعیت خود قرار دهد. اگر دور تعیین شده ادامه یابد و گره "گیر" شود ، آستانه بالاتری می تواند بر پذیرش معاملات با بیشترین پشتیبانی متمرکز شود. ثابت هایی که آستانه ها و مدت زمان تغییر آستانه ها را به ترتیب توسط av_xxx_consensus_pct و av_xxx_consensus_time داده می شود ، جایی که xxx آغاز می شود ، میانه ، دیر و گیر است. موقعیت زمان نزدیک موثر با استفاده از آستانه های مشابه به روز می شود.
با توجه به اختلافات مثال در بالا و آستانه اولیه 50 ٪ ، گره ما موقعیت خود را حفظ می کند زیرا معامله 1 مورد اختلاف نیست و معاملات 2 و 3 دارای 75 ٪ پشتیبانی هستند. از آنجا که موقعیت آن تغییر نکرد ، نیازی به ارسال پیشنهاد جدید برای همسالان نیست. همسالان C هم تغییر نمی کند. همسالان A معامله 3 را به موقعیت خود اضافه می کند و همسالان B معامله 4 را از موقعیت خود حذف می کند. سپس هر دو موقعیت به روز شده را ارسال می کنند.
برعکس ، اگر نمودار فراخوانی بعدی را به = timerentry = که در منطقه گیر با آستانه Say 95 ٪ رخ می دهد ، منعکس می کند ، گره ما معاملات 2 و 3 را از مجموعه نامزد خود حذف می کند و موقعیت به روز می کند. به همین ترتیب ، همه همسالان دیگر فقط با معامله 1 در موقعیت خود به پایان می رسند.
Lastly, if our node were not in the proposing mode, it would not include its own vote and just take the majority (>50 ٪) موقعیت همسالان خود. در این مثال ، گره ما موقعیت معاملات 1 ، 2 و 3 را حفظ می کند.
پس از به روزرسانی موقعیت خود ، گره برای توافق SuperMajority با همسالان خود در مورد موقعیت فعلی خود بررسی می کند. این توافق نامه از مجموعه معاملاتی دقیق است ، نه فقط پشتیبانی معاملات فردی. یعنی اگر موقعیت ما زیر مجموعه ای از موقعیت همسالان باشد ، این یک اختلاف نظر است. همچنین به یاد بیاورید که توافق زمان نزدیک موثر اجازه می دهد تا یک ابرخودرو از شرکت کنندگان موافقت کنند که مخالف باشند.
اجماع هنگامی اعلام می شود که 3 بند زیر صحیح باشد:
- LEDGER_MIN_CONSENSUS در مرحله تعیین شده است
- حداقل 75 ٪ از پیشنهاد دهندگان دور قبلی پیشنهاد کرده اند یا این مرحله تعیین شده LEDGER_MIN_CONSENSUSS بیش از مرحله آخرین دور است
- MinimumConsensuspercentage از خودمان و همسالان ما در همان موقعیت مشترک هستند
شرایط میانی تضمین می کند که همسالان کندتر فرصتی برای به اشتراک گذاشتن موقعیت ها داشته باشند ، اما مانع از انتظار بیش از حد همسالان که قطع شده اند ، می شود. علاوه بر این ، یک گره می تواند اعلام کند که در صورتی که همسالان MinimumConsensusPercentage اعتبارسنجی ارسال کرده و به دفترچه بعدی منتقل شده اند ، اجماع حرکت کرده است. این نتیجه نشان می دهد که گره در پشت همسالان خود افتاده است و نیاز به جلب توجه دارد.
اگر یک گره پیشنهاد نمی کند ، هنگام محاسبه درصد موافقت شرکت کنندگان ، موقعیت خود را در بر نمی گیرد اما در غیر این صورت منطق فوق را دنبال می کند.
پس از رسیدن به اجماع (یا روشن شدن) ، گره به مرحله پذیرش سوئیچ می شود و سیگنال ها را به کد اجرایی که دور کامل است ، سیگنال می دهد. این کد مسئول استفاده از معامله اجماع برای تولید دفترچه بعدی و فراخوانی Startround برای شروع دور بعدی است. این اجرای دارای آزادی کامل در سفارش معاملات ، تصمیم گیری در صورت حرکت اجماع ، تصمیم گیری برای انجام مجدد یا رها کردن معاملات محلی است که باعث ایجاد اجماع و به روزرسانی هر وضعیت داخلی بر اساس پیشرفت اجماع نشده است.
مرحله پذیرش مرحله ترمینال الگوریتم اجماع است. تماس با زمان سنج ، Peerproposal و Gottxset در مرحله پذیرش وضعیت اجماع داخلی را تغییر نمی دهد. انتظار این است که کد خاص برنامه برای تولید دفترچه جدید بر اساس نتیجه اجماع تلاش کند. پس از اتمام ، این کد باید با Startround تماس بگیرد تا دور اجماع بعدی را آغاز کند. تماس STARTROUND شامل دفترچه قبلی جدید ، شناسه دفترچه قبلی و اینکه آیا دور باید در حالت پیشنهادی یا مشاهده شروع شود ، شامل می شود. پس از تنظیم حالت اولیه ، انتقال فاز به باز می شود. این گره همچنین بررسی می کند که آیا دفترچه و شناسه قبلی ارائه شده صحیح است ، به روزرسانی حالت و درخواست دفترچه مناسب از شبکه در صورت لزوم.
الزامات نوع اجماع
الزامات نوع اجماع در زیر به عنوان خردهای حداقل اجرای ارائه شده است. پیاده سازی های واقعی باعث می شود این خردها با اعضای مناسب برای مدیریت جزئیات معاملات و دفترچه ها در چارچوب برنامه بزرگتر ، تقویت شود.
نوع تراکنش TX با اجماع یک معامله واحد را در نظر می گیرد.
نوع تراکنش نوع Txset مجموعه ای از TX S را نشان می دهد که در مجموع تحت اجماع مورد بررسی قرار می گیرند. TXSET را می توان در برابر سایر TXSET S (به طور معمول از همسالان) مقایسه کرد و می تواند برای اضافه کردن یا حذف معاملات از طریق زیرگروه قابل تغییر اصلاح شود.
نوع دفترچه نمایانگر دولت مشترک در بین شرکت کنندگان توزیع شده است. توجه کنید که جزئیات نحوه تولید دفترچه بعدی از دفترچه قبلی و مجموعه معامله پذیرفته شده اجماع بخشی از رابط نیست. در کد عمومی ، این نوع در درجه اول برای دانستن اینکه همسالان روی همان نوک زنجیره لجر کار می کنند و برخی از داده های زمان بندی اساسی را برای اجماع ارائه می دهند ، استفاده می شود.
نوع peerproposal نشان دهنده موقعیت امضا شده توسط یک همسالان در هنگام اجماع است. تنها نوع مورد نیاز ، داشتن نمونه ای از اجماع عمومی است.
رابط اجماع عمومی
اجماع عمومی برای اجرای مجموعه ای از توابع یاور که الگوریتم اجماع را به یک برنامه خاص وصل می کند ، به کلاس الگوی آداپتور متکی است. کلاس آداپتور همچنین انواع مورد نیاز الگوریتم را تعریف می کند. در زیر گزیده هایی از اجرای اجماع عمومی و انواع یاور وجود دارد که با کلاس اجرای بتن تعامل خواهد داشت.
تطبیق اجماع عمومی
خرد زیر مجموعه توابع پاسخ به تماس/یاور مورد نیاز در کلاس اجرایی را نشان می دهد.
کلاس اجرایی جزئیات بسیاری از مدل ارتباطات همکار را از کد عمومی پنهان می کند.
آموزش کار در فارکس...
ما را در سایت آموزش کار در فارکس دنبال می کنید
برچسب :
نویسنده : Mihayloo
بازدید : <-PostHit->
تاريخ : يکشنبه
6 فروردين
1402 ساعت: 17:47