نئے ملٹی چین والیٹ پلیٹو بلاکچین ڈیٹا انٹیلی جنس کا اعلان۔ عمودی تلاش۔ عی

نئے ملٹی چین والیٹ کا اعلان

کارکردگی اور توسیع پذیری کے لیے ایک اہم قدم آگے

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

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

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

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

بٹ کوائن کور کا پرس

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

تو بٹ کوائن کور سے جو بٹوے ہمیں وراثت میں ملا ہے اس میں کیا خرابی ہے؟ اصل میں تین چیزیں:

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

نتیجہ یہ ہے کہ تقریباً 20,000 ٹرانزیکشنز کو ذخیرہ کرنے کے ساتھ، Bitcoin Core کا والیٹ نمایاں طور پر سست ہو جاتا ہے۔ 200,000 یا اس کے بعد، یہ عملی طور پر رک جاتا ہے۔ اس سے بھی بدتر، چونکہ ایک ملٹی چین بلاکچین فی ٹرانزیکشن 8 MB تک میٹا ڈیٹا کی اجازت دیتا ہے (بٹ کوائن کے 80 بائٹس کے مقابلے)، بٹ کوائن کی میموری کی ضروریات بہت کم لین دین کے باوجود تیزی سے بڑھ سکتی ہیں۔

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

ملٹی چین کا نیا پرس

ہم ملٹی چین کے صارفین سے بھی یہی مطالبہ کر سکتے تھے کہ ان کے اپنے لین دین کو نوڈ سے باہر اسٹور کریں۔ تاہم یہ صحیح حل کی طرح محسوس نہیں ہوا کیونکہ یہ سلسلہ کے ہر ایک شرکاء کے لیے سیٹ اپ اور دیکھ بھال کو بہت پیچیدہ بنا دے گا۔ تو اس کے بجائے، ہم نے گولی کاٹ کر بٹوے کو زمین سے اوپر سے دوبارہ لکھا۔

نیا پرس کیسے مختلف ہے؟ اگر آپ کو ڈیٹا بیس کے بارے میں کوئی تجربہ ہے تو جوابات واضح ہو سکتے ہیں:

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

دوسرے الفاظ میں، ہم نے ان نوڈ والیٹ کو درست طریقے سے ڈیٹا بیس سے چلنے کے لیے دوبارہ بنایا ہے (استعمال کرتے ہوئے لیول ڈی بی)، ایک سادہ ان میموری ڈھانچے پر بھروسہ کرنے کے بجائے جسے موثر طریقے سے تلاش نہیں کیا جا سکتا۔ حیرت کی بات نہیں، فرق (جیسا کہ 3.4 GHz Intel Core i7 پر ماپا جاتا ہے) ڈرامائی ہے:

ملٹی چین والیٹ ٹرانزیکشن تھرو پٹ

میموری استعمال

گراف دکھاتے ہیں کہ، ایک بار پرانے والیٹ میں 250,000 ٹرانزیکشنز شامل ہونے کے بعد، اس کی بھیجنے کی شرح 3 tx/sec تک گر جاتی ہے اور یہ نوڈ کے میموری استعمال میں 600 MB کا اضافہ کرتا ہے۔ اس کے برعکس، نیا والیٹ 100 tx/sec سے زیادہ برقرار رکھتا ہے اور صرف 90 MB کا اضافہ کرتا ہے۔ ہم نے اس مقام پر پرانے والیٹ کی جانچ کرنا بند کر دیا، لیکن 6-8 ملین ذخیرہ شدہ لین دین کے باوجود، نیا والیٹ 100 tx/sec سے زیادہ بھیجتا رہتا ہے، اور یہ استعمال ہونے والی 250 MB RAM پر سب سے اوپر ہے (ڈیٹا بیس کیشنگ کی وجہ سے)۔

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

اس بات کا اعادہ کرنے کے لیے، یہ تمام نمبر اس شرح کا حوالہ دیتے ہیں جس پر کوئی نوڈ اپنے مقامی بٹوے میں لین دین کو تخلیق، بھیج اور ذخیرہ کر سکتا ہے، بجائے اس کے کہ دوسروں کے ذریعے تخلیق کردہ لین دین کی پروسیسنگ کے لحاظ سے عام نیٹ ورک تھرو پٹ کے لیے، ملٹی چین فی الحال 200 سے 800 tx/sec پر کارروائی کر سکتا ہے، اس پر منحصر ہے کہ یہ کس ہارڈ ویئر پر چل رہا ہے۔ (باقاعدہ ہارڈ ویئر پر 100,000 tx/sec جیسے نمبروں کا وعدہ کرنے والے کسی بھی بلاکچین سافٹ ویئر پر شک کریں، کیونکہ رکاوٹ ڈیجیٹل دستخط کی تصدیق ہے، جس کو انجام دینے میں حقیقی وقت لگتا ہے۔ اگر نوڈس انفرادی لین دین کے دستخطوں کی تصدیق نہیں کر رہے ہیں، تو ایک بلاکچین ممکنہ طور پر پورے اعتماد میں استعمال نہیں کیا جا سکتا۔ حدود، اسے باقاعدہ تقسیم شدہ ڈیٹا بیس سے بہتر نہیں بنانا۔)

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

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

تکنیکی ضمیمہ

ملٹی چین الفا 22 سے شروع کرتے ہوئے، آپ جانچ کر کے تصدیق کر سکتے ہیں کہ والیٹ کا کون سا ورژن فی الحال چل رہا ہے۔ walletdbversion کے میدان getinfo or getwalletinfo API کالز۔ کی قدر 1 مطلب اصل بٹ کوائن کور والیٹ، اور 2 نئے ملٹی چین والیٹ کا مطلب ہے۔

اگر آپ ملٹی چین کا نیا ورژن کسی موجودہ چین پر چلاتے ہیں، تو یہ فوری طور پر نئے پرس پر نہیں جائے گا۔ آپ نوڈ کو روک کر اور پھر دوبارہ چلا کر والیٹ کو اپ گریڈ کر سکتے ہیں۔ multichaind پیرامیٹرز کے ساتھ -walletdbversion=2 –rescan. آپ اسی طرح کا استعمال کرکے ڈاؤن گریڈ کرسکتے ہیں۔ –walletdbversion=1 –rescan.

پہلے سے طے شدہ طور پر، جب آپ ایک نئی زنجیر پر نوڈ شروع کرتے ہیں، تو یہ خود بخود نیا والیٹ استعمال کرے گا۔ آپ اسے چلا کر تبدیل کر سکتے ہیں۔ multichaind پیرامیٹر کے ساتھ پہلی بار –walletdbversion=1.

نئے بٹوے کے ساتھ، سب ملٹی چین APIs پرانے لین دین کے استفسار والے APIs کو چھوڑ کر بالکل اسی طرح پہلے کی طرح کام کریں۔ getreceivedbyaddress, listreceivedbyaddress اور listtransactions (استعمال کریں listwallettransactions or listaddresstransactions اس کے بجائے)۔ اس کے علاوہ، نیا والیٹ API کالز اور بٹ کوائن کور کے خراب طریقے سے لاگو ہونے والے اور جلد ہی فرسودہ ہونے والے "اکاؤنٹس" میکانزم سے متعلق پیرامیٹرز کو سپورٹ نہیں کرتا ہے، جسے ملٹی چین نے کبھی بھی مناسب طریقے سے سپورٹ نہیں کیا تھا۔ یہ کالیں غلطی کے پیغام کے ساتھ محفوظ طریقے سے غیر فعال ہیں۔

ماخذ: https://www.multichain.com/blog/2016/07/announcing-the-new-multichain-wallet/

ٹائم اسٹیمپ:

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