Rand Protocol
دستاویزات
رہنما

اجرا اور تلفی

RAND پول میں کیسے داخل ہوتا ہے - جینیسس ڈپازٹس اور testnet فاسیٹ کے ذریعے - اور اس سے کیسے نکلتا ہے - فیسوں اور بنڈل کے تلفی کے الفاظ کے ذریعے - اور ہر منتقلی کیا شائع کرتی ہے۔

اس صفحے کو کسی آزمائشی چین پر فوسٹ چلانے، یہ سمجھنے کے لیے کہ وائر پر Mint ٹرانزیکشن کیا ہوتی ہے، اور یہ دیکھنے کے لیے استعمال کریں کہ بانڈ یا برج کا جلانا پول سے قدر کو ٹھیک کس طرح باہر نکالتا ہے۔ ہر داخلہ اور ہر اخراج عوامی ہے؛ ان کے درمیان سب کچھ نوٹ ہے۔

فوسٹ کا اجرا

Mint چین 20 پر جینیسس کے بعد RAND تخلیق کرنے کا واحد طریقہ ہے، اور یہ صرف انہی چینز پر موجود ہے جن کا جینیسس "faucet": true کہتا ہے۔ یہ ایک توثیق کار کی دستخط شدہ، بنڈل کے بغیر ٹرانزیکشن ہے:

Action::Mint { cm: Word8, pk: Word8, time: u32, r: Word8, envelope: Envelope, amount: u64,
               minter: PublicKey, signature: Signature }

توثیق کار نوڈ پر rand_mint(address[, amount]) دیے گئے rand1… ایڈریس کے لیے amount کا ایک نوٹ بناتا ہے، اس کے لفافے کو ایک عارضی مرسل کلید کے تحت سربمہر کرتا ہے، اجرا پر نوڈ کی اپنی Dilithium2 کلید سے دستخط کرتا ہے، اور اسے معمول کے میم پول کے ذریعے جمع کراتا ہے — یوں اجرا اتفاقِ رائے سے گزرتا ہے اور ہر نوڈ اسے لاگو کرتا ہے۔ فی کال حد 100000000000 اکائیاں، یعنی 100 RAND، ہے، اور طے شدہ قدر یہی حد ہے۔ چین 14 سے اجرا نوٹ کی اوپننگ — pk، time اور r — ساتھ رکھتا ہے اور دستخط اس کا احاطہ کرتا ہے: داخلہ (pk, no sender, amount, asset 0, time, r) کا تعہد دوبارہ شمار کرتا ہے اور غیر مطابق cm کو the mint's commitment does not open to its published note and amount کے ساتھ رد کر دیتا ہے، اور time کو بنڈل کی مدت کا پابند رکھتا ہے۔ rand_mint کے پیرامیٹر تبدیل نہیں ہوئے۔ چین 14 تا 19 پر دستخط شدہ پیغام blake3("rand-mint-2" ‖ bincode(chain_id, cm, pk, time, r, envelope, amount)) ہے؛ چین 20 پر، جس کا جینیسس binding_domain: 1 مقرر کرتا ہے، یہ جینیسس ہیش اور اس کے بعد انہی فیلڈز پر rand-mint-3 ہے، چنانچہ ایک چین کے لیے دستخط شدہ اجرا کسی بھی دوسری چین پر رد ہو جاتا ہے، خواہ وہ وہی چین id اور وہی توثیق کار کلیدیں رکھتی ہو۔ مبصر نوڈ کے پاس توثیق کار کلید نہیں ہوتی اور وہ faucet mints are signed by validators; ask a validator node جواب دیتا ہے؛ جس چین پر یہ فلیگ نہ ہو وہ faucet is disabled on this chain جواب دیتی ہے۔

چین 20 کا فوسٹ فعال ہے مگر اس کے جینیسس کے staking حصے سے محدود ہے، انہی اقدار کے ساتھ جو چین 19 کی تھیں:

قاعدہچین 20انکار
وصول کنندگان16 والیٹس کی ایک اجازت فہرست (staking.faucet_recipients)؛ اجرا کی شائع شدہ pk کا اس میں ہونا لازم ہےthe faucet may not mint to this recipient (not in staking.faucet_recipients)، مستقل
بجٹہر 1,000 بلاک کے ایپاک میں 10,000 RAND (staking.faucet_budget_per_epoch)، تمام توثیق کاروں میں مجموعیthe faucet budget of … for this epoch is exhausted (… minted)؛ اگلا ایپاک اسے قبول کر لیتا ہے
اجرا کنندگان26 میں سے 18 توثیق کار (staking.faucet_minters، چین 16 سے درج)؛ اجرا پر ان میں سے کسی ایک کا دستخط لازم ہےminter … is not a faucet minter on this chain

لہٰذا چین 20 پر rand faucet صرف فہرست میں شامل والیٹ کے لیے کام کرتا ہے، اور وہ بھی ایسے توثیق کار نوڈ سے مانگنے پر جس کی کلید فہرست میں درج اجرا کنندہ ہو؛ کسی بھی دوسرے ایڈریس کو ادائیگی کسی ایسے شخص کو کرنی ہوگی جس کے پاس RAND ہو۔

rand faucet                          # 100 RAND to this wallet's address, waits for the commit
rand faucet rand1… --amount 25       # to another address, less than the cap
→ {"method":"rand_mint","params":["rand1…", "100000000000"]}
← "9ab1c0…4f"

کیا عوامی ہے: نئے نوٹ کا تعہد، اس کا لفافہ، کھلی رقم، اور اجرا کرنے والے توثیق کار کی عوامی کلید (اس کے ایڈریس کی صورت میں) اور دستخط۔ اوپننگ نوٹ کے مالک کی کلید pk بھی شائع کرتی ہے، اس لیے فوسٹ نوٹ کا مالک عوامی ہوتا ہے، جیسے withdraw کی ادائیگی ہوتی ہے؛ جو پوشیدہ رہتا ہے وہ یہ ہے کہ وہ نوٹ بعد میں کب اور کہاں خرچ ہوا۔ “100 RAND کا اجرا ہوا” سے “100 RAND مالیت کا ایک نوٹ موجود ہے” تک کا ایک قدمی ربط وہی نمایانی ہے جو شفاف سے پوشیدہ کی جانب کسی بھی جمع کرائی میں ہر جگہ ہوتی ہے۔ داخلہ جانچتا ہے کہ فوسٹ فعال ہے، رقم حد کے اندر ہے، ایپاک کے بجٹ میں گنجائش ہے، جہاں جینیسس میں اجازت فہرست ہو وہاں وصول کنندہ اس میں شامل ہے، تعہد شائع شدہ نوٹ پر کھلتا ہے، اجرا کنندہ توثیق کار ہے اور جہاں جینیسس میں اجرا کنندگان کی فہرست ہو وہاں اس میں شامل ہے، اور دستخط کی توثیق ہوتی ہے؛ اجرا کوئی فیس ادا نہیں کرتا۔

rand_getTransaction اسے "bundle": null کے ساتھ { "kind": "mint", "cm": "…", "amount": "100000000000", "minter": "<validator base58>" } کی صورت میں پیش کرتا ہے — رقم ایک اعشاری سٹرنگ ہے، جیسے چین 14 سے RPC کی فراہم کردہ ہر u64 رقم؛ ایکسپلورر انہیں kind=mint کے تحت درج کرتا ہے، جو ان چند اقسام میں سے ایک ہے جن کی amount عوامی ہے۔

جینیسس جمع کرائیاں

قدر کے داخلے کا دوسرا راستہ جینیسس فائل ہے: rand-node genesis کو دیا گیا ہر --alloc rand1<address>=<RAND> تازہ تعہدی بے ترتیبی کے ساتھ ایک جمع کرائی نوٹ { cm, envelope, amount, opening } بن جاتا ہے، جو درخت کے اولین پتے ہیں۔ چین 20 میں نو جینیسس نوٹ ہیں: سات RAND نوٹ، کل 5,184.243719258 RAND (genesis_deposited)، جو چین 19 کے ایک اسنیپ شاٹ سے منتقل کیے گئے آپریٹر بیلنس ہیں، اور 10 اور 89 zUSD کے دو zUSD نوٹ، یعنی چین 19 سے منتقل شدہ برج تحویل کے 99 zUSD (برج)، جو RAND نہیں ہیں اور genesis_deposited میں شمار نہیں ہوتے۔ چین 19 پر ان والیٹس میں موجود RAND جو آپریٹر کے پاس نہیں، تقریباً 520 RAND، اور غیر نکالی گئی توثیق کار فیسیں منتقل نہیں کی گئیں۔ تاریخ: چین 19 میں آٹھ تھے، 5,294.644359629 RAND کے سات RAND نوٹ اور 10 zUSD کا ایک؛ چین 18 میں چھ RAND نوٹ تھے، 1,000 RAND کے پانچ اور 300 RAND کا ایک؛ چین 14 اور 15 میں 1,000 RAND کے پانچ تھے۔ رقم عوامی ہے تاکہ ہر کوئی ابتدائی رسد کا میزان کر سکے، اور چین 14 سے نوٹ اپنی اوپننگ بھی ساتھ رکھتا ہے، اس لیے جینیسس نوٹ کا مالک دانستہ طور پر عوامی ہے۔ انہی تخصیصات کو دوبارہ تیار کرنے سے مختلف نوٹ اور مختلف جینیسس ہیش حاصل ہوتا ہے، اور یہ دانستہ ہے۔

جلانا

ہر ٹرانزیکشن چار خانوں والا ایک پوشیدہ اثاثہ بنڈل رکھتی ہے، اور اس میں جلانے کے دو الفاظ ہیں: burn_r وہ RAND ہے جو پول سے نکل کر کسی عوامی جگہ جاتا ہے، اور burn_a اس ٹوکن کی رقم ہے جس کا نام burn_asset دیتا ہے۔ بنڈل گیسٹ دونوں گروہوں کو ایک ہی ثبوت میں متوازن کرتا ہے، اور داخلہ تقاضا کرتا ہے کہ تینوں صفر ہوں، سوائے ان افعال کے:

جلاناقاعدہقدر کہاں جاتی ہے
Bond کا بنڈلburn_r == amountرجسٹر میں توثیق کار کا عوامی stake
BridgeBurn کا بنڈلburn_asset == asset، burn_a == amount، burn_r == 0، asset != 0Rand پر تلف؛ ماخذ چین کا کنٹریکٹ نگہبانوں کے دستخط شدہ جلانے کے پیغام کے عوض نامزد سکے کی amount جاری کرتا ہے۔ چین 20 پر چین 10 bps فیس خزانے کے لیے ایک zUSD نوٹ کی صورت میں رکھتی ہے اور اجرا amount − fee ہوتا ہے
TokenBurn کا بنڈلبرج کے جلانے جیسی ہی ساختتلف؛ RPL ٹوکن کی عوامی total_supply ٹھیک اتنی ہی کم ہو جاتی ہے
Invoke کا بنڈل (RPL-2، چین 20)burn_r، اور burn_asset کا burn_a، جیسا کہ پروگرام کی تبدیلی اعلان کرےRAND اور ٹوکن پروگرام کی عوامی تجوری میں جمع، یا پروگرام کا اپنا ٹوکن تلف؛ تجوری دوبارہ صرف چین کے شمار کردہ نوٹوں کی صورت میں ادائیگی کرتی ہے (پروگرام)

(register_aggregator کا بنڈل بھی اپنا جینیسس بانڈ burn_r کے ذریعے جلاتا ہے؛ چین 20 پر مجتمع کاری بند ہے۔)

جلانا فیس نہیں ہے۔ بانڈ کا جلانا وہ RAND ہے جو پول سے رجسٹر میں منتقل ہوتا ہے اور رسد کے آڈٹ کے burned میں شمار ہوتا ہے (اور register_total میں دوبارہ ظاہر ہوتا ہے)۔ برج کا جلانا چین 14 سے ایک بنڈل ہے (پہلے دو تھے): خانے 0–1 برج شدہ اثاثہ جلاتے ہیں اور خانے 2–3 فیس ادا کرتے ہیں، اس لیے یہ RAND کی رسد کو صرف اسی فیس، BRIDGE_BURN_FEE، یعنی 0.01 RAND، کے ذریعے متاثر کرتا ہے۔ لازم ہے کہ یہ ایسے سکے کا نام دے جو اثاثے کی پشت پناہی کرتا ہو، اس سکے کی اکائیوں کی پوری تعداد جاری کرے، اور اس پشت پناہی کی مقفل مقدار کے اندر رہے (برج)۔ چین 20 پر اس کے جینیسس کا bridge.fees zUSD میں ہر برج شدہ اجرا اور جلانے پر 10 bps بھی لیتا ہے: جمع کرائی مجموعی رقم میں سے فیس منہا کر کے جمع کرتی ہے اور جلانا amount − fee جاری کرتا ہے، اور ہر فیس خزانے کے لیے ایک پوشیدہ zUSD نوٹ ہوتی ہے۔ فیس نوٹ جاری شدہ اور پشت پناہی شدہ رہتا ہے، اس لیے zUSD کا total_supply == Σ locked بدستور برقرار رہتا ہے؛ یہ RAND کی منتقلی نہیں ہے اور RAND کی رسد کے آڈٹ میں داخل نہیں ہوتا۔ TokenBurn بنڈل کی 0.001 RAND بنیادی فیس ادا کرتا ہے؛ برج شدہ ٹوکن وہاں رد ہو جاتا ہے اور bridge-burn کے ذریعے نکلتا ہے۔

چین 20 پر ایک فیس بھی جلائی جاتی ہے، جیسا کہ چین 15 سے ہر چین پر: اس کا جینیسس tokens.burn_registration_fee مقرر کرتا ہے، چنانچہ RegisterToken یا RegisterBridgedToken کی 1 RAND registration_fee تجویز کنندہ کو ادا ہونے کے بجائے تلف کر دی جاتی ہے، اور تجویز کنندہ صرف بنڈل کی بنیادی فیس رکھتا ہے۔ یہ burned میں اور، الگ سے، registration_fees_burned میں شمار ہوتی ہے (RPL ٹوکن)۔

rand bond <validator> 1000 [--registration <hex>]     # burns 1000 RAND out of this wallet's notes
rand bridge-burn <ASSET> <AMOUNT> <TO_CHAIN> <TOKEN> <TO>   # burns AMOUNT of a bridged asset, released as TOKEN on TO_CHAIN
rand token burn <ASSET> <AMOUNT>                      # destroys AMOUNT of an RPL token this wallet holds

فیسیں دوسرا اخراج ہیں

ہر بنڈل کی fee پول سے نکل کر بلاک تجویز کنندہ کے rewards میں جاتی ہے، جو رجسٹر کا ایک عوامی فیلڈ ہے، اور پول میں صرف اس وقت واپس آتی ہے جب توثیق کار اسے نوٹ کی صورت میں نکالتا ہے (اسٹیکنگ)۔ Withdraw نکالی گئی رقم میں سے 0.001 RAND بنیادی فیس اس بلاک کے تجویز کنندہ کو ادا کرتا ہے جو اسے لاگو کرتا ہے؛ یہ بنیادی فیس کبھی رجسٹر سے باہر نہیں جاتی، اس لیے یہ سرحد پار کرنا نہیں ہے۔

رسد کیسے حرکت کرتی ہے

in:   genesis_deposited, faucet_minted, withdraw_deposited, program_rand_out
out:  fees_paid, burned
pool_value     = in − out
total_supply   = pool_value + Σ register (stake + pending + rewards) + program_rand_held
               ==  genesis_deposited + genesis_staked + faucet_minted − slashed − registration_fees_burned

program_rand_held اور program_rand_out چین 20 (RPL-2) پر نئے ہیں: وہ RAND جو Invoke کسی پروگرام کی تجوری میں burn_r کے ذریعے جلاتا ہے، پول کی جانب burned میں شمار ہوتا ہے اور تجوری میں رکھا جاتا ہے، اور جو کچھ تجوری نوٹوں کی صورت میں ادا کرتی ہے وہ پول میں واپس آ جاتا ہے۔ rand_getSupply دونوں کو invariant_holds کے ساتھ فراہم کرتا ہے۔

صرف فاسیٹ منٹ ہی چین کے جاری کردہ اجرا میں اضافہ کرتا ہے، اور چین 20 پر صرف جلائی گئی رجسٹریشن فیس ہی اس میں کمی کرتی ہے: slashed کسی سلیش شدہ ایگریگیٹر بانڈ کو، یا جینیسس کے staking.slashing حصے کے تحت کسی سلیش شدہ ویلیڈیٹر اسٹیک کو شمار کرے گا، اور چین 20 پر ان میں سے کوئی بھی موجود نہیں (ایگریگیشن بند ہے اور slashing کی قدر null ہے)۔ بانڈ، فیس، رقم کی واپسی اور والٹ ڈپازٹ قدر کو پول، رجسٹر اور والٹس کے درمیان منتقل کرتے ہیں، اور کچھ بھی نیا پیدا نہیں کرتے۔ سپلائی میں کاؤنٹرز اور ایک حل شدہ مثال موجود ہے۔ بلاک ایگریگیشن سبسڈی، یعنی ہر مہر بند بلاک پر ہالونگ کے شیڈول کے مطابق نئے RAND جو کسی ایگریگیٹر کو ڈپازٹ نوٹ کی صورت میں ادا کیے جاتے ہیں، پہلا طے شدہ اجرا ہوگی، اور یہ چین 20 پر فعال نہیں ہے۔

آخری بار 2026-10-12 کو fullnode کمٹ c0878c3f (چین 21) کے مقابل تصدیق کی گئی۔ جہاں کوڈ اور یہ صفحہ ایک دوسرے سے مختلف ہوں، وہاں کوڈ درست ہے؛ ہمیں مطلع کریں۔