Tiga binari terhasil daripada cargo build --release: rand-node (nod dan perintah operator), rand (dompet terlindung) dan rand-prover (pembukti yang diwakilkan). Setiap perintah menerima -h/--help. Halaman ini menerangkan keluaran v0.6.8 (c9c9bd3c), iaitu binaan yang dijalankan oleh chain 20; jika v0.6.7 berfungsi secara berbeza, halaman ini menyatakannya. Dompet rand yang lebih lama daripada v0.6.8 tidak dapat menghantar pada chain 20, yang genesisnya mengikat setiap bukti dan mesej bertandatangan kepada hashnya. Dua yang pertama memegang jenis kunci yang berbeza: kunci nod ialah pasangan kunci Dilithium2 yang menandatangani blok; kunci dompet ialah kunci belanja terlindung yang tidak menandatangani apa-apa pada chain.
rand-node
rand-node <COMMAND>
keygen Generate a new Dilithium2 key file (refuses to overwrite an existing one)
address Print the address, public key, and libp2p peer id of a key file
genesis Write a genesis.json: every validator key is staked, each --alloc becomes a deposit note
alloc-note Print one genesis alloc note as JSON, RAND or a listed token, for splicing into a genesis
init Initialise a data directory from a genesis file
run Run the node
verify Verify the chain in a data directory without running the node
db Database maintenance on a stopped node's data directory
safety status | clear-halt | release-lock: a stopped validator's consensus safety state
status Show node status
register Print this node's Registration, for the wallet that bonds it in
admit sign | submit: the validator set's vote to admit a new key (admission by vote)
unbond Move bonded stake into unbonding
withdraw Pay released stake and rewards into a note at the payout address
bridge-gov rotate-pq | rotate-pause | cancel-rotation: the bridge's post-quantum rotations
vesting status | claim | revoke | bond | unbond: genesis vesting (chains with a vesting section)
aggregator register | unbond | withdraw — the aggregator role (aggregation chains only)
aggregate The aggregate daemon (aggregation chains only)
safety, admit dan bridge-gov ialah ciri baharu dalam v0.6.8. Tiada balance dan tiada transfer: pemindahan memerlukan kunci belanja terlindung, yang hanya dipegang oleh dompet.
Satu bendera global, --allow-test-fri-profile (atau RAND_ALLOW_TEST_FRI_PROFILE=1), membolehkan init, run dan verify menerima genesis yang fri_profilenya ialah test. Profil itu memberikan kira-kira 17 bit kesahihan (soundness), dan sesiapa yang menulis fail genesis boleh menamakannya, maka sejak v0.6.8 nod menolak genesis sedemikian tanpa bendera tersebut. Suite ujian menetapkannya; tiada yang lain patut berbuat demikian.
keygen, address
| perintah | argumen | lalai |
|---|---|---|
keygen | --out <OUT> | node.key.json |
address | --key <KEY> | wajib |
keygen menulis { "seed": <32-byte hex>, "address": <base58>, "public_key": <hex> } dengan mod 0600. Fail itu ialah satu-satunya salinan seed. Sejak v0.6.8 keygen menolak --out yang sudah wujud (… already exists or cannot be created; refusing to overwrite a key file) dan membiarkannya tidak disentuh; tiada --force, jadi alihkan fail lama ke tempat lain untuk menggantikannya. v0.6.7 dan yang terdahulu menimpanya tanpa bertanya. address mencetak address, public_key (1,312 bait hex) dan peer_id.
genesis
| argumen | lalai | maksud |
|---|---|---|
--chain-id <CHAIN_ID> | 1 | id chain; transaksi dan topik gossip terikat kepadanya |
--validator <KEY,STAKE,PAYOUT> | wajib, boleh diulang | satu entri daftar: laluan fail kunci atau kunci awam hex, stake dalam RAND (sekurang-kurangnya 1,000), alamat bayaran rand1… |
--epoch-blocks <N> | 1000 | bilangan blok bagi setiap epoch |
--alloc <ALLOCS> | tiada, boleh diulang | nota deposit: rand1<address>=<amount in RAND> |
--out <OUT> | genesis.json | laluan output |
--faucet | mati | testnet sahaja: membolehkan Mint. Bersama bahagian bridge, ia memerlukan --testnet |
--testnet | mati | v0.6.8: menulis "testnet": true, penanda yang membenarkan faucet berada bersama bahagian bridge. Menjadi sebahagian daripada hash genesis apabila diberikan |
--no-confidential | mati | melumpuhkan Deploy dan Call |
--fri-profile <production|test> | production | test tidak selamat dan untuk suite ujian; init, run dan verify menolak fail sedemikian tanpa --allow-test-fri-profile |
--max-program-words <N> | tiada (4096) | atur cara terbesar yang boleh dibawa oleh sesuatu deploy, 1..=65535. Ditulis hanya apabila diberikan; menjadi sebahagian daripada hash genesis setiap kali ada, maka --max-program-words 4096 ialah chain yang berbeza daripada tidak menyatakannya. Setiap nod memerlukan binari v0.4 sebelum init pada fail sedemikian |
--max-proof-bytes <N> | tiada (2,097,152) | bukti terbesar yang boleh dibawa oleh sesuatu transaksi, 1048576..=33554432. Setiap had bukti mengikutinya |
--max-block-bytes <N> | tiada (4,194,304) | blok terbesar, dan dengan itu transaksi terbesar, 4194304..=67108864, dan sekurang-kurangnya 2 × max_proof_bytes + 1 MiB, atau 3 × max_proof_bytes + 1 MiB dengan --auth-guest, di mana satu call membawa tiga bukti (bundle, auth, call) |
--max-call-envelope-bytes <N> | tiada (18,432) | sampul input call terbesar, 18432..=1048576 |
--max-program-public-words <N> | tiada (0) | input awam terbesar yang boleh ditetapkan oleh sesuatu deploy, 0..=65535; 0 tidak membenarkan sebarang input |
--tokens <TOKENS.JSON> | tiada | bahagian tokens RPL, sebagai fail JSON {"registration_fee": …, "mint_cap_per_day": …, "tokens": [...]}. Jika ditinggalkan, fail tidak mempunyai bahagian sedemikian dan di-hash seperti sebelumnya. Bahagian bridge memerlukan satu dengan mint_cap_per_day bukan sifar (bagi setiap sandaran, setiap hari UTC, dalam unit lapan perpuluhan token); token yang disenaraikan memerlukan bahagian bridge |
--envelope-bytes <N> | tiada (sampul warisan 1,348 bait) | saiz tepat bagi setiap sampul nota: output bundle, mint faucet, withdraw, deposit bridge, alloc genesis. Hanya 1860 diterima, saiz yang membolehkan setiap sampul membawa memo yang disulitkan. Menjadi sebahagian daripada hash genesis apabila diberikan, dan ditetapkan sebelum nota --alloc bagi perintah ini dimeterai |
--vesting <VESTING.JSON> | tiada | bahagian vesting: peruntukan berkunci masa, {"entries": [{"id", "class", "beneficiary", "amount", "start_ms", "cliff_ms", "linear_ms", "step_ms"?, …}]}. Sejak v0.6.8 entri yang boleh dibatalkan menyenaraikan revokers (1 hingga 5 kunci), satu threshold dan treasury yang menerima bayaran pembatalan, dan fail yang meninggalkan salah satunya ditolak |
--staking <STAKING.JSON> | tiada | v0.6.8: bahagian staking sebagai fail JSON (faucet_budget_per_epoch, bond_activation_epochs, max_weight_bps, max_stake_entry_per_epoch atau max_stake_entry_bps_per_epoch, registration_v2, faucet_recipients, faucet_minters, admission_by_vote, slashing), disahkan oleh binaan |
--consensus-domain <0|1> | tiada (0) | v0.6.8: 1 mengikat setiap undi, new-view dan cadangan kepada genesis ini |
--bundle-guest <v1|v2|v3> | v1 | guest bundle yang dipasak sebagai hc_bundle: v1 (guest aset tersembunyi yang dijalankan oleh chain 14 dan 15), v2 (guest tanpa cabang bagi chain 16) atau v3 (kebenaran terpisah: guest mengambil nk dan satu salt dan bukannya kunci belanja). v3 memerlukan --auth-guest |
--auth-guest | mati | memasak guest auth binaan ini sebagai hc_auth: setiap bundle kemudian membawa bukti auth ke atas kunci belanja, terikat kepada transaksinya, yang outputnya sama dengan auth_commit bundle. Diperlukan dengan --bundle-guest v3 dan ditolak dengan v1 atau v2, sebelum sebarang fail ditulis. Jika tiada, fail tidak mempunyai medan hc_auth |
--hardening-v6 | mati | menjadikan peraturan v0.6 sebagai peraturan kesahan (hardening_v6): tetingkap pc, deploy yang tidak boleh dipanggil, bentuk bukti kanonik dan perkataan proof-of-work, pengikatan call dan paras minimum jadual atur cara. Jika tiada, nod masih menolaknya pada pool-nya, sebagai dasar |
--gas-price <UNITS> | tiada (tiada bahagian gas) | unit (10⁻⁹ RAND) bagi setiap gas yang dikenakan oleh chain itu sendiri ke atas sesuatu call. Bendera inilah yang menulis bahagian gas (metering: "circuit"); tiga bendera di bawah ditolak tanpanya. Menjadi sebahagian daripada hash genesis |
--byte-price <UNITS> | 800, hanya dengan --gas-price | unit bagi setiap KiB, atau sebahagian daripadanya, bagi bukti call serta sampul input, bermula dari bait 0 |
--bundle-gas-limit <N> | 20479, hanya dengan --gas-price | GAS_LIMIT tepat yang mesti diisytiharkan oleh setiap bukti bundle; bukti bundle yang mengisytiharkan nilai lain ditolak. Genesis hanya menerima 20479, gas_max(14, 0, 0) bagi guest bundle tier-14 |
--gas-dynamic <TARGET_BYTES,TARGET_GAS,ADJUST_BPS> | tiada (harga tetap) | menghidupkan pengawal harga bagi setiap blok, dengan paras minimum pada gas_price dan byte_price permulaan bahagian itu sendiri. Ditolak bersama --aggregation |
--max-gas-price <UNITS>, --max-byte-price <UNITS> | tiada (tiada siling) | v0.6.8: siling yang tidak akan dilepasi oleh pengawal bagi sesuatu harga, setiap satu sekurang-kurangnya harga permulaan. Ditolak tanpa --gas-dynamic |
--gas-byte-load paying | tiada (bait setiap transaksi) | v0.6.8: hanya bukti call dan sampul inputnya yang menggerakkan byte_price, maka blok yang mengandungi pemindahan tidak menggerakkannya. Ditolak tanpa --gas-dynamic; paying ialah satu-satunya nilai |
--binding-domain <0|1> | tiada (tiada medan) | v0.6.8: 1 mengikat hash genesis ke dalam setiap pengikatan transaksi dan setiap mesej tindakan bertandatangan (mint faucet, unbond, withdraw, mesej token RPL, tindakan aggregator, mesej tadbir urus bridge), supaya bukti atau tandatangan bagi chain ini tidak sah pada chain lain. Jika ditinggalkan, perintah memberi amaran: dompet v0.6.8 membuktikan bentuk terikat genesis pada setiap id chain di luar 14 hingga 19, maka setiap chain dari 20 ke atas dipotong dengan 1 |
--proof-window-blocks <N> | tiada (256) | v0.6.8: satu tetingkap, 256 hingga 4,096 blok, bagi tempoh paling lama anchor sesuatu bundle dan timenya dibenarkan. Dihidangkan sebagai rand_getLimits.proof_window_blocks |
--program-state-cell-fee <UNITS> | tiada (tiada bahagian program_state) | v0.6.8, RPL-2: menghidupkan sel atur cara, peti besi atur cara dan tindakan Invoke, dengan yuran sel ini dalam unit RAND (paling banyak 1,000 RAND) ditambah kepada paras minimum yuran sesuatu invoke bagi setiap sel yang dicipta. Memerlukan --tokens, --gas-price, --hardening-v6 dan --auth-guest, setiap satu ditolak mengikut nama sebelum sebarang fail ditulis |
--aggregation <BOND,MAX_COVERS,SUBSIDY,HALVING,WINDOW>, --admitted-shape <…> | tiada | bahagian aggregation; binaan v0.6.8 enggan bermula pada genesis yang mempunyainya |
Mencetak satu baris alloc bagi setiap --alloc, kemudian hash genesis, bilangan validator dan nota, panjang epoch, lima had, hc_bundle dan hc_auth (none tanpa --auth-guest), kemudian baris gas: gas: price P/gas, B/KiB, bundle limit N, dynamic: target … B / … gas, adjust … bps, floor …/…, ceiling …/…, byte load all|paying, atau gas: none tanpa --gas-price, dan dengan --program-state-cell-fee satu baris program_state: cell fee N RAND. init mencetak baris gas yang sama. Kelima-lima bendera had berfungsi dengan cara yang sama: jika ditinggalkan, fail tidak mempunyai medan sedemikian dan chain menjalankan nilai lalai; jika diberikan, medan itu menjadi sebahagian daripada hash genesis walaupun pada nilai lalainya. Chain 20 dipotong dengan bendera ini (deploy/cut-chain20-genesis.sh):
--max-program-words 65535 --max-proof-bytes 4194304 --max-block-bytes 20971520 \
--max-call-envelope-bytes 65536 --max-program-public-words 32768 \
--tokens tokens.json \
--bundle-guest v3 --auth-guest --hardening-v6 \
--gas-price 100 --byte-price 800 --bundle-gas-limit 20479 --gas-dynamic 10485760,262144,1250 \
--max-gas-price 10000 --max-byte-price 80000 --gas-byte-load paying \
--envelope-bytes 1860 \
--testnet --binding-domain 1 --proof-window-blocks 1024 --program-state-cell-fee 10000000 \
--epoch-blocks 1000 --faucet --fri-profile production
Rantaian 18 dan 19 dipotong dengan bendera yang sama sehingga --envelope-bytes 1860, dan tanpa mana-mana bendera v0.6.8. Had bukti ialah 4 MiB, turun daripada 8 MiB bagi rantaian 13 hingga 16: satu transaksi kebenaran terpisah membawa sehingga tiga bukti, dan 3 × 4 MiB + 1 MiB muat dalam blok 20 MiB. tokens.json mengandungi registration_fee sebanyak 1 RAND, mint_cap_per_day sebanyak 10000000000000, max_tokens 4096, burn_registration_fee dan bound_note_value, serta zUSD disenaraikan bersama tujuh sandarannya. Tiada bendera --bridge, dan skrip pemotongan masih menyambung bahagian bridge, staking dan consensus_domain ke dalam fail selepas itu (pada rantaian 20: jambatan pada set penjaga 1 dengan lapan kunci penjaga PQ, kunci jeda, rules_v2, rotation dan fees; bahagian staking dengan senarai kebenaran faucet, admission_by_vote dan bajet kemasukan 2,500 bps; consensus_domain: 1; dan nota genesis zUSD, yang dibuat dengan alloc-note --asset 1 --envelope-bytes 1860). Cincangan genesis yang diambil kira ialah yang dicetak oleh init pada fail yang telah siap.
Setiap --alloc membina satu nota deposit dengan keacakan komitmen yang baharu, maka memotong dua kali menghasilkan dua cincangan yang berbeza. Perintah ini sentiasa menulis bukaan nota di sebelah cm dan amount, yang diperlukan oleh rantaian yang mempunyai bahagian tokens:
"alloc": [
{ "cm": "<64 hex>",
"envelope": { "kem_ct": "<hex>", "to_receiver": "<hex>", "to_sender": "<hex>", "body": "<hex>" },
"amount": 1000000000000,
"opening": { "pk": "<64 hex>", "time": 0, "r": "<64 hex>" } }
]
Pemilik dan jumlah nota genesis oleh itu awam secara reka bentuk setelah fail diterbitkan; hanya bila dan ke dalam apa ia dibelanjakan kemudian kekal persendirian. Potong genesis sekali sahaja dan simpan failnya.
alloc-note
--to <rand1…> (diperlukan), --amount <N> (diperlukan), --asset <INDEX> (lalai 0), --envelope-bytes <N> (lalai: format warisan). Mencetak satu nota alloc sebagai JSON, yang dimeterai kepada --to seperti yang dilakukan oleh genesis --alloc. Genesis yang menetapkan envelope_bytes menolak nota yang dimeterai tanpa --envelope-bytes yang sepadan. --amount adalah dalam unit penuh aset: sembilan perpuluhan untuk RAND, lapan untuk token yang dijambatankan (10 pada aset 1 ialah 10 zUSD). Nota bagi token yang disenaraikan memerlukan sandaran token itu membawa jumlah locked yang berjumlah tepat sama dengan nota-notanya.
init
| argumen | maksud |
|---|---|
--datadir <DATADIR> | direktori data yang hendak dicipta |
--genesis <GENESIS> | fail genesis; disalin ke <datadir>/genesis.json |
Mencetak cincangan genesis dan baris gas: yang sama seperti genesis.
run
| argumen | lalai | maksud |
|---|---|---|
--datadir <DATADIR> | diperlukan | direktori data yang telah dimulakan |
--key <KEY> | diperlukan | fail kunci: identiti pengesah, identiti p2p, penerima yuran |
--listen <LISTEN> | /ip4/0.0.0.0/tcp/30303 | multialamat pendengar libp2p, boleh diulang |
--bootstrap <BOOTSTRAP> | tiada, boleh diulang | /ip4/<ip>/tcp/<port>/p2p/<peer-id>, dihubungi semasa permulaan dan setiap 30 s selagi terputus. Sejak v0.6.8 id rakan sebayanya dikhaskan |
--reserved-peer <PEER_ID> | tiada, boleh diulang | v0.6.8: rakan sebaya yang diterima melepasi had sambungan masuk dan dilayan daripada bahagian bajet penyegerakan milik pengesah. Bootstrap dan setiap pengesah yang pengikatan rakan sebaya bertandatangannya telah dilihat oleh nod ini dikhaskan tanpanya; senaraikan pengesah armada di sini pada rantaian yang baru dipotong, yang storenya belum memegang sebarang pengikatan |
--strict-gossip | mati | v0.6.8: pengesahan ketat gossipsub, hanya menerima mesej dengan tandatangan pengarang, nombor jujukan dan sumber yang sah. Nod ketat dan nod permisif saling beroperasi, maka ia dilancarkan nod demi nod |
--rpc <RPC> | 127.0.0.1:8545 | pendengar JSON-RPC operator: setiap kaedah, dan ia mempercayai loopback. Kekalkan pada loopback dan jangan sekali-kali memajukan titik akhir awam kepadanya |
--public-rpc <ADDR> | mati | v0.6.8: pendengar awam kedua dengan set kaedah tetap (tanpa kaedah kunci pelihat, rand_mint atau rand_getPeers), tanpa kelompok, tanpa WebSocket dan satu meter untuk semua pemanggil; apa yang patut dituju oleh proksi songsang atau pemajuan SSH (JSON-RPC) |
--rpc-viewing-token-file <PATH> | mati | v0.6.8: memerlukan Authorization: Bearer <first line of the file> (32 aksara atau lebih) pada kaedah kunci pelihat bagi --rpc |
--validator | mati | mengambil bahagian dalam konsensus dengan kunci ini |
--no-mdns | mati | lumpuhkan penemuan LAN |
--block-interval-ms <MS> | 1000 | jarak minimum antara cadangan |
--view-timeout-ms <MS> | 3000 | had masa pandangan asas; berganda bagi setiap had masa berturut-turut sehingga 8× |
--verify-chain <MODE> | quick | off, quick, full |
--keep-raw-proofs | mati | mod arkib pada rantaian pengagregatan |
--prune-history <WINDOW> | tiada (simpan semuanya) | simpan hanya sebanyak ini sejarah blok, <n>m, <n>h atau <n>d, sekurang-kurangnya 1h: blok yang lebih lama kehilangan blok, QC, transaksi dan resitnya; lejar kekal. Pada rantaian 20, 24 daripada 26 pengesah menjalankan 24h dan dua nod ialah arkib. Nod arkib dan nod mainnet tidak sekali-kali menetapkannya. Carian ketinggian di bawah paras lantai dijawab dengan -32010 (JSON-RPC) |
--min-free-disk-mb <MB> | 1024 | enggan bermula dengan ruang kosong yang kurang pada sistem fail direktori data; rand_getHealth menyatakan disk_low apabila kurang daripada empat kali ganda nilainya. 0 melumpuhkan pengawal ini |
--rpc-viewing-open | mati | benarkan pemanggil bukan loopback menggunakan kaedah kunci pelihat; hanya di belakang sesuatu yang membuat pengesahan |
--gas-price <UNITS> | 100 | unit (10⁻⁹ RAND) bagi setiap gas yang dituntut oleh kumpulan transaksi nod ini daripada satu panggilan, melebihi gas_max pada pengepala buktinya. Dasar kemasukan, bukan peraturan rantaian: blok yang membawa panggilan yang lebih murah masih sah. 0 bersama --byte-price 0 tidak menjalankan sebarang dasar. Pada rantaian yang genesisnya mempunyai bahagian gas, seperti milik rantaian 20, harga rantaian itu sendiri ialah peraturan kesahan |
--byte-price <UNITS> | 800 | unit bagi setiap KiB, atau sebahagian daripadanya, bukti dan sampul input sesuatu panggilan, dari bait 0, di bawah dasar yang sama |
--prover <ADDR> | mati | menjadi hos prover yang diwakilkan (JSON-RPC prover_*) pada alamat ini: pendengar tersendiri, yang mesti berbeza daripada --rpc. Nod enggan bermula tanpa <prover-home>/prover.key.json, yang dibuat oleh rand-prover keygen |
--prover-home <DIR> | <datadir>/prover | prover.key.json dan pairings.json milik prover |
--prover-accept-spend-key | dipersarakan | ditolak semasa permulaan sejak v0.6.8: run yang diberikan bendera ini keluar sebelum kunci nod dibaca, dengan menyebut nama bendera itu. Tiada prover menerima saksi kunci belanja lagi; buang bendera ini daripada fail unit. Pada v0.6.7 ia menerima saksi kunci belanja bagi rantaian guest bundle v1 atau v2 |
--prover-max-parallel <N> | 1 | bukti yang dijalankan serentak oleh prover yang dihoskan; permulaan ditolak melainkan 5.74 GB × N + 1 GiB memori tersedia |
--prover-max-queue <N> | 8 | tugasan yang beratur selain yang sedang berjalan |
--prover-cuda | mati | membuktikan pada bahagian belakang CUDA (binaan dengan --features cuda); tiada sandaran CPU |
--prover-skip-memory-check | mati | langkau pemeriksaan memori bebas |
--prover-fee <RAND>, --prover-fee-address <rand1…> | tiada | yuran yang mesti dibayar oleh setiap tugasan yang dihantar kepada prover yang dihoskan, dalam RAND dengan sehingga sembilan perpuluhan: satu output RAND kepada alamat itu, di dalam bundle yang dibuktikan. Setiap bendera memerlukan yang satu lagi |
--prover-allow-origin <ORIGIN> | sambungan pelayar dan halaman loopback | asal pelayar yang halamannya boleh membaca balasan prover, boleh diulang; apabila diberikan sekali atau lebih, nilai-nilai itu ialah keseluruhan senarai. * membenarkan setiap laman web dan mencetak amaran |
Persekitaran: RUST_LOG (lalai info,libp2p=warn,libp2p_mdns=off). Ctrl-C atau SIGTERM menutup nod dengan bersih.
Titik akhir awam https://rpc.randprotocol.org ialah proksi senarai kebenaran di hadapan nod arkib; sejak 2026-10-01 senarai kebenarannya ialah set kaedah pendengar awam.
safety
Keadaan keselamatan konsensus bagi pengesah yang dihentikan (v0.6.8). Setiap perintah membuka direktori data sendiri, maka tiada yang berjalan bersama nod yang aktif.
rand-node safety status --datadir <dir>
rand-node safety clear-halt --datadir <dir> --i-have-compared-this-node-with-the-fleet
rand-node safety release-lock --datadir <dir> --i-give-up-this-validators-lock
status mencetak kepala yang telah dikomit, pandangan dan pandangan yang terakhir diundi, QC tinggi, sama ada pengesah dikunci di atas kepalanya, dan sebarang penghentian keselamatan yang direkodkan. Nod yang melihat tiga-rantai yang diperakui cuba mengomit blok yang tidak diturunkan daripada kepala terkomitnya sendiri berhenti dan merekodkannya (audit v6, CON-5); run kemudian keluar bersama rekod itu sehingga clear-halt. Bandingkan kepala nod ini dengan kepala dua pengesah lain dan segerakkan semula daripada arkib jika ia berbeza sebelum membersihkan. Sejak v0.6.8 (CON-4) tiada kuorum jawapan “tidak dipegang” yang melepaskan kunci lagi: pengesah yang dikunci pada blok yang tidak dapat diperolehnya kekal senyap sehingga cadangan yang justify-nya mengatasi kunci itu tiba atau blok itu diambil. release-lock menurunkan kunci yang dikekalkan kepada perakuan kepala terkomit; gunakannya pada satu pengesah pada satu masa, dan hanya apabila blok itu hilang selama-lamanya. Tanpa bendera pengakuannya, setiap perintah penulisan mencetak apa yang akan dilakukannya dan tidak mengubah apa-apa.
verify
| argumen | lalai | maksud |
|---|---|---|
--datadir <DATADIR> | diperlukan | nod tidak boleh sedang berjalan |
--mode <MODE> | full | quick atau full |
--repair | mati | pangkas ekor yang rosak; keadaan keselamatan dikekalkan |
Kod keluar 0 jika konsisten, 2 jika masalah ditemui tanpa --repair.
db
db drop-receipts-index --datadir <DATADIR>, dengan nod dihentikan: gugurkan indeks receipts_by_program sebelum melancarkan balik ke binaan pra-v0.3, yang tidak dapat membuka pangkalan data yang memilikinya. Permulaan kemudian membina semula indeks daripada resit.
status
--rpc <URL> (lalai http://127.0.0.1:8545). Mencetak rand_status secara verbatim.
register, unbond, withdraw
| arahan | argumen | maksud |
|---|---|---|
register | --key, --payout <rand1…>, --rpc, --v2 | cetak Registration heks yang ditandatangani dengan kunci nod ini; RPC dibaca untuk id rantaian, dan dengan --v2 untuk cincangan genesis juga. --v2 diwajibkan pada rantaian yang genesisnya menetapkan staking.registration_v2, seperti rantaian 20; pendaftaran v1 ditolak di sana, manakala pendaftaran v2 diterima di semua rantaian lain |
unbond <amount RAND> | --key, --rpc, --no-wait | pindahkan stek ke dalam proses nyahikatan; percuma; boleh dikeluarkan dua zaman kemudian |
withdraw <amount RAND> | --key, --rpc, --no-wait | bayar stek dan ganjaran yang telah dibebaskan ke dalam sebuah nota pada alamat bayaran, tolak asas 0.001 RAND |
admit sign|submit
Kemasukan melalui undian (v0.6.8). Pada rantaian yang genesisnya menetapkan staking.admission_by_vote, seperti rantaian 20, kunci pengesah baharu hanya didaftarkan setelah pengesah yang memegang lebih daripada dua pertiga berat undian menandatangani kemasukannya.
| arahan | argumen | maksud |
|---|---|---|
admit sign | --candidate <key hex, registration hex, or a file holding either>, --key <validator key>, --genesis-hash <hex> | cetak undian pengesah ini dalam satu baris, <voter key hex>:<signature hex>, ke atas cincangan genesis dan alamat calon, supaya sah pada satu rantaian sahaja. Luar talian: tidak membaca nod mana-mana |
admit submit | --candidate …, --signature <line> (boleh diulang), --rpc, --no-wait | semak setiap undian berdasarkan cincangan genesis nod (undian untuk genesis atau calon lain, atau pengundi yang muncul dua kali, akan dinamakan), susun undian itu dan serahkan AdmitValidator tanpa fi |
Calon ialah kunci yang akan dibawa oleh pendaftaran; rand-node address --key mencetaknya, dan heks yang dicetak oleh register memuatkannya. Selepas kemasukan itu disahkan, ikatan berjalan seperti biasa (rand bond … --registration) dan menggunakan kemasukan tersebut. rand_getAdmitted menyenaraikan pengesah yang telah diterima masuk dan sedang menunggu.
bridge-gov
Putaran pasca-kuantum jambatan (v0.6.8), untuk penjaga dan pemegang kunci jeda. Setiap langkah membaca id rantaian, domain pengikatnya dan rand_getBridgeState.rotation_nonce daripada --rpc (lalai http://127.0.0.1:8545).
| arahan | fungsi |
|---|---|
rotate-pq message --new-key K… | cetak mesej putaran heks untuk nonce semasa, untuk dibandingkan pada setiap penandatangan |
rotate-pq sign --new-key K… --key F --index I [--possession] | cetak I:signature: baris kuorum penjaga PQ semasa (I ialah indeksnya dalam set semasa) atau, dengan --possession, baris pemegang kunci baharu (I ialah indeksnya dalam set baharu); menolak fail kunci yang bukan kunci pada I |
rotate-pq submit --new-key K… --quorum @F [--possession @F] [--no-wait] | himpunkan RotatePqGuardians, atau tindakan V2 dengan baris pemilikan, dan hantarkannya; menolak pemilikan pada rantaian yang tidak menerimanya dan ketiadaannya pada rantaian yang mewajibkannya, seperti rantaian 20 |
rotate-pause message|sign|submit --new-key K | sama untuk kunci jeda (indeks pemilikan 0) |
cancel-rotation sign --kind pq|pause --key PAUSE_KEY | cetak 0:signature ke atas mesej pembatalan, disemak berdasarkan kunci jeda semasa rantaian |
cancel-rotation submit --kind pq|pause --signature @F | hantar CancelRotation, menggugurkan putaran yang belum selesai sebelum kelewatannya tamat |
--new-key ialah kunci awam Dilithium2 heks, @file yang memuatkannya, atau @key-file (kunci awamnya). Baris tandatangan berbentuk index:hex, dipisahkan dengan ruang kosong atau baris baharu, dan komen # dibenarkan.
vesting status|claim|revoke|bond|unbond
Bahagian pemegang dan pembatal bagi peruntukan genesis berkunci masa, pada rantaian yang genesisnya mempunyai bahagian vesting. Genesis rantaian 20 tidak mempunyainya. Kunci ialah fail rand-node keygen.
| arahan | argumen | maksud |
|---|---|---|
vesting status <ENTRY> | --rpc | entri seperti yang disediakan oleh rand_getVesting: syaratnya, jumlah yang telah terletak hak, dan jumlah yang boleh dituntut sekarang |
vesting claim | --entry <id>, --to <rand1…>, --amount <RAND> atau --all, --key, --rpc, --no-wait | bayar jumlah yang telah dibuka kunci ke dalam sebuah nota pada --to, tolak asas 0.001 RAND; ditandatangani oleh kunci benefisiari |
vesting revoke prepare | --entry, --margin-secs (lalai 600), --out (lalai revoke.json), --rpc | v0.6.8, tanpa kunci: tulis pembatalan yang ditandatangani oleh setiap pembatal, iaitu sebuah nota bagi bahagian yang masih belum terletak hak sejauh --margin-secs melepasi kepala rantaian, dibayar kepada treasury genesis entri itu (tiada --to) |
vesting revoke sign | --proposal <file>, --key, --index? | satu kunci pembatal, luar talian: cetak <index>:<signature hex> |
vesting revoke submit | --proposal <file>, --signature <index:hex> (boleh diulang), --rpc, --no-wait | hantar pembatalan dengan sekurang-kurangnya threshold tandatangan bagi entri itu, dalam tempoh 256 blok selepas prepare. vesting revoke --to berkunci tunggal daripada v0.6.7 telah dibuang |
vesting bond <amount RAND> | --entry, --validator <address>, --registration <hex>, --key, --rpc, --no-wait | entri yang tidak boleh dibatalkan: ikat RAND yang terkunci sebagai stek pengesah itu; pengesah yang belum berada dalam daftar memerlukan apa yang dicetak oleh register |
vesting unbond <amount RAND> | --entry, --key, --rpc, --no-wait | ambil semula RAND yang diikat ke dalam kunci; boleh dituntut semula selepas zaman nyahikatan |
aggregator register|unbond|withdraw, aggregate
Arahan bagi peranan pengagregat untuk rantaian yang mempunyai bahagian aggregation: aggregator register --key --bond <RAND> --payout <rand1…> --rpc mencetak AggregatorRegistration yang ditandatangani; aggregator unbond dan aggregator withdraw mencerminkan pasangan arahan pengesah. aggregate --key <KEY> [--rpc <URL>] [--watch] [--interval-secs 15] [--no-wait] ialah daemon yang meninjau rand_getUnsealed, membuktikan satu agregat dan menyerahkannya. Tidak aktif pada rantaian 20, yang genesisnya tidak mempunyai bahagian aggregation.
rand (dompet)
Pilihan global, sebelum atau selepas subarahan:
| pilihan | env | lalai |
|---|---|---|
--rpc <RPC> | RAND_RPC | http://127.0.0.1:8545; http atau https (titik akhir awam ialah https://rpc.randprotocol.org). Balasan melebihi 64 MiB ditolak |
--key <KEY> | RAND_KEY | wallet.key.json; stor nota terletak di sebelahnya pada <key>.notes.json. Stor itu terikat pada rantaian yang diimbas (rand_getGenesisHash nod): jika dihalakan ke rantaian lain, seperti dompet yang dikekalkan merentasi peralihan daripada rantaian 19 ke 20, stor itu dikosongkan dan diimbas semula dari daun 0 disertai amaran. Sejak v0.6.8 setiap arahan menolak fail kunci yang boleh dibaca oleh kumpulan atau pihak lain, serta menamakan pembetulannya (chmod 600 <key>) |
--prover | mati. Buktikan bundle pada pembukti yang dipasangkan dengan dompet ini (rand prover pair) dan bukan pada mesin ini; buktinya disemak di sini (digestnya, saiznya dan satu pengesahan setempat) sebelum dimasukkan ke dalam transaksi. Terpakai pada setiap arahan yang membuktikan bundle; bagi call dan program invoke, hanya bundle pembayaran yang dihantar kepada pembukti manakala bukti panggilan kekal setempat. Ditolak tanpa pemasangan, dan bersama --cuda kecuali pada call. Pada rantaian pengesahihan terpisah seperti rantaian 20, pembukti dihantarkan kunci pandang nk dan satu salt, tidak sekali-kali kunci perbelanjaan: ia boleh membaca keseluruhan sejarah dompet ini tetapi tidak boleh membelanjakannya. Bukti pengesahihan sentiasa dibuat pada mesin ini. Pada rantaian yang guest bundle-nya v1 atau v2, v0.6.8 menolak --prover sebelum pembukti ditanya apa-apa | |
--max-prover-fee <RAND> | 1. Jumlah paling banyak yang boleh dicaj oleh pembukti yang dipasangkan bagi setiap bundle. Sebut harga yang melebihinya ditolak sebelum sebarang bundle dibina; 0 menolak sebarang fi. Fi itu ialah satu lagi output RAND dalam bundle yang sama, dipaparkan sebagai prover fee: <amount> RAND to <fingerprint> |
Jumlah ialah RAND perpuluhan dengan sehingga sembilan tempat perpuluhan (1, 1.5, .25, 0.000000001). Jumlah token pada send, token mint dan token burn, dan dalam pautan randpay:, adalah dalam unit paparan token itu, pada decimals baris daftarnya sendiri (10 zUSD ialah 10 zUSD). bridge-burn, token create --fixed-supply dan --initial menerima integer biasa dalam unit terkecil token, dan asset-balance mencetaknya. Di mana-mana arahan menerima token, ia menerima indeks daftar, id rpl1… atau id 64-heks; id diselesaikan kepada indeksnya daripada senarai daftar keseluruhan nod (rand_getTokens, setiap halaman), tidak sekali-kali melalui carian bagi setiap token, yang akan memberitahu nod token mana yang bakal dipindahkan. Indeks berangka tidak sampai kepada nod langsung.
| arahan | argumen | tingkah laku |
|---|---|---|
keygen | tulis fail kunci perbelanjaan baharu pada --key, mod 0600; enggan menimpa fail sedia ada | |
address | --uri [--amount A] [--asset X] [--memo M], --qr, --qr-png <FILE> | cetak alamat rand1… dompet ini pada stdout, tepat alamat itu dan satu baris baharu, supaya $(rand address) berfungsi dalam skrip, dan fingerprint XXXX-XXXX-XXXX-XXXX pada stderr: 16 aksara Crockford base32, semakan alamat oleh manusia yang tidak pernah dihantar melalui rangkaian. --uri turut mencetak pautan randpay: (alamat beserta jumlah, aset dan memo pilihan). --qr memaparkan pautan itu sebagai kod QR dalam terminal; --qr-png menulisnya sebagai PNG |
contacts add <NAME> <TO> / list / show <NAME> [--qr] / remove <NAME> | --yes (add) | alamat bernama yang boleh dijadikan destinasi hantaran oleh dompet ini menggunakan nama. TO ialah alamat rand1… atau pautan randpay:, yang hanya alamatnya disimpan. add mencetak fingerprint dan bertanya add? [y/N] melainkan --yes diberikan; stdin yang bukan terminal ditolak tanpa --yes. Disimpan di <key>.contacts.json, mod 0600. Nama mestilah 1 hingga 64 aksara, tidak boleh bermula dengan rand1 atau randpay:, dan mestilah unik |
prover pair <LINK> / prover pair --trusted / show / forget | --name <NAME>, --yes (pair) | pasangkan dompet ini dengan satu pembukti yang diwakilkan. pair menerima pautan randprover: yang dicetak oleh rand-prover pair, menolak URL yang bukan https:// (http:// biasa hanya untuk localhost, 127.0.0.1 atau [::1]), kemudian menyatakan apa yang akan diterima oleh pembukti itu (this prover will receive this wallet's viewing key: it can read the wallet's whole history; it cannot spend) dan bertanya pair? [y/N]; --yes melangkau soalan itu, dan stdin yang bukan terminal ditolak tanpa --yes. Seterusnya ia menanyakan prover_info kepada pembukti, menolak melainkan fingerprint kunci pembukti itu sama dengan yang dinamakan oleh pautan, dan menulis <key>.prover.json, mod 0600, menggantikan sebarang pemasangan terdahulu. --trusted (v0.6.8) tidak menerima pautan: ia memasangkan dengan kolam pembukti para validator, https://prover.randprotocol.org, daripada pautan yang dibawa oleh binaan; pengendalinya boleh membaca sejarah dompet ini tetapi tidak boleh membelanjakan. show mencetak nama, URL, fingerprint, own dan kunci pembukti, tidak sekali-kali token; forget memadam fail itu. v0.6.7 tidak bertanya sebelum memasangkan |
viewing-key | cetak kunci pelihat nk dompet ini, 64 hex: parameter yang diterima oleh rand_importViewingKey. Ia membaca setiap nota yang dihantar atau diterima oleh dompet dan tidak membelanjakan satu pun | |
balance | imbas pokok, simpan stor, cetak nilai yang boleh dibelanjakan dan bilangan nota yang belum dibelanjakan | |
sync | --rescan | imbas tanpa mencetak baki. Penyegerakan pertama membaca setiap pengepala blok (1,024 setiap panggilan) sebelum daun. --rescan melupakan setiap nota, tanda dibelanjakan dan kursor (dengan mengekalkan pengikatan rantaian) dan mengimbas semula dari daun 0: jalan pulang apabila nod tersilap melaporkan nota dompet ini sebagai telah dibelanjakan. Paling baik dijalankan terhadap nod yang anda percayai |
notes | --memo | setiap nota yang telah dibuka oleh dompet ini: indeks, aset, jumlah, ketinggian, spent, pending, dan memo yang dipotong kepada 24 aksara, atau penuh dengan --memo |
asset-balance [INDEX] | imbas, kemudian cetak apa yang dipegang oleh dompet ini dalam satu aset, atau satu baris bagi setiap aset yang dipegang; jumlah dalam unit terkecil aset itu sendiri | |
history | --memo | setiap nota yang dicipta oleh dompet ini untuk orang lain, dengan lajur memo yang sama seperti notes |
send <TO> [AMOUNT] | --asset <INDEX|rand|rpl1…|hex> (lalai 0, RAND), --memo <M>, --fee <RAND> (lalai 0.001), --no-wait, --yes, --cuda | TO ialah alamat rand1…, pautan randpay: atau nama kenalan yang disimpan, dicuba mengikut urutan itu. Jumlah, aset dan memo milik pautan mengisi apa yang ditinggalkan oleh baris arahan; AMOUNT hanya pilihan apabila pautan membawanya, dan nilai yang diberikan dengan kedua-dua cara tetapi tidak sepadan ditolak. Arahan ini mencetak pengesahan, to <contact, if any> · fingerprint XXXX-XXXX-XXXX-XXXX · <amount> <asset> dan, apabila ada memo, satu baris memo: "<text>" tersendiri, kemudian bertanya sebelum membuat pembuktian melainkan --yes diberikan. Skrip mesti menyertakan --yes: stdin yang bukan terminal ditolak dengan stdin is not a terminal: pass --yes to send without confirmation. Kemudian ia memilih paling banyak dua nota bagi aset itu dan paling banyak dua nota RAND untuk yuran, mengeteri memo ke dalam output pembayaran sahaja, membuktikan satu berkas empat slot aset tersembunyi dan, pada rantaian dengan kebenaran perbelanjaan berpisah, kebenaran perbelanjaan secara setempat, menghantar dan menunggu pengesahan. Memo yang tidak kosong ditolak sebelum pembuktian pada rantaian yang genesisnya tiada envelope_bytes. AMOUNT adalah dalam unit paparan aset itu: RAND perpuluhan bagi RAND, dan token pada decimals baris daftarnya sendiri; hanya 0 atau rand dibaca sebagai RAND, walau apa pun indeks yang dijawab oleh nod. Id token dinyahkod sebelum nod ditanya, dan baris senarai yang menjawabnya dengan indeks 0 atau dengan medan id yang tidak sepadan ditolak. Pengesahan memaparkan jumlah token dalam unit paparan dan dalam unit asas, 10.00000000 zUSD (1000000000 units), supaya nod yang berbohong tentang decimals sesuatu token kelihatan sebelum apa-apa dihantar. Indeks aset dan yuran dicetak sebelum pembuktian. Pada rantaian, pemindahan token ialah berkas biasa, tidak dapat dibezakan daripada pembayaran RAND; yurannya ialah RAND, dan dompet tanpa RAND yang boleh dibelanjakan ditolak sebelum pembuktian |
bond <VALIDATOR> <AMOUNT> | --registration <hex>, --fee, --no-wait, --cuda | pertaruhkan (stake) pada validator: berkas itu membakar jumlah tersebut |
faucet [ADDRESS] | --amount <RAND> (lalai dan maksimum 100) | testnet sahaja: minta nod validator mencetak. Pada rantaian 20, faucet hanya membayar 16 dompet dalam senarai dibenarkan genesisnya |
program build | --guest <fib|memcpy|bubble_sort|balance_check|private_payment|public_echo|rpl2_counter>, --arg N (boleh diulang), --out <file> (lalai program.json) | himpunkan guest terbina dalam; cetak id program. rpl2_counter (v0.6.8) ialah program demonstrasi RPL-2 |
program deploy <FILE> | .json, .bin mentah, atau bekas imej yang ditulis oleh rand-guest build; --public <FILE>, --input <u32> (boleh diulang) atau --check-call, --cuda | cetak id program, hc dan bilangan perkataan; tolak program yang melebihi had rantaian (melalui rand_estimateFee) sebelum pembuktian; bayar lantai penempatan melalui berkas, tunggu. --public menyimpan input awam bersama program (perkataan u32 dipisahkan ruang putih, atau ELF .so), dalam lingkungan max_program_public_words rantaian; id program kemudian mengikatnya. Dengan --input atau --check-call, dompet terlebih dahulu menjalankan percubaan panggilan ke atas input persendirian itu dalam emulator dan menolak melainkan ia muat dalam had peringkat panggilan (14); tiada apa-apa dibuktikan untuk semakan itu |
program show <ID> | metadata program yang telah ditempatkan | |
program invoke <PROGRAM-ID> | --transition <FILE.json> (wajib), --input N (boleh diulang, persendirian), --inputs-file <FILE.json> (tatasusunan JSON u32, ditambah), --fee <RAND>, --gas-limit <N|max>, --tier T, --no-wait | v0.6.8, RPL-2: isytiharkan peralihan keadaan program dan minta rantaian menerapkannya. Sebelum apa-apa dibuktikan, ia menyemak bahawa rantaian mempunyai seksyen program_state, bahawa program itu wujud, bahawa konteks peralihan muat dalam peraturan segmen, bahawa setiap entri reads sepadan dengan sel semasa (rand_getProgramCell; ketidakpadanan menamakan sel yang lapuk dan keluar dengan kod 3), bahawa peti simpanan mampu membayar setiap entri pays ditambah apa yang didepositkan oleh peralihan ini, dan bahawa dompet ini memegang token dan RAND yang diperlukan oleh deposit dan yuran. Ia mengira sel yang dicipta oleh penulisan, menjalankan percubaan program ke atas perkataan konteks sebenar, membuktikan panggilan yang terikat pada transaksi, kemudian berkas (yuran, ditambah deposit.rand yang dibakar melalui burn_r dan deposit.amount bagi deposit.asset melalui burn_a) dan bukti kebenaran. Yuran lalai ialah lantai panggilan bagi gas yang diisytiharkan ditambah yuran sel bagi setiap sel yang dicipta, dengan dua langkah harga ruang tambahan yang sama seperti call. Mencetak setiap bayaran keluar dan, melainkan --no-wait, lapan outputs resit. Bacaan lapuk semasa kemasukan juga keluar dengan kod 3, supaya alat pemanggil membaca semula dan mencuba lagi. Tidak menerbitkan transkrip input. Fail peralihan, setiap medan pilihan: {"reads": [{"key", "value"}], "writes": [...], "deposit": {"rand": "<units>", "asset": N, "amount": "<units>", "kind": "none"|"deposit"|"burn"}, "pays": [{"asset": N, "amount": "<units>", "to": "rand1…"}], "mints": [...]}; kunci dan nilai ialah Word8 64-hex, jumlah ialah rentetan perpuluhan dalam unit aset itu sendiri, to lalai kepada dompet ini |
program state <ID> | --cell <64 hex> | v0.6.8: setiap sel program mengikut tertib kunci (rand_getProgramCells, dihalaman sehingga akhir), atau satu sel dengan --cell, 64 sifar apabila tiada. Ditolak pada rantaian tanpa seksyen program_state |
program vault <ID> | v0.6.8: peti simpanan program (rand_getProgramVault), satu baris bagi setiap aset yang dipegangnya, jumlah dalam unit. Ditolak pada rantaian tanpa seksyen itu | |
call <PROGRAM-ID> | --input N (boleh diulang), --expect-public <FILE>, --tier T, --gas-limit <N|max>, --fee, --auditor <rand1…>, --no-envelope, --print-call-key, --cuda | jalankan panggilan dalam emulator terlebih dahulu dan cetak gas: <exact> (declaring <limit>, tier <t>): gas tepat ialah saksi dan tidak pernah meninggalkan dompet, had yang diisytiharkan ialah GAS_LIMIT awam bagi bukti. Pada rantaian dengan seksyen gas, had lalai ialah gas tepat yang dibundarkan ke atas kepada gandaan 2^(t−2); max mengisytiharkan siling pengepala gas_max, yang tidak membocorkan apa-apa yang tidak dibocorkan oleh peringkat; N ditolak jika di bawah gas tepat atau melebihi siling. Tanpa seksyen, atau dengan --cuda, lalainya ialah max. Kemudian buktikan panggilan secara setempat ke atas input awam program, meteraikan transkrip inputnya, bayar melalui berkas, cetak resit. Yuran lalai ialah lantai bagi had yang diisytiharkan, BUNDLE_BASE + gas_price·GAS_LIMIT + byte_price·KiB pada harga yang dihidangkan oleh rand_getLimits, ditambah dua langkah harga ruang tambahan di mana harga bergerak, dicetak sebagai fee … RAND (incl. two price steps of headroom). Pada rantaian hardening_v6, yuran ditetapkan sebelum bukti wujud, maka lalainya menetapkan harga had bukti rantaian sebagai ganti bukti, yang hanya boleh menyebabkan bayaran berlebihan; --fee membayar jumlah yang tepat. --expect-public menolak sebelum pembuktian melainkan input awam program itu ialah perkataan fail tersebut |
open-call <TXHASH> | --call-key <hex>, --as-auditor | buka transkrip panggilan, semak terhadap H_IN, jalankan semula program; keluar dengan kod bukan sifar jika tidak sepadan |
receipt <TX> | resit panggilan yang telah disahkan | |
bridge-mint <ATTESTATION> | hex atau @path, --pq <JSON or @path> (wajib), --to <rand1…> (lalai: dompet ini), --fee (lalai: lantai tindakan), --no-wait, --cuda | depositkan perakuan yang ditandatangani penjaga sebagai nota. --pq ialah kuorum tandatangan bersama Dilithium2 para penjaga, [{"index":0,"signature":"<4840 hex>"},…]. Sebelum sebarang pembuktian: nyahkod perakuan, semak kuorum terhadap pq_guardians nod dan id rantaian, semak penerima dan id aset, baca indeks yang disenaraikan (rand_getAssets). Pembutaan (blinding) nota deposit diterbitkan daripada digest perakuan, r = blake3("rand-deposit-r-1" || mu), satu-satunya r yang diterima oleh rantaian. Berkas yuran dibuktikan terhadap keseluruhan transaksi, termasuk kuorum. Mencetak owner, time dan r bagi nota |
bridge-rotate <ROTATION> | hex atau @path, --pq <JSON or @path> (wajib), --fee (lalai: lantai tindakan), --no-wait, --cuda | hantar putaran set penjaga dengan kuorum tandatangan bersama set PQ semasa, sebagai BridgeAttest yang tidak mendepositkan apa-apa. Menolak, sebelum pembuktian, apa-apa selain putaran yang menaikkan set Rand sebanyak satu langkah. Mencetak guardian_set_index selepas itu |
bridge-pause | --sig <HEX or @path> (wajib), --no-wait | jeda pencetakan jambatan: PauseMints tanpa berkas dan tanpa yuran, maka tiada fail kunci dan tiada RAND diperlukan. Fail itu ialah output rand-bridge-gov pause, tandatangan 2,420 bait kunci jeda dalam hex, dibuat untuk pause_nonce semasa jambatan; disemak terhadap pause_key nod dan id rantaian sebelum dihantar. Pembakaran dan putaran kekal terbuka semasa dijeda |
bridge-unpause | --pq <JSON or @path> (wajib), --no-wait | angkat jeda dengan kuorum penjaga PQ (fail rand-bridge-gov pq-unpause) yang dibuat untuk pause_nonce semasa. Tanpa berkas dan tanpa yuran; kunci jeda sahaja tidak pernah dapat menyahjeda |
bridge-burn <ASSET> <AMOUNT> <TO_CHAIN> <TOKEN> <TO> | --relayer-fee N, --fee (lalai 0.01), --no-wait, --cuda, --yes | bakar aset yang dijambatankan ke luar: semak bahawa syiling TOKEN pada TO_CHAIN menyokong ASSET dan mempunyai sekurang-kurangnya AMOUNT yang dikunci, dan bahawa AMOUNT serta yuran relayer ialah unit pelepasan yang bulat; kemudian buktikan satu berkas yang membelanjakan aset itu dalam slot 0–1, membakar tepat AMOUNT daripadanya (burn_a, burn_asset) dan membayar yuran RAND dari slot 2–3. --relayer-fee ialah sebahagian daripada AMOUNT, bukan caj tambahan. Pada rantaian dengan yuran jambatan (rand_getBridgeState.fees), seperti rantaian 20, v0.6.8 terlebih dahulu mencetak yuran yang disimpan oleh rantaian (dalam aset itu) dan jumlah yang akan dilepaskan, dan meminta pengesahan; --yes melangkau soalan itu, dan stdin yang bukan terminal ditolak tanpa --yes. Semakan jumlah terkunci dan yuran relayer kemudian dibuat terhadap jumlah yang dilepaskan |
token create | --name, --symbol, --decimals <0..=9>, --salt <hex32> (rawak jika tidak diberikan), kemudian sama ada --fixed-supply <N> --to <rand1…>, --authority-key-out <FILE> [--initial <N> --to <rand1…>] atau (v0.6.8) --program <PROGRAM-ID>, token yang pihak berkuasa pencetakannya ialah program itu, yang hanya invoke-nya mencetak atau membakar, bermula pada bekalan sifar dan memerlukan seksyen program_state rantaian, --fee (lalai: asas berkas ditambah registration_fee daftar; ditolak apabila nod melaporkan yuran pendaftaran melebihi 10 RAND, maka berikan --fee untuk membayar yuran yang lebih besar dengan sengaja), --no-wait, --cuda | daftarkan token pada indeks seterusnya dalam daftar: bekalan tetap (dicetak sekali, pihak berkuasa none) atau dibenarkan Key (fail kunci Dilithium2 baharu, ditulis 0600, enggan menimpa). Kunci pihak berkuasa berada di <FILE>.pending sehingga rantaian menerima pendaftaran. Jika pendaftaran lain mengambil indeks itu dahulu, mencetak another token took index N first — re-run to register at N+1; apabila berjaya mencetak indeks dan id, hex dan rpl1… |
token mint | --asset, --to <rand1…>, --amount <N> (unit paparan token), --authority-key <FILE>, --fee (lalai 0.001), --no-wait, --cuda | cetak lebih banyak token yang dibenarkan Key; ditolak sebelum sebarang bukti jika token itu tidak dibenarkan Key atau kunci itu bukan pihak berkuasanya |
token set-authority | --asset, --authority-key <FILE>, kemudian sama ada --new-key <FILE> atau --renounce, --fee (lalai 0.001), --no-wait, --cuda | serahkan token yang dibenarkan Key kepada kunci lain, atau lepaskan hak mencetak selama-lamanya |
token burn <ASSET> <AMOUNT> | --fee (lalai 0.001), --no-wait, --cuda | musnahkan AMOUNT, dalam unit paparan token, bagi token RPL yang dipegang oleh dompet ini; bekalan awamnya berkurang tepat sebanyak itu. Token yang dijambatankan ditolak sebelum pembuktian: ia keluar melalui bridge-burn |
token info <INDEX|rpl1…|hex> | baris rand_getTokens penuh bagi satu token: nama, simbol, decimals, pihak berkuasa, mint_nonce, jumlah bekalan, registered_at, id (hex dan id_text) dan, jika dijambatankan, setiap sokongan (locked, mint_cap_per_day, minted_today, mint_day) | |
token list | --from <index> (lalai 0), --limit <N> (lalai 1000) | satu halaman rand_getTokens: enabled, registration_fee, next_index, tokens |
token register-bridged | --name, --symbol, --salt <hex32>, --chain, --token <hex32>, --decimals (decimals sumber sokongan pertama), --pq <JSON or @path> (wajib), --fee (lalai: asas berkas ditambah registration_fee nod, dengan penolakan 10 RAND yang sama seperti token create), --no-wait, --cuda | daftarkan token yang dijambatankan selepas genesis dengan sokongan pertamanya, dibenarkan oleh kuorum penjaga PQ (fail rand-bridge-gov pq-register) yang dibuat untuk list_nonce nod. Senaraikan pada Rand dahulu, setToken pada titik hujung kedua |
token list-backing | --asset <index>, --chain, --token <hex32>, --decimals, --pq <JSON or @path> (wajib), --fee (lalai: asas berkas), --no-wait, --cuda | tambah sokongan kepada token yang dijambatankan, dibenarkan oleh kuorum penjaga PQ (fail rand-bridge-gov pq-list) pada list_nonce nod |
bridge | keadaan awam jambatan: penjaga, pemancar, daftar aset, jujukan pembakaran | |
bridge-message <SEQUENCE> | satu mesej pembakaran keluar, kata demi kata | |
fee bundle / fee deploy <words> / fee call <tier> | --public-words M (deploy); --gas N, --bytes B, --keccak-log-height K, --sha256-log-height S (call) | yuran minimum daripada jadual nod. Pada rantaian dengan seksyen gas, fee call <tier> --gas N menetapkan harga had yang diisytiharkan yang dicetak oleh rand call, pada harga hujung rantaian dan tanpa ruang tambahan: lantai itu sendiri. Tanpa --gas, ia menetapkan harga siling gas_max(tier, K, S), kos tertinggi bagi panggilan sedemikian. --bytes ialah bait bukti panggilan ditambah bait sampul input |
tx <HASH> | transaksi yang telah disahkan beserta ketinggian dan indeksnya | |
tx-key <HASH> | satu baris bagi setiap output transaksi itu yang dihantar, diterima atau disimpan sebagai baki oleh dompet ini: output (bundle:0 … bundle:3, empat slot satu berkas itu, atau mint:0), peranan, jumlah (dalam RAND, atau N (asset I) bagi token), memo yang dibawanya (- jika tiada) dan kunci per transaksi yang digunakan untuk meteraikannya. Serahkan kunci baris sent kepada penerima bayaran atau juruaudit dan rand_checkTransaction <HASH> <KEY> mendedahkan output tunggal itu, termasuk memo. Slot dummy tidak dibuka kepada sesiapa dan tiada barisnya | |
block <ID> | blok mengikut ketinggian atau hash | |
head | { height, hash, view } | |
status | rand_status | |
peers | rakan sebaya yang bersambung | |
validators | daftar validator |
--cuda memerlukan binaan dengan --features cuda dan tiada pilihan sandaran; belum ada PTX yang dibina. Ia tidak dapat menyegel sampul input panggilan: rand call --cuda memerlukan --no-envelope. Ia hanya mengisytiharkan siling gas, dan menolak --gas-limit N.
Setiap memo dan nama kenalan yang dipaparkan oleh CLI (pengesahan send, notes, history, tx-key) melalui satu peraturan paparan terlebih dahulu: aksara kawalan, aksara format Unicode (kawalan dwiarah, aksara lebar sifar, tanda sempang lembut) dan U+2028/U+2029 dipaparkan sebagai U+FFFD, dan satu rentetan aksara pemisah ruang dipaparkan sebagai satu ruang.
Pemindahan terlindung pertama
rand keygen # wallet.key.json
rand address # rand1… on stdout, its fingerprint XXXX-XXXX-XXXX-XXXX on stderr
rand faucet # testnet, allowlisted wallets only: 100 RAND into a note only you can open
rand balance # balance: 100 RAND
rand send rand1q9f… 1.5 # asks to confirm, then a minute and a half to two minutes of local proving, then the commit
rand notes # the spent note, and the change note
Berkongsi alamat, dan memo
rand address --uri --amount 1.5 --memo "invoice #42" --qr # a randpay: link, as a terminal QR
rand contacts add alice rand1q9f… # shows the fingerprint, asks add? [y/N]
rand send alice 1.5 --memo "coffee" # the memo is sealed into the payment output
rand history --memo # alice's row shows the whole memo
rand tx-key <hash> # hand the sent row's key to alice or an auditor
Memo berada di dalam badan tersegel yang sama dengan nota, jadi sesiapa yang dapat membuka salah satunya dapat membuka yang lain: penerima bayaran melalui notes, dan sesiapa yang memegang kunci per-transaksi bagi output tersebut melalui rand_checkTransaction <hash> <key>. Chain 18 ialah chain pertama yang genesisnya menetapkan envelope_bytes; pada chain 14 hingga 17, --memo ditolak sebelum sebarang pembuktian dibuat.
Panggilan sulit yang boleh anda buka semula kemudian
rand program build --guest balance_check --arg 1000 --out bc.json
rand program deploy bc.json # prints the program id
rand call <id> --input 100 --input 200 --input 300 --input 400
rand open-call <txhash> # inputs: [100, 200, 300, 400] — verdict: faithful (exit 0)
Atur cara berkeadaan: pembilang RPL-2
Pada chain yang mempunyai bahagian program_state, seperti chain 20. Pembilang ini menerima tepat transisi yang membaca satu sel dan menulisnya semula dengan perkataan pertamanya ditambah satu; segala yang lain dalam transisi itu (apa yang didepositkan oleh bundle, apa yang dibayar oleh vault, apa yang dicetak oleh atur cara) turut dibawa tanpa disemak, menjadikannya demonstrasi dan bukan atur cara untuk meletakkan nilai di belakangnya.
rand program build --guest rpl2_counter --out counter.json
rand program deploy counter.json # prints the program id
rand token create --name "Counter Share" --symbol CTR --decimals 0 --program <id> # say index 2
rand program state <id> --cell 0100000000000000000000000000000000000000000000000000000000000000 # 64 zeros: absent
cat > step.json <<'JSON'
{ "reads": [{ "key": "0100…00", "value": "0000…00" }],
"writes": [{ "key": "0100…00", "value": "0100…00" }],
"deposit": { "rand": "500000000", "kind": "none" },
"pays": [{ "asset": 0, "amount": "200000000", "to": "rand1…" }],
"mints": [{ "asset": 2, "amount": "1" }] }
JSON
rand program invoke <id> --transition step.json # exit 3 if the cell moved since; re-read and retry
rand program vault <id> # asset 0: 300000000 units (0.5 RAND in, 0.2 out)
Tanda … dalam fail itu mewakili 64 aksara heks penuh, yang diperlukan oleh dompet.
Apa yang dicetak oleh deploy dan call
Pada chain dengan pengesahan terpisah, setiap bundle ialah dua bukti yang dibuat pada mesin ini: pengesahan perbelanjaan tier-10 dan bundle tier-14. Satu program deploy dengan rand v0.6.7 pada chain 18, 2026-09-30:
proving the spend authorisation on this machine (tier 10; seconds)…
authorisation proved in 6.8s: tier 10, 1368908 bytes
proving the bundle (tier 14; about a minute and a half on a laptop)…
proved in 116.7s: tier 14, 1500710 bytes
submitted deploy <hash>
0 RAND out, 59.8545 RAND change, fee 0.1007 RAND, anchored at height 97831, proved in 116.7s (bundle) + 6.8s (auth)
Satu call mencetak gas dan failnya sebelum bukti panggilan, kemudian membuktikan bundle pembayar dengan cara yang sama:
proving the call locally (90 inputs stay private, over the program's 11-word public input)…
gas: 5636 (declaring 6144, tier 12)
fee 0.006191437 RAND (incl. two price steps of headroom)
proved in 29.2s: tier 12, 3346865 bytes, outputs [...]
Di sini 6,144 ialah 5,636 yang dibundarkan ke atas kepada gandaan 2^10, dan rand fee call 12 --gas 6144 --bytes <B> meletakkan harga had itu pada harga di hujung rantaian tanpa ruang lebihan.
rand-prover
Prover yang diwakilkan sebagai binari tersendiri: ia membuat bukti bundle tier-14 sesebuah dompet pada mesin lain. rand-node run --prover menjalankan perkhidmatan yang sama di dalam nod. Setiap subperintah menerima --home <DIR> (env RAND_PROVER_HOME, lalai ~/.rand-prover), iaitu direktori yang menyimpan prover.key.json dan pairings.json.
| command | arguments | behaviour |
|---|---|---|
keygen | tulis prover.key.json, mod 0600, dan cetak cap jari kunci itu; enggan menimpa | |
pair | --name <LABEL> (diperlukan), --url <URL> (lalai http://127.0.0.1:8600), --own, --qr | cetak token, simpan hashnya sahaja di bawah label dan cetak pautan pemasangan randprover: yang diterima oleh rand prover pair. Token dipaparkan sekali sahaja, di dalam pautan. --url ialah alamat yang digunakan dompet untuk mencapai prover ini; --own menambah own=1; --qr turut mencetak pautan sebagai kod QR terminal |
unpair | --name <LABEL> | buang satu pemasangan; prover yang sedang berjalan membaca fail itu semasa bermula, jadi ia berkuat kuasa selepas dimulakan semula |
pairings | satu baris bagi setiap pemasangan: label, own atau -, tarikh penciptaan | |
run | --listen <ADDR> (lalai 127.0.0.1:8600), --max-parallel <N> (1), --max-queue <N> (8), --per-token <N> (2), --cuda, --skip-memory-check, --allow-origin <ORIGIN> (boleh diulang), --fee <RAND> dengan --fee-address <rand1…>, --accept-spend-key | sajikan JSON-RPC prover_* sehingga Ctrl-C atau SIGTERM. Permulaan ditolak melainkan memori sebanyak 5.74 GB × --max-parallel + 1 GiB tersedia. --per-token ialah bilangan tugas yang boleh dimiliki satu pemasangan dalam baris gilir atau sedang dibuktikan pada satu masa. --accept-spend-key telah dipersarakan dalam v0.6.8: run enggan bermula dengannya, dan prover hanya menerima saksi kunci pemerhatian. Pada v0.6.7 ia menerima saksi kunci perbelanjaan, yang hanya dihantar oleh chain pada guest bundle v1 atau v2 |
Prover pada chain 20 menerima kunci pemerhatian nk dompet dan satu salt baharu. Ia tidak dapat membelanjakan, tetapi ia dapat membaca segala yang pernah diterima atau dihantar oleh dompet itu: pasangkan dengan prover yang sejarah anda boleh anda tunjukkan kepadanya. Dompet menyemak setiap bukti yang diterimanya semula.
Format fail kunci
Kunci nod:
{ "seed": "hex of 32 bytes", "address": "base58 of blake3(\"rand-address\" || public key)", "public_key": "hex of 1312-byte Dilithium2 public key" }
Kunci dompet, versi 2:
{ "version": 2, "spend_key": "hex of 8 little-endian u32 words (64 characters)" }
rand keygen menulisnya dengan mod 0600, dan sejak v0.6.8 setiap perintah rand enggan menerima fail kunci dompet yang boleh dibaca oleh kumpulan atau pihak lain: kunci yang disalin atau dipulihkan secara manual mesti dikembalikan kepada 0600 (chmod 600 <key>). Kehilangan kunci dompet bermakna kehilangan setiap nota yang dapat dibukanya; tiada frasa pemulihan dalam keluaran ini.