گیس اور فیسیں
گیس ایتھیریم نیٹ ورک کے لیے ضروری ہے۔ یہ وہ ایندھن ہے جو اسے چلنے کے قابل بناتا ہے، بالکل اسی طرح جیسے ایک کار کو چلنے کے لیے پٹرول کی ضرورت ہوتی ہے۔
بنیادی شرائط
اس صفحے کو بہتر طور پر سمجھنے کے لیے، ہم تجویز کرتے ہیں کہ آپ پہلے ٹرانزیکشنز اور EVM کے بارے میں پڑھ لیں۔
گیس کیا ہے؟
گیس سے مراد وہ اکائی ہے جو ایتھیریم نیٹ ورک پر مخصوص کاموں کو انجام دینے کے لیے درکار کمپیوٹیشنل کوشش کی مقدار کو ماپتی ہے۔
چونکہ ہر ایتھیریم ٹرانزیکشن کو انجام دینے کے لیے کمپیوٹیشنل وسائل کی ضرورت ہوتی ہے، اس لیے ان وسائل کی ادائیگی کرنی پڑتی ہے تاکہ یہ یقینی بنایا جا سکے کہ ایتھیریم سپیم کا شکار نہ ہو اور لامحدود کمپیوٹیشنل لوپس میں نہ پھنس سکے۔ کمپیوٹیشن کی ادائیگی گیس فیس کی صورت میں کی جاتی ہے۔
گیس فیس کسی کام کو کرنے کے لیے استعمال ہونے والی گیس کی مقدار ہے، جسے فی یونٹ گیس کی قیمت سے ضرب دیا جاتا ہے۔ فیس ادا کی جاتی ہے قطع نظر اس کے کہ ٹرانزیکشن کامیاب ہو یا ناکام۔
خاکہ ایتھیریم EVM کی تصویر کشی (opens in a new tab) سے ماخوذ ہے
گیس فیس ایتھیریم کی مقامی کرنسی، ایتھر (ETH) میں ادا کرنی ہوتی ہے۔ گیس کی قیمتیں عام طور پر Gwei میں بتائی جاتی ہیں، جو ETH کی ایک اکائی ہے۔ ہر Gwei ایک ETH کے ایک اربویں حصے (0.000000001 ETH یا 10-9 ETH) کے برابر ہے۔
مثال کے طور پر، یہ کہنے کے بجائے کہ آپ کی گیس کی قیمت 0.000000001 ایتھر ہے، آپ کہہ سکتے ہیں کہ آپ کی گیس کی قیمت 1 Gwei ہے۔
لفظ 'Gwei' دراصل 'giga-wei' کا مخفف ہے، جس کا مطلب ہے 'ایک ارب Wei'۔ ایک Gwei ایک ارب Wei کے برابر ہے۔ Wei بذات خود (b-money (opens in a new tab) کے خالق وے ڈائی (opens in a new tab) کے نام پر رکھا گیا) ETH کی سب سے چھوٹی اکائی ہے۔
گیس فیس کا حساب کیسے لگایا جاتا ہے؟
جب آپ کوئی ٹرانزیکشن جمع کراتے ہیں تو آپ گیس کی وہ مقدار مقرر کر سکتے ہیں جو آپ ادا کرنے کے لیے تیار ہیں۔ گیس کی ایک خاص مقدار کی پیشکش کر کے، آپ اپنی ٹرانزیکشن کو اگلے بلاک میں شامل کرنے کے لیے بولی لگا رہے ہوتے ہیں۔ اگر آپ بہت کم پیشکش کرتے ہیں، تو توثیق کاروں کی جانب سے آپ کی ٹرانزیکشن کو شامل کرنے کے لیے منتخب کرنے کا امکان کم ہوتا ہے، جس کا مطلب ہے کہ آپ کی ٹرانزیکشن تاخیر سے انجام پا سکتی ہے یا بالکل نہیں۔ اگر آپ بہت زیادہ پیشکش کرتے ہیں، تو آپ کچھ ETH ضائع کر سکتے ہیں۔ تو، آپ کیسے بتا سکتے ہیں کہ کتنی ادائیگی کرنی ہے؟
آپ جو کل گیس ادا کرتے ہیں اسے دو حصوں میں تقسیم کیا جاتا ہے: base fee اور priority fee (ٹپ)۔
base fee پروٹوکول کے ذریعے مقرر کی جاتی ہے—آپ کی ٹرانزیکشن کو درست ماننے کے لیے آپ کو کم از کم اتنی رقم ادا کرنی ہوگی۔ priority fee ایک ٹپ ہے جسے آپ بنیادی فیس میں شامل کرتے ہیں تاکہ آپ کی ٹرانزیکشن توثیق کاروں کے لیے پرکشش بنے اور وہ اسے اگلے بلاک میں شامل کرنے کے لیے منتخب کریں۔
ایک ٹرانزیکشن جو صرف base fee ادا کرتی ہے وہ تکنیکی طور پر درست ہے لیکن اس کے شامل ہونے کا امکان کم ہے کیونکہ یہ توثیق کاروں کو کسی دوسری ٹرانزیکشن پر اسے ترجیح دینے کی کوئی ترغیب نہیں دیتی۔ 'درست' priority فیس کا تعین اس وقت کے نیٹ ورک کے استعمال سے ہوتا ہے جب آپ اپنی ٹرانزیکشن بھیجتے ہیں—اگر مانگ بہت زیادہ ہے تو آپ کو اپنی priority فیس زیادہ مقرر کرنی پڑ سکتی ہے، لیکن جب مانگ کم ہو تو آپ کم ادائیگی کر سکتے ہیں۔
مثال کے طور پر، فرض کریں کہ جارڈن کو ٹیلر کو 1 ETH ادا کرنا ہے۔ ایک ETH کی منتقلی کے لیے گیس کے 21,000 یونٹس درکار ہوتے ہیں، اور بنیادی فیس 10 Gwei ہے۔ جارڈن 2 Gwei کی ٹپ شامل کرتا ہے۔
کل فیس اب اس کے برابر ہوگی:
units of gas used * (base fee + priority fee)
جہاں base fee پروٹوکول کی طرف سے مقرر کردہ قدر ہے اور priority fee صارف کی طرف سے توثیق کار کو ٹپ کے طور پر مقرر کردہ قدر ہے۔
مثال کے طور پر، 21,000 * (10 + 2) = 252,000 gwei (0.000252 ETH)۔
جب جارڈن رقم بھیجتا ہے، تو جارڈن کے اکاؤنٹ سے 1.000252 ETH کاٹ لیے جائیں گے۔ ٹیلر کو 1.0000 ETH جمع کر دیے جائیں گے۔ توثیق کار کو 0.000042 ETH کی ٹپ ملتی ہے۔ 0.00021 ETH کی base fee جلا دی (burn) جاتی ہے۔
بنیادی فیس
ہر بلاک کی ایک بنیادی فیس ہوتی ہے جو ریزرو قیمت کے طور پر کام کرتی ہے۔ کسی بلاک میں شامل ہونے کا اہل ہونے کے لیے پیش کردہ فی گیس قیمت کم از کم بنیادی فیس کے برابر ہونی چاہیے۔ بنیادی فیس کا حساب موجودہ بلاک سے آزادانہ طور پر لگایا جاتا ہے اور اس کے بجائے اس سے پہلے والے بلاکس کے ذریعے اس کا تعین کیا جاتا ہے، جس سے صارفین کے لیے ٹرانزیکشن فیس کا اندازہ لگانا زیادہ آسان ہو جاتا ہے۔ جب بلاک بنایا جاتا ہے تو یہ بنیادی فیس "جلا" دی جاتی ہے، اور اسے گردش سے نکال دیا جاتا ہے۔
بنیادی فیس کا حساب ایک فارمولے سے لگایا جاتا ہے جو پچھلے بلاک کے سائز (تمام ٹرانزیکشنز کے لیے استعمال ہونے والی گیس کی مقدار) کا ہدف کے سائز (گیس کی حد کا نصف) سے موازنہ کرتا ہے۔ اگر ہدف بلاک کا سائز بالترتیب ہدف سے اوپر یا نیچے ہے تو بنیادی فیس میں فی بلاک زیادہ سے زیادہ 12.5% کا اضافہ یا کمی ہوگی۔ یہ تیزی سے ہونے والا اضافہ معاشی طور پر اس بات کو ناممکن بنا دیتا ہے کہ بلاک کا سائز غیر معینہ مدت تک زیادہ رہے۔
| بلاک نمبر | شامل گیس | فیس میں اضافہ | موجودہ بنیادی فیس |
|---|---|---|---|
| 1 | 18M | 0% | 100 Gwei |
| 2 | 36M | 0% | 100 Gwei |
| 3 | 36M | 12.5% | 112.5 Gwei |
| 4 | 36M | 12.5% | 126.6 Gwei |
| 5 | 36M | 12.5% | 142.4 Gwei |
| 6 | 36M | 12.5% | 160.2 Gwei |
| 7 | 36M | 12.5% | 180.2 Gwei |
| 8 | 36M | 12.5% | 202.7 Gwei |
اوپر دی گئی جدول میں، گیس کی حد کے طور پر 36 ملین کا استعمال کرتے ہوئے ایک مثال پیش کی گئی ہے۔ اس مثال کی پیروی کرتے ہوئے، بلاک نمبر 9 پر ٹرانزیکشن بنانے کے لیے، ایک والیٹ صارف کو یقین کے ساتھ بتائے گا کہ اگلے بلاک میں شامل کی جانے والی زیادہ سے زیادہ بنیادی فیس current base fee * 112.5% یا 202.7 gwei * 112.5% = 228.1 gwei ہے۔
یہ نوٹ کرنا بھی ضروری ہے کہ اس بات کا امکان کم ہے کہ ہم مکمل بلاکس کے طویل اضافے دیکھیں گے کیونکہ مکمل بلاک سے پہلے بنیادی فیس جس رفتار سے بڑھتی ہے۔
| بلاک نمبر | شامل گیس | فیس میں اضافہ | موجودہ بنیادی فیس |
|---|---|---|---|
| 30 | 36M | 12.5% | 2705.6 Gwei |
| ... | ... | 12.5% | ... |
| 50 | 36M | 12.5% | 28531.3 Gwei |
| ... | ... | 12.5% | ... |
| 100 | 36M | 12.5% | 10302608.6 Gwei |
ترجیحی فیس (ٹپس)
ترجیحی فیس (ٹپ) توثیق کاروں کو ایک بلاک میں ٹرانزیکشنز کی تعداد کو زیادہ سے زیادہ کرنے کی ترغیب دیتی ہے، جو صرف بلاک گیس کی حد تک محدود ہوتی ہے۔ ٹپس کے بغیر، ایک عقلی توثیق کار کسی بھی براہ راست عمل درآمد کی تہہ یا اتفاق رائے کی تہہ کے جرمانے کے بغیر کم—یا یہاں تک کہ صفر—ٹرانزیکشنز شامل کر سکتا ہے، کیونکہ اسٹیکنگ کے انعامات اس بات سے آزاد ہیں کہ ایک بلاک میں کتنی ٹرانزیکشنز ہیں۔ مزید برآں، ٹپس صارفین کو ایک ہی بلاک کے اندر ترجیح کے لیے دوسروں سے زیادہ بولی لگانے کی اجازت دیتی ہیں، جو مؤثر طریقے سے فوری ضرورت کا اشارہ دیتی ہیں۔
زیادہ سے زیادہ فیس
نیٹ ورک پر ٹرانزیکشن کو انجام دینے کے لیے، صارفین ایک زیادہ سے زیادہ حد بتا سکتے ہیں جو وہ اپنی ٹرانزیکشن کو انجام دینے کے لیے ادا کرنے کو تیار ہیں۔ اس اختیاری پیرامیٹر کو maxFeePerGas کہا جاتا ہے۔ کسی ٹرانزیکشن کو انجام دینے کے لیے، زیادہ سے زیادہ فیس کا بنیادی فیس اور ٹپ کے مجموعے سے زیادہ ہونا ضروری ہے۔ ٹرانزیکشن بھیجنے والے کو زیادہ سے زیادہ فیس اور بنیادی فیس اور ٹپ کے مجموعے کے درمیان فرق واپس کر دیا جاتا ہے۔
بلاک کا سائز
ہر بلاک کا ہدف سائز موجودہ گیس کی حد کا نصف ہوتا ہے، لیکن بلاکس کا سائز نیٹ ورک کی مانگ کے مطابق بڑھے گا یا کم ہوگا، یہاں تک کہ بلاک کی حد تک پہنچ جائے (ہدف بلاک کے سائز کا 2x)۔ پروٹوکول tâtonnement کے عمل کے ذریعے ہدف پر اوسط بلاک سائز کا توازن حاصل کرتا ہے۔ اس کا مطلب ہے کہ اگر بلاک کا سائز ہدف بلاک کے سائز سے زیادہ ہے، تو پروٹوکول اگلے بلاک کے لیے بنیادی فیس میں اضافہ کرے گا۔ اسی طرح، اگر بلاک کا سائز ہدف بلاک کے سائز سے کم ہے تو پروٹوکول بنیادی فیس کو کم کر دے گا۔
بنیادی فیس کو جس مقدار سے ایڈجسٹ کیا جاتا ہے وہ اس بات کے متناسب ہے کہ موجودہ بلاک کا سائز ہدف سے کتنا دور ہے۔ یہ ایک خالی بلاک کے لیے -12.5%، ہدف کے سائز پر 0%، اور گیس کی حد تک پہنچنے والے بلاک کے لیے +12.5% تک کا لکیری حساب ہے۔ گیس کی حد وقت کے ساتھ ساتھ توثیق کار کے سگنلنگ کے ساتھ ساتھ نیٹ ورک اپ گریڈ کے ذریعے بھی اتار چڑھاؤ کا شکار ہو سکتی ہے۔ آپ یہاں وقت کے ساتھ گیس کی حد میں ہونے والی تبدیلیاں دیکھ سکتے ہیں (opens in a new tab)۔
عملی طور پر گیس فیس کا حساب لگانا
آپ واضح طور پر بتا سکتے ہیں کہ آپ اپنی ٹرانزیکشن کو انجام دینے کے لیے کتنی ادائیگی کرنے کو تیار ہیں۔ تاہم، زیادہ تر والیٹ فراہم کنندگان اپنے صارفین پر پڑنے والی پیچیدگی کو کم کرنے کے لیے خود بخود ایک تجویز کردہ ٹرانزیکشن فیس (بنیادی فیس + تجویز کردہ ترجیحی فیس) مقرر کر دیں گے۔
گیس فیس کیوں موجود ہے؟
مختصراً، گیس فیس ایتھیریم نیٹ ورک کو محفوظ رکھنے میں مدد کرتی ہے۔ نیٹ ورک پر انجام پانے والی ہر کمپیوٹیشن کے لیے فیس کا تقاضا کر کے، ہم برے عناصر کو نیٹ ورک پر سپیم کرنے سے روکتے ہیں۔ کوڈ میں حادثاتی یا مخالفانہ لامحدود لوپس یا دیگر کمپیوٹیشنل ضیاع سے بچنے کے لیے، ہر ٹرانزیکشن کے لیے یہ حد مقرر کرنا ضروری ہے کہ وہ کوڈ پر عمل درآمد کے کتنے کمپیوٹیشنل مراحل استعمال کر سکتی ہے۔ کمپیوٹیشن کی بنیادی اکائی "گیس" ہے۔
اگرچہ ایک ٹرانزیکشن میں ایک حد شامل ہوتی ہے، لیکن ٹرانزیکشن میں استعمال نہ ہونے والی کوئی بھی گیس صارف کو واپس کر دی جاتی ہے (مثال کے طور پر، max fee - (base fee + tip) واپس کر دی جاتی ہے)۔
خاکہ ایتھیریم EVM کی تصویر کشی (opens in a new tab) سے ماخوذ ہے
گیس کی حد کیا ہے؟
گیس کی حد سے مراد گیس کی وہ زیادہ سے زیادہ مقدار ہے جو آپ کسی ٹرانزیکشن پر استعمال کرنے کے لیے تیار ہیں۔ سمارٹ کنٹریکٹس پر مشتمل زیادہ پیچیدہ ٹرانزیکشنز کے لیے زیادہ کمپیوٹیشنل کام کی ضرورت ہوتی ہے، اس لیے انہیں سادہ ادائیگی کی نسبت زیادہ گیس کی حد درکار ہوتی ہے۔ ایک معیاری ETH منتقلی کے لیے گیس کے 21,000 یونٹس کی گیس کی حد درکار ہوتی ہے۔
مثال کے طور پر، اگر آپ ایک سادہ ETH منتقلی کے لیے 50,000 کی گیس کی حد رکھتے ہیں، تو EVM 21,000 استعمال کرے گا، اور آپ کو بقیہ 29,000 واپس مل جائیں گے۔ تاہم، اگر آپ بہت کم گیس بتاتے ہیں، مثال کے طور پر، ایک سادہ ETH منتقلی کے لیے 20,000 کی گیس کی حد، تو ٹرانزیکشن توثیق کے مرحلے کے دوران ناکام ہو جائے گی۔ اسے بلاک میں شامل ہونے سے پہلے ہی مسترد کر دیا جائے گا، اور کوئی گیس استعمال نہیں ہوگی۔ دوسری طرف، اگر عمل درآمد کے دوران کسی ٹرانزیکشن کی گیس ختم ہو جاتی ہے (مثال کے طور پر، ایک سمارٹ کنٹریکٹ آدھے راستے میں تمام گیس استعمال کر لیتا ہے)، تو EVM کسی بھی تبدیلی کو ریورٹ کر دے گا، لیکن فراہم کردہ تمام گیس پھر بھی کیے گئے کام کے لیے استعمال ہو جائے گی۔
گیس فیس اتنی زیادہ کیوں ہو سکتی ہے؟
زیادہ گیس فیس ایتھیریم کی مقبولیت کی وجہ سے ہے۔ اگر مانگ بہت زیادہ ہے، تو صارفین کو دوسرے صارفین کی ٹرانزیکشنز سے زیادہ بولی لگانے کی کوشش کرنے کے لیے زیادہ ٹپ کی رقم پیش کرنی چاہیے۔ زیادہ ٹپ اس بات کا امکان بڑھا سکتی ہے کہ آپ کی ٹرانزیکشن اگلے بلاک میں شامل ہو جائے گی۔ اس کے علاوہ، زیادہ پیچیدہ سمارٹ کنٹریکٹ ایپس اپنے افعال کو سپورٹ کرنے کے لیے بہت سارے آپریشنز کر رہی ہو سکتی ہیں، جس کی وجہ سے وہ بہت زیادہ گیس استعمال کرتی ہیں۔
گیس کی لاگت کو کم کرنے کے اقدامات
ایتھیریم کے اسکیل ایبلٹی اپ گریڈز کو بالآخر گیس فیس کے کچھ مسائل کو حل کرنا چاہیے، جو بدلے میں، پلیٹ فارم کو فی سیکنڈ ہزاروں ٹرانزیکشنز پر کارروائی کرنے اور عالمی سطح پر اسکیل کرنے کے قابل بنائے گا۔
لیئر ۲ (l2) اسکیلنگ گیس کی لاگت، صارف کے تجربے اور اسکیل ایبلٹی کو بہت بہتر بنانے کے لیے ایک بنیادی اقدام ہے۔
لیئر ۲ (l2) اسکیلنگ کے بارے میں مزید
گیس فیس کی نگرانی
اگر آپ گیس کی قیمتوں کی نگرانی کرنا چاہتے ہیں، تاکہ آپ اپنا ETH کم قیمت میں بھیج سکیں، تو آپ بہت سے مختلف ٹولز استعمال کر سکتے ہیں جیسے:
- Etherscan (opens in a new tab) ٹرانزیکشن گیس کی قیمت کا تخمینہ کار
- Blockscout (opens in a new tab) اوپن سورس ٹرانزیکشن گیس کی قیمت کا تخمینہ کار
- ETH Gas Tracker (opens in a new tab) ٹرانزیکشن فیس کو کم کرنے اور پیسے بچانے کے لیے ایتھیریم، اور لیئر ۲ (l2) گیس کی قیمتوں کی نگرانی اور ٹریک کریں
- Blocknative ETH Gas Estimator (opens in a new tab) گیس کا تخمینہ لگانے والی کروم ایکسٹینشن جو ٹائپ 0 کی پرانی ٹرانزیکشنز اور ٹائپ 2 EIP-1559 ٹرانزیکشنز دونوں کو سپورٹ کرتی ہے۔
- Cryptoneur Gas Fees Calculator (opens in a new tab) مین نیٹ، آربٹرم، اور پولی گون پر مختلف ٹرانزیکشن اقسام کے لیے اپنی مقامی کرنسی میں گیس فیس کا حساب لگائیں۔
متعلقہ ٹولز
- Blocknative's Gas Platform (opens in a new tab) گیس کے تخمینے کی API جو Blocknative کے عالمی میم پول ڈیٹا پلیٹ فارم سے چلتی ہے
- Gas Network (opens in a new tab) آن چین گیس اوریکلز۔ 35+ چینز کے لیے سپورٹ۔
مزید مطالعہ
- ایتھیریم گیس کی وضاحت (opens in a new tab)
- اپنے سمارٹ کنٹریکٹس کی گیس کی کھپت کو کم کرنا (opens in a new tab)
- ڈویلپرز کے لیے گیس آپٹیمائزیشن کی حکمت عملیاں (opens in a new tab)
- EIP-1559 کی دستاویزات (opens in a new tab)۔
- Tim Beiko کے EIP-1559 وسائل (opens in a new tab)
- EIP-1559: میکانزم کو میمز سے الگ کرنا (opens in a new tab)