WavesKit - Waves blockchain کے ساتھ کام کرنے کے لیے PHP فریم ورک

Мне нравится پی ایچ پی ترقی کی رفتار اور بہترین پورٹیبلٹی کے لیے۔ یہ بہت اچھا ہے جب آپ کی جیب میں ہمیشہ ایک ٹول ہو، جو مسائل کو حل کرنے کے لیے تیار ہو۔

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

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

میں نے دو متوازی ملازمتیں شروع کیں۔ ایک بلاکچین ایکسپلورر بنانا ہے جو تیز اور نوڈ API سے مکمل طور پر آزاد ہوگا۔ دوسرا یہ ہے کہ ویوز پلیٹ فارم کے ساتھ کام کرنے کے لیے تمام فنکشنز کو ایک جگہ جمع کرنا ہے۔ اس طرح منصوبے سامنے آئے w8io и ویوز کٹ.

Waves blockchain کے پردے کے پیچھے پہلا قدم تھا۔ w8io براؤزر. یہ آسان نہیں تھا، لیکن ہم پھر بھی تمام بیلنسز کا ایک آزاد حساب کتاب لکھنے میں کامیاب رہے اور یہاں تک کہ اصل نوڈس پر حسابات میں غلطی تلاش کرنے میں کامیاب رہے (بگ باؤنٹی پروگرام ویسے، یہ ان کے لیے کام کرتا ہے، وہ پائی جانے والی غلطیوں کی ادائیگی کرتے ہیں)۔ آپ اس موضوع میں w8io براؤزر کی فعالیت کے بارے میں مزید جان سکتے ہیں: https://forum.wavesplatform.com/t/w8io-waves-explorer-based-on-php-sqlite

w8io پر کام کرتے ہوئے، مجھے پہلے ہی شکوک و شبہات تھے، لیکن جب کام اپنے منطقی انجام کو پہنچا اور میں نے SDK بنانا شروع کیا تو میرے شکوک کی تصدیق ہوگئی۔ مجھے کہیں بھی کچھ فنکشنز نہیں مل سکے، بشمول سب سے اہم، کرپٹوگرافک۔ پھر میں نے فاؤنڈیشن کے لیے خود اینٹیں بنانا شروع کیا۔ اس طرح ان کی پیدائش ہوئی: اے بی سی کوڈ بیس 58 کو انکوڈ کرنے کے لیے (دراصل کسی بھی حروف تہجی کو انکوڈ کرنے کے لیے) Curve25519 مطابقت پذیر دستخط بنانے اور تصدیق کرنے کے لیے (اختیارات کے ساتھ سٹیرائڈز پر), بلیک 2 بی کسی ایک ہیش کا حساب لگانے کے لیے (جو صرف پی ایچ پی 7.2 کے بعد سے دستیاب تھا) وغیرہ۔

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

ایک دو ماہ کے بعد WavesKit جاری کی گئی۔، باہر آئے بیٹا ورژن اور اب ویوز پلیٹ فارم کی تمام معیاری فعالیت کے ساتھ کام کرنے کے لیے تیار ہے۔ میں سبھی دستیاب ہیں۔ اہم نیٹ ورک لین دین کو آسانی سے بنایا جا سکتا ہے، دستخط کیا جا سکتا ہے اور صرف ایک پیکیج کا استعمال کرتے ہوئے بھیجا جا سکتا ہے، PHP کے تمام 64-بٹ ورژنز پر 5.6 پر مشتمل ہے۔

ہم WavesKit کو اپنے پروجیکٹ سے جوڑتے ہیں:

composer require deemru/waveskit

ہم استعمال کرتے ہیں:

use deemruWavesKit;
$wk = new WavesKit( 'T' );
$wk->setSeed( 'manage manual recall harvest series desert melt police rose hollow moral pledge kitten position add' );
$tx = $wk->txBroadcast( $wk->txSign( $wk->txTransfer( 'test', 1 ) ) );
$tx = $wk->ensure( $tx );

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

لین دین کے ساتھ کام پر مرکوز ہے۔ tx سے شروع ہونے والے افعال. لین دین کے ساتھ کام کرنے کی بہتر تفہیم کے لیے، آپ مطالعہ کر سکتے ہیں۔ WavesKit دستاویزات یا فوری طور پر مثالی مثالوں کی طرف رجوع کریں۔ مسلسل انضمام ٹیسٹ.

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

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

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

مجھے اوپن سورس پسند ہے، یہ انسانیت کی سب سے بڑی کامیابیوں میں سے ایک ہے۔ چونکہ میں واحد ڈویلپر ہوں اور ایک ایسی حالت میں پہنچ گیا ہوں جہاں میری تمام ضروریات حل ہو جاتی ہیں، میں آپ کو استعمال کرنے اور تعاون کرنے کی دعوت دیتا ہوں ویوز کٹ.

ماخذ: www.habr.com

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