اسمارٹ کانٹریکٹ کی کمپوزیبلٹی
صفحہ کی آخری اپ ڈیٹ: 13 ستمبر، 2025
ایک مختصر تعارف
ایتھریم پر اسمارٹ کانٹریکٹس عوامی (public) ہوتے ہیں اور انہیں اوپن APIs سمجھا جا سکتا ہے۔ ایک dapp ڈیولپر بننے کے لیے آپ کو اپنا اسمارٹ کانٹریکٹ لکھنے کی ضرورت نہیں ہے، آپ کو صرف یہ جاننے کی ضرورت ہے کہ ان کے ساتھ کیسے تعامل (interact) کیا جائے۔ مثال کے طور پر، آپ اپنی ایپ میں ٹوکن سویپ کی تمام لاجک کو سنبھالنے کے لیے ایک ڈی سینٹرلائزڈ ایکسچینج، Uniswap (opens in a new tab) کے موجودہ اسمارٹ کانٹریکٹس کا استعمال کر سکتے ہیں – آپ کو شروع سے آغاز کرنے کی ضرورت نہیں ہے۔ ان کے کچھ v2 (opens in a new tab) اور v3 (opens in a new tab) کانٹریکٹس دیکھیں۔
کمپوزیبلٹی کیا ہے؟
کمپوزیبلٹی (Composability) مختلف اجزاء کو ملا کر نئے سسٹمز یا نتائج بنانے کا عمل ہے۔ سافٹ ویئر ڈیولپمنٹ میں، کمپوزیبلٹی کا مطلب یہ ہے کہ ڈیولپرز نئی ایپلی کیشنز بنانے کے لیے موجودہ سافٹ ویئر اجزاء کو دوبارہ استعمال کر سکتے ہیں۔ کمپوزیبلٹی کو سمجھنے کا ایک اچھا طریقہ یہ ہے کہ کمپوزیبل عناصر کو لیگو (Lego) بلاکس کے طور پر سوچا جائے۔ ہر لیگو کو دوسرے کے ساتھ ملایا جا سکتا ہے، جس سے آپ مختلف لیگوز کو ملا کر پیچیدہ ڈھانچے بنا سکتے ہیں۔
ایتھریم میں، ہر اسمارٹ کانٹریکٹ ایک طرح کا لیگو ہے—آپ دوسرے پروجیکٹس کے اسمارٹ کانٹریکٹس کو اپنے پروجیکٹ کے لیے بلڈنگ بلاکس کے طور پر استعمال کر سکتے ہیں۔ اس کا مطلب یہ ہے کہ آپ کو پہیہ دوبارہ ایجاد کرنے یا بالکل شروع سے بنانے میں وقت ضائع کرنے کی ضرورت نہیں ہے۔
کمپوزیبلٹی کیسے کام کرتی ہے؟
ایتھریم اسمارٹ کانٹریکٹس پبلک APIs کی طرح ہوتے ہیں، لہذا کوئی بھی کانٹریکٹ کے ساتھ تعامل کر سکتا ہے یا اضافی فعالیت کے لیے انہیں dapps میں ضم (integrate) کر سکتا ہے۔ اسمارٹ کانٹریکٹ کی کمپوزیبلٹی عام طور پر تین اصولوں پر کام کرتی ہے: ماڈیولیرٹی (modularity)، خود مختاری (autonomy)، اور دریافت پذیری (discoverability):
-
ماڈیولیرٹی (Modularity): یہ انفرادی اجزاء کی کسی مخصوص کام کو انجام دینے کی صلاحیت ہے۔ ایتھریم میں، ہر اسمارٹ کانٹریکٹ کا ایک مخصوص استعمال (use case) ہوتا ہے (جیسا کہ Uniswap کی مثال میں دکھایا گیا ہے)۔
-
خود مختاری (Autonomy): کمپوزیبل اجزاء کو آزادانہ طور پر کام کرنے کے قابل ہونا چاہیے۔ ایتھریم میں ہر اسمارٹ کانٹریکٹ خود کار (self-executing) ہوتا ہے اور سسٹم کے دوسرے حصوں پر انحصار کیے بغیر کام کر سکتا ہے۔
-
دریافت پذیری (Discoverability): ڈیولپرز بیرونی کانٹریکٹس کو کال نہیں کر سکتے یا سافٹ ویئر لائبریریوں کو ایپلی کیشنز میں ضم نہیں کر سکتے اگر وہ عوامی طور پر دستیاب نہ ہوں۔ ڈیزائن کے لحاظ سے، اسمارٹ کانٹریکٹس اوپن سورس ہوتے ہیں؛ کوئی بھی اسمارٹ کانٹریکٹ کو کال کر سکتا ہے یا کوڈ بیس کو فورک (fork) کر سکتا ہے۔
کمپوزیبلٹی کے فوائد
مختصر ڈیولپمنٹ سائیکل
کمپوزیبلٹی اس کام کو کم کرتی ہے جو ڈیولپرز کو dapps بناتے وقت کرنا پڑتا ہے۔ جیسا کہ Naval Ravikant کہتے ہیں: (opens in a new tab) "اوپن سورس کا مطلب ہے کہ ہر مسئلے کو صرف ایک بار حل کرنا پڑتا ہے۔"
اگر کوئی اسمارٹ کانٹریکٹ کسی ایک مسئلے کو حل کرتا ہے، تو دوسرے ڈیولپرز اسے دوبارہ استعمال کر سکتے ہیں، تاکہ انہیں اسی مسئلے کو دوبارہ حل نہ کرنا پڑے۔ اس طرح، ڈیولپرز موجودہ سافٹ ویئر لائبریریوں کو لے کر ان میں اضافی فعالیت شامل کر کے نئی dapps بنا سکتے ہیں۔
زیادہ جدت
کمپوزیبلٹی جدت اور تجربات کی حوصلہ افزائی کرتی ہے کیونکہ ڈیولپرز مطلوبہ نتائج حاصل کرنے کے لیے اوپن سورس کوڈ کو دوبارہ استعمال کرنے، اس میں ترمیم کرنے، نقل کرنے، یا ضم کرنے کے لیے آزاد ہوتے ہیں۔ نتیجتاً، ڈیولپمنٹ ٹیمیں بنیادی فعالیت پر کم وقت صرف کرتی ہیں اور نئی خصوصیات کے ساتھ تجربات کرنے کے لیے زیادہ وقت مختص کر سکتی ہیں۔
بہتر صارف کا تجربہ
ایتھریم ایکو سسٹم کے اجزاء کے درمیان انٹرآپریبلٹی (interoperability) صارف کے تجربے کو بہتر بناتی ہے۔ جب dapps بیرونی اسمارٹ کانٹریکٹس کو ضم کرتی ہیں تو صارفین کو ایک بکھرے ہوئے ایکو سسٹم (جہاں ایپلی کیشنز آپس میں بات چیت نہیں کر سکتیں) کی نسبت زیادہ فعالیت تک رسائی حاصل ہوتی ہے۔
ہم انٹرآپریبلٹی کے فوائد کو واضح کرنے کے لیے آربٹراج (arbitrage) ٹریڈنگ کی ایک مثال استعمال کریں گے:
اگر کوئی ٹوکن exchange B کی نسبت exchange A پر زیادہ قیمت پر ٹریڈ ہو رہا ہے، تو آپ قیمت کے اس فرق کا فائدہ اٹھا کر منافع کما سکتے ہیں۔ تاہم، آپ ایسا تب ہی کر سکتے ہیں جب آپ کے پاس ٹرانزیکشن کی فنڈنگ کے لیے کافی سرمایہ ہو (یعنی، exchange B سے ٹوکن خریدنا اور اسے exchange A پر بیچنا)۔
ایسی صورتحال میں جہاں آپ کے پاس ٹریڈ کو کور کرنے کے لیے کافی فنڈز نہ ہوں، ایک فلیش لون (flash loan) مثالی ہو سکتا ہے۔ فلیش لونز انتہائی تکنیکی ہوتے ہیں، لیکن بنیادی خیال یہ ہے کہ آپ اثاثے (بغیر کسی ضمانت کے) ادھار لے سکتے ہیں اور انہیں ایک ہی ٹرانزیکشن کے اندر واپس کر سکتے ہیں۔
ہماری ابتدائی مثال کی طرف واپس آتے ہوئے، ایک آربٹراج ٹریڈر ایک بڑا فلیش لون لے سکتا ہے، exchange B سے ٹوکن خرید سکتا ہے، انہیں exchange A پر بیچ سکتا ہے، اصل رقم + سود واپس کر سکتا ہے، اور منافع اپنے پاس رکھ سکتا ہے، یہ سب ایک ہی ٹرانزیکشن کے اندر ہوتا ہے۔ اس پیچیدہ لاجک کے لیے متعدد کانٹریکٹس کی کالز کو ملانے کی ضرورت ہوتی ہے، جو کہ ناممکن ہوتا اگر اسمارٹ کانٹریکٹس میں انٹرآپریبلٹی کی کمی ہوتی۔
ایتھریم میں کمپوزیبلٹی کی مثالیں
ٹوکن سویپس
اگر آپ کوئی ایسی dapp بناتے ہیں جس میں ٹرانزیکشنز کی ادائیگی ETH میں درکار ہو، تو آپ ٹوکن سویپ لاجک کو ضم کر کے صارفین کو دیگر ERC-20 ٹوکنز میں ادائیگی کرنے کی اجازت دے سکتے ہیں۔ کانٹریکٹ کے کال کیے گئے فنکشن کو چلانے سے پہلے کوڈ خود بخود صارف کے ٹوکن کو ETH میں تبدیل کر دے گا۔
گورننس
کسی DAO کے لیے مخصوص گورننس سسٹمز بنانا مہنگا اور وقت طلب ہو سکتا ہے۔ اس کے بجائے، آپ اپنے DAO کو شروع کرنے اور تیزی سے گورننس فریم ورک بنانے کے لیے ایک اوپن سورس گورننس ٹول کٹ، جیسے کہ Aragon Client (opens in a new tab) کا استعمال کر سکتے ہیں۔
شناخت کا انتظام
ایک کسٹم تصدیقی (authentication) سسٹم بنانے یا سینٹرلائزڈ پرووائیڈرز پر انحصار کرنے کے بجائے، آپ صارفین کی تصدیق کا انتظام کرنے کے لیے ڈی سینٹرلائزڈ آئیڈنٹٹی (DID) ٹولز کو ضم کر سکتے ہیں۔ اس کی ایک مثال SpruceID (opens in a new tab) ہے، جو ایک اوپن سورس ٹول کٹ ہے اور "Sign in with Ethereum" کی فعالیت پیش کرتی ہے جس سے صارفین ایتھریم والیٹ کے ذریعے اپنی شناخت کی تصدیق کر سکتے ہیں۔
متعلقہ ٹیوٹوریلز
- create-eth-app کے ساتھ اپنی dapp فرنٹ اینڈ ڈیولپمنٹ کا آغاز کریں – اس بات کا جائزہ کہ مقبول اسمارٹ کانٹریکٹس کے ساتھ ایپس بنانے کے لیے create-eth-app کا استعمال کیسے کیا جائے۔
مزید مطالعہ
کسی ایسے کمیونٹی وسیلے کے بارے میں جانتے ہیں جس نے آپ کی مدد کی ہو؟ اس صفحے میں ترمیم کریں اور اسے شامل کریں!