मुख्य कंटेंट तक स्किप करें

एक विवाद कैसे सुलझता है

एक विवाद के दो हिस्से होते हैं, और उनमें से केवल एक ही कुछ तय करता है।

ऑफ़-चेन परत एकत्र करती है। यह हर मध्यस्थ के हस्ताक्षर सत्यापित करती है, एक रिवील को उस मध्यस्थ की पहले की प्रतिबद्धता के विरुद्ध जाँचती है, ऐसी कार्रवाई से एक रिवील को अस्वीकार करती है जिस वॉलेट ने कभी प्रतिबद्धता नहीं दी, डुप्लिकेट हटाती है, और परिणाम की प्रतिकृति बनाती है ताकि हर नोड वही साक्ष्य देखे।

चेन तय करती है। यह अपने ही नियमों के तहत उजागर किए गए मतों की गिनती करती है — स्टेक-भारित, एक गिने-मत की न्यूनतम सीमा के साथ, बराबरी पर उसे तोड़ने के बजाय एक दौर फिर खोलते हुए — और यह एस्क्रो को हिलाती है।

ऑफ़-चेन परत गिनती नहीं करती

पहले करती थी। getDispute एक नोड द्वारा देखे गए रिवील से व्युत्पन्न एक समाधान लौटाता था, और यह एक ऐसे तरीके से गलत था जिसे समझना सार्थक है, क्योंकि यह एक ऐसी भूल है जो मदद जैसी दिखती है।

एक ही मतों की दो गिनतियाँ एक विचलन जनरेटर हैं, कोई दूसरी राय नहीं। चेन अलग नियमों के तहत पुनः मध्यस्थता करती है, इसलिए वह उसी विवाद के बारे में एक भिन्न उत्तर तक पहुँच सकती है — और जब पहुँचती है, तो इंटरफ़ेस एक परिणाम दिखाता है जबकि पैसा दूसरे का अनुसरण करता है। चेन एस्क्रो पर प्राधिकरण है, इसलिए ऑफ़-चेन उत्तर कोई दूसरी राय नहीं है: वह एक कथन है जो प्रोटोकॉल करता है और फिर अपने ही धन से उसका खंडन करता है।

इसलिए resolution ठीक एक चीज़ से तय होता है: एक निष्पादन-कारी लेनदेन जिसे इस नोड ने स्वतंत्र रूप से पुष्ट होते देखा है, जिसका परिणाम फिर उसने चेन पर मामले के अकाउंट से पढ़ा।

AwaitingChainExecution एक असली उत्तर है

जब हर आवश्यक रिवील आ जाता है, तो मामला AwaitingChainExecution में बैठता है। वह स्थिति कहती है कि ऑफ़-चेन परत ने अपना काम पूरा कर लिया है और एस्क्रो अभी हिला नहीं है। यह «निष्पादन लंबित, सुलझा हुआ» नहीं है — वह वाक्यांश एक ऐसा परिणाम दावा करेगा जिसे नामित करने का नोड को अधिकार नहीं है।

एक नोड जिसने एक लेनदेन को उतरते देखा पर पढ़ नहीं सका कि उसने क्या तय किया, AwaitingChainExecution में बना रहता है और अपने द्वारा देखा गया हस्ताक्षर दर्ज करता है। चेन पर कुछ हुआ और यह नोड अभी नहीं जानता क्या; ऐसा कहना ईमानदार उत्तर है, और अंतराल भरने के लिए एक फ़ैसला गढ़ना वही विफलता है जिसे यह नियम हटाता है।

पक्षों की सहमति कोई अपवाद नहीं है

दोनों पक्ष एक आपसी निपटान पर सहमत हो सकते हैं, और ऑफ़-चेन परत दोनों हस्ताक्षर सीधे सत्यापित करती है। वह उस सहमति को जैसे ही पा लेती है दर्ज कर लेती है — वह मामले के बारे में एक असली तथ्य है, और उसे रोक रखना पक्षों से उनका अपना निर्णय छिपा देगा।

पर एक सहमति दर्ज करना एक समाधान दर्ज करना नहीं है। जब तक एस्क्रो वास्तव में हिला नहीं है, मामला किसी और की तरह AwaitingChainExecution में है।

इसे गलत करना आसान है, क्योंकि एक फैसले के विपरीत यहाँ कोई ऐसी गणना नहीं जो दो नोड भिन्न तरीके से कर सकें — सहमति बस दो हस्ताक्षर है। फिर भी उसे प्रतीक्षा करनी होती है, दो कारणों से:

  • हस्ताक्षर पैसा नहीं हिलाते। एक मामला जो MutualSettlement चिह्नित है जबकि धन बंद पड़ा है, दोनों पक्षों को बताता है कि विवाद समाप्त हो गया और भुगतान हो गया, जबकि दोनों में से कुछ भी सच नहीं।
  • चेन अपनी समय-सीमाओं पर निष्पादित करती है। वह उन पक्षों के एक मामले पर एक मध्यस्थ परिणाम निष्पादित करने के लिए स्वतंत्र रहती है जिन्होंने निजी तौर पर सहमति दी और उसे कभी प्रसारित नहीं किया — दोनों परतों को एक ही विवाद पर फिर से विरोधाभास में डालते हुए, जो कि यह पूरा नियम रोकने के लिए मौजूद है।

एक क्लाइंट को क्या दिखाना चाहिए

नोड कहता हैदिखाएँ
resolution: null, स्थिति AwaitingChainExecutionमामला तय है या सहमत है; एस्क्रो अभी हिला नहीं है
resolution सेट, एक निष्पादन हस्ताक्षर के साथपरिणाम, और वह लेनदेन जिससे वह आया
रिवील एकत्र, स्थिति में कोई बदलाव नहींसाक्ष्य जुटाना; दिखाने के लिए कोई परिणाम मौजूद नहीं

getDispute प्रतिक्रिया में रिवील से कोई परिणाम मत निकालो। वे वहाँ इसलिए हैं ताकि कोई भी ऑडिट कर सके कि चेन को क्या दिया गया, इसलिए नहीं कि एक क्लाइंट अपना फ़ैसला निकाल ले — एक क्लाइंट जो उन्हें गिनता है, उसने ठीक वही विचलन फिर से लाया है जिसे नोड ने पैदा करना बंद कर दिया।

मानक कथन के लिए OFS-2400 §16.2 और §17 देखें।