اس صفحے سے آپ کسی ٹرانزیکشن کی فیس طے کر سکتے ہیں، یہ اندازہ لگا سکتے ہیں کہ کسی ڈیپلائے یا کال پر کتنی لاگت آئے گی، اور یہ سمجھ سکتے ہیں کہ ویلیڈیٹر کو کیا ادائیگی ہوتی ہے۔ فیسیں RAND میں کم از کم حدیں ہیں۔ کال کے سوا ہر عمل ایک مقررہ فیس ادا کرتا ہے۔ چین 20 پر کال اُس گیس حد کی ادائیگی کرتی ہے جو اس کا ثبوت ظاہر کرتا ہے، اور اپنے بائٹس کی بھی۔ یہ ادائیگی ایسی قیمتوں پر ہوتی ہے جو بلاکس کے بھرنے کے حساب سے بدلتی ہیں اور ایک بالائی حد پر رک جاتی ہیں۔
کم از کم فیسیں
فیسیں 10⁻⁹ RAND کی اکائیوں میں ہیں۔ مستقل قدریں randprotocol_core::gas میں درج ہیں:
| ٹرانزیکشن | کم از کم فیس | آج |
|---|---|---|
کوئی بھی بنڈل: RAND یا کسی بھی RPL ٹوکن کی منتقلی، بانڈ، برج ڈپازٹ (BridgeAttest، جس کی ادائیگی اس کا ریلیئر کرتا ہے)، TokenMint، SetAuthority، TokenBurn، ListBacking | BUNDLE_BASE = 1,000,000 اکائیاں | 0.001 RAND |
| ڈیپلائے | BUNDLE_BASE + DEPLOY_PER_WORD (100,000) × (پروگرام ورڈز + عوامی ورڈز) | 256 ورڈ کا پروگرام: 0.0266 RAND؛ 4,096 ورڈ کا پروگرام: 0.4106 RAND؛ 65,096 ورڈ کی SPL Token امیج اپنے 27,151 ورڈ کے عوامی ان پٹ کے ساتھ: 9.2257 RAND (چین 13 پر 2026-09-19 کو ڈیپلائے کی گئی)۔ چین 16 (hardening_v6، چین 20 سمیت) سے ایسا ڈیپلائے ProgramUncallable کے طور پر مسترد کر دیا جاتا ہے جسے کوئی کال سما نہ سکے: عوامی ان پٹ کے بغیر پروگرام کے لیے 8,180 ورڈ سے زیادہ، اور عوامی ان پٹ کے ساتھ اس سے کم۔ وہ امیج چین 20 پر مسترد ہو جاتی |
| کال | جس چین کی جینیسس میں gas سیکشن ہو (چین 20، جیسے چین 18 اور 19): BUNDLE_BASE + gas_price × وہ گیس حد جو کال ثبوت ظاہر کرتا ہے + byte_price × کال ثبوت اور ان پٹ لفافے کا ہر KiB (نامکمل KiB پورا شمار ہوتا ہے)، بائٹ 0 سے۔ دیکھیں چین 18 پر گیس۔ اس سیکشن کے بغیر چین پر: BUNDLE_BASE + call_fee(tier)، جہاں call_fee = CALL_BASE (1,000,000) + درجہ 10 سے اوپر ہر دو درجوں پر 100,000، نیز کال ثبوت اور ان پٹ لفافے کی 2,097,152 + 18,432 بائٹ کی مفت حد سے اوپر ہر KiB (نامکمل KiB پورا شمار ہوتا ہے) پر 1,000 اکائیاں | چین 20، 100 اور 800 اکائیوں کی ابتدائی قیمتوں پر: درجہ 14 کی جو کال اس درجے کی بالائی حد یعنی 20,479 گیس ظاہر کرے اور جس کا ثبوت اور لفافہ مل کر 1,350,000 بائٹ ہوں، اس کی کم از کم فیس 0.0041 RAND ہے؛ والیٹ کی طے شدہ فیس اس سے زیادہ ہوتی ہے (نیچے)۔ gas سیکشن کے بغیر، جیسے چین 15 پر: درجہ 10: 0.002؛ درجہ 14: 0.0022 RAND، مفت حد کے اندر۔ v0.5.6 سے درجہ 14 سے اوپر کی کال مسترد کر دی جاتی ہے، خواہ وہ کتنی ہی ادائیگی کرے (MAX_CALL_TIER)۔ چین 13 پر 2026-09-19 کو کی گئی ERC-20 approve کال (درجہ 16، 3,412,405 بائٹ کا ثبوت) نے 0.00357 RAND ادا کیے، اور v0.5.6 کے بعد کسی بھی چین پر یہ کال مسترد ہو جاتی |
| انووک (RPL-2، چین 20) | کال کی کم از کم فیس، نیز ہر اُس سیل کے لیے جینیسس کا program_state.cell_fee جو یہ منتقلی بناتی ہے (یعنی وہ سیل جس میں غیر صفر قدر لکھی جائے جہاں پہلے کچھ محفوظ نہ تھا)؛ کسی سیل کو دوبارہ لکھنے یا حذف کرنے سے فیس میں کوئی اضافہ نہیں ہوتا | چین 20 کا cell_fee 0.01 RAND ہے: اوپر والی درجہ 14 کی کال اگر دو سیل بنائے تو اس کی کم از کم فیس 0.0241 RAND ہے |
| BridgeBurn | BRIDGE_BURN_FEE = 10 × BUNDLE_BASE: بنیادی فیس اور برج کا اپنا محصول، دونوں اسی ایک بنڈل سے ادا ہوتے ہیں جو برن کے ساتھ ہوتا ہے | 0.01 RAND؛ چین 20 پر برج جلائے گئے zUSD کا 10 bps بھی رکھتا ہے (نیچے) |
| RegisterToken، RegisterBridgedToken | BUNDLE_BASE + ٹوکن رجسٹری کی registration_fee (ایک جینیسس پیرامیٹر) | چین 20: 0.001 + 1 RAND = 1.001 RAND، جس میں سے 1 RAND جلا دیا جاتا ہے |
| منٹ (فاسٹ)، ان بانڈ | 0؛ کوئی بنڈل نہیں، ویلیڈیٹر کے دستخط سے | — |
| PauseMints، UnpauseMints | 0؛ کوئی بنڈل نہیں، پاز کلید یا PQ گارڈین کورم کی اجازت سے، لہٰذا ایسے والیٹ سے بھی پاز ممکن ہے جس میں کوئی RAND نہ ہو | — |
| نکاسی | وائر پر 0؛ 0.001 RAND کی بنیادی فیس نکالی گئی رقم میں سے کاٹی جاتی ہے | 1,000 RAND کی نکاسی 999.999 مالیت کا نوٹ بناتی ہے |
فیس بنڈل کا ایک عوامی ورڈ ہے اور ہمیشہ RAND میں ہوتی ہے۔ پوشیدہ اثاثے والا بنڈل گیسٹ اسے RAND گروپ کے توازنی رشتے in₂ + in₃ = out₂ + out₃ + fee + burn_r (سلاٹ 2–3) میں باندھتا ہے، اس لیے یہ پوشیدہ نوٹس سے ادا ہوتی ہے اور یہ ظاہر نہیں ہوتا کہ کن نوٹس سے۔ ٹوکن اسی بنڈل کے سلاٹ 0–1 سے اپنے الگ رشتے in₀ + in₁ = out₀ + out₁ + burn_a کے تحت منتقل ہوتا ہے۔ چنانچہ ایک ہی ثبوت ٹوکن منتقل کرتا ہے اور اس کی RAND فیس بھی ادا کرتا ہے، اور جس والیٹ میں ٹوکن ہو مگر خرچ کے قابل RAND نہ ہو، اسے ثبوت بنانے سے پہلے ہی مسترد کر دیا جاتا ہے۔
برج کا محصول برن پر اس لیے پڑتا ہے کہ برج کی ٹرانزیکشنز میں یہی واحد ٹرانزیکشن ہے جس کے بھیجنے والے کے پاس RAND کا ہونا یقینی ہے؛ ڈپازٹ صرف بنیادی فیس ادا کرتا ہے کیونکہ ڈپازٹ کرنے والے کے پاس ابھی کوئی RAND نہیں ہوتا۔ رجسٹریشن فیس fee_floor کا حصہ نہیں بلکہ لیجر کی ایک حقیقت ہے، اس لیے اس کی جانچ اسی عمل کے اپنے قواعد (RegistrationFeeTooLow) سے ہوتی ہے، بالکل اسی طرح جیسے کال کی گیس یا درجے والا حصہ اس کے ثبوت کے ڈی کوڈ ہونے کے بعد وصول کیا جاتا ہے۔ کال کی کم از کم فیس دو بار جانچی جاتی ہے، کیونکہ وہ جو کچھ ظاہر کرتی ہے اس پر اعتماد صرف تب کیا جاتا ہے جب اس کے ثبوت کی تصدیق ہو جائے۔ چین 20 پر پہلی جانچ، کسی بھی تصدیق سے پہلے، کال کے بائٹس اور 1 کی ظاہر کردہ حد کی قیمت لگاتی ہے (Invoke پر وہاں اس کی سیل فیس بھی واجب ہوتی ہے)؛ دوسری جانچ اُس حد کی قیمت لگاتی ہے جو تصدیق شدہ ثبوت ظاہر کرتا ہے۔ gas سیکشن کے بغیر چین پر یہ دونوں جانچیں BUNDLE_BASE + CALL_BASE اور درجے کے عین مطابق کم از کم فیس ہیں۔
اندازہ لگانے کے بجائے نوڈ سے پوچھیں:
rand fee bundle # 0.001 RAND
rand fee deploy 256 # 0.0266 RAND
rand fee call 14 --gas 20479 --bytes 1350000 # 0.0041 RAND at chain 20's starting prices
→ {"method":"rand_estimateFee","params":[{"kind":"call","tier":14,"gas":20479,"bytes":1350000}]}
← "4103100"
یہ جواب ابتدائی قیمتوں پر 1,000,000 + 100 × 20,479 + 800 × 1,319 ہے؛ نوڈ سوال کے وقت ٹِپ کی جو بھی قیمتیں ہوں انہی پر حساب لگاتا ہے۔ چین 20 پر JSON-RPC کے ذریعے کال اسپیک میں gas فیلڈ لازمی ہے (اس کے بغیر -32602)۔ --gas کے بغیر rand fee call <tier> درجے کی بالائی حد بھیجتا ہے، اور --bytes کے بغیر کسی بائٹ کی قیمت نہیں لگاتا۔ انووک کی قیمت بھی اسی طرح لگتی ہے، جس میں "kind":"invoke" اور "created_cells": c کی بدولت c سیل فیسیں شامل ہو جاتی ہیں (اوپر کی مثال میں دو سیلز کے لیے 24103100، جو 2026-10-01 کو چین 20 سے پوچھا گیا)۔ چین 15 پر، جس میں gas سیکشن نہیں تھا، rand fee call 14 کا جواب 0.0022 RAND تھا۔
والیٹ کی طے شدہ فیسیں ٹھیک کم از کم حدیں ہی ہیں، سوائے چین 20 پر کال کے، جس کی طے شدہ فیس میں گنجائش شامل کی جاتی ہے (نیچے)؛ rand send --fee <RAND> اور bond، call، bridge-mint، bridge-burn (طے شدہ 0.01) اور token کی ذیلی کمانڈز پر --fee فلیگ ان فیسوں کو بڑھاتے ہیں۔ کم از کم حد سے اوپر جو کچھ بھی ہو وہ ٹپ ہے۔
چین 18 پر گیس
چین 18، جو 2026-09-29 سے 2026-10-01 تک فعال رہی، پہلی چین تھی جس پر گیس کی پیمائش ہوتی تھی۔ چین 19، جو اسی بلڈ پر اس کا ری جینیسس تھی، میں بھی یہی gas سیکشن تھا۔ چین 20 (v0.6.8) اس حصے کا ہر قاعدہ برقرار رکھتی ہے اور اس میں دو اضافے کرتی ہے: قیمتوں کی دو بالائی حدیں، اور بائٹ لوڈ جو صرف ادائیگی کرنے والے بائٹس پر شمار ہوتا ہے (نیچے)۔ gas سیکشن کے بغیر چین اوپر والے جدول میں دیا گیا درجہ وار نظام برقرار رکھتی ہے۔
کیا شمار ہوتا ہے۔ ایک گیس zkVM کے cpu جدول کی ایک قطار ہے، اس لیے ایک عام انسٹرکشن کی لاگت 1 ہے۔ سسکالز کے سوا کوئی اور لاگت نہیں:
| عمل | گیس |
|---|---|
کوئی بھی انسٹرکشن، HALT، WRITE_OUTPUT، READ_INPUT، READ_PUBLIC | 1 |
n ورڈز پر POSEIDON2 | 3 + 3 × ⌈n/4⌉ (ہر جذب قطار کی لاگت 3) |
SHA256، ایک کمپریشن | 64 |
KECCAK، ایک پرمیوٹیشن | 192 |
ظاہر کردہ حد۔ کال ثبوت میں اب پہلے سے ایک عوامی قدر زیادہ ہوتی ہے، GAS_LIMIT، اور سرکٹ (قیود کا مجموعہ 8) ثابت کرتا ہے کہ رن کی گیس اس حد کے برابر یا اس سے کم ہے۔ اصل گیس نجی رہتی ہے۔ جو حد ثبوت کے اپنے ہیڈر کی بالائی حد سے زیادہ ہو، اسے کوئی تصدیقی کلید بنائے جانے سے پہلے ہی مسترد کر دیا جاتا ہے:
gas_max = (2ᵗ − 1) + 2^(t−2) + 191 × (keccak rows / 32) + 63 × (sha256 rows / 64)
جو کال ہیش کا کوئی جدول استعمال نہ کرے، اس کے لیے یہ حد درجہ 10 پر 1,279، درجہ 12 پر 5,119 اور درجہ 14 پر 20,479 ہے۔
کم از کم فیس۔ لیجر ظاہر کردہ حد اور بائٹس کی فیس اُن قیمتوں پر وصول کرتا ہے جو بلاک کے آغاز پر نافذ ہوں:
fee ≥ BUNDLE_BASE + gas_price × gas_limit + byte_price × ⌈bytes / 1024⌉
bytes کال ثبوت اور ان پٹ لفافہ ہیں۔ ایسی چین پر درجہ وار نظام اور اس کی مفت حد لاگو نہیں ہوتے۔ پول بالکل وہی تقاضا کرتا ہے جو بلاک کرتا ہے، اور اس سے سستی کال کو FeeTooLow کے طور پر مسترد کر دیتا ہے۔
بنڈل اور اجازتی ثبوت مقررہ حدیں ظاہر کرتے ہیں۔ ہر بنڈل ثبوت کو ٹھیک جینیسس کی bundle_gas_limit یعنی 20,479 (درجہ 14 کی بالائی حد) ظاہر کرنی ہوتی ہے، ورنہ ٹرانزیکشن BundleGasLimit کے طور پر مسترد ہو جاتی ہے۔ چین 20، چین 17 کے بعد کی ہر چین کی طرح، تقسیم شدہ اجازت پر چلتی ہے، اس لیے ہر بنڈل کے ساتھ درجہ 10 کا ایک اجازتی ثبوت ہوتا ہے جسے 1,279 ظاہر کرنا ہوتا ہے (AuthGasLimit)۔ ان دونوں میں سے کوئی بھی فیس نہیں ہے: منتقلی، بانڈ یا ڈیپلائے اب بھی اوپر والے جدول کی مقررہ کم از کم فیس ادا کرتے ہیں۔ والیٹ یہ دونوں قدریں خود ظاہر کرتا ہے۔
قیمتیں بدلتی ہیں۔ چین 20 کے gas سیکشن میں dynamic کنٹرولر ہے، اس لیے gas_price اور byte_price لیجر کی اسٹیٹ کا حصہ ہیں اور اسٹیٹ روٹ میں درج ہوتے ہیں۔ ہر بلاک میں ایک بار، اس کی ٹرانزیکشنز کے بعد، ہر قیمت اس حساب سے بدلتی ہے کہ بلاک ہدف کے مقابلے میں کتنا بھرا تھا:
price' = min(max_price, max(min_price, price + ⌊price × adjust_bps × (used − target) / (10,000 × target)⌋))
used کی حد ہدف کا دوگنا ہے، اس لیے adjust_bps وہ سب سے بڑی تبدیلی ہے جو ایک بلاک کسی بھی سمت میں کر سکتا ہے۔ max_price جینیسس کی بالائی حد ہے؛ چین 18 اور 19 میں ایسی کوئی حد نہیں تھی۔ byte_price بلاک کے ادائیگی کرنے والے بائٹس (نیچے) کے مطابق بدلتی ہے؛ gas_price بلاک کی کالز اور انووکس کی ظاہر کردہ حدوں کے مجموعے کے مطابق بدلتی ہے، جس میں ہر بنڈل کے لیے 20,479 جمع کیے جاتے ہیں۔
چین 20 کا gas سیکشن | قدر |
|---|---|
جینیسس پر gas_price، byte_price | فی گیس 100 اکائیاں؛ فی KiB 800 اکائیاں |
min_gas_price، min_byte_price | 100؛ 800، چنانچہ ابتدائی قیمتیں ہی نچلی حدیں بھی ہیں |
max_gas_price، max_byte_price | 10,000؛ 80,000: بالائی حدیں، نچلی حدوں کا 100 گنا (چین 20 میں نیا) |
byte_load | paying (چین 20 میں نیا) |
target_block_bytes | 10,485,760، یعنی 20 MiB کی بلاک حد کا نصف |
target_block_gas | 262,144 |
adjust_bps | 1,250: فی بلاک زیادہ سے زیادہ 12.5% |
bundle_gas_limit | 20,479 |
metering | circuit |
جو بلاک اپنے اہداف سے کم رہے وہ قیمتوں کو نیچے لاتا ہے، اس لیے پُرسکون چین پر قیمتیں نچلی حدوں پر رہتی ہیں۔ rand_getLimits ٹِپ کی موجودہ gas_price اور byte_price کو gas_metering: "circuit"، bundle_gas_limit، adjust_bps کے ساتھ فراہم کرتا ہے، اور v0.6.8 سے max_gas_price، max_byte_price اور byte_load بھی (جس چین پر یہ موجود نہ ہوں وہاں null)؛ rand_status انہی دو قیمتوں کو gas_prices کے طور پر رپورٹ کرتا ہے۔
بالائی حدیں اور ادائیگی والا بائٹ بوجھ
دونوں gas.dynamic کے جینیسس فیلڈ ہیں، جو v0.6.8 (آڈٹ v6، POOL-2) میں نئے آئے ہیں، اور چین 20 پہلی چین ہے جو انہیں مقرر کرتی ہے۔ یہ اس خرابی کو دور کرتے ہیں جو چین 18 اور 19 میں موجود تھی۔ وہاں byte_price ہر ٹرانزیکشن کی انکوڈ شدہ لمبائی کے ساتھ بدلتی تھی، جبکہ اسے صرف کال ادا کرتی ہے۔ سات ٹرانسفر (ہر ایک تقریباً 2.85 MB، مقررہ فیس) ایک بلاک کو بائٹ ہدف کے تقریباً 1.9 گنا تک بھر دیتے ہیں اور قیمت کو فی بلاک تقریباً 11% بڑھا دیتے ہیں، اور کوئی بالائی حد نہیں تھی: ایسے تقریباً 65 بلاک اسے ابتدائی قیمت کے 1,000 گنا تک لے جاتے ہیں، اور پھر ایک کال کی لاگت تقریباً 0.004 کے بجائے تقریباً 1 RAND ہو جاتی ہے۔
- بالائی حدیں۔
max_gas_priceاورmax_byte_priceوہ قیمتیں ہیں جن سے آگے کنٹرولر کبھی نہیں بڑھاتا۔ قدم وہی رہتا ہے اور پھر اسے حد میں محدود کیا جاتا ہے (gas::next_price_capped)، چنانچہ بالائی حد پر پہنچی ہوئی قیمت بھرے ہوئے بلاکوں کے کسی بھی سلسلے میں وہیں رہتی ہے اور ہدف سے کم پہلے ہی بلاک پر گر جاتی ہے۔ جینیسس کو ہر ایک کو اس کی ابتدائی قیمت کے برابر یا اس سے اوپر مقرر کرنا لازم ہے۔ چین 20 کی بالائی حدوں پر اوپر والی درجہ 14 کی کال، 20,479 گیس اور 1,319 KiB، کی نچلی حد 0.3113 RAND ہے، جو اس کی نچلی حد کی بلند ترین ممکنہ قدر ہے۔ - ادائیگی والا بائٹ بوجھ۔
byte_load: "paying"کے تحت بلاک کاbytes_usedصرف وہ بائٹ گنتا ہے جن پر بائٹ قیمت وصول کی جاتی ہے: ہرCallاورInvokeکا ثبوت اور ان پٹ لفافہ (gas::call_bytes)، اور ٹرانسفر، بانڈ یا برن کا کچھ بھی نہیں۔ ٹرانسفروں سے بھرا بلاک بائٹ قیمت کو حرکت نہیں دیتا۔Ledger::block_usageیہ عدد تجویز کنندہ اور نقل دونوں کے لیے نکالتا ہے، اس لیے دونوں متفق رہتے ہیں۔
ادائیگی والے بوجھ کے تحت ٹرانسفروں سے بھرا بلاک کال کو قیمت کا کوئی اشارہ نہیں دیتا، اس لیے دیانت دار تجویز کنندہ کالوں کے لیے بھی جگہ محفوظ رکھتا ہے۔ یہ نوڈ کی پالیسی ہے، درستی کا قاعدہ نہیں: جب تک کوئی کال یا انووک پول میں موجود ہو اور اپنی موجودہ نچلی حد ادا کرتا ہو، مقررہ فیس والی ٹرانزیکشنز پہلے مرحلے میں بلاک کے بائٹس کا زیادہ سے زیادہ تین چوتھائی لیتی ہیں، اور آخری چوتھائی میں سے جو کچھ کالیں چھوڑ دیں اسے پھر روکے گئے ٹرانسفروں سے بھرا جاتا ہے (میم پول)۔
والٹ کال کے لیے کیا ادا کرتا ہے
rand call پہلے پروگرام کو ایمولیٹر میں چلاتا ہے اور gas: <exact> (declaring <limit>, tier <t>) پرنٹ کرتا ہے۔ بطورِ طے شدہ یہ عین گیس کو 2^(tier − 2) کے مضرب تک اوپر گول کر کے ظاہر کرتا ہے؛ --gas-limit N ایک عین عدد ظاہر کرتا ہے اور --gas-limit max ہیڈر کی بالائی حد۔
دو چیزیں طے شدہ فیس کو نچلی حد سے زیادہ کرتی ہیں:
- ثبوت کی قیمت حدِ اعلیٰ پر لگائی جاتی ہے۔ چین 16 سے (
hardening_v6، چین 20 سمیت) کال کا ثبوت اپنی ہی ٹرانزیکشن سے بندھا ہوتا ہے، اس لیے فیس ثبوت کے وجود میں آنے سے پہلے طے ہو جاتی ہے۔ والٹ اصل ثبوت کے سائز کی جگہ چین کی ثبوتی حد، 4 MiB، کی قیمت لگاتا ہے (wallet::hardened_call_quote_bytes)۔ اس سے صرف زائد ادائیگی ہی ہو سکتی ہے۔ - قیمت کے دو قدموں کی گنجائش۔
rand_getLimitsکمٹ شدہ ہیڈ کی قیمتیں فراہم کرتا ہے اور کال دو یا تین بلاک بعد شامل ہوتی ہے، اس لیے طے شدہ فیس نچلی حد کو(1 + adjust_bps / 10,000)²سے ضرب دیتی ہے، جو چین 20 پر 1.125² ہے۔
چین 18 پر 2026-09-30 کو ناپی گئی چار کالوں میں سے ہر ایک کی لاگت ان طے شدہ ترتیبات پر 0.0057 اور 0.0075 RAND کے درمیان رہی (مثالی پروگرام)۔ --fee طے شدہ فیس کو بدل دیتا ہے؛ والٹ جمع کرانے سے پہلے اصل ثبوت کی دوبارہ قیمت لگاتا ہے اور نچلی حد سے کم فیس کو مسترد کر دیتا ہے۔
فیس کہاں جاتی ہے
ساری فیس — نچلی حد اور ٹِپ — توثیق کنندگان کے رجسٹر میں بلاک تجویز کنندہ کے rewards میں جمع ہوتی ہے، جو اس چین پر واحد جگہ ہے جہاں کوئی رقم کھلے طور پر محفوظ کی جاتی ہے، ایک استثنا کے ساتھ۔ tokens.burn_registration_fee والے جینیسس پر (چین 20، جیسا کہ چین 15 سے ہر چین)، RegisterToken یا RegisterBridgedToken کی registration_fee جلا دی جاتی ہے اور تجویز کنندہ fee − registration_fee رکھتا ہے؛ rand_getSupply اسے registration_fees_burned میں شمار کرتا ہے۔ چین 14 پر، جس میں یہ فلیگ نہیں تھا، تجویز کنندہ پوری فیس رکھتا تھا۔ اس کے علاوہ کچھ نہیں جلایا جاتا اور کوئی تقسیم نہیں ہوتی۔ توثیق کنندہ جمع شدہ انعامات کو rand-node withdraw کے ذریعے نوٹ میں بدلتا ہے (اسٹیکنگ)۔ انووک کی سیل فیس اس کی بنڈل فیس کا حصہ ہے اور باقی کے ساتھ تجویز کنندہ کو جاتی ہے۔ چین 20 پر نہ کوئی بلاک انعام ہے اور نہ افراطِ زر: فیسیں ہی توثیق کنندہ کی پوری آمدنی ہیں۔
چین 20 پر ایک فیس RAND میں نہیں ہے اور کسی توثیق کنندہ کو نہیں جاتی۔ جینیسس کے bridge.fees کے تحت (v0.6.8 میں نیا) برج ہر zUSD ڈپازٹ اور ہر zUSD برن کا 10 bps رکھتا ہے، جو پشت پناہ اثاثے کی پوری اجرائی اکائی تک نیچے گول کیا جاتا ہے، اور یہ zUSD نوٹ کی صورت میں اس خزانے کے پتے پر جاتا ہے جسے جینیسس نامزد کرتا ہے۔ ڈپازٹ جمع کرانے والے کے کھاتے میں کل رقم میں سے فیس منہا کر کے جمع کرتا ہے؛ برن ماخذ چین پر amount − fee جاری کرتا ہے۔ فیس کا نوٹ جاری شدہ اور پشت پناہی یافتہ رہتا ہے۔ دیکھیے برج اور RPL ٹوکن۔
میم پول امیدوار ٹرانزیکشنز کو اس بنیاد پر ترتیب دیتا ہے کہ وہ اپنی نچلی حد سے اوپر فی KiB کتنا ادا کرتی ہیں، پھر فیس کے لحاظ سے (میم پول)، اس لیے زیادہ فیس صرف بھیڑ کی صورت میں اہمیت رکھتی ہے۔ ایک ٹرانسفر تقریباً 2.85 MB کا ہوتا ہے (چین 18 پر ناپا گیا): 1.49 MB کا بنڈل ثبوت اور 1.36 MB کا اجازتی ثبوت، اس لیے چین 20 کے 20 MiB بلاک میں تقریباً سات سما جاتے ہیں۔ فل نوڈ کا اپنا نوٹ یہ تھا کہ mainnet سے پہلے نچلی حد کو بائٹس پر — نہ کہ آپ کوڈز پر — مبنی فیس مارکیٹ بن جانا چاہیے۔ چین 20 کی بائٹ قیمت کالوں کے لیے یہی مارکیٹ ہے، جسے صرف وہ بائٹ حرکت دیتے ہیں جن کی ادائیگی کالیں کرتی ہیں؛ ٹرانسفر کی نچلی حد اب بھی مقررہ ہے۔
یہاں گیس قیمت کیوں ہے، حد کیوں نہیں
Ethereum ہر آپ کوڈ کی پیمائش کرتا ہے کیونکہ ہر نوڈ ہر ٹرانزیکشن کو چلاتا ہے اور اجرا کی کوئی انتہا نہیں۔ Rand پر کوئی نوڈ کچھ بھی نہیں چلاتا: بھیجنے والا پروگرام کو ایک بار، چین سے باہر، چلاتا ہے اور چین کو ایک ثبوت دے دیتا ہے۔ فی ٹرانزیکشن نوڈ کا کام ایک مقررہ ترتیب ہے — عوامی فیلڈز کو ڈی کوڈ کرنا، مفت جانچیں چلانا، ایک STARK کی تصدیق کرنا — اور یہ تصدیق، پروگرام نے جو بھی کیا ہو، تیار تصدیقی کلید کے ساتھ تقریباً 16 ms لیتی ہے۔ چنانچہ گیس کے تینوں کام الگ الگ ہو جاتے ہیں:
- اختتام درجے کے ذریعے نافذ ہوتا ہے: جو اجرا
2ᵗ − 1سائیکلوں کے اندر نہ رکے اس کا ثبوت بنایا ہی نہیں جا سکتا، اور ناکامی کا بوجھ ثابت کنندہ اٹھاتا ہے۔ - کام کی قیمت لگانا چین 18 سے گیس کی نچلی حد کا کام ہے۔ نیٹ ورک کے لیے فی ہدایت لاگت تقریباً صفر ہے، لیکن بھیجنے والے کا ثبوت سازی کا کام حقیقی ہے، اور مقررہ نچلی حد دس لاکھ سائیکل والی کال کی قیمت ہزار سائیکل والی کال کے برابر لگاتی تھی۔ چین 18 تک نچلی حد فی درجہ مقررہ تھی۔
- بلاک کا حجم ایک بائٹ بجٹ (
MAX_BLOCK_BYTES= بطورِ طے شدہ 4 MiB، ورنہ جینیسس کاmax_block_bytes) اور ٹرانزیکشنز کی تعداد (2,000) سے طے ہوتا ہے۔
دو تحفظات جو فل نوڈ صاف صاف بیان کرتا ہے: بائٹس میں فرق ضرور ہوتا ہے (ایک ثبوت ایک میگا بائٹ سے زیادہ کا ہوتا ہے، اس لیے کمیاب وسیلہ بلاک کی جگہ ہے، حساب نہیں)، اور اسٹیٹ کی افزائش — درخت، نلیفائر سیٹ، تعینات شدہ پروگرام بائٹس — کی قیمت صرف فی لفظ تعیناتی فیس اور مقررہ بنیادی فیس سے لگتی ہے، جو testnet کے لیے کافی ہے اور جب اسٹیٹ کا حجم اہم ہو جائے تو اس پر نظرِ ثانی کے لائق ہے۔
اس کے بجائے بھیجنے والا کیا ادا کرتا ہے: ثبوت سازی
واحد لاگت جو بدلتی ہے وہ STARK ثبوت تیار کرنا ہے، اور اسے صرف بھیجنے والے کی مشین ادا کرتی ہے۔ اثر کی ترتیب سے:
- درجہ
t ∈ {10, 12, 14, 16, 18, 20}(v0.5.6 سے چین پر 14 سے اوپر کی کال مسترد کی جاتی ہے؛ بنڈل 14 پر مقرر ہے، اور چین 17 سے اس کے ساتھ درجہ 10 کا اجازتی ثبوت بھی ہوتا ہے، جو تقریباً 7 s مزید لیتا ہے): cpu جدول کو2ᵗقطاروں تک بھرا جاتا ہے اور ہر قدم بھرے ہوئے ٹریس کو تقریباً چار گنا کر دیتا ہے۔ ترقیاتی لیپ ٹاپ پر ناپا گیا: درجہ 10 پرprivate_paymentتقریباً 7 s میں؛ درجہ 14 پر پوشیدہ اثاثے والا بنڈل گیسٹ تقریباً 100 s میں، خواہ وہ کوئی بھی اثاثہ منتقل کرے۔ - چلائے گئے سائیکل، کیونکہ یہی درجہ طے کرتے ہیں: چلائی گئی ہدایات، نہ کہ لکھی گئی ہدایات۔
- پروگرام کا حجم، معمولی طور پر: ٹریس کے آغاز میں ہر چار الفاظ پر ایک ڈائجسٹ قطار۔
- نجی ان پٹ کا حجم، اسی طرح۔
- کون سے جدول موجود ہیں: keccak یا sha256 جدول اپنے کالموں کا حصہ صرف تب لیتا ہے جب گیسٹ نے اسے استعمال کیا ہو۔
- FRI پروفائل: 27 کے بجائے 80 سوالات ثبوت کے حجم کو تین گنا کر دیتے ہیں لیکن ثبوت سازی کے وقت میں بمشکل فرق ڈالتے ہیں۔
ثبوت سازی کا انحصار نہ رقوم پر ہے، نہ اس پر کہ بھیجنے والے کے پاس کتنے نوٹ ہیں، اور نہ چین کے حجم پر: رکنیت ایک مقررہ گہرائی والے درخت کے خلاف ثابت کی جاتی ہے، اس لیے ایک ٹرانسفر کی لاگت دسویں بلاک پر بھی وہی ہے اور ایک کروڑویں بلاک پر بھی۔
حوالہ
| مستقل | قدر |
|---|---|
BUNDLE_BASE | 1,000,000 اکائیاں |
BRIDGE_BURN_FEE | 10,000,000 اکائیاں (10 × BUNDLE_BASE) |
registration_fee (جینیسس کا tokens حصہ) | چین 20 پر 1,000,000,000 اکائیاں، جو جلا دی جاتی ہیں (burn_registration_fee) |
DEPLOY_PER_WORD | 100,000 اکائیاں |
CALL_BASE, CALL_PER_TIER_STEP | 1,000,000؛ 100,000 اکائیاں؛ اُس چین کا درجہ وار جدول جس میں gas حصہ نہ ہو |
GAS_PRICE_DEFAULT, BYTE_PRICE_DEFAULT | فی گیس 100 اکائیاں؛ فی KiB 800 اکائیاں۔ چین 20 کی ابتدائی قیمتیں اور اس کی کم از کم قیمتیں |
KECCAK_GAS, SHA256_GAS, POSEIDON2_ABSORB_GAS | 192؛ 64؛ فی قطار 3 گیس |
max_gas_price, max_byte_price (جینیسس کا gas.dynamic) | چین 20 پر فی گیس 10,000 اکائیاں؛ فی KiB 80,000 اکائیاں؛ عدم موجودگی میں کوئی بالائی حد نہیں (چینز 18 اور 19) |
byte_load (جینیسس کا gas.dynamic) | چین 20 پر paying: صرف کال اور انووک کے ثبوت اور لفافے کے بائٹس byte_price کو متاثر کرتے ہیں؛ عدم موجودگی میں ہر ٹرانزیکشن کے بائٹس |
cell_fee (جینیسس کا program_state) | چین 20 پر ہر تخلیق شدہ سیل کے لیے 10,000,000 اکائیاں (0.01 RAND)؛ زیادہ سے زیادہ 1,000 RAND |
bundle_gas_limit (جینیسس کا gas حصہ) | چین 20 پر 20,479، gas_max(14, 0, 0)؛ ایک اجازتی ثبوت 1,279 کا اعلان کرتا ہے، gas_max(10, 0, 0) |
adjust_bps (جینیسس کا gas.dynamic) | چین 20 پر 1,250؛ جینیسس 1 سے 5,000 تک مقرر کر سکتا ہے |
MAX_PROGRAM_WORDS | 4,096، الا یہ کہ جینیسس max_program_words مقرر کرے (زیادہ سے زیادہ 65,535؛ چین 20 پر 65,535 مقرر ہے، اور hardening_v6 8,180 الفاظ سے بڑا ایسا پروگرام مسترد کر دیتا ہے جسے کوئی کال سما نہ سکے) |
MAX_PROOF_BYTES | 2 MiB، الا یہ کہ جینیسس max_proof_bytes مقرر کرے (چین 20 پر 4 MiB؛ چینز 13 تا 15 پر 8 MiB) |
MAX_BLOCK_BYTES, MAX_BLOCK_TXS | 4 MiB (الا یہ کہ جینیسس max_block_bytes مقرر کرے؛ چین 20 پر 20 MiB)، 2,000 |
| درجات | 10، 12، 14، 16، 18، 20؛ سائیکل ≤ 2ᵗ − 1 |
MAX_CALL_TIER | 14: اس سے اوپر کا کال ثبوت داخلے پر بھی اور بلاک میں بھی مسترد کر دیا جاتا ہے (v0.5.6 سے) |