الإجماع
تدخل المعاملات صف قبل أن يقترحها Sumeragi في كتلة. يقوم المحققون بتصديق المقترحة وتنفيذها بشكل مستقل ، ثم يوقعون فقط على الانتقال الحالي الذي يمكنهم إعادة تكوينه. يتعهد الكتلة بعد موافقة جمعية المحققين المطلوبة على هذه النتيجة وتتوفر الحمل الفائدة المتطابقة.
تستخدم جميع شبكات Iroha 3 مسارات توافر البيانات والبث الموثوق بها. وهي متطلبات إجماعية، وليس ميزات تنفيذ اختيارية.
Sumeragi
Sumeragi هو محرك التوافق المتسامح مع الأخطاء البيزنطية في Iroha. يأخذ المعاملات من الصف ، ويجعل زملاء المؤكدين يوافقون على نفس الكتلة المنظمة ، وينتهى بتلك الكتلة فقط بعد أن قام عدد كاف من المؤكدين بإعادة إنتاج النتيجة نفسها وقعوا على شهادة الالتزام.
مسار المقترح والالتزام
يقوم Sumeragi بتشغيل دفتر التسجيل إلى الأمام على ارتفاع كتلة واحدة في كل وقت. في كل ارتفاع، يعمل مؤكد واحد كمقترح للنظرة الحالية. يقوم المقترح بإزالة المعاملات المؤهلة من الصف ، وبناء كتلة مرشحة ، ويعلن عن الاقتراح لمجموعة المؤكدين النشطين.
يتم استخدام نفس خط الأنابيب Sumeragi في كل من عمليات التنفيذ المسموح بها والتي تم تعيينها كدليل على الاستثمار (NPoS):
- يقترح المؤكد حظر من المعاملات المتواجدة في صف.
- المحققون يؤيدون المقترحات من خلال تنفيذ المعاملات ضد نفس الدولة العالمية.
- المحققون يتبادلون الأصوات وشهادات الجودة للطول والنظر الحالي.
- بمجرد أن يتم التوصل إلى القرار المشترك، يقوم الأقران بتحديد وضعهم العالمي.
يقوم المحققون بالتوقيع على البيانات التي يمكنهم تكرارها محليًا فقط. قبل التصويت، يتحقق المحقق من أن المقترح ينتمي إلى السلسلة المتوقعة والارتفاع والمشاهدة؛ وأن توقيعات المعاملات والحدود صالحة؛ وأن توجيه المسارات والتحقق من التحقق هو أمر محدد. وإذا اختلف النتيجة المحلية، يرفض المحقق المقترح بدلاً من التصويت لصالحه.
التصويت هو رسائل توافقية مختومة صغيرة. تشير إلى الكتلة المقترحة، والارتفاع، والنظرة، و هوية المؤكد. جمع المجمعون تلك الأصوات في شهادة الإجماع أو شهادة الالتزام . الشهادة هي دليل دائم على أن عدد كاف من المؤكدين لاحظوا نفس النتيجة لنفس الكتلة.
الكويروم والجمع والمراقبين
يحدد عدد مؤكدين التصويت n ميزانية الخطأ البيزنطية. بالنسبة للشبكات التي لديها أربعة مؤكدين على الأقل، فإن الميزانية هي f = floor((n - 1) / 3) ومعدل الإجراءات هو 2f + 1. بالنسبة لمؤكّد واحد إلى ثلاثة، كل المؤكّدين مطلوبون للالتزام، وهو أمر مفيد للتطوير لكنه لا يملك إيقاعًا عمليًا خارج الإنترنت.
الجمعيون هي تحسينات مفيدة. بدلاً من كل مؤكد إرسال كل تصويت إلى كل مؤكد آخر، يمكن Sumeragi اختيار واحد أو أكثر من المجموعين لارتفاع. يجمع المجمعون الأصوات ، وينشرون تقدم الكوروم ، ويقلل من كمية حركة المرور المكررة للصوت. يتم الكشف عن إعدادات المستحقين الفعليين من خلال GET /v1/sumeragi/collectors؛ وتقدم صورة ops sumeragi telemetry في CLI بيانات عن عدد مستحقين الحاليين.
يمكن لزملاء المراقبين مزامنة الكتل الملتزمة ، لكنهم لا يقترحون أو يصوتون أو يجمعون الأصوات ، أو يحسبون نحو حكم الالتزام. استخدم المراقبين عندما يتطلب تنفيذ قدرة استفسار محلية أو فهرسة أو مراقبة أو نسخ كتلة إقليمية دون زيادة عدد مرخصي التصويت.
عرض التغييرات والاسترداد
نظرة هو محاولة Sumeragi لإنهاء ارتفاع واحد مع مقترح معين وخطة توقيت. إذا كان الاقتراح ، والحمية المفيدة ، أو التصويت ، أو إجراء التقدم يتوقف ، يمكن لجهاز تحديد النفس نقل الارتفاع إلى رؤية لاحقة. تغيير الرؤية لا يعيد كتابة كتلة ملتزمة. إنها تغير الطريقة التي يحاول بها المؤكدون إنهاء الارتفاع غير الملتزم به، حيث يحملون إلى الأمام أعلى عدد من الأدلة المعروفة أو يشتركون في الدليل حتى لا يقضي أقرانهم على الكتل المتضاربة.
يتم استرداد الحمل المفيد بشكل منفصل عن قرار النهائي. قد يتلقى الزميل تصريحًا أو شهادة التزام قبل أن يحصل على حمولة كتلة كاملة. في هذه الحالة، يستخدم الزميل البث الموثوق (RBC) أو مزامنة الكتل لاسترداد الحمولة المفيدة ، ويتحقق من ذلك ضد الهاشات الإعلانية ، وتطبق الكتلة فقط على الدولة العالمية و Kura.
أساليب الإجماع
يتحكم النظام المختار في كيفية تشكيل مجموعة المؤكد وتشغيلها. يتم إعلانها في التكوين من خلال consensus_mode وفي تكوين الأقران من خلال sumeragi.consensus_mode. تعامله كحالة على مستوى الشبكة: يحتاج المحققون إلى نفس التأليف الذي تم توقيعه وتوبولوجيا البيانات الموثوق بها من الزملاء، ومعايير فعالة Sumeragi.
| الوضع | أفضل مناسبة | إعداد المحقق | التركيز التشغيلي |
|---|---|---|---|
| مسموح به | الشبكات الخاصة والتحالفية و التي يديرها المشغل | المحققون يأتون من طوبولوجيا الأقران الموثوق بها التي اتفق عليها النشر | الحفاظ على جميع المحققين على نفس التوقيع الأولي، أقرانهم الموثوق بهم، مفاتيح الأقرانهم، و Sumeragi |
| نيبوس | الشبكات العامة أو الموجهة Nexus حيث تتبع التحقق من الموافقة سياسة الترشيح والمشاركة | يتم اختيار المحققين حسب ملف NPoS، عادةً عبر فترات، ويتطلبون مفاتيح BLS بالإضافة إلى دليل على امتلاكهم | الحفاظ على اللقطات الفورية للمشاركة ، ومعايير العصر ، والمؤكد PoPs ، وتوقيت مرحلة NPoS متناغمة عبر الشبكة |
الوضع المسموح به
استخدم وضع الإذن عندما يكون قائمة المحققين خيارًا تشغيليًا صريحًا. هذه هي نقطة البداية المعتادة لشبكات Iroha التي تستضيف نفسها لأن تغييرات العضوية هي إجراءات حوكمة متعمدة أو إدارة. القاعدة التشغيلية المهمة هي أن كل مؤكد يجب أن يعمل بنفس وجهة النظر عن الجينس ، والأقران الموثوق بهم ، BLS دليل الملكية ، و Sumeragi المعايير. يمكن أن يمنع الأقران الواحد ذو توبولوجي مختلف أو جينس مختوم من الالتزام بالشبكة.
وضع NPoS
استخدم وضع NPoS عندما يتوقع ملف التنفيذ مشاركة المحققين أن تكون مدفوعة من خلال الترشيحات وحالة المشاركة. تستخدم النشر العام SORA Nexus NPoS ، وتشمل ملفات الشخصية التي يتم إنشاؤها هويات المحقق BLS ، وثائق الامتلاك ، إعدادات الفترة ، و Sumeragi معايير NPoS اللازمة عند بدء العمل. يمكن لتغييرات العصر استبدال المحقق النشط الذي يتم تعيينه في ارتفاعات محددة، لذلك يحتاج المشغلون إلى مراقبة كل من صحة الإجماع وحالة الرهان أو الترشيح التي تغذية القائمة التالية.
الإجماع متعدد الأطراف
يتم تنفيذ مسار الإجماع متعدد الخطوط في Iroha من خلال تشكيل Nexus الممر والمساحة البيانية. لا تبدأ حالة إجماع منفصلة لكل ممر . Sumeragi لا يزال يؤدي إلى استكمال سلسلة كتلة واحدة مرتبطة؛ وتصف المسارات كيف يتم توجيه المعاملات وتخطيطها وحسابها وتخزينها داخل تلك التيار.
تكوين تشكيل وقت التشغيل ثلاثة أجزاء من حالة المسار:
lane_catalog: المسارات المثبتة، كل منها مع رقميةLaneId، مستعار، مساحة البيانات، مرئية، ملف تخزين، مخطط إثبات، وميتاء البيانات.dataspace_catalog: مساحات البيانات التي يتم تشكيلها، كل منها مع رقمDataSpaceIdوقيمة تحمل الأخطاء المستخدمة لتحديد حجم اللجنة التنسيقية.routing_policy: الزوج الافتراضي للقطار / مساحة البيانات وقواعد التوجيه المترتبة التي يمكن أن تتطابق مع الحسابات أو مسارات التعليمات.
عندما تدخل المعاملة في الصف، يقوم جهاز توجيه المسار بتحليلها إلى RoutingDecision { lane_id, dataspace_id }. في وضع مسار واحد هذا هو دائمًا مسار 0 ومجال البيانات العالمي. في وضع Nexus، يطبق الجهاز التوجيهي المكوّن قواعد محددة مساحة البيانات، وتوجيه التسوية، وقواعد الحسابات، وقواعد التوجيه الصريحة، وأخيراً الطريق الافتراضي. يجب أن توجد المسار المحل والمساحة البيانية الموجودة في كتالوجاتها، ويجب أن يكون المسار مرتبطًا بمساحة البينات المحل؛ وإلا يتم رفض المعاملة قبل أن يتم ترتيبها.
يحتفظ الصف بهذا القرار التوجيهي مع hash المعاملة بحيث لا يتعين على المراحل اللاحقة إستنتاجه مرة أخرى. ثم تستخدم بناء الاقتراح بيانات البيانات المتعددة للقطار بطرقين:
- إنه يتربط المعاملات بالمرحلة بحيث لا تهيمن الرصيف الواحد على الكتلة فقط لأن معاملاتها تم ترتيبها أولاً.
- ويتم تطبيقها على وحدات تنفيذ المعاملات لكل مسار (TEU) ، يتم تأجيل المعاملات التي تتجاوز القدرة الموضحة للمسار، إلا أن أول معاملة زيادة الوزن في المسار يمكن قبولها لتجنب حجب الحياة.
أثناء البث الموثوق به، يقوم Sumeragi بتجميع الحمل الصالح المقترح حسب المسار ومجال البيانات. وتشمل الإجماليات المسجلة عدد المعاملات، وقطع البث، وبايتات الحمولة المفيدة، و TEU. بعد الالتزام، تصبح هذه الإجمالية اللقطات الفورية لالتزام المسار ومكان البيانات المعروضة من خلال حالة Sumeragi. إذا كان الكتلة تحتوي على استلامات تسوية المسارات، فإن معالجة الكتلة تخلق أيضًا التزامات تسوية المسار والغلافات الترسلية التي تربط رأس المسار، وشهادة الالتزام، وتحليل التزامات توافر البيانات، ودليل السداد، وحجم الحمل المفيد في المسار.
إرسال موثوق به (RBC)
الإذاعة الموثوقة (RBC) هي مسار نشر الحمولة الفائدة واستردادها في Sumeragi. تساعد المؤكدين والمراقبين على الحصول على جسم الكتلة التي تنتمي إلى اقتراح أو شهادة الالتزام ، خاصة عند تأخير أو فقدان رسالة BlockCreated أو تحديث مزامنة الكتلة أو نقل الحمولة المفيدة المباشرة.
يعمل RBC على مستوى الحمل المفيد. يعلن المقترح عن جلسة RBC لارتفاع الكتلة ، والنظر ، والحميل المفيد، ثم يرسل قطع الحمولة المفيدة عبر طوبولوجيا التزامن. تتبع الأقران استلام الجزء ، وتؤكّد الحمل المفيد المسترد مقابل الهاش الذي يتم الإعلان عنه ، وتبادل إشارات READY و DELIVER بمجرد أن يلاحظ عدد كاف من المؤكّدين نفس الحمل المفيّد. يتم الحد من الجلسات بواسطة TTL ، الجزء، fanout، المعلقة المخزن، والمستمرة في التخزين الحدود لذلك لا يمكن أن تنمو حركة الاسترداد دون حدود.
RBC ليس قرارًا متفقًا منفصلًا ولا يحل محل شهادة الالتزام. لا يزال الكتلة تنتهي فقط عندما يكون لدى النسيقة شهادة اللتزام سارية الصلاحية والحمل المفيد المتطابق محلياً. RBC يساهم في إثبات التوافر الإلزامي واسترداد الحمولة المفيدة ، بينما يتم دفع تقدم الالتزام من خلال شهادة الالتزام بالإضافة إلى الحمل المفيد المحلي. إذا وصلت الشهادة قبل الحمل المفيد ، يمكن للقرابة استعادة الحمل المفعول عن طريق RBC أو مزامنة الكتلة ثم الالتزام.
من الناحية التشغيلية، RBC مفيد لتشخيص عوائق الحمولة المفقودة والتوفر في البيانات:
iroha --output-format text ops sumeragi telemetryيظهر إجمالي الأصوات المتوفرة، وعدد المستحقين الحاليين، ودورات RBC المنتظرة.GET /v1/sumeragi/rbcوGET /v1/sumeragi/rbc/sessionsتعرض بيانات مفصلة عن الجلسة الإجمالية والفعالة خلال Torii، بما في ذلك تقدم الجزء، الاستعداد، حالة التسليم، وتخلف المسار أو مساحة البيانات؛ انظر Torii نقاط النهاية .- إشارات Prometeus مثل:
sumeragi_rbc_store_pressure,sumeragi_rbc_backpressure_deferrals_total, وكل مسار أو كل مساحة بيانات RBC مقياسات التخلف تساعد على فصل فقدان الشبكة واسترداد الجزء، وضغط التخزين. انظر: الأداء والمقاييس.
تستخدم Kura تكوين المسار المستمد للتخطيط للمخزن. كل مسار يحصل على أسماء تخزين محددة مثل blocks/lane_000_core و merge_ledger/lane_000_core_merge.log ؛ يمكن لتغيير دورة حياة المسار توفير أو استقالة أو إعادة وضع علامات على تلك القطاعات دون تغيير ترتيب الكتل العالمي.