وکندریقرت اسکوٹر کرایہ پر لینے کے لیے سافٹ ویئر تیار کریں۔ کس نے کہا کہ یہ آسان ہو گا؟

اس مضمون میں میں اس بارے میں بات کروں گا کہ ہم نے سمارٹ معاہدوں پر وکندریقرت سکوٹر کرایہ پر لینے کی کوشش کیسے کی اور ہمیں اب بھی ایک مرکزی خدمت کی ضرورت کیوں ہے۔

وکندریقرت اسکوٹر کرایہ پر لینے کے لیے سافٹ ویئر تیار کریں۔ کس نے کہا کہ یہ آسان ہو گا؟

یہ سب کس طرح شروع

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

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

بیساکھیوں پر بلاک چین

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

اپنے نظام کو وکندریقرت اور کھلا بنانے کے لیے، ہم نے Ethereum اسمارٹ کنٹریکٹس استعمال کرنے کا فیصلہ کیا۔ اس کی مقبولیت اور بغیر سرور ایپلی کیشن بنانے کی صلاحیت کی وجہ سے یہ انتخاب وکندریقرت آن لائن خدمات کے اس پلیٹ فارم پر پڑا۔ ہم نے اپنے منصوبے کو مندرجہ ذیل طور پر نافذ کرنے کا منصوبہ بنایا۔

وکندریقرت اسکوٹر کرایہ پر لینے کے لیے سافٹ ویئر تیار کریں۔ کس نے کہا کہ یہ آسان ہو گا؟

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

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

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

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

وکندریقرت اسکوٹر کرایہ پر لینے کے لیے سافٹ ویئر تیار کریں۔ کس نے کہا کہ یہ آسان ہو گا؟

Ace in the hole: خود مختار شناخت

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

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

ڈیوائس نے مجھے پریشانی دی۔

ہم نے خود مختار شناخت کو لاگو نہیں کیا، کیونکہ اس کے لیے خفیہ نگاری میں مہارت اور کافی وقت درکار ہوتا ہے۔ اس کے بجائے، ہم نے اپنے پارٹنرز جولوکوم کے پروڈکٹ سے فائدہ اٹھایا اور ان کے موبائل والیٹ اور خدمات کو اپنے پلیٹ فارم میں ضم کیا۔ بدقسمتی سے، اس پروڈکٹ میں ایک اہم خرابی ہے: بنیادی ترقی کی زبان Node.js ہے۔

یہ ٹکنالوجی اسٹیک اسکوٹر میں بنائے گئے ہارڈ ویئر کے ہمارے انتخاب کو بہت حد تک محدود کرتی ہے۔ خوش قسمتی سے، پروجیکٹ کے بالکل شروع میں، ہم نے Raspberry Pi Zero کا انتخاب کیا، اور ہم نے ایک مکمل مائکرو کمپیوٹر کے تمام فوائد سے فائدہ اٹھایا۔ اس نے ہمیں سکوٹر پر بھاری Node.js چلانے کی اجازت دی۔ اس کے علاوہ، ہم نے وی پی این کے ذریعے ریڈی میڈ ٹولز کا استعمال کرتے ہوئے مانیٹرنگ اور ریموٹ رسائی حاصل کی۔

آخر میں

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

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

ماخذ: www.habr.com

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