Gunakan halaman ini untuk menjalankan faucet pada rantaian ujian, untuk memahami apakah transaksi Mint pada lapisan wayar, dan untuk melihat dengan tepat bagaimana bon atau pembakaran jambatan mengeluarkan nilai daripada kolam. Setiap kemasukan dan setiap keluaran adalah awam; segala yang berada di antaranya ialah nota.
Mint faucet
Mint ialah satu-satunya cara RAND dicipta selepas genesis pada chain 20, dan ia wujud hanya pada rantaian yang genesisnya menyatakan "faucet": true. Ia ialah transaksi tanpa bundle yang ditandatangani validator:
Action::Mint { cm: Word8, pk: Word8, time: u32, r: Word8, envelope: Envelope, amount: u64,
minter: PublicKey, signature: Signature }
rand_mint(address[, amount]) pada nod validator membina satu nota bernilai amount kepada alamat rand1… yang diberikan, menutup sampulnya di bawah kunci penghantar sekali guna, menandatangani mint dengan kunci Dilithium2 milik nod itu sendiri, dan menghantarnya melalui mempool biasa — sehingga mint melalui konsensus dan setiap nod menerapkannya. Had ialah 100000000000 unit, iaitu 100 RAND, bagi setiap panggilan, dan nilai lalai ialah had itu. Sejak chain 14, mint membawa pembukaan nota — pk, time dan r — dan tandatangan meliputinya: pengesahan masuk mengira semula komitmen bagi (pk, no sender, amount, asset 0, time, r) dan menolak cm yang tidak sepadan dengan the mint's commitment does not open to its published note and amount, serta mengekang time dalam tetingkap bundle. Parameter rand_mint tidak berubah. Mesej yang ditandatangani ialah blake3("rand-mint-2" ‖ bincode(chain_id, cm, pk, time, r, envelope, amount)) pada chain 14 hingga 19; pada chain 20, yang genesisnya menetapkan binding_domain: 1, ia ialah rand-mint-3 ke atas cincang genesis diikuti medan yang sama, supaya mint yang ditandatangani untuk satu rantaian ditolak pada mana-mana rantaian lain, walaupun yang berkongsi id rantaian dan kunci validator yang sama. Pemerhati tidak mempunyai kunci validator dan menjawab faucet mints are signed by validators; ask a validator node; rantaian tanpa bendera itu menjawab faucet is disabled on this chain.
Faucet chain 20 dihidupkan tetapi dihadkan oleh seksyen staking dalam genesisnya, dengan nilai yang sama seperti chain 19:
| peraturan | chain 20 | penolakan |
|---|---|---|
| penerima | senarai benar 16 dompet (staking.faucet_recipients); pk yang diterbitkan oleh mint mesti tersenarai | the faucet may not mint to this recipient (not in staking.faucet_recipients), kekal |
| belanjawan | 10,000 RAND bagi setiap epok 1,000 blok (staking.faucet_budget_per_epoch), merentasi semua validator | the faucet budget of … for this epoch is exhausted (… minted); epok berikutnya menerimanya |
| pencetak | 18 daripada 26 validator (staking.faucet_minters, disenaraikan sejak chain 16); mint mesti ditandatangani oleh salah seorang daripadanya | minter … is not a faucet minter on this chain |
Oleh itu rand faucet berfungsi pada chain 20 hanya untuk dompet yang ada dalam senarai, apabila dipinta daripada nod validator yang kuncinya ialah pencetak tersenarai; alamat lain mesti dibayar oleh seseorang yang memegang 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"
Apa yang awam: komitmen nota baharu, sampulnya, jumlah dalam teks jelas, serta kunci awam validator yang mencetak (dipaparkan sebagai alamatnya) dan tandatangannya. Pembukaan itu turut menerbitkan kunci pemilik nota pk, maka pemilik nota faucet adalah awam, sebagaimana bayaran keluar sesuatu withdraw; yang kekal tersembunyi ialah bila dan di mana nota itu dibelanjakan kemudian. Pautan satu lompatan daripada “100 RAND telah dicetak” kepada “wujud nota bernilai 100 RAND” ialah keterlihatan yang sama seperti deposit telus-ke-terlindung di mana-mana. Pengesahan masuk memeriksa bahawa faucet dihidupkan, jumlah di bawah had, belanjawan epok masih mempunyai ruang, penerima ada dalam senarai benar jika genesis mempunyainya, komitmen terbuka kepada nota yang diterbitkan, pencetak ialah validator dan tersenarai dalam senarai pencetak jika genesis mempunyainya, dan tandatangan disahkan; mint tidak membayar yuran.
rand_getTransaction memaparkannya sebagai { "kind": "mint", "cm": "…", "amount": "100000000000", "minter": "<validator base58>" } dengan "bundle": null — jumlah ialah rentetan perpuluhan, seperti setiap jumlah u64 yang disajikan RPC sejak chain 14; penjelajah menyenaraikannya di bawah kind=mint, salah satu daripada beberapa jenis yang mempunyai amount awam.
Deposit genesis
Cara lain nilai masuk ialah fail genesis: setiap --alloc rand1<address>=<RAND> kepada rand-node genesis menjadi satu nota deposit { cm, envelope, amount, opening } dengan kerawakan komitmen yang baharu, iaitu daun pertama pokok itu. Chain 20 mempunyai sembilan nota genesis: tujuh nota RAND, berjumlah 5,184.243719258 RAND (genesis_deposited), iaitu baki operator yang dibawa daripada petikan chain 19, dan dua nota zUSD sebanyak 10 dan 89 zUSD, iaitu 99 zUSD jagaan jambatan yang dibawa daripada chain 19 (Bridge), yang bukan RAND dan tidak dikira dalam genesis_deposited. RAND yang dipegang pada chain 19 oleh dompet yang tidak dipegang operator, kira-kira 520 RAND, dan yuran validator yang belum dikeluarkan tidak dibawa. Sejarah: chain 19 mempunyai lapan, tujuh nota RAND berjumlah 5,294.644359629 RAND dan satu nota 10 zUSD; chain 18 mempunyai enam nota RAND, lima daripadanya 1,000 RAND dan satu 300 RAND; chain 14 dan 15 mempunyai lima nota 1,000 RAND. Jumlahnya awam supaya semua orang dapat menjumlahkan bekalan awal, dan sejak chain 14 nota itu turut membawa pembukaannya, maka pemilik nota genesis adalah awam secara sengaja. Memotong semula peruntukan yang sama menghasilkan nota yang berbeza dan cincang genesis yang berbeza, dengan sengaja.
Pembakaran
Setiap transaksi membawa satu bundle aset tersembunyi empat slot, dan ia mempunyai dua perkataan bakar: burn_r ialah RAND yang keluar daripada kolam ke tempat awam, dan burn_a ialah jumlah token yang dinamakan oleh burn_asset. Guest bundle mengimbangkan kedua-dua kumpulan dalam satu bukti, dan pengesahan masuk menghendaki ketiga-tiganya sifar kecuali pada tindakan berikut:
| pembakaran | peraturan | ke mana nilai pergi |
|---|---|---|
bundle Bond | burn_r == amount | stake awam validator dalam daftar |
bundle BridgeBurn | burn_asset == asset, burn_a == amount, burn_r == 0, asset != 0 | dimusnahkan pada Rand; kontrak rantaian sumber melepaskan amount syiling yang dinamakan berdasarkan mesej bakar yang ditandatangani penjaga. Pada chain 20 rantaian menyimpan yuran 10 bps sebagai nota zUSD kepada perbendaharaan dan pelepasan ialah amount − fee |
bundle TokenBurn | bentuk yang sama seperti pembakaran jambatan | dimusnahkan; total_supply awam token RPL berkurang tepat sebanyak itu |
bundle Invoke (RPL-2, chain 20) | burn_r, dan burn_a bagi burn_asset, sebagaimana diisytiharkan oleh peralihan program | RAND dan token didepositkan ke dalam peti besi awam program, atau token milik program itu sendiri dimusnahkan; peti besi hanya membayar semula sebagai nota yang dikira oleh rantaian (Programs) |
(Bundle register_aggregator juga membakar bon genesisnya melalui burn_r; pengagregatan dimatikan pada chain 20.)
Pembakaran bukan yuran. Pembakaran bon ialah RAND yang berpindah daripada kolam ke daftar dan dikira dalam burned audit bekalan (serta muncul semula dalam register_total). Pembakaran jambatan ialah satu bundle sejak chain 14 (sebelum ini dua): slot 0–1 membakar aset yang dijambatani dan slot 2–3 membayar yuran, maka ia menyentuh bekalan RAND hanya melalui yuran itu, BRIDGE_BURN_FEE, 0.01 RAND. Ia mesti menamakan syiling yang menyokong aset itu, melepaskan bilangan unit syiling itu yang bulat, dan muat dalam apa yang telah dikunci oleh sokongan tersebut (Bridge). Pada chain 20 bridge.fees dalam genesisnya juga mengambil 10 bps daripada setiap mint dan pembakaran yang dijambatani dalam zUSD: deposit mengkreditkan jumlah kasar tolak yuran dan pembakaran melepaskan amount − fee, setiap yuran ialah nota zUSD terlindung kepada perbendaharaan. Nota yuran kekal diterbitkan dan disokong, maka total_supply == Σ locked bagi zUSD masih terpakai; ia bukan pergerakan RAND dan tidak masuk dalam audit bekalan RAND. TokenBurn membayar asas bundle 0.001 RAND; token yang dijambatani ditolak di situ dan keluar melalui bridge-burn.
Satu yuran turut menjadi pembakaran pada chain 20, seperti pada setiap rantaian sejak chain 15: genesisnya menetapkan tokens.burn_registration_fee, maka registration_fee sebanyak 1 RAND bagi RegisterToken atau RegisterBridgedToken dimusnahkan dan bukan dibayar kepada pencadang, yang hanya menyimpan asas bundle. Ia dikira dalam burned dan, secara berasingan, dalam registration_fees_burned (RPL tokens).
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
Yuran ialah jalan keluar yang satu lagi
fee setiap bundle keluar daripada kolam ke dalam rewards pencadang blok, iaitu medan daftar awam, dan kembali ke dalam kolam hanya apabila validator mengeluarkannya sebagai nota (Staking). Withdraw membayar asas 0.001 RAND daripada jumlah yang dikeluarkan kepada pencadang blok yang menerapkannya; asas itu tidak pernah meninggalkan daftar, jadi ia bukan lintasan.
Bagaimana bekalan bergerak
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 dan program_rand_out baharu pada chain 20 (RPL-2): RAND yang dibakar oleh Invoke ke dalam peti besi program melalui burn_r dikira dalam burned di sebelah kolam dan dipegang dalam peti besi, dan apa yang dibayar keluar oleh peti besi sebagai nota kembali ke dalam kolam. rand_getSupply menyajikan kedua-duanya, bersama invariant_holds.
Hanya mint faucet yang menambah jumlah yang telah diterbitkan oleh rantaian, dan pada chain 20 hanya yuran pendaftaran yang dibakar yang mengurangkannya: slashed akan mengira bon aggregator yang dipotong (slashed) atau, di bawah seksyen genesis staking.slashing, stake validator yang dipotong, dan chain 20 tidak mempunyai kedua-duanya (pengagregatan dimatikan dan slashing ialah null). Bon, yuran, pengeluaran dan deposit peti simpanan memindahkan nilai antara kolam, daftar dan peti simpanan, dan tidak mencipta apa-apa. Bekalan mengandungi kaunter dan contoh yang diselesaikan. Subsidi pengagregatan blok — RAND baharu bagi setiap blok yang dimeteraikan mengikut jadual pengurangan separuh, dibayar kepada aggregator sebagai nota deposit — akan menjadi terbitan berjadual yang pertama, dan ia tidak aktif pada chain 20.