كيف تُحسم النزاعات
للنزاع نصفان، ونصف واحد فقط منهما يقرر شيئًا.
الطبقة خارج السلسلة تجمع. فهي تتحقق من توقيع كل محكّم، وتطابق الكشف مع الالتزام السابق لذلك المحكّم، وترفض كشفًا من محفظة لم تلتزم قط، وتتخلص من المكرَّرات، وتُكرِّر النتيجة كي يرى كل عقدة الدليل نفسه.
السلسلة تقرر. فهي تحصي الأصوات المكشوفة وفق قواعدها الخاصة — مرجَّحة بالحصة، مع حد أدنى للأصوات المعدودة، وتعيد فتح جولة عند التعادل بدلًا من كسره — وتحرّك الضمان.
الطبقة خارج السلسلة لا تحصي
كانت تفعل. كان getDispute يعيد حسمًا مشتقًا من الكشوف التي رآها
عقدة ما، وكان ذلك خطأً بطريقة تستحق الفهم، لأنه خطأ يبدو كأنه
مساعدة.
إحصاءان لنفس الأصوات هما مولّد تباعد، لا رأي ثانٍ. فالسلسلة تعيد التحكيم وفق قواعد مختلفة، لذا قد تصل إلى إجابة مختلفة عن النزاع نفسه — وحين تفعل، تعرض الواجهة نتيجةً بينما يتبع المال الأخرى. السلسلة هي السلطة على الضمان، لذا فالإجابة خارج السلسلة ليست رأيًا ثانيًا: إنها تصريح يطلقه البروتوكول ثم يناقضه بأمواله ذاتها.
لذا فإن resolution تُحدَّد بشيء واحد بالضبط: معاملة تنفيذ رصدت هذه
العقدة تأكيدها بشكل مستقل، ثم قرأت نتيجتها من حساب القضية على السلسلة.
AwaitingChainExecution إجابة حقيقية
حين يصل كل كشف مطلوب، تجلس القضية في AwaitingChainExecution. تلك
الحالة تقول إن الطبقة خارج السلسلة قد أنهت عملها وإن الضمان لم يتحرك
بعد. إنها ليست «مَحسومة بانتظار التنفيذ» — فتلك الصياغة تدّعي نتيجةً
لا يحق للعقدة تسميتها.
عقدة رأت معاملة تهبط لكنها لم تستطع قراءة ما قررته تبقى في
AwaitingChainExecution وتسجّل التوقيع الذي رصدته. حدث شيء على السلسلة
وهذه العقدة لا تعرف بعد ماذا؛ قول ذلك هو الإجابة الأمينة، واختراع حكم
لسدّ الفجوة هو تحديدًا الفشل الذي تزيله هذه القاعدة.
اتفاق الطرفين ليس استثناءً
يمكن للطرفين الاتفاق على تسوية متبادلة، وتتحقق الطبقة خارج السلسلة من كِلا التوقيعين مباشرةً. وتسجّل ذلك الاتفاق فور امتلاكه — فذلك حقيقة واقعية عن القضية، وحجبه سيُخفي عن الطرفين قرارهما هما.
لكن تسجيل اتفاق ليس تسجيل حسم. فحتى يتحرك الضمان فعلًا، تكون القضية
في AwaitingChainExecution كأي قضية أخرى.
يسهل الخطأ في هذه، لأنه خلافًا لحكمٍ ما لا يوجد هنا حساب قد تجريه عقدتان بشكل مختلف — فالاتفاق ببساطة هو التوقيعان. ومع ذلك عليه أن ينتظر، لسببين:
- التواقيع لا تحرّك المال. قضية موسومة بـ
MutualSettlementبينما الأموال محبوسة تخبر الطرفين أن النزاع انتهى ودُفع بينما لا شيء من ذلك صحيح. - السلسلة تنفّذ وفق مواعيدها الخاصة. فتبقى حرةً في تنفيذ نتيجة محكَّمة على قضية اتفق طرفاها سرًّا ولم يبلّغاها قط — معيدةً الطبقتين إلى التناقض حول نزاع واحد، وهو ما تُوجد هذه القاعدة كلها لمنعه.
ما ينبغي أن يعرضه العميل
| العقدة تقول | اعرض |
|---|---|
resolution: null، الحالة AwaitingChainExecution | القضية محسومة أو متفَق عليها؛ الضمان لم يتحرك بعد |
resolution مضبوطة، مع توقيع تنفيذ | النتيجة، والمعاملة التي جاءت منها |
| كشوف مجمَّعة، لا تغيّر في الحالة | جمع أدلة؛ لا توجد نتيجة لعرضها |
لا تشتقّ نتيجةً من الكشوف في استجابة getDispute. فهي هناك كي يتمكن
أي أحد من تدقيق ما أُعطي للسلسلة، لا كي يبلغ عميلٌ حكمه الخاص — فعميل
يحصيها قد أعاد بالضبط إدخال التباعد الذي توقفت العقدة عن إنتاجه.
انظر OFS-2400 §16.2 و§17 للنص المعياري.