ملٹی چین اسٹریمز کا تعارف

ماخذ نوڈ: 1213525

مشترکہ ناقابل تغیر کلیدی قدر اور ٹائم سیریز ڈیٹا بیس کے لیے

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

  1. NoSQL کے انداز میں کلیدی قدر کا ڈیٹا بیس یا دستاویز اسٹور۔
  2. ٹائم سیریز کا ڈیٹا بیس، جو اندراجات کی ترتیب پر توجہ مرکوز کرتا ہے۔
  3. ایک شناخت پر مبنی ڈیٹا بیس جہاں اندراجات کو ان کے مصنف کے مطابق درجہ بندی کیا جاتا ہے۔

ان کو مشترکہ ڈیٹا بیس کا 'کیا'، 'کب' اور 'کون' سمجھا جا سکتا ہے۔

اسٹریمز کی بنیادی باتیں

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

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

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

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

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

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

  1. کسی بھی عوامی کلید کی خفیہ نگاری اسکیم کے لیے شرکاء اپنی عوامی کلیدوں کو تقسیم کرنے کے لیے ایک سلسلہ استعمال کرتے ہیں۔
  2. ڈیٹا کو شائع کرنے کے لیے ایک دوسرا سلسلہ استعمال کیا جاتا ہے، جہاں ڈیٹا کے ہر ٹکڑے کو ایک منفرد کلید کے ساتھ ہم آہنگ کرپٹوگرافی کا استعمال کرتے ہوئے انکرپٹ کیا جاتا ہے۔
  3. ایک تیسرا سلسلہ ڈیٹا تک رسائی فراہم کرتا ہے۔ ہر ایک شریک کے لیے جسے ڈیٹا کا ایک ٹکڑا دیکھنا چاہیے، ایک اسٹریم انٹری بنائی جاتی ہے جس میں اس ڈیٹا کی خفیہ کلید ہوتی ہے، جو اس شریک کی عوامی کلید کا استعمال کرتے ہوئے انکرپٹ ہوتی ہے۔

یہ بلاکچین پر ڈیٹا کو آرکائیو کرنے کا ایک موثر طریقہ فراہم کرتا ہے، جبکہ اسے صرف مخصوص شرکاء کے لیے مرئی بناتا ہے۔

اسٹریمز سے بازیافت کرنا

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

اگر کوئی نوڈ کسی اسٹریم کو سبسکرائب کرتا ہے، تو اس سلسلے سے کئی طریقوں سے معلومات حاصل کی جا سکتی ہیں:

  • سٹریم سے آئٹمز کو ترتیب سے بازیافت کیا جا رہا ہے۔
  • ایک خاص کلید کے ساتھ اشیاء کو بازیافت کرنا۔
  • کسی خاص پبلشر کے دستخط شدہ آئٹمز کو بازیافت کرنا۔
  • ہر کلید کے لیے آئٹم شمار کے ساتھ، ایک سلسلہ میں استعمال ہونے والی کلیدوں کی فہرست بنانا۔
  • آئٹم شمار کے ساتھ ایک سلسلہ میں پبلشرز کی فہرست بنانا۔

جیسا کہ شروع میں ذکر کیا گیا ہے، بازیافت کے یہ طریقے اسٹریمز کو استعمال کرنے کی اجازت دیتے ہیں۔ کلیدی قدر ڈیٹا بیس, ٹائم سیریز ڈیٹا بیس اور شناخت پر مبنی ڈیٹا بیس۔ تمام بازیافت APIs پیش کرتے ہیں۔ شروع کریں اور شمار پیرامیٹرز، لمبی فہرستوں کے ذیلی حصوں کو مؤثر طریقے سے بازیافت کرنے کی اجازت دیتے ہیں (جیسے SQL میں LIMIT شق)۔ کے لیے منفی اقدار شروع کریں تازہ ترین اشیاء کو بازیافت کرنے کی اجازت دیں۔

اسٹریمز میں ایک ہی کلید کے ساتھ متعدد آئٹمز شامل ہو سکتے ہیں، اور یہ قدرتی طور پر بلاک چین کی عدم تبدیلی اور ڈیٹا بیس کو اپ ڈیٹ کرنے کی ضرورت کے درمیان تناؤ کو حل کرتا ہے۔ ہر ایک مؤثر ڈیٹا بیس 'انٹری' کو آپ کی درخواست میں ایک منفرد کلید تفویض کی جانی چاہیے، اس اندراج کے لیے ہر اپ ڈیٹ کے ساتھ اس کی کلید کے ساتھ ایک نئی اسٹریم آئٹم کی نمائندگی ہوتی ہے۔ ملٹی چین کے اسٹریم بازیافت API کو اس کے بعد استعمال کیا جاسکتا ہے: (a) دیے گئے اندراج کے پہلے یا آخری ورژن کو بازیافت کرنا، (b) اندراج کے لیے مکمل ورژن کی تاریخ بازیافت کرنا، (c) متعدد اندراجات کے بارے میں معلومات بازیافت کرنا، بشمول پہلی اور آخری ہر ایک کے ورژن.

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

اسٹریمز اور ملٹی چین روڈ میپ

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

طویل مدتی میں، اسٹریمز ملٹی چین روڈ میپ میں کہاں فٹ ہوتے ہیں؟ ایک قدم پیچھے ہٹتے ہوئے، ملٹی چین اب اعلیٰ سطحی فعالیت کے تین شعبے پیش کرتا ہے:

  • اجازت یہ کنٹرول کرنے کے لیے کہ کون جوڑ سکتا ہے، لین دین کرسکتا ہے، اثاثے/اسٹریمز بنا سکتا ہے، میرا/توثیق اور انتظام کر سکتا ہے۔
  • اثاثے بشمول جاری کرنا، دوبارہ جاری کرنا، منتقلی، جوہری تبادلہ، ایسکرو اور تباہی۔
  • سلسلے اسٹریمز بنانے، لکھنے، سبسکرائب کرنے، انڈیکس کرنے اور بازیافت کرنے کے لیے APIs کے ساتھ۔

ملٹی چین 1.0 (اور ایک پریمیم ورژن) کی ریلیز کے بعد، اس فہرست میں آگے کیا ہے؟ اگر آپ دیکھیں API کمانڈ جس کا استعمال اسٹریمز بنانے کے لیے کیا جاتا ہے، آپ کو بظاہر ضرورت سے زیادہ پیرامیٹر نظر آئے گا، جس کی ایک مقررہ قیمت ہے stream. یہ پیرامیٹر ملٹی چین کو مستقبل میں اعلیٰ سطحی ہستی کی دیگر اقسام کو سپورٹ کرنے کی اجازت دے گا۔

پیرامیٹر کے لیے مستقبل کی ممکنہ قدریں شامل ہیں۔ evm (ایک کے لئے ایتھرم- ہم آہنگ ورچوئل مشین) sql (ایک SQL طرز کے ڈیٹا بیس کے لیے) یا یہاں تک کہ wiki (باہمی طور پر ترمیم شدہ متن کے لیے)۔ کوئی بھی مشترکہ ادارہ جس کی حالت کا تعین تبدیلیوں کی ترتیب شدہ سیریز سے ہوتا ہے وہ ممکنہ امیدوار ہے۔ اس طرح کے ہر ادارے کو ضرورت ہوگی: (a) APIs جو اس کی حالت کو اپ ڈیٹ کرنے کے لیے صحیح خلاصہ فراہم کرتے ہیں، (b) اس ریاست کو ٹریک کرنے کے لیے سبسکرائب شدہ نوڈس کے لیے مناسب طریقہ کار، اور (c) ریاست کے حصے یا تمام کو موثر طریقے سے بازیافت کرنے کے لیے APIs۔ ہم یہ جاننے کے لیے انتظار کر رہے ہیں کہ کون سی دوسری اعلیٰ سطحی ہستیاں سب سے زیادہ کارآمد ہوں گی، جو ہمارے یا تیسرے فریق کے ذریعے پلگ ان فن تعمیر کے ذریعے لاگو کیے جائیں گے۔

سمارٹ معاہدوں کے بارے میں کیا خیال ہے؟

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

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

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

 

براہ کرم کوئی تبصرہ پوسٹ کریں۔ لنکڈ پر.

 

تکنیکی ضمیمہ

اسٹریمز سے متعلق تمام کمانڈز مکمل طور پر میں دستاویزی ہیں۔ ملٹی چین API صفحہ، لیکن یہاں ایک مختصر خلاصہ ہے:

  • کا استعمال کرتے ہوئے ایک سلسلہ بنائیں create stream or createfrom ... stream
  • کے ساتھ ایک سلسلہ میں ایک آئٹم شامل کریں۔ publish or publishfrom
  • استعمال کرتے ہوئے اسٹریمز کی فہرست بازیافت کریں۔ liststreams
  • اس کے ساتھ ایک سلسلہ کو ٹریک کرنا شروع کریں یا بند کریں۔ subscribe اور unsubscribe
  • استعمال کرتے ہوئے اسٹریم آئٹمز کو بازیافت کریں۔ liststreamitems, liststreamkeyitems اور liststreampublisheritems
  • اس کے ساتھ سٹریم کیز اور پبلشرز کی فہرست بنائیں liststreamkeys اور liststreampublishers
  • بڑی اسٹریم آئٹمز کے لیے، استعمال کرتے ہوئے مکمل ڈیٹا بازیافت کریں۔ gettxoutdata (ملاحظہ کریں maxshowndata نیچے)
  • جیسے کالوں کے ساتھ فی سلسلہ کی اجازتوں کو کنٹرول کریں۔ grant [address] stream1.write
  • استعمال کرتے ہوئے ایک سلسلہ کی اجازتیں دیکھیں listpermissions stream1.*

اسٹریمز سے متعلق کچھ دوسرے ڈویلپر نوٹس:

  • ۔ create اجازت ایک ایڈریس کو اسٹریمز بنانے کی اجازت دیتی ہے۔
  • متعلقہ فی سلسلہ کی اجازتیں ہیں۔ write, admin اور activate
  • نئی بلاکچین پیرامیٹرز: root-stream-name (کسی کے لیے خالی نہ چھوڑیں) root-stream-open, anyone-can-create, admin-consensus-create, max-std-op-returns-count
  • نئی رن ٹائم پیرامیٹرز: autosubscribe خود بخود نئے اسٹریمز کو سبسکرائب کرنے کے لیے اور maxshowndata API کے جوابات میں ڈیٹا کی مقدار کو محدود کرنے کے لیے (دیکھیں۔ gettxoutdata اوپر)۔
  • سٹریم آئٹم کے ڈیٹا کا زیادہ سے زیادہ سائز کے ذریعے طے کیا جاتا ہے۔ max-std-op-return-size بلاکچین پیرامیٹر کے ساتھ ساتھ چھوٹے maximum-block-size اور max-std-tx-size قدریں مائنس چند سو بائٹس۔
  • پرانے والیٹ فارمیٹ کا استعمال کرنے والے نوڈس اسٹریمز کو سبسکرائب نہیں کر سکتے، اور اپ گریڈ کیا جانا چاہئے.

 

ٹائم اسٹیمپ:

سے زیادہ ملٹیچین