تارکیی اتفاق رائے پروٹوکول کو سمجھنا

تارکیی اتفاق رائے پروٹوکول کو سمجھنا

تارکیی اتفاق رائے پروٹوکول کو سب سے پہلے میں بیان کیا گیا تھا۔ سائنسی مضمون ڈیوڈ میزیئر 2015 میں۔ یہ ایک "وفاقی بازنطینی معاہدے کا نظام" ہے جو وکندریقرت، لیڈر لیس کمپیوٹنگ نیٹ ورکس کو مؤثر طریقے سے کسی فیصلے پر اتفاق رائے تک پہنچنے کی اجازت دیتا ہے۔ اسٹیلر ادائیگی کا نیٹ ورک تارکیی اتفاق رائے پروٹوکول (SCP) کا استعمال کرتا ہے تاکہ لین دین کی ایک مستقل تاریخ کو برقرار رکھا جا سکے جو تمام شرکاء کو نظر آتی ہے۔

اتفاق رائے کے پروٹوکول کو سمجھنا مشکل سمجھا جاتا ہے۔ SCP ان میں سے زیادہ تر کے مقابلے میں آسان ہے، لیکن پھر بھی اس ساکھ کا اشتراک کرتا ہے - جزوی طور پر اس غلط خیال کی وجہ سے کہ "وفاقی ووٹنگ"، جو سائنسی مضمون کے پہلے نصف کا موضوع ہے، SCP ہے۔ لیکن یہ سچ نہیں ہے! یہ صرف ایک اہم بلڈنگ بلاک ہے جسے آرٹیکل کا دوسرا نصف تخلیق کرنے کے لیے استعمال کرتا ہے۔ حقیقی تارکیی اتفاق رائے پروٹوکول۔

اس مضمون میں ہم مختصراً بیان کریں گے کہ "معاہدوں کا نظام" کیا ہے، اسے "بازنطینی" کیا بنا سکتا ہے اور بازنطینی نظام کو "وفاقی" کیوں بناتا ہے۔ اس کے بعد ہم SCP آرٹیکل میں بیان کردہ وفاقی ووٹنگ کے طریقہ کار کی وضاحت کریں گے، اور آخر میں ہم خود SCP پروٹوکول کی وضاحت کریں گے۔

معاہدے کے نظام

معاہدوں کا نظام شرکاء کے ایک گروپ کو کسی موضوع پر اتفاق رائے تک پہنچنے کی اجازت دیتا ہے، جیسے کہ دوپہر کے کھانے کے لیے کیا آرڈر کرنا ہے۔

انٹر اسٹیلر میں، ہم نے اپنے کھانے کے معاہدے کے نظام کو نافذ کیا ہے: ہم وہی حکم دیتے ہیں جو ہمارے آپریشنز مینیجر، جان کہتے ہیں۔ یہ ایک سادہ اور موثر معاہدے کا نظام ہے۔ ہم سب جان پر بھروسہ کرتے ہیں اور یقین رکھتے ہیں کہ وہ ہر روز کچھ دلچسپ اور غذائیت بخش پائے گا۔

لیکن کیا ہوگا اگر جان ہمارے بھروسے کا غلط استعمال کرے؟ وہ اکیلے ہی فیصلہ کر سکتا ہے کہ ہم سب کو ویگن بننا چاہیے۔ ایک یا دو ہفتوں میں، ہم شاید اسے معزول کر دیں گے اور اقتدار الزبتھ کے حوالے کر دیں گے۔ لیکن اچانک وہ اینکوویز کے ساتھ ایوکاڈو سے محبت کرتی ہے اور سوچتی ہے کہ سب کو ایسا ہی ہونا چاہیے۔ طاقت خراب کرتی ہے۔ اس لیے بہتر ہے کہ کچھ اور جمہوری طریقہ تلاش کیا جائے: اس بات کو یقینی بنانے کا کوئی طریقہ کہ مختلف ترجیحات کو مدنظر رکھا جائے، جبکہ بروقت اور غیر واضح نتیجہ کو یقینی بنایا جائے، تاکہ کوئی بھی لنچ کا آرڈر نہ دے، یا پانچ افراد مختلف آرڈرز دیں، یا بحث۔ شام میں لے جاتا ہے.

ایسا لگتا ہے کہ حل آسان ہے: ووٹ ڈالو! لیکن یہ ایک گمراہ کن تاثر ہے۔ کون بیلٹ جمع کرے گا اور نتائج کی اطلاع دے گا؟ اور دوسرے اس کی باتوں پر کیوں یقین کریں؟ شاید ہم کر سکتے ہیں۔ سب سے پہلے ایک ایسے لیڈر کو ووٹ دیں جس پر ہم ووٹنگ کی قیادت کرنے پر بھروسہ کریں - لیکن اس کی قیادت کون کرے گا۔ سب سے پہلے ووٹ دے کر؟ اگر ہم کسی لیڈر پر متفق نہ ہو سکیں تو کیا ہوگا؟ یا اگر ہم کسی معاہدے پر پہنچ جائیں، لیکن یہ لیڈر کسی میٹنگ میں پھنس جائے یا بیماری کی چھٹی پر چلا جائے؟

اسی طرح کے مسائل تقسیم شدہ کمپیوٹر نیٹ ورکس میں پائے جاتے ہیں۔ تمام شرکاء یا نوڈس کو کسی نہ کسی فیصلے پر متفق ہونا ضروری ہے، جیسے کہ مشترکہ فائل کو اپ ڈیٹ کرنے یا پروسیسنگ قطار سے کسی کام کو ہٹانے کی باری کس کی ہے۔ ایک کریپٹو کرنسی نیٹ ورک میں، نوڈس کو بار بار انتخاب کرنا پڑتا ہے کہ مکمل کہانی کئی ممکنہ ورژنز سے کیسی دکھتی ہے، جو بعض اوقات متصادم ہوتے ہیں۔ یہ نیٹ ورک معاہدہ وصول کنندہ کو یقین دہانی فراہم کرتا ہے کہ سکہ (a) درست ہے (جعلی نہیں) اور (b) ابھی تک کہیں اور خرچ نہیں ہوا ہے۔ یہ اس بات کو بھی یقینی بناتا ہے کہ وہ مستقبل میں سکے خرچ کر سکے گا کیونکہ نئے وصول کنندہ کے پاس انہی وجوہات کی بنا پر وہی ضمانتیں ہوں گی۔

تقسیم شدہ کمپیوٹنگ نیٹ ورک میں کوئی بھی متفقہ نظام غلطی سے روادار ہونا چاہیے: اسے سست روابط، غیر جوابی نوڈس، اور پیغام کی غلط ترتیب جیسی خرابیوں کے باوجود مستقل نتائج پیدا کرنا چاہیے۔ بازنطینی معاہدے کا نظام "بازنطینی" غلطیوں کے خلاف بھی مزاحم ہے: ایسے نوڈس جو غلط معلومات فراہم کرتے ہیں، چاہے کسی غلطی کی وجہ سے ہو یا نظام کو کمزور کرنے یا کچھ فائدہ حاصل کرنے کی دانستہ کوشش میں۔ "بازنطینی" غلطی رواداری - گروپ کے فیصلے پر بھروسہ کرنے کی صلاحیت یہاں تک کہ جب گروپ کے کچھ ممبر جھوٹ بولیں یا فیصلہ سازی کے اصولوں پر عمل نہ کریں - کہلاتے ہیں۔ بازنطینی سلطنت کے جرنیلوں کے بارے میں مثالجنہوں نے حملے کو منظم کرنے کی کوشش کی۔ اچھی تفصیل انتھونی سٹیونز میں

کرپٹو کوائن کی مالک ایلس پر غور کریں، جسے باب سے مزیدار آئس کریم خریدنے اور کیرول کے قرض کی ادائیگی کے درمیان انتخاب کرنا چاہیے۔ شاید ایلس ایک ہی سکے کو دھوکہ دہی سے خرچ کرکے ان دونوں کو ایک ساتھ ادا کرنا چاہتی ہے۔ ایسا کرنے کے لیے، اسے باب کے کمپیوٹر کو قائل کرنا ہوگا کہ سکہ کیرول کو کبھی ادا نہیں کیا گیا تھا، اور کیرول کے کمپیوٹر کو قائل کرنا ہوگا کہ سکہ باب کو کبھی ادا نہیں کیا گیا تھا۔ معاہدوں کا بازنطینی نظام اس کو عملی طور پر ناممکن بنا دیتا ہے، جس کو اکثریتی حکمرانی کہا جاتا ہے۔ کورم. اس طرح کے نیٹ ورک میں ایک نوڈ تاریخ کے کسی خاص ورژن میں جانے سے انکار کرتا ہے جب تک کہ وہ یہ نہ دیکھے کہ کافی تعداد میں ساتھی - ایک کورم - اس طرح کی منتقلی سے اتفاق کرتے ہیں۔ ایک بار ایسا ہونے کے بعد، وہ ایک ووٹنگ بلاک تشکیل دیں گے جو اتنا بڑا ہو گا کہ باقی نیٹ ورک نوڈس کو اپنے فیصلے سے متفق ہونے پر مجبور کر سکے۔ ایلس اپنی طرف سے کچھ نوڈس کو جھوٹ بولنے پر مجبور کر سکتی ہے، لیکن اگر نیٹ ورک کافی بڑا ہے، تو اس کی کوشش ایماندار نوڈس کے ووٹوں سے مغلوب ہو جائے گی۔

کورم کے لیے کتنے نوڈس کی ضرورت ہے؟ غلطیوں اور دھوکہ دہی کا مقابلہ کرنے کے لیے کم از کم، اکثریت، یا اس کے بجائے اہل اکثریت۔ لیکن اکثریت کو شمار کرنے کے لیے، آپ کو شرکاء کی کل تعداد جاننے کی ضرورت ہے۔ انٹر اسٹیلر آفس یا ضلعی انتخابات میں، ان نمبروں کا پتہ لگانا آسان ہے۔ لیکن اگر آپ کا گروپ ایک ڈھیلے طریقے سے طے شدہ نیٹ ورک ہے جس میں نوڈس مرکز کی منظوری کے بغیر اپنی مرضی سے داخل اور نکل سکتے ہیں، تو آپ کو ضرورت ہے وفاقی ایک بازنطینی معاہدے کا نظام جو کورم کا تعین کرنے کے قابل ہے نوڈس کی پہلے سے طے شدہ فہرست سے نہیں، بلکہ متحرک طور پر، وقت کے ایک مقررہ مقام پر نوڈس کے ہمیشہ بدلتے اور ناگزیر طور پر نامکمل سنیپ شاٹ سے۔

ایک وسیع نیٹ ورک میں ایک نوڈ کے نقطہ نظر سے کورم بنانا ناممکن لگتا ہے، لیکن یہ ممکن ہے۔ اس طرح کا کورم وکندریقرت رائے دہی کے نتائج کی ضمانت بھی دے سکتا ہے۔ ایس سی پی کا وائٹ پیپر دکھاتا ہے کہ نامی طریقہ کار کا استعمال کرتے ہوئے اسے کیسے کرنا ہے۔ وفاقی ووٹ کے ذریعے.

بے صبروں کے لیے

باقی مضمون میں فیڈریٹ ووٹنگ اور اسٹیلر کنسنسس پروٹوکول کو مزید تفصیل سے بیان کیا گیا ہے۔ اگر آپ کو تفصیلات میں دلچسپی نہیں ہے تو، یہاں اس عمل کا ایک عمومی جائزہ ہے۔

  1. نوڈس "نامزد افراد" پر وفاقی ووٹنگ کے دور کا انعقاد کرتے ہیں۔ وفاقی ووٹنگ راؤنڈ کا مطلب ہے:
    • نوڈ کچھ بیان کو ووٹ دیتا ہے، مثال کے طور پر، "میں V کی قدر تجویز کرتا ہوں"؛
    • نوڈ ساتھیوں کی آوازوں کو سنتا ہے جب تک کہ اسے "وصول" کرنے والا کوئی نہ مل جائے۔
    • نوڈ اس دعوے کے لیے "کورم" تلاش کرتا ہے۔ ایک کورم نامزد کی "تصدیق" کرتا ہے۔
  2. ایک بار جب کوئی نوڈ ایک یا زیادہ نامزد افراد کی تصدیق کر سکتا ہے، تو یہ فیڈریٹ ووٹنگ کے کئی راؤنڈز کے ذریعے "بیلٹ" کو "تیار" کرنے کی کوشش کرتا ہے۔
  3. ایک بار جب کوئی نوڈ بیلٹ کے تیار ہونے کی تصدیق کرنے کے قابل ہو جاتا ہے، تو وہ اسے فیڈریٹ ووٹنگ کے اور بھی زیادہ راؤنڈز کے ذریعے انجام دینے کی کوشش کرتا ہے۔
  4. ایک بار جب کوئی نوڈ بیلٹ کی کمٹمنٹ کی تصدیق کر سکتا ہے، تو یہ اس بیلٹ کو متفقہ نتیجہ کے طور پر استعمال کر کے اس کی قدر کو "بیرونی" کر سکتا ہے۔

ان اقدامات میں فیڈریٹڈ ووٹنگ کے متعدد راؤنڈ شامل ہیں، جو اجتماعی طور پر ایک SCP راؤنڈ تشکیل دیتے ہیں۔ آئیے اس پر ایک قریبی نظر ڈالیں کہ ہر قدم پر کیا ہوتا ہے۔

فیڈریٹ ووٹنگ

فیڈریٹ ووٹنگ اس بات کا تعین کرنے کا طریقہ کار ہے کہ آیا نیٹ ورک کسی تجویز پر متفق ہو سکتا ہے۔ ووٹنگ راؤنڈ میں، ہر نوڈ کو ممکنہ طور پر کئی ممکنہ اقدار میں سے ایک کا انتخاب کرنا چاہیے۔ یہ اس وقت تک نہیں کر سکتا جب تک کہ اسے یقین نہ ہو کہ نیٹ ورک میں موجود دیگر نوڈس مختلف نتائج کا انتخاب نہیں کریں گے۔ اس بات کو یقینی بنانے کے لیے، نوڈس آگے پیچھے پیغامات کا تبادلہ کرتے ہیں تاکہ ہر کوئی اس بات کی تصدیقکہ کورم گنتی قبول کرتا ہے اسی فیصلہ. اس حصے کا باقی حصہ اس جملے میں موجود شرائط کی وضاحت کرتا ہے اور یہ کہ پورا طریقہ کار کیسے ہوتا ہے۔

کورم اور کورم سلائسس

آئیے کورم کی تعریف کرتے ہوئے شروع کرتے ہیں۔ جیسا کہ ہم نے اوپر بات کی ہے، متحرک رکنیت کے ساتھ ایک وکندریقرت نیٹ ورک میں، نوڈس کی تعداد پہلے سے جاننا ناممکن ہے اور اس لیے اکثریت کے لیے کتنے کی ضرورت ہے۔ فیڈریٹڈ ووٹنگ ایک نیا آئیڈیا متعارف کروا کر اس مسئلے کو حل کرتی ہے۔ کورم کٹ گیا (کورم سلائس): ساتھیوں کا ایک چھوٹا سا مجموعہ جس پر ایک نوڈ ووٹنگ کی حیثیت کی معلومات کو باقی نیٹ ورک تک پہنچانے کے لیے بھروسہ کرتا ہے۔ ہر نوڈ اپنے کورم سلائس کی وضاحت کرتا ہے (جس میں سے یہ ڈی فیکٹو ممبر بن جاتا ہے)۔

کورم کی تشکیل کورم کٹوتی سے شروع ہوتی ہے۔ ہر نوڈ کے لیے، اس کے کٹے ہوئے نوڈس شامل کیے جاتے ہیں۔ پھر سلائس کی شرائط شامل کی جاتی ہیں۔ یہ نوڈس اور اسی طرح. جیسا کہ آپ جاری رکھیں گے، وہاں زیادہ سے زیادہ نوڈس ہیں جنہیں آپ شامل نہیں کر سکتے کیونکہ وہ پہلے ہی سلائس میں شامل ہیں۔ جب شامل کرنے کے لیے مزید نئے نوڈس نہیں ہوتے ہیں تو یہ عمل رک جاتا ہے: ہم نے ابتدائی نوڈ کے کورم سلائس کے "ٹرانزیٹو کلوزر" کے ذریعے ایک کورم تشکیل دیا ہے۔

تارکیی اتفاق رائے پروٹوکول کو سمجھنا
دیے گئے نوڈ سے کورم معلوم کرنے کے لیے...

تارکیی اتفاق رائے پروٹوکول کو سمجھنا
... اس کے ٹکڑوں کے اراکین کو شامل کریں...

تارکیی اتفاق رائے پروٹوکول کو سمجھنا
پھر ہم ان نوڈس کے سلائس ممبرز کو شامل کرتے ہیں۔

تارکیی اتفاق رائے پروٹوکول کو سمجھنا
ہم اس وقت تک جاری رکھیں گے جب تک کہ شامل کرنے کے لیے کوئی نوڈ باقی نہ رہے۔

تارکیی اتفاق رائے پروٹوکول کو سمجھنا

تارکیی اتفاق رائے پروٹوکول کو سمجھنا
شامل کرنے کے لیے کوئی نوڈس باقی نہیں ہیں۔ یہ ایک کورم ہے۔

درحقیقت، ہر نوڈ ایک سے زیادہ ٹکڑوں میں ظاہر ہو سکتا ہے۔ کورم بنانے کے لیے، صرف ایک سلائس کو منتخب کریں اور اراکین کو شامل کریں۔ پھر ہر ممبر کے لیے کوئی بھی سلائس منتخب کریں اور ممبرز کو شامل کریں۔ اس کے کٹ اور اسی طرح. اس کا مطلب ہے کہ ہر نوڈ بہت سے ممکنہ کورم کا ممبر ہے۔

تارکیی اتفاق رائے پروٹوکول کو سمجھنا
ہر قدم پر صرف ایک کورم سلائس منتخب کریں۔

تارکیی اتفاق رائے پروٹوکول کو سمجھنا

تارکیی اتفاق رائے پروٹوکول کو سمجھنا

تارکیی اتفاق رائے پروٹوکول کو سمجھنا
ایک ممکنہ کورم۔ یا کوئی متبادل...

تارکیی اتفاق رائے پروٹوکول کو سمجھنا
...دیگر سلائسیں منتخب کریں...

تارکیی اتفاق رائے پروٹوکول کو سمجھنا

تارکیی اتفاق رائے پروٹوکول کو سمجھنا
…(جب ممکن ہو)…

تارکیی اتفاق رائے پروٹوکول کو سمجھنا
... ایک اور کورم بناتا ہے۔

ایک نوڈ کو کیسے پتہ چلے گا کہ دوسرے نوڈس کن سلائسوں میں ہیں؟ اسی طرح جیسے دوسرے نوڈس کے بارے میں دیگر معلومات: ان ٹرانسمیشنز سے جو ہر نوڈ نیٹ ورک پر نشر کرتا ہے جب اس کی ووٹنگ کی حالت بدل جاتی ہے۔ ہر براڈکاسٹ میں بھیجنے والے نوڈ کے سلائسز کے بارے میں معلومات شامل ہوتی ہیں۔ ایس سی پی کے وائٹ پیپر میں مواصلاتی طریقہ کار کی وضاحت نہیں کی گئی ہے۔ نفاذ عام طور پر استعمال کرتے ہیں۔ گپ شپ پروٹوکول پورے نیٹ ورک میں پیغامات کی نشریات کی ضمانت کے لیے۔

یاد رکھیں کہ معاہدوں کے غیر وفاقی بازنطینی نظام میں، کورم کو تمام نوڈس کی اکثریت کے طور پر بیان کیا جاتا ہے۔ بازنطینی معاہدے کے نظام کو سوال کے نقطہ نظر سے ڈیزائن کیا گیا ہے: نظام کتنے بے ایمانی کو برداشت کر سکتا ہے؟ F ناکامیوں سے بچنے کے لیے بنائے گئے N نوڈس کے نظام میں، ایک نوڈ کو N−f ساتھیوں سے فیڈ بیک حاصل کر کے پیشرفت کرنے کے قابل ہونا چاہیے کیونکہ ان میں سے f کم ہو سکتا ہے۔ لیکن N−f ساتھیوں کی طرف سے جواب موصول ہونے کے بعد، ہم فرض کر سکتے ہیں کہ تمام f ساتھی (جن سے نوڈ کو جواب نہیں ملا) درحقیقت ایماندار ہیں۔ اس طرح، N−f ساتھیوں میں سے f (جن سے جواب موصول ہوا) بدنیتی پر مبنی ہیں۔ نوڈس کے ایک ہی اتفاق رائے پر آنے کے لیے، باقی نوڈس کی اکثریت کا ایماندار ہونا ضروری ہے، یعنی ہمیں N−f کا 2f یا N > 3f سے بڑا ہونا چاہیے۔ لہذا عام طور پر f ناکامیوں سے بچنے کے لیے بنائے گئے سسٹم میں کل N=3f+1 نوڈس اور 2f+1 کا کورم سائز ہوگا۔ ایک بار جب کوئی تجویز کورم کی حد سے گزر جاتی ہے، باقی نیٹ ورک کو یقین ہو جاتا ہے کہ کوئی بھی مقابلہ کرنے والی تجاویز ناکام ہو جائیں گی۔ اس طرح نیٹ ورک نتیجہ میں بدل جاتا ہے۔

لیکن ایک وفاقی بازنطینی معاہدے کے نظام میں، نہ صرف اکثریت نہیں ہو سکتی (کیونکہ نیٹ ورک کے کل سائز کو کوئی نہیں جانتا)، بلکہ اکثریت کا تصور بالکل بیکار ہے! اگر سسٹم میں رکنیت کھلی ہے، تو کوئی شخص صرف ایک نام نہاد Sybil حملہ کر کے اکثریت حاصل کر سکتا ہے: متعدد نوڈس کے نیٹ ورک میں بار بار شامل ہو کر۔ تو عبوری سلائس بندش کو کیوں کہا جا سکتا ہے۔ کورم، اور یہ مقابلہ کرنے والی تجاویز کو کیسے دبانے کے قابل ہے؟

تکنیکی طور پر، کوئی راستہ نہیں! چھ نوڈس کے نیٹ ورک کا تصور کریں، جہاں دو ٹرپلٹس ایک دوسرے کے کورم سلائسز میں الگ تھلگ ہیں۔ پہلا ذیلی گروپ ایسا فیصلہ کر سکتا ہے جس کے بارے میں دوسرا کبھی نہیں سنے گا، اور اس کے برعکس۔ اس نیٹ ورک کے لیے اتفاق رائے تک پہنچنے کا کوئی راستہ نہیں ہے (سوائے اتفاق کے)۔

لہذا، SCP کا تقاضا ہے کہ فیڈریٹ ووٹنگ کے لیے (اور کاغذ کے اہم نظریات کو لاگو کرنے کے لیے)، نیٹ ورک کے پاس ایک خاصیت ہونی چاہیے جسے کورم کی تقطیع. اس خاصیت والے نیٹ ورک میں، کوئی بھی دو کورم جو بنائے جا سکتے ہیں ہمیشہ کم از کم ایک نوڈ میں اوورلیپ ہوتے ہیں۔ نیٹ ورک کے مروجہ جذبات کا تعین کرنے کے لیے، یہ اتنا ہی اچھا ہے جتنا کہ اکثریت ہونا۔ بدیہی طور پر، اس کا مطلب یہ ہے کہ اگر کوئی کورم سٹیٹمنٹ X سے اتفاق کرتا ہے، تو کوئی دوسرا کورم کبھی بھی کسی اور چیز پر متفق نہیں ہو سکتا، کیونکہ اس میں لازمی طور پر پہلے کورم سے کچھ نوڈ شامل ہو گا جس نے پہلے ہی X کو ووٹ دیا ہے۔

تارکیی اتفاق رائے پروٹوکول کو سمجھنا
اگر نیٹ ورک میں کورم کا ایک تقطیع ہے...

تارکیی اتفاق رائے پروٹوکول کو سمجھنا
پھر کوئی بھی دو کورم آپ بنا سکتے ہیں...

تارکیی اتفاق رائے پروٹوکول کو سمجھنا
...ہمیشہ ایک دوسرے کو کاٹتا رہے گا۔

تارکیی اتفاق رائے پروٹوکول کو سمجھنا

تارکیی اتفاق رائے پروٹوکول کو سمجھنا

(یقیناً، اوور لیپنگ نوڈز بازنطینی جھوٹ یا بصورت دیگر خراب ثابت ہو سکتے ہیں۔ اس صورت میں، کورم کی تقطیع نیٹ ورک کو متفق کرنے میں بالکل مدد نہیں کرتی۔ اس وجہ سے، SCP وائٹ پیپر میں بہت سے نتائج پر مبنی ہیں۔ واضح مفروضے، جیسے کہ نیٹ ورک کورم کراسنگ میں کیا بچا ہے۔ خراب نوڈس کو ہٹانے کے بعد بھی. سادگی کے لیے، آئیے ان مفروضوں کو چھوڑ دیں۔ مضمر باقی مضمون میں)۔

یہ توقع کرنا غیر معقول معلوم ہوتا ہے کہ آزاد نوڈس کے نیٹ ورک میں قابل اعتماد کورم کراسنگ ممکن ہے۔ لیکن ایسا ہونے کی دو وجوہات ہیں۔

پہلی وجہ خود انٹرنیٹ کا وجود ہے۔ انٹرسیکٹنگ کورم کے ساتھ آزاد نوڈس کے نیٹ ورک کی ایک بہترین مثال انٹرنیٹ ہے۔ انٹرنیٹ پر زیادہ تر نوڈس صرف چند دوسرے مقامی نوڈس سے جڑتے ہیں، لیکن یہ چھوٹے سیٹ اتنے اوورلیپ ہوتے ہیں کہ ہر نوڈ کو کسی نہ کسی راستے پر ہر دوسرے نوڈ سے پہنچایا جا سکتا ہے۔

دوسری وجہ اسٹیلر پیمنٹ نیٹ ورک (SCP کا سب سے عام استعمال) کے لیے مخصوص ہے۔ اسٹیلر نیٹ ورک پر ہر اثاثہ کا ایک جاری کنندہ ہوتا ہے، اور اسٹیلر کے رہنما خطوط ہر جاری کنندہ سے مطالبہ کرتے ہیں کہ وہ چھٹکارے کی درخواستوں پر کارروائی کرنے کے لیے نیٹ ورک پر ایک یا زیادہ نوڈس نامزد کرے۔ یہ آپ کے بہترین مفاد میں ہے کہ آپ ان نوڈس کو براہ راست یا بالواسطہ طور پر ہر اثاثہ کے لیے کورم سلائسز میں شامل کریں جس میں آپ کی دلچسپی ہے۔ دیئے گئے اثاثے میں دلچسپی رکھنے والے تمام نوڈس کے کورم پھر کم از کم ان چھٹکارے کے نوڈس پر اوورلیپ ہو جائیں گے۔ متعدد اثاثوں میں دلچسپی رکھنے والے نوڈس متعلقہ جاری کنندگان کے تمام چھٹکارے کے نوڈس کو ان کے کورم سلائسز میں شامل کریں گے، اور وہ تمام اثاثوں کو ایک ساتھ جمع کرنے کی کوشش کریں گے۔ اس کے علاوہ، کوئی بھی اثاثہ جو اس طرح سے نیٹ ورک پر دوسروں سے منسلک نہیں ہے، اور منسلک نہیں ہونا چاہئے - یہ اس لیے ڈیزائن کیا گیا ہے کہ اس نیٹ ورک کے لیے کوئی کورم اوورلیپ نہ ہو (مثال کے طور پر، ڈالر زون کے بینک بعض اوقات یورو زون کے بینکوں اور پیسو زون کے بینکوں کے ساتھ تجارت کرنا چاہتے ہیں، اس لیے وہ ایک ہی نیٹ ورک پر ہیں، لیکن کوئی بھی نہیں ان میں سے بیس بال کارڈ بیچنے والے بچوں کے الگ نیٹ ورک کی پرواہ کرتے ہیں)۔

ظاہر کی، امید کورم کراسنگ نہیں ہے۔ ضمانت. بازنطینی معاہدے کے دیگر نظام اپنی زیادہ تر پیچیدگی کورم کی ضمانت کے ذمہ دار ہیں۔ ایس سی پی کی ایک اہم اختراع یہ ہے کہ یہ کورم بنانے کی ذمہ داری کو متفقہ الگورتھم سے ہی ہٹاتا ہے اور اسے درخواست کی سطح پر لاتا ہے۔ اس طرح، اگرچہ فیڈریٹڈ ووٹنگ کسی بھی مسئلے پر ووٹ دینے کے لیے کافی عام ہے، لیکن اس کا اعتبار درحقیقت تنقیدی طور پر ان معانی کے وسیع معنی پر منحصر ہے۔ کچھ فرضی استعمال دوسروں کی طرح اچھی طرح سے جڑے ہوئے نیٹ ورکس بنانے کے لیے سازگار نہیں ہو سکتے ہیں۔

ووٹنگ، قبولیت اور تصدیق

فیڈریٹڈ ووٹنگ راؤنڈ میں، ایک نوڈ اختیاری طور پر کچھ قدر V کے لیے ووٹ دینا شروع کرتا ہے۔ اس کا مطلب ہے نیٹ ورک پر ایک پیغام نشر کرنا: "میں نوڈ N ہوں، میرے کورم کے ٹکڑے Q ہیں، اور میں V کو ووٹ دے رہا ہوں۔" جب کوئی نوڈ اس طرح ووٹ دیتا ہے، تو یہ وعدہ کرتا ہے کہ اس نے کبھی V کے خلاف ووٹ نہیں دیا ہے اور نہ کبھی کرے گا۔

پیئر ٹو پیئر نشریات میں، ہر نوڈ دیکھتا ہے کہ دوسرے کیسے ووٹ دیتے ہیں۔ ایک بار جب کوئی نوڈ ان پیغامات میں سے کافی مقدار میں جمع کر لیتا ہے، تو یہ کورم سلائسز کو ٹریک کر سکتا ہے اور کورم تلاش کرنے کی کوشش کر سکتا ہے۔ اگر وہ ساتھیوں کا ایک کورم دیکھتا ہے جو V کو بھی ووٹ دیتے ہیں، تو وہ آگے بڑھ سکتا ہے۔ گود لینے V اور اس نئے پیغام کو نیٹ ورک پر نشر کریں: "میں نوڈ N ہوں، میرے کورم کے ٹکڑے Q ہیں، اور میں V کو قبول کرتا ہوں۔" قبولیت سادہ ووٹنگ سے زیادہ مضبوط ضمانت فراہم کرتی ہے۔ جب کوئی نوڈ V کو ووٹ دیتا ہے، تو یہ کبھی دوسرے اختیارات کو ووٹ نہیں دے سکتا۔ لیکن اگر کوئی نوڈ V کو قبول کرتا ہے، تو نیٹ ورک پر کوئی نوڈ کبھی دوسرے آپشن کو قبول نہیں کرے گا (ایس سی پی وائٹ پیپر میں تھیوریم 8 اس بات کو ثابت کرتا ہے)۔

یقیناً، اس بات کا بہت زیادہ امکان ہے کہ فوری طور پر نوڈس کا کورم نہیں ہوگا جو V سے متفق ہو۔ دوسرے نوڈس دیگر اقدار کو ووٹ دے سکتے ہیں۔ لیکن نوڈ کے لیے سادہ ووٹنگ سے قبولیت کی طرف جانے کا ایک اور طریقہ ہے۔ N W کے لیے ایک مختلف قدر قبول کر سکتا ہے، چاہے اس نے اسے ووٹ نہ دیا ہو، اور چاہے اسے اس کے لیے کورم نظر نہ آئے۔ اپنا ووٹ تبدیل کرنے کا فیصلہ کرنے کے لیے، بس دیکھیں بلاکنگ سیٹ وہ نوڈز جنہوں نے ڈبلیو کو قبول کیا ہے۔ بلاکنگ سیٹ ہر کورم سلائسس میں سے ایک نوڈ ہے N۔ جیسا کہ نام سے ظاہر ہے، یہ کر سکتا ہے بلاک کوئی اور معنی؟ اگر اس طرح کے سیٹ کے تمام نوڈس W کو قبول کرتے ہیں، تو (Theorem 8 کے مطابق) کبھی بھی ایسا کورم بنانا ممکن نہیں ہوگا جو ایک مختلف قدر لے، اور اس لیے N کے لیے W کو قبول کرنا بھی محفوظ ہے۔

تارکیی اتفاق رائے پروٹوکول کو سمجھنا
نوڈ N تین کورم سلائسز کے ساتھ۔

تارکیی اتفاق رائے پروٹوکول کو سمجھنا
BDF N کے لیے ایک بلاکنگ سیٹ ہے: اس میں N کے ہر سلائس سے ایک نوڈ شامل ہوتا ہے۔

تارکیی اتفاق رائے پروٹوکول کو سمجھنا
BE بھی N کے لیے بلاکنگ سیٹ ہے کیونکہ E N کے دو سلائسز میں ظاہر ہوتا ہے۔

لیکن بلاکنگ سیٹ کورم نہیں ہے۔ نوڈ N کو مطلوبہ قیمت قبول کرنے کے لیے دھوکہ دینا بہت آسان ہو گا اگر N کے ہر ایک سلائس میں صرف ایک نوڈ کو ہیک کرنا کافی ہے۔ لہذا، قدر کو قبول کرنا ووٹنگ کا اختتام نہیں ہے۔ اس کے بجائے، N کو قدر کی تصدیق کرنی چاہیے، یعنی، اسے قبول کرنے والے نوڈس کا کورم دیکھیں۔ اگر یہ اس حد تک پہنچ جاتا ہے، تو، جیسا کہ SCP وائٹ پیپر ثابت کرتا ہے (تھیورم 11 میں)، باقی نیٹ ورک بھی آخر کار اسی قدر کی تصدیق کرے گا، لہذا N نتیجہ کے طور پر ایک خاص قدر کے ساتھ فیڈریٹ ووٹ کو ختم کر دے گا۔

تارکیی اتفاق رائے پروٹوکول کو سمجھنا
فیڈریٹ ووٹنگ۔

ووٹنگ، قبولیت اور تصدیق کا عمل فیڈریٹ ووٹنگ کا ایک مکمل دور تشکیل دیتا ہے۔ تارکیی اتفاق رائے پروٹوکول ان میں سے بہت سے راؤنڈز کو یکجا کرتا ہے تاکہ ایک مکمل اتفاق رائے کا نظام بنایا جا سکے۔

تارکیی اتفاق رائے پروٹوکول

متفقہ نظام کی دو اہم ترین خصوصیات ہیں - حفاظت и بقا. متفقہ الگورتھم "محفوظ" ہے اگر یہ مختلف شرکاء کو کبھی بھی مختلف نتائج نہیں دے سکتا (باب کی تاریخ کی نقل کبھی بھی کیرول سے متصادم نہیں ہوگی)۔ "Livability" کا مطلب ہے کہ الگورتھم ہمیشہ نتیجہ پیدا کرے گا، یعنی یہ پھنس نہیں جائے گا۔

وفاقی ووٹنگ کا طریقہ کار بیان کیا۔ محفوظ اس معنی میں کہ اگر کوئی نوڈ V کی قدر کی تصدیق کرتا ہے تو کوئی دوسرا نوڈ دوسری قدر کی تصدیق نہیں کرے گا۔ لیکن "دوسرے معنی کی تصدیق نہیں کرے گا" کا مطلب یہ نہیں ہے کہ یہ ضروری طور پر کسی چیز کی تصدیق کرے گا۔ شرکاء اتنی مختلف اقدار پر ووٹ دے سکتے ہیں کہ کچھ بھی قبولیت کی حد تک نہیں پہنچے گا۔ اس کا مطلب ہے کہ وفاقی ووٹنگ میں نہیں ہے۔ بقا.

اسٹیلر اتفاق رائے پروٹوکول فیڈریٹڈ ووٹنگ کو اس طرح استعمال کرتا ہے جو سیکورٹی اور بقا دونوں کو یقینی بناتا ہے۔ (SCP کی حفاظت اور بقا کی ضمانتوں کی ایک نظریاتی حد ہوتی ہے۔ ڈیزائن ایک بہت ہی مضبوط حفاظتی ضمانت کا انتخاب کرتا ہے، جس میں بقا کی ایک چھوٹی سی تخفیف کی قربانی دی جاتی ہے، لیکن کافی وقت دیا جاتا ہے، اتفاق رائے تک پہنچنے کا بہت زیادہ امکان ہوتا ہے۔) مختصراً، خیال یہ ہے کہ متعدد اقدار پر متعدد فیڈریٹڈ ووٹ حاصل کیے جائیں جب تک کہ ان میں سے کوئی ایک ذیل میں بیان کردہ SCP ووٹنگ کے تمام مراحل سے گزر نہ جائے۔

وہ اقدار جن پر SCP اتفاق رائے چاہتا ہے وہ لین دین کی تاریخ یا دوپہر کے کھانے کا آرڈر یا کچھ اور ہو سکتا ہے، لیکن یہ نوٹ کرنا ضروری ہے کہ یہ وہ اقدار نہیں ہیں جو قبول یا تصدیق شدہ ہیں۔ اس کے بجائے، وفاقی ووٹنگ کے مطابق ہوتا ہے ان اقدار کے بارے میں بیانات.

وفاقی ووٹنگ کے پہلے راؤنڈ کو منعقد کیا جائے گا نامزدگی کا مرحلہ (نامزدگی کا مرحلہ)، "میں V نامزد کرتا ہوں" جیسے بیانات کے سیٹ پر، شاید V کی بہت سی مختلف اقدار کے لیے۔ نامزدگی کا مقصد ایک یا زیادہ بیانات کو تلاش کرنا ہے جو قبولیت اور تصدیق سے گزرتے ہیں۔

قابل تصدیق امیدواروں کو تلاش کرنے کے بعد، SCP ووٹنگ کے مرحلے کی طرف بڑھتا ہے، جہاں مقصد ایک مخصوص امیدوار کو تلاش کرنا ہے۔ بلیٹن (یعنی، مجوزہ قیمت کے لیے ایک کنٹینر) اور ایک کورم جو اعلان کر سکتا ہے۔ عزم اس کے لیے (عزم)۔ اگر کورم ایک بیلٹ کا ارتکاب کرتا ہے، تو اس کی قدر کو اتفاق رائے کے طور پر قبول کیا جاتا ہے۔ لیکن اس سے پہلے کہ کوئی نوڈ بیلٹ کمٹ پر ووٹ دے، اسے پہلے تصدیق کرنی ہوگی۔ منسوخی کم کاؤنٹر ویلیو والے تمام بیلٹ۔ یہ اقدامات—بیلٹ کو منسوخ کرنے کے لیے کسی ایسے کو تلاش کرنے کے لیے جس کا ارتکاب کیا جا سکتا ہے۔

درج ذیل حصے نامزدگی اور ووٹنگ کو مزید تفصیل سے بیان کرتے ہیں۔

نامزدگی

نامزدگی کے مرحلے کے آغاز میں، ہر نوڈ خود بخود V کے لیے ایک قدر کا انتخاب کر سکتا ہے اور "میں V کو نامزد کرتا ہوں" کے بیان کو ووٹ دے سکتا ہے۔ اس مرحلے کا مقصد فیڈریٹ ووٹ کے ذریعے کچھ قدر کی نامزدگی کی تصدیق کرنا ہے۔

شاید کافی نوڈس کافی مختلف تجاویز پر ووٹ دیتے ہیں کہ کوئی نامزدگی قبولیت کی حد تک نہیں پہنچ سکتی۔ لہذا، اپنے نامزدگی کے ووٹوں کو نشر کرنے کے علاوہ، نوڈس اپنے ساتھیوں کی نامزدگیوں کی "عکاس" کرتے ہیں۔ ایکو کا مطلب ہے کہ اگر کوئی نوڈ نامزدگی V کے لیے ووٹ دیتا ہے، لیکن کسی پڑوسی کی طرف سے نامزدگی کے لیے ووٹ دینے کا پیغام دیکھتا ہے، تو یہ اب V اور W دونوں کو ووٹ دے گا۔ مختلف نامزدگی۔ SCP میں ان ووٹوں کو ریگولیٹ کرنے کا ایک طریقہ کار شامل ہے۔ مختصراً، نوڈ کے نقطہ نظر سے ہم مرتبہ کی "ترجیح" کا تعین کرنے کا ایک فارمولا ہے، اور صرف اعلیٰ ترجیحی نوڈس کے ووٹوں کی عکاسی ہوتی ہے۔ نامزدگی جتنی لمبی ہوگی لیتا ہے، حد نچلی ہوتی ہے، لہذا نوڈ ان ہم عمروں کے سیٹ کو پھیلاتا ہے جن کے ووٹوں کی عکاسی ہوتی ہے۔ ترجیحی فارمولے میں سلاٹ نمبر اس کے ان پٹ میں سے ایک کے طور پر شامل ہوتا ہے، اس لیے ایک سلاٹ کے لیے ایک اعلی ترجیحی ہم مرتبہ کم ترجیحی ہم مرتبہ ہو سکتا ہے دوسرا، اور اس کے برعکس)۔

تصوراتی طور پر، نامزدگی متوازی ہے، V اور W دونوں الگ الگ وفاقی ووٹ ہیں، ہر ایک انفرادی طور پر قبولیت یا تصدیق حاصل کرنے کے قابل ہے۔ عملی طور پر، SCP پروٹوکول پیغامات ان انفرادی ووٹوں کو ایک ساتھ پیک کرتے ہیں۔

اگرچہ V کی نامزدگی کے لیے ووٹ دینا V کی نامزدگی کے خلاف کبھی ووٹ نہ دینے کا وعدہ ہے، لیکن یہ درخواست کی سطح پر ہے - اس معاملے میں SCP - کہ یہ طے کیا جاتا ہے کہ "خلاف" کا مطلب کیا ہے۔ ایس سی پی کو کوئی ایسا بیان نظر نہیں آتا جو "میں X کو نامزد کرتا ہوں" ووٹ سے متصادم ہو، یعنی کوئی "میں X کو نامزد کرنے کے خلاف ہوں" پیغام نہیں ہے، لہذا نوڈ کسی بھی قدر کو نامزد کرنے کے لیے ووٹ دے سکتا ہے۔ ان میں سے بہت سے نامزدگیاں کہیں نہیں جائیں گی، لیکن آخر کار نوڈ ایک یا زیادہ اقدار کو قبول یا تصدیق کرنے کے قابل ہو جائے گا۔ ایک بار جب کسی نامزد کی تصدیق ہو جاتی ہے تو وہ بن جاتا ہے۔ امیدوار.

تارکیی اتفاق رائے پروٹوکول کو سمجھنا
وفاقی ووٹنگ کا استعمال کرتے ہوئے SCP نامزدگی۔ ساتھیوں کے ذریعہ بہت ساری "B" قدریں پیش کی جاسکتی ہیں اور نوڈ کے ذریعہ "انعکاس" ہوسکتی ہیں۔

نامزدگیوں کے نتیجے میں متعدد تصدیق شدہ امیدوار ہوسکتے ہیں۔ لہذا، SCP امیدواروں کو یکجا کرنے کا کچھ طریقہ فراہم کرنے کے لیے درخواست کی پرت کی ضرورت ہے۔ جامع (جامع) شمولیت کا طریقہ کچھ بھی ہو سکتا ہے۔ اہم بات یہ ہے کہ اگر یہ طریقہ متعین ہے، تو ہر نوڈ ایک ہی امیدواروں کو اکٹھا کرے گا۔ دوپہر کے کھانے کے ووٹنگ سسٹم میں، "اتحاد" کا مطلب صرف دو امیدواروں میں سے ایک کو مسترد کرنا ہو سکتا ہے۔ (لیکن تعییناتی انداز میں: ہر نوڈ کو دوبارہ ترتیب دینے کے لیے ایک ہی قدر کا انتخاب کرنا چاہیے۔ مثال کے طور پر، حروف تہجی کی ترتیب میں پہلے کا انتخاب)۔ اسٹیلر ادائیگی کے نیٹ ورک میں، جہاں لین دین کی تاریخ پر ووٹ دیا جاتا ہے، دو مجوزہ نامزد افراد کو ضم کرنے میں ان کے لین دین اور ان کے دو ٹائم اسٹیمپ کے تازہ ترین کو ضم کرنا شامل ہے۔

ایس سی پی وائٹ پیپر ثابت کرتا ہے (تھیورم 12) کہ توسیعی مرحلے کے اختتام تک، نیٹ ورک بالآخر ایک ہی مرکب میں بدل جاتا ہے۔ لیکن ایک مسئلہ ہے: فیڈریٹ ووٹنگ ایک غیر مطابقت پذیر پروٹوکول ہے (جیسے SCP)۔ دوسرے لفظوں میں، نوڈس وقت کے حساب سے مربوط نہیں ہوتے، بلکہ صرف ان پیغامات سے جو وہ بھیجتے ہیں۔ نوڈ کے نقطہ نظر سے، یہ واضح نہیں ہے کہ کب ختم توسیع کا مرحلہ اور اگرچہ تمام نوڈس بالآخر ایک ہی کمپوزٹ پر پہنچیں گے، لیکن وہ راستے میں مختلف راستے اختیار کر سکتے ہیں، راستے میں مختلف جامع امیدوار پیدا کر سکتے ہیں، اور یہ کبھی نہیں بتا سکتے کہ کون سا حتمی ہے۔

لیکن یہ نارمل ہے۔ نامزدگی صرف تیاری ہے۔ اہم بات یہ ہے کہ اتفاق رائے حاصل کرنے کے لیے امیدواروں کی تعداد کو محدود کیا جائے، جو اس عمل میں ہوتا ہے۔ دفتر کے لئے دوڑنا (بیلٹنگ)

چل رہا ہے۔

بلیٹن ایک جوڑا ہے۔ ، جہاں کاؤنٹر ایک عدد ہے جو 1 سے شروع ہوتا ہے اور قدر نامزدگی کے مرحلے سے امیدوار ہے۔ یہ نوڈ کا اپنا امیدوار یا پڑوسی نوڈ کا امیدوار ہوسکتا ہے جسے اس نوڈ نے قبول کیا ہو۔ موٹے طور پر، ایک بیلٹ میں نیٹ ورک کو مجبور کرنے کی بار بار کوششیں شامل ہوتی ہیں کہ وہ بیلٹ کے بیانات پر ممکنہ طور پر بہت سے فیڈریٹ ووٹ رکھ کر کچھ بیلٹ پر کسی امیدوار پر اتفاق رائے تک پہنچ سکے۔ بیلٹ پر کاؤنٹرز کی جانے والی کوششوں پر نظر رکھتے ہیں، اور زیادہ گنتی والے بیلٹ کو کم گنتی والے بیلٹ پر ترجیح دی جاتی ہے۔ اگر نیوز لیٹر پھنس جاتا ہے، ایک نیا ووٹ شروع ہوتا ہے، اب بیلٹ پر .

تمیز کرنا ضروری ہے۔ اقدار (مثال کے طور پر، دوپہر کے کھانے کا آرڈر کیا ہونا چاہیے: پیزا یا سلاد)، خبرنامے (کاؤنٹر ویلیو جوڑی) اور بیانات بیلٹ کے بارے میں SCP راؤنڈ میں وفاقی ووٹنگ کے کئی راؤنڈ شامل ہیں، خاص طور پر درج ذیل بیانات پر:

  • "میں بیلٹ بی کا ارتکاب کرنے کے لیے تیار ہوں" اور
  • "میں بیلٹ بی کے عزم کا اعلان کرتا ہوں"

دیئے گئے نوڈ کے نقطہ نظر سے، اتفاق رائے اس وقت پہنچ جاتا ہے جب اسے ایک بیلٹ B مل جاتا ہے جس کے لیے وہ اس بیان کی تصدیق کر سکتا ہے (یعنی کورم کو قبول کرنے والا تلاش کریں) بیان "میں بیلٹ B کا عہد کرتا ہوں۔" اس مقام سے، B میں متعین قدر پر عمل کرنا محفوظ ہے - مثال کے طور پر، دوپہر کے کھانے کے لیے یہ آرڈر دینا۔ یہ کہا جاتا ہے خارجی معنی ایک بار بیلٹ کی منظوری کی تصدیق ہو جانے کے بعد، ایک نوڈ اس بات کا یقین کر سکتا ہے کہ کسی دوسرے نوڈ نے اسی قدر کو خارج کیا ہے یا مستقبل میں ایسا کرے گا۔

اگرچہ بہت سے فیڈریٹڈ ووٹ تصوراتی طور پر بہت سے مختلف بیلٹس کے دعووں پر کیے جاتے ہیں، لیکن وہ اتنے پیغامات کا تبادلہ نہیں کرتے ہیں کیونکہ ہر پیغام میں متعدد بیلٹ شامل ہوتے ہیں۔ اس طرح ایک پیغام بہت سے فیڈریٹڈ ووٹوں کی حالت کو ایک ساتھ فروغ دیتا ہے، مثال کے طور پر: "میں کمٹ بیلٹس کو قبول کرتا ہوں پہلے "

اصطلاحات "تیار" اور "عزم" کا کیا مطلب ہے؟

ایک نوڈ بیلٹ کے لیے ووٹ دیتا ہے جب اسے یقین ہو کہ دوسرے نوڈ مختلف اقدار کے ساتھ بیلٹ کا ارتکاب نہیں کریں گے۔ اس بات کو قائل کرنا درخواست کی تیاری کا مقصد ہے۔ ایک ووٹ جو کہتا ہے کہ "میں بیلٹ B کرنے کے لیے تیار ہوں" یہ وعدہ ہے کہ کبھی بھی B سے چھوٹے بیلٹ کا ارتکاب نہیں کیا جائے گا، یعنی چھوٹی گنتی کے ساتھ (SCP کے لیے بیلٹ میں اقدار کو ایک خاص ترتیب میں ہونا ضروری ہے۔ اس طرح، نیوز لیٹر کم ، اگر N1

کیوں "میں بیلٹ B کرنے کے لیے تیار ہوں" کا مطلب ہے "میں وعدہ کرتا ہوں کہ کبھی بھی B سے چھوٹے بیلٹ کا ارتکاب نہیں کروں گا"؟ کیونکہ ایس سی پی اسقاط کو کمٹ کے برعکس بیان کرتا ہے۔ بیلٹ تیار کرنے کے لیے ووٹ میں کچھ دوسرے بیلٹ کو نااہل قرار دینے کے لیے ووٹ بھی شامل ہوتا ہے، اور جیسا کہ ہم نے پہلے بات کی ہے، ایک چیز کے لیے ووٹ دینا ایک وعدہ ہے کہ اس کے خلاف کبھی ووٹ نہیں دیا جائے گا۔

کسی کمٹ کو نشر کرنے سے پہلے، نوڈ کو پہلے ایک بلیٹن تلاش کرنا چاہیے جس کی وہ تیار ہونے کی تصدیق کر سکے۔ دوسرے لفظوں میں، یہ "میں بیلٹ B کرنے کے لیے تیار ہوں" کے عنوان پر ایک فیڈریٹ ووٹ کرتا ہے، ممکنہ طور پر بہت سے مختلف بیلٹس پر، جب تک کہ اسے کورم کو قبول کرنے والا کوئی نہ مل جائے۔

ووٹ کی تیاری کے لیے بیلٹ کہاں سے آتے ہیں؟ سب سے پہلے، نوڈ <1,C> کے لیے ووٹ دینے کی تیاریوں کو نشر کرتا ہے، جہاں C نامزدگی کے مرحلے پر تیار کردہ جامع امیدوار ہے۔ تاہم، ووٹنگ کی تیاری شروع ہونے کے بعد بھی، نامزدگیوں کے نتیجے میں اضافی امیدوار نئے بیلٹ بنتے دکھائی دے سکتے ہیں۔ دریں اثنا، ساتھیوں کے پاس مختلف امیدوار ہو سکتے ہیں، اور وہ ایک بلاکنگ سیٹ بنا سکتے ہیں جو "میں B2 بیلٹ دینے کے لیے تیار ہوں" کو قبول کرتا ہے، جو نوڈ کو بھی اسے قبول کرنے پر راضی کرے گا۔ آخر میں، ایک ٹائم آؤٹ میکانزم ہے جو موجودہ بیلٹس کے پھنس جانے کی صورت میں زیادہ گنتی کے ساتھ نئے بیلٹ پر فیڈریٹڈ ووٹنگ کے نئے راؤنڈ تیار کرتا ہے۔

جیسے ہی نوڈ کو ایک بیلٹ B مل جاتا ہے جس کی وہ تیار ہونے کی تصدیق کر سکتا ہے، یہ ایک نیا پیغام نشر کرتا ہے "بیلٹ B کا عہد کریں۔" یہ ووٹ ساتھیوں کو بتاتا ہے کہ نوڈ کبھی بھی B کو نہیں چھوڑے گا۔ حقیقت میں، اگر B بیلٹ ہے۔ ، پھر "بیلٹ کا عہد کریں۔ " کا مطلب ہے ہر بیلٹ کی تیاری کے لیے ووٹ دینے کی غیر مشروط رضامندی۔ کو <∞, s>. یہ اضافی قدر دوسرے ساتھیوں کو کمٹ پیئر سے ملنے میں مدد کرتی ہے اگر وہ ابھی بھی پروٹوکول کے ابتدائی مراحل میں ہیں۔

اس مرحلے پر، یہ ایک بار پھر زور دینے کے قابل ہے کہ یہ غیر مطابقت پذیر پروٹوکول ہیں۔ صرف اس لیے کہ ایک نوڈ کسی کمٹ کے لیے ووٹ بھیجتا ہے اس کا مطلب یہ نہیں ہے کہ اس کے ساتھی بھی کرتے ہیں۔ ان میں سے کچھ اب بھی ووٹنگ کی تیاری میں بیانات پر ووٹ دے رہے ہیں، دوسروں نے پہلے ہی معنی کو خارج کر دیا ہے۔ ایس سی پی وضاحت کرتا ہے کہ کس طرح نوڈ کو ہر قسم کے پیئر میسج پر عمل کرنا چاہیے اس کے فیز سے قطع نظر۔

اگر پیغام "میں نے ایک عہد کا اعلان کیا ہے » موصول یا تصدیق نہیں کی جاسکتی ہے، یعنی پیغام کے قبول یا تصدیق ہونے کا امکان یا - یا، کسی بھی صورت میں، قیمت C کے ساتھ کوئی بیلٹ، اور کوئی دوسرا نہیں، کیونکہ نوڈ نے پہلے ہی وعدہ کیا ہے کہ وہ کبھی منسوخ نہیں کرے گا۔ . اس وقت تک جب کوئی نوڈ کسی کمٹ کے لیے ووٹ نشر کرتا ہے، یہ C یا کچھ نہیں ہوگا، اس بات پر منحصر ہے کہ اتفاق رائے کس حد تک جاتا ہے۔ تاہم، یہ ابھی تک نوڈ کے لیے C کو خارج کرنے کے لیے کافی نہیں ہے۔ کچھ بیلٹ (یا بیلٹ کی رینج) کو قبول کرنا اور پھر تصدیق کرنا ہی نوڈ کو آخر میں C کو خارجی شکل دینے کا اعتماد فراہم کرتا ہے۔

تارکیی اتفاق رائے پروٹوکول کو سمجھنا
فیڈریٹ ووٹنگ کے ذریعے SCP ووٹنگ۔ نہیں دکھایا گیا: ٹائمر کسی بھی وقت بند ہو سکتا ہے، بیلٹ پر گنتی میں اضافہ کر سکتا ہے (اور ممکنہ طور پر اضافی نامزد امیدواروں کا ایک نیا مرکب تیار کرتا ہے)۔

اور یہ سب ہے! نیٹ ورک ایک بار اتفاق رائے پر پہنچ گیا ہے، یہ بار بار کرنے کے لئے تیار ہے. اسٹیلر پیمنٹ نیٹ ورک پر، یہ تقریباً ہر 5 سیکنڈ میں ایک بار ہوتا ہے: ایک ایسا کارنامہ جس کے لیے SCP کی طرف سے ضمانت دی گئی سیکیورٹی اور بقا دونوں کی ضرورت ہوتی ہے۔

SCP اسے فیڈریٹ ووٹنگ کے متعدد راؤنڈز پر انحصار کرکے حاصل کرسکتا ہے۔ فیڈریٹڈ ووٹنگ کورم سلائسز کے تصور سے ممکن بنایا گیا ہے: ساتھیوں کے سیٹ جن پر ہر نوڈ نے اپنے (مضمون) کورم کے حصے کے طور پر اعتماد کرنے کا فیصلہ کیا ہے۔ اس ترتیب کا مطلب یہ ہے کہ کھلی رکنیت اور بازنطینی دھوکہ دہی والے نیٹ ورک میں بھی اتفاق رائے حاصل کیا جا سکتا ہے۔

مزید پڑھنا

  • اصل SCP وائٹ پیپر مل سکتا ہے۔ یہاںاور یہاں اس کے نفاذ کے لیے نردجیکرن کا مسودہ۔
  • ایس سی پی پروٹوکول کے اصل مصنف، ڈیوڈ میزیئر، اس کی وضاحت آسان (لیکن ابھی تک تکنیکی) طریقے سے کرتے ہیں۔ یہاں.
  • آپ کو اس مضمون میں "کان کنی" یا "کام کا ثبوت" کی اصطلاحات نہ ملنے پر حیرت ہوئی ہوگی۔ SCP ان طریقوں کو استعمال نہیں کرتا ہے، لیکن کچھ دوسرے متفقہ الگورتھم کرتے ہیں۔ زین ویدرسپون نے قابل رسائی لکھا متفقہ الگورتھم کا جائزہ.
  • مرحلہ وار تفصیل ایک سادہ نیٹ ورک جو SCP کے ایک مکمل دور میں اتفاق رائے تک پہنچ جاتا ہے۔
  • ایس سی پی کے نفاذ میں دلچسپی رکھنے والے قارئین کے لیے: دیکھیں C++ کوڈ، تارکیی ادائیگی کے نیٹ ورک کے ذریعہ استعمال کیا جاتا ہے، یا کوڈ پر جائیں۔، جسے میں نے SCP کی بہتر تفہیم کے لیے لکھا ہے۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں