مرکزی مواد پر جائیں

ٹرانزیکشنز — ETH.BUILD

ETH.BUILD تعلیمی ٹول کا استعمال کرتے ہوئے ایتھیریم ٹرانزیکشنز کے کام کرنے کے طریقے کا ایک مظاہرہ۔ دیکھیں کہ ایتھیریم نیٹ ورک پر ٹرانزیکشنز کیسے بنائی، دستخط کی، اور بھیجی جاتی ہیں۔

Date published: ۱۴ جنوری، ۲۰۲۱

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

یہ ٹرانسکرپٹ آسٹن گریفتھ کی جانب سے شائع کردہ اصل ویڈیو ٹرانسکرپٹ (opens in a new tab) کی ایک قابل رسائی کاپی ہے۔ اسے پڑھنے میں آسانی کے لیے معمولی طور پر ایڈٹ کیا گیا ہے۔

ٹرانزیکشن فیس اور کان کن کی ترغیبات (0:00)

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

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

ایتھیریم ٹرانزیکشن کی ساخت (1:10)

ایتھیریم پر ٹرانزیکشن کیسی دکھتی ہے؟ اب ہمارے پاس "باب" اور "ایلس" نہیں ہوں گے — ہمارے پاس پتے ہوں گے۔ قدر ETH کے بجائے Wei میں ہوگی۔ اور فیس بھی Wei میں ہوگی۔

آئیے آگے بڑھتے ہیں اور اس ٹرانزیکشن کو دیکھتے ہیں۔ میرے پاس ایک اکاؤنٹ ہے جس میں ایک نیومونک (mnemonic) ڈالا گیا ہے، اور میں ایتھیریم مین نیٹ سے جڑا ہوا ہوں۔ میں CoinMarketCap سے قیمت کا ڈیٹا حاصل کرنے کے لیے ایک ماڈیول بھی چلا رہا ہوں، تاکہ میں دیکھ سکوں کہ 0.1 کچھ ETH تقریباً تئیس ڈالر کے برابر بنتا ہے۔

ٹرانزیکشن ترتیب دینا (2:25)

میں جو کرنے جا رہا ہوں وہ ایک ٹرانزیکشن بنانا ہے اور کان کن کو ترغیب دینا ہے کہ وہ اسے اٹھائے اور آن چین ڈالے۔ میرے پاس دو کردار ہیں — ایلس اور باب۔ ایلس اپنی نجی کلید کے ساتھ باب کو کچھ قدر بھیجنے والی ہے۔ یہاں کوئی "from" (کی طرف سے) پتہ فیلڈ نہیں ہے کیونکہ — یاد رکھیں — ہم اپنے کلیدی جوڑے (key pair) کے ساتھ دستخط کر رہے ہیں اور بازیافت کر رہے ہیں۔ ٹرانزیکشن پیک ہوتی ہے، دستخط کی جاتی ہے، اور پھر نیٹ ورک پر بھیجی جاتی ہے۔ کوئی بھی اس کے ساتھ چھیڑ چھاڑ نہیں کر سکتا، اور دوسری طرف کوئی اسے بازیافت کر سکتا ہے اور معلوم کر سکتا ہے کہ واقعی ہم نے ہی اس پر دستخط کیے تھے۔ "from" پتہ اخذ کیا جاتا ہے۔

گیس کی قیمت کی حکمت عملی (4:20)

گیس کی قیمت پہلے سے طے شدہ طور پر تقریباً 4.1 Gwei پر سیٹ ہے — جو کہ 4.1 بلین Wei ہے۔ لیکن ہم اس کے بارے میں مزید حکمت عملی اپنانا چاہتے ہیں اور دیکھنا چاہتے ہیں کہ اس وقت آن چین کیا ہو رہا ہے۔ ہم دیکھ سکتے ہیں کہ پچھلے بلاک میں 78 ٹرانزیکشنز تھیں، اور گیس کی قیمت تقریباً 5 سے کم ہو کر کسی کم از کم حد تک تھی۔ بنیادی طور پر، اس بلاک میں مائن ہونے کے لیے ہمیں 5 سے اوپر ہونا پڑے گا۔ تو آئیے گیس کی قیمت کو 5.001 پر سیٹ کریں — بس تھوڑا سا زیادہ۔

Wei میں تبدیل کرنا (5:20)

ہمیں Wei میں تبدیلی کرنے کی ضرورت ہے۔ ایتھیریم پر، آپ بنیادی طور پر دو اکائیوں کے ساتھ کام کرتے ہیں: ETH، جس کے بارے میں لوگ عام طور پر بات کرتے ہیں، اور پھر Wei، جو ETH کا ایک بہت چھوٹا حصہ ہے۔ ایک Gwei — جسے ہم گیس کی قیمتوں کے لیے استعمال کرتے ہیں — ان کے درمیان ہے۔ اس کی وجہ بالکل ویسی ہی ہے جیسے ہم عام زندگی میں پیسوں کے حصوں میں بات نہیں کرتے۔

ایلس کے پاس 0.18 ETH ہیں، اور ہم باب کو 0.05 ETH بھیجنے والے ہیں۔ ہم نے 5 Gwei کی گیس کی قیمت درج کی ہے۔

دستخط کرنا اور براڈکاسٹنگ (7:02)

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

ہم اس دستخط شدہ ٹرانزیکشن کو لیتے ہیں اور اسے بلاک چین ماڈیول کے بھیجنے (send) کے فنکشن میں لگاتے ہیں۔ جب میں بھیجنے پر کلک کرتا ہوں، تو یہ ہمیں ایک ہیش دیتا ہے — ٹرانزیکشن ہیش۔ بنیادی طور پر، میں نے اسے ڈسٹریبیوٹڈ نیٹ ورک پر بھیجا اور انہوں نے مجھے ایک ٹرانزیکشن ہیش واپس دیا۔ یہ نیٹ ورک پر جاتا ہے، اور پھر ٹرانزیکشنز کا یہ پول ہوتا ہے — جہاں سب لوگ اپنی ٹرانزیکشن کو منظور کروانے کے لیے بولی لگا رہے ہوتے ہیں۔

بلاک چیک کرنا (8:41)

ہم اپنی ٹرانزیکشن کے لیے بلاک چین سے استفسار (query) کر سکتے ہیں۔ یقیناً، یہ پہلے ہی مائن ہو چکی ہے۔ ہم بلاک کو دیکھ سکتے ہیں، گیس کی قیمت کے لحاظ سے ترتیب دے سکتے ہیں، اور خود کو تلاش کر سکتے ہیں۔ وہاں 5.001 کی گیس کی قیمت پر ہماری ٹرانزیکشن موجود ہے — ایلس باب کو بھیج رہی ہے، بغیر کسی اضافی ڈیٹا کے۔ ہم وہاں موجود ہیں، نیچے سے تقریباً چوتھے یا پانچویں نمبر پر۔

ٹرانزیکشن کے ساتھ ڈیٹا بھیجنا (9:54)

ہم قدر بھیجنے اور اپنی ٹرانزیکشن کو آن چین تسلیم کروانے کے لیے بولی لگانے کے قابل ہیں۔ لیکن آئیے ایک اور چیز کو دیکھتے ہیں — ڈیٹا فیلڈ۔ ہم اپنی ٹرانزیکشن کے ساتھ چیزیں بھیج سکتے ہیں۔ یہ ہیکسا ڈیسیمل (hexadecimal) میں ہوگا۔ ایلس باب کو مزید چھ ڈالر بھیجنے والی ہے، اور ہم ایک پیغام منسلک کریں گے: "hey Bob"۔ ہم دیکھ سکتے ہیں کہ "hey Bob" ہیکس (hex) میں تبدیل ہو گیا ہے۔

ہم اس ٹرانزیکشن پر دستخط کرتے ہیں، اسے کان کن کو بھیجتے ہیں، یہ نیٹ ورک پر جاتی ہے، اور ہمیں ایک ہیش واپس ملتا ہے۔ ہم اس کے مائن ہونے کا انتظار کرتے ہیں، اور یہ ہو جاتی ہے۔ جب ہم اس بلاک کو چیک کرتے ہیں، تو ہم منسلک ڈیٹا کے ساتھ اپنی ٹرانزیکشن دیکھ سکتے ہیں۔

ٹرانزیکشن پول اور گیس بڑھانا (12:43)

ایک آخری مظاہرے کے لیے، میں نے بہت کم گیس کی قیمت — تقریباً 1.001 Gwei — کے ساتھ پول میں ایک ٹرانزیکشن ڈالی۔ یہ وہاں بغیر مائن ہوئے پڑی ہے کیونکہ ہم کان کنوں کو کافی ترغیب نہیں دے رہے ہیں۔ ہم دیکھ سکتے ہیں کہ ٹرانزیکشن پول میں ٹرانزیکشن زیر التوا (pending) ہے۔ پول میں ایک سے تین سو کے درمیان ٹرانزیکشنز ہیں، لیکن مائن ہونے والے تازہ ترین بلاکس دکھاتے ہیں کہ سب سے کم گیس کی قیمت تقریباً 5 ہے۔

لہذا ہمیں اس ٹرانزیکشن کو دوبارہ جمع کروانے کی ضرورت ہے — آئیے اسے بڑھا کر 10 کر دیں۔ یہ ضرورت سے کہیں زیادہ ہے، لیکن ہم اسی نانس کے ساتھ مگر زیادہ گیس کی قیمت کے ساتھ وہی ٹرانزیکشن دوبارہ جمع کروائیں گے۔ نیٹ ورک کہتا ہے "وہی شخص، وہی ٹرانزیکشن، زیادہ ادائیگی کرنے کو تیار ہے۔" اسے اٹھا لیا جاتا ہے اور اگلے بلاک میں مائن کر دیا جاتا ہے۔

خلاصہ (14:52)

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

کیا یہ صفحہ مددگار تھا؟