---
title: "ایتھیریم اسٹیک کا تعارف"
description: "ایتھیریم اسٹیک کی مختلف تہوں اور ان کے آپس میں جڑنے کے طریقے کا ایک جائزہ۔"
lang: ur
---

کسی بھی سافٹ ویئر اسٹیک کی طرح، مکمل "ایتھیریم اسٹیک" آپ کے اہداف کے لحاظ سے ایک پروجیکٹ سے دوسرے پروجیکٹ میں مختلف ہوگا۔

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

## لیول <span dir="ltr">1</span>: ایتھیریم ورچوئل مشین {#ethereum-virtual-machine}

[ایتھیریم ورچوئل مشین (EVM)](/developers/docs/evm/) ایتھیریم پر اسمارٹ کانٹریکٹس کے لیے رن ٹائم ماحول ہے۔ ایتھیریم بلاک چین پر تمام اسمارٹ کانٹریکٹس اور حالت کی تبدیلیاں [ٹرانزیکشنز](/developers/docs/transactions/) کے ذریعے انجام دی جاتی ہیں۔ <span dir="ltr">EVM</span> ایتھیریم نیٹ ورک پر تمام ٹرانزیکشن پروسیسنگ کو سنبھالتی ہے۔

کسی بھی ورچوئل مشین کی طرح، <span dir="ltr">EVM</span> ایگزیکیوٹ ہونے والے کوڈ اور ایگزیکیوٹ کرنے والی مشین (ایک ایتھیریم نوڈ) کے درمیان تجرید (abstraction) کی ایک سطح بناتی ہے۔ فی الحال، <span dir="ltr">EVM</span> دنیا بھر میں پھیلے ہوئے ہزاروں نوڈز پر چل رہی ہے۔

اندرونی طور پر، <span dir="ltr">EVM</span> مخصوص کام انجام دینے کے لیے آپ کوڈ ہدایات کا ایک سیٹ استعمال کرتی ہے۔ یہ (<span dir="ltr">140</span> منفرد) آپ کوڈز <span dir="ltr">EVM</span> کو [ٹیورنگ-مکمل (Turing-complete)](https://en.wikipedia.org/wiki/Turing_completeness) ہونے کی اجازت دیتے ہیں، جس کا مطلب ہے کہ اگر کافی وسائل فراہم کیے جائیں تو <span dir="ltr">EVM</span> تقریباً کسی بھی چیز کا حساب لگانے کے قابل ہے۔

ایک غیر مرکزی ایپلی کیشن (dapp) ڈیولپر کے طور پر، آپ کو <span dir="ltr">EVM</span> کے بارے میں اس سے زیادہ جاننے کی ضرورت نہیں ہے کہ یہ موجود ہے اور یہ بغیر کسی رکاوٹ کے ایتھیریم پر تمام ایپلی کیشنز کو قابل اعتماد طریقے سے چلاتی ہے۔

## لیول <span dir="ltr">2</span>: اسمارٹ کانٹریکٹس {#smart-contracts}

[اسمارٹ کانٹریکٹس](/developers/docs/smart-contracts/) وہ قابل عمل پروگرام ہیں جو ایتھیریم بلاک چین پر چلتے ہیں۔

اسمارٹ کانٹریکٹس مخصوص [پروگرامنگ زبانوں](/developers/docs/smart-contracts/languages/) کا استعمال کرتے ہوئے لکھے جاتے ہیں جو <span dir="ltr">EVM</span> بائٹ کوڈ (نچلی سطح کی مشینی ہدایات جنہیں آپ کوڈز کہا جاتا ہے) میں مرتب (compile) ہوتے ہیں۔

اسمارٹ کانٹریکٹس نہ صرف اوپن سورس لائبریریوں کے طور پر کام کرتے ہیں، بلکہ وہ بنیادی طور پر اوپن <span dir="ltr">API</span> سروسز ہیں جو ہمیشہ چلتی رہتی ہیں اور انہیں بند نہیں کیا جا سکتا۔ اسمارٹ کانٹریکٹس عوامی فنکشنز فراہم کرتے ہیں جن کے ساتھ صارفین اور ایپلی کیشنز ([<span dir="ltr">dapps</span>](/developers/docs/dapps/)) بغیر اجازت کے تعامل کر سکتے ہیں۔ کوئی بھی ایپلی کیشن فعالیت کو ترتیب دینے کے لیے تعینات کردہ اسمارٹ کانٹریکٹس کے ساتھ ضم ہو سکتی ہے، جیسے کہ [ڈیٹا فیڈز](/developers/docs/oracles/) شامل کرنا یا ٹوکن کے تبادلے کی حمایت کرنا۔ مزید برآں، کوئی بھی شخص اپنی ایپلی کیشن کی ضروریات کو پورا کرنے کے لیے حسب ضرورت فعالیت شامل کرنے کی غرض سے ایتھیریم پر نئے اسمارٹ کانٹریکٹس تعینات کر سکتا ہے۔

ایک <span dir="ltr">dapp</span> ڈیولپر کے طور پر، آپ کو اسمارٹ کانٹریکٹس صرف اس صورت میں لکھنے کی ضرورت ہوگی جب آپ ایتھیریم بلاک چین پر حسب ضرورت فعالیت شامل کرنا چاہتے ہوں۔ آپ کو معلوم ہو سکتا ہے کہ آپ اپنے پروجیکٹ کی زیادہ تر یا تمام ضروریات کو محض موجودہ اسمارٹ کانٹریکٹس کے ساتھ ضم کر کے پورا کر سکتے ہیں، مثال کے طور پر اگر آپ اسٹیبل کوائنز میں ادائیگیوں کی حمایت کرنا چاہتے ہیں یا ٹوکنز کے لامركزی تبادلے کو فعال کرنا چاہتے ہیں۔

## لیول <span dir="ltr">3</span>: ایتھیریم نوڈز {#ethereum-nodes}

کسی ایپلی کیشن کو ایتھیریم بلاک چین کے ساتھ تعامل کرنے کے لیے، اسے ایک [ایتھیریم نوڈ](/developers/docs/nodes-and-clients/) سے جڑنا ضروری ہے۔ کسی نوڈ سے جڑنے سے آپ بلاک چین کا ڈیٹا پڑھ سکتے ہیں اور/یا نیٹ ورک پر ٹرانزیکشنز بھیج سکتے ہیں۔

ایتھیریم نوڈز وہ کمپیوٹرز ہیں جو سافٹ ویئر چلاتے ہیں - ایک ایتھیریم کلائنٹ۔ کلائنٹ ایتھیریم کا ایک نفاذ (implementation) ہے جو ہر بلاک میں تمام ٹرانزیکشنز کی تصدیق کرتا ہے، نیٹ ورک کو محفوظ اور ڈیٹا کو درست رکھتا ہے۔ **ایتھیریم نوڈز ہی ایتھیریم بلاک چین ہیں**۔ وہ اجتماعی طور پر ایتھیریم بلاک چین کی حالت کو اسٹور کرتے ہیں اور بلاک چین کی حالت کو تبدیل کرنے کے لیے ٹرانزیکشنز پر اتفاق رائے تک پہنچتے ہیں۔

اپنی ایپلی کیشن کو ایتھیریم نوڈ سے جوڑ کر ([جے سن آر پی سی <span dir="ltr">API</span>](/developers/docs/apis/json-rpc/) کے ذریعے)، آپ کی ایپلی کیشن بلاک چین سے ڈیٹا پڑھنے (جیسے صارف کے اکاؤنٹ کا بیلنس) کے ساتھ ساتھ نیٹ ورک پر نئی ٹرانزیکشنز نشر کرنے (جیسے صارف کے اکاؤنٹس کے درمیان <span dir="ltr">ETH</span> منتقل کرنا یا اسمارٹ کانٹریکٹس کے فنکشنز کو انجام دینا) کے قابل ہو جاتی ہے۔

## لیول <span dir="ltr">4</span>: ایتھیریم کلائنٹ <span dir="ltr">APIs</span> {#ethereum-client-apis}

بہت سی سہولت بخش لائبریریاں (جو ایتھیریم کی اوپن سورس کمیونٹی کے ذریعے بنائی اور برقرار رکھی گئی ہیں) آپ کی ایپلی کیشنز کو ایتھیریم بلاک چین سے جڑنے اور بات چیت کرنے کی اجازت دیتی ہیں۔

اگر آپ کی صارف کا سامنا کرنے والی ایپلی کیشن ایک ویب ایپ ہے، تو آپ اپنے فرنٹ اینڈ میں براہ راست ایک [<span dir="ltr">JavaScript API</span>](/developers/docs/apis/javascript/) کو `npm install` کرنے کا انتخاب کر سکتے ہیں۔ یا شاید آپ اس فعالیت کو سرور سائیڈ پر نافذ کرنے کا انتخاب کریں گے، [<span dir="ltr">Python</span>](/developers/docs/programming-languages/python/) یا [<span dir="ltr">Java</span>](/developers/docs/programming-languages/java/) <span dir="ltr">API</span> کا استعمال کرتے ہوئے۔

اگرچہ یہ <span dir="ltr">APIs</span> اسٹیک کا لازمی حصہ نہیں ہیں، لیکن یہ براہ راست ایتھیریم نوڈ کے ساتھ تعامل کی زیادہ تر پیچیدگی کو چھپا دیتی ہیں۔ یہ افادیت کے فنکشنز بھی فراہم کرتی ہیں (جیسے، <span dir="ltr">ETH</span> کو <span dir="ltr">Gwei</span> میں تبدیل کرنا) تاکہ ایک ڈیولپر کے طور پر آپ ایتھیریم کلائنٹس کی پیچیدگیوں سے نمٹنے میں کم وقت صرف کریں اور اپنی ایپلی کیشن کی مخصوص فعالیت پر زیادہ توجہ مرکوز کر سکیں۔

## لیول <span dir="ltr">5</span>: اینڈ-یوزر ایپلی کیشنز {#end-user-applications}

اسٹیک کی سب سے اوپری سطح پر صارف کا سامنا کرنے والی ایپلی کیشنز ہیں۔ یہ وہ معیاری ایپلی کیشنز ہیں جنہیں آپ آج کل باقاعدگی سے استعمال کرتے اور بناتے ہیں: بنیادی طور پر ویب اور موبائل ایپس۔

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

## کیا آپ اپنا اسٹیک منتخب کرنے کے لیے تیار ہیں؟ {#ready-to-choose-your-stack}

اپنی ایتھیریم ایپلی کیشن کے لیے [مقامی ڈیولپمنٹ ماحول ترتیب دینے](/developers/local-environment/) کے لیے ہماری گائیڈ دیکھیں۔

## مزید مطالعہ {#further-reading}

- [ویب ۳.۰ ایپلی کیشن کا فن تعمیر](https://www.preethikasireddy.com/post/the-architecture-of-a-web-3-0-application) - _پریتی کاسیریڈی_

_کسی ایسے کمیونٹی وسیلے کے بارے میں جانتے ہیں جس نے آپ کی مدد کی ہو؟ اس صفحے میں ترمیم کریں اور اسے شامل کریں!_