TON: ٹیلیگرام اوپن نیٹ ورک۔ حصہ 2: بلاک چینز، شارڈنگ

TON: ٹیلیگرام اوپن نیٹ ورک۔ حصہ 2: بلاک چینز، شارڈنگ

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

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

آج ہم TON کے اہم جزو - بلاکچین کو دیکھیں گے۔

بنیادی تصورات

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

سمارٹ معاہدہ (سمارٹ معاہدہ)۔ جوہر میں، یہ ایک اکاؤنٹ کا ایک خاص معاملہ ہے، جو سمارٹ کنٹریکٹ کوڈ اور اس کے متغیرات کے ذخیرہ کے ساتھ ضمیمہ ہے۔ اگر "پرس" کی صورت میں آپ نسبتاً آسان اور پہلے سے طے شدہ اصولوں کے مطابق اس سے رقم جمع اور نکال سکتے ہیں، تو سمارٹ کنٹریکٹ کی صورت میں یہ قواعد اس کے کوڈ کی شکل میں لکھے جاتے ہیں (ایک مخصوص ٹورنگ مکمل پروگرامنگ زبان).

بلاکچین اسٹیٹ (بلاکچین کی حالت)۔ تمام اکاؤنٹس/سمارٹ معاہدوں کی ریاستوں کا سیٹ (ایک تجریدی معنوں میں، ایک ہیش ٹیبل، جہاں کیز اکاؤنٹ کے شناخت کنندہ ہیں اور اقدار اکاؤنٹس میں محفوظ کردہ ڈیٹا ہیں)۔

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

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

TON میں بلاکچین: یہ کیا ہے اور کیوں؟

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

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

TON مندرجہ بالا دونوں مسائل کو حل کرنے کا منصوبہ کیسے بناتا ہے؟

بلاکچین مواد۔ ورک چینز۔

TON: ٹیلیگرام اوپن نیٹ ورک۔ حصہ 2: بلاک چینز، شارڈنگ

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

  • بقیہ؛
  • سمارٹ کنٹریکٹ کوڈ (صرف سمارٹ کنٹریکٹس کے لیے)؛
  • سمارٹ کنٹریکٹ ڈیٹا اسٹوریج (صرف سمارٹ کنٹریکٹس کے لیے)؛
  • اعداد و شمار
  • (اختیاری) اکاؤنٹ سے منتقلی کے لیے عوامی کلید، بطور ڈیفالٹ account_id؛
  • باہر جانے والے پیغامات کی قطار (یہاں وہ وصول کنندہ کو آگے بھیجنے کے لیے درج کیے گئے ہیں)؛
  • اس اکاؤنٹ پر بھیجے گئے تازہ ترین پیغامات کی فہرست۔

جیسا کہ اوپر ذکر کیا گیا ہے، بلاکس خود لین دین پر مشتمل ہوتے ہیں - مختلف account_id اکاؤنٹس پر بھیجے گئے پیغامات۔ تاہم، account_id کے علاوہ، پیغامات میں 32 بٹ فیلڈ بھی ہوتی ہے۔ workchain_id - نام نہاد شناخت کنندہ ورک چین (ورک چین, کام کرنے والا بلاکچین)۔ یہ آپ کو مختلف کنفیگریشنز کے ساتھ کئی بلاک چینز ایک دوسرے سے آزاد رکھنے کی اجازت دیتا ہے۔ اس صورت میں، workchain_id = 0 کو ایک خاص کیس سمجھا جاتا ہے، صفر ورک چین - یہ اس میں موجود بیلنس ہے جو TON (Grams) cryptocurrency کے مساوی ہوگا۔ زیادہ تر امکان ہے کہ پہلے تو دوسری ورک چینز بالکل موجود نہیں ہوں گی۔

شارڈ چینز۔ لامحدود شارڈنگ پیراڈائم۔

لیکن بلاکچینز کی تعداد میں اضافہ وہیں نہیں رکتا۔ آئیے شارڈنگ سے نمٹتے ہیں۔ آئیے تصور کریں کہ ہر اکاؤنٹ (account_id) کو اس کا اپنا بلاک چین مختص کیا گیا ہے - اس میں اس پر آنے والے تمام پیغامات ہیں - اور اس طرح کے تمام بلاکچینز کی حالتیں الگ الگ نوڈس پر محفوظ ہیں۔

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

لہٰذا، شارڈ چینز اپنے شناخت کنندگان کے بائنری پریفکس کے ذریعے اکاؤنٹس کو یکجا کرتے ہیں: اگر شارڈ چین کا سابقہ ​​0110 ہے، تو اس میں ان نمبروں سے شروع ہونے والے تمام account_ids کے لین دین شامل ہوں گے۔ یہ shard_prefix اس کی لمبائی 0 سے 60 بٹس تک ہوسکتی ہے - اور اہم بات یہ ہے کہ یہ متحرک طور پر تبدیل ہوسکتی ہے۔

TON: ٹیلیگرام اوپن نیٹ ورک۔ حصہ 2: بلاک چینز، شارڈنگ

جیسے ہی شارڈ چینز میں سے کسی ایک کو بہت زیادہ لین دین ملنا شروع ہوتا ہے، اس پر کام کرنے والے نوڈس، پہلے سے طے شدہ اصولوں کے مطابق، اسے دو بچوں میں "تقسیم" کر دیتے ہیں - ان کے سابقے کچھ لمبے ہوں گے (اور ان میں سے ایک کے لیے یہ بٹ ہو جائے گا۔ 0 کے برابر، اور دوسرے کے لیے - 1)۔ مثال کے طور پر، shard_prefix = 0110b میں تقسیم ہو جائے گا۔ 01100b اور 01101ب۔ بدلے میں، اگر دو "پڑوسی" شارڈ چینز کافی آسانی سے محسوس کرنے لگیں (کچھ وقت کے لیے)، وہ دوبارہ ضم ہو جائیں گی۔

اس طرح، شارڈنگ "نیچے سے اوپر" کی جاتی ہے - ہم فرض کرتے ہیں کہ ہر اکاؤنٹ کا اپنا شارڈ ہوتا ہے، لیکن فی الحال وہ سابقہ ​​جات کے ذریعے "ایک ساتھ چپکائے ہوئے" ہیں۔ اس کا مطلب یہی ہے۔ لامحدود شارڈنگ پیراڈائم (لامحدود شارڈنگ پیراڈائم).

الگ سے، میں اس بات پر زور دینا چاہوں گا کہ ورک چینز صرف عملی طور پر موجود ہیں - حقیقت میں، workchain_id یہ ایک مخصوص شارڈ چین کے شناخت کنندہ کا حصہ ہے۔ رسمی اصطلاحات میں، ہر شارڈ چین کی تعریف نمبروں کے جوڑے (workchain_id, shard_prefix).

غلطی کی درستگی. عمودی بلاکچینز۔

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

TON: ٹیلیگرام اوپن نیٹ ورک۔ حصہ 2: بلاک چینز، شارڈنگ

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

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

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

ان سب پر حکمرانی کے لیے ایک بلاکچین

بلاک چینز کی مختلف اقسام کے بارے میں اوپر بہت سی معلومات درج ہیں، جنہیں خود بھی کہیں ذخیرہ کیا جانا چاہیے۔ خاص طور پر، ہم مندرجہ ذیل معلومات کے بارے میں بات کر رہے ہیں:

  • ورک چینز کی تعداد اور ترتیب کے بارے میں؛
  • شارڈ چینز کی تعداد اور ان کے سابقوں کے بارے میں؛
  • جس کے بارے میں فی الحال کن نوڈس ذمہ دار ہیں کن شارڈ چینز کے لیے؛
  • تمام شارڈ چینز میں شامل آخری بلاکس کی ہیشز۔

جیسا کہ آپ نے اندازہ لگایا ہوگا، یہ تمام چیزیں ایک اور بلاک چین اسٹوریج میں ریکارڈ کی جاتی ہیں۔ ماسٹر چین (ماسٹر چین, ماسٹر بلاکچین)۔ اس کے بلاکس میں تمام شارڈ چینز کے بلاکس سے ہیشز کی موجودگی کی وجہ سے، یہ سسٹم کو انتہائی مربوط بناتا ہے۔ اس کا مطلب ہے، دوسری چیزوں کے علاوہ، یہ کہ ماسٹر چین میں ایک نئے بلاک کی نسل شارڈ چینز میں بلاکس کی تخلیق کے فوراً بعد واقع ہو گی - یہ توقع کی جاتی ہے کہ شارڈ چینز میں بلاکس تقریباً ہر 5 سیکنڈ میں ایک ساتھ ظاہر ہوں گے، اور اگلا بلاک masterchain - اس کے بعد ایک سیکنڈ.

لیکن اس تمام ٹائٹینک کام کے نفاذ کے لیے کون ذمہ دار ہو گا - پیغامات بھیجنے، سمارٹ کنٹریکٹس پر عمل درآمد، شارڈ چینز اور ماسٹر چین میں بلاکس بنانے، اور غلطیوں کے لیے بلاکس کو بھی چیک کرنے کے لیے؟ کیا یہ سب کچھ خفیہ طور پر لاکھوں صارفین کے فونز کے ذریعے کیا جائے گا جن پر ٹیلی گرام کلائنٹ انسٹال ہے؟ یا، شاید، Durov ٹیم وکندریقرت کے خیالات کو ترک کردے گی اور ان کے سرورز اسے پرانے زمانے کے طریقے سے کریں گے؟

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

ماخذ: www.habr.com

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