சோதனைச் சங்கிலியில் ஒரு ஃபாசெட்டை இயக்கவும், நெட்வொர்க்கில் அனுப்பப்படும் வடிவில் ஒரு Mint பரிவர்த்தனை என்ன என்பதைப் புரிந்துகொள்ளவும், ஒரு பிணைப்போ பால எரிப்போ குளத்திலிருந்து மதிப்பை எவ்வாறு வெளியே எடுக்கிறது என்பதைத் துல்லியமாகக் காணவும் இந்தப் பக்கத்தைப் பயன்படுத்துங்கள். ஒவ்வொரு நுழைவும் ஒவ்வொரு வெளியேற்றமும் பொதுவில் தெரிபவை; இடையிலுள்ள அனைத்தும் குறிப்புகளே.
ஃபாசெட் அச்சிடல்
சங்கிலி 20-இல் ஜெனிசிஸுக்குப் பிறகு RAND உருவாக்கப்படும் ஒரே வழி Mint ஆகும்; ஜெனிசிஸ் "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)) ஆகும். ஜெனிசிஸ் binding_domain: 1 என அமைக்கும் சங்கிலி 20-இல், அது ஜெனிசிஸ் ஹாஷையும் அதைத் தொடர்ந்து அதே புலங்களையும் உள்ளடக்கிய rand-mint-3 ஆகும். எனவே ஒரு சங்கிலிக்காகக் கையொப்பமிடப்பட்ட அச்சிடல் வேறு எந்தச் சங்கிலியிலும் மறுக்கப்படுகிறது; அதே சங்கிலி அடையாள எண்ணையும் அதே சரிபார்ப்பாளர் சாவிகளையும் பகிரும் சங்கிலியிலும் இது பொருந்தும். கண்காணிப்புக் கணுவிடம் சரிபார்ப்பாளர் சாவி இல்லை; அது 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-ஐயும் வெளியிடுகிறது. எனவே திரும்பப்பெறுதலின் செலுத்துகை பெறுநரைப் போலவே, ஃபாசெட் குறிப்பின் உரிமையாளரும் பொதுவில் தெரிபவர். மறைந்திருப்பது, அந்தக் குறிப்பு பின்னர் எப்போது, எங்கே செலவழிக்கப்படுகிறது என்பது மட்டுமே. “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-இல் ஒன்பது ஜெனிசிஸ் குறிப்புகள் உள்ளன:
- மொத்தம் 5,184.243719258 RAND (
genesis_deposited) மதிப்புள்ள ஏழு RAND குறிப்புகள். இவை சங்கிலி 19-இன் நிலைப்படத்திலிருந்து கொண்டுவரப்பட்ட இயக்குநர் இருப்புகள். - 10, 89 zUSD மதிப்புள்ள இரண்டு zUSD குறிப்புகள். இவை சங்கிலி 19-இலிருந்து கொண்டுவரப்பட்ட 99 zUSD பாலக் காப்பு (பாலம்). இவை RAND அல்ல,
genesis_deposited-இல் கணக்கிடப்படுவதும் இல்லை.
இயக்குநர் வைத்திருக்காத பணப்பைகளில் சங்கிலி 19-இல் இருந்த சுமார் 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 != 0 | Rand-இல் அழிக்கப்படுகிறது; பாதுகாவலர் கையொப்பமிட்ட எரிப்புச் செய்தியின் அடிப்படையில், மூலச் சங்கிலி ஒப்பந்தம் குறிப்பிடப்பட்ட நாணயத்தில் 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 வழியாக வெளியேறுகிறது.
சங்கிலி 15 முதல் ஒவ்வொரு சங்கிலியிலும் போலவே, சங்கிலி 20-இலும் ஒரு கட்டணம் எரிப்பாகவும் உள்ளது. அதன் ஜெனிசிஸ் 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). ஒரு Invoke, burn_r வழியாக நிரல் பெட்டகத்துக்குள் எரிக்கும் RAND, குளப் பக்கத்தில் burned-இல் கணக்கிடப்பட்டுப் பெட்டகத்தில் வைக்கப்படுகிறது. பெட்டகம் குறிப்புகளாகச் செலுத்துவது குளத்துக்குத் திரும்புகிறது. rand_getSupply இரண்டையும் invariant_holds உடன் வழங்குகிறது.
ஃபாசெட் உருவாக்கம் மட்டுமே சங்கிலி வெளியிட்டுள்ள மொத்தத்தில் சேர்க்கிறது; chain 20 இல் எரிக்கப்பட்ட பதிவுக் கட்டணம் மட்டுமே அதிலிருந்து கழிக்கிறது: slashed என்பது தண்டனையாகக் குறைக்கப்பட்ட திரட்டியின் பிணைத்தொகையையோ, genesis இல் staking.slashing பிரிவு இருந்தால், தண்டனையாகக் குறைக்கப்பட்ட சரிபார்ப்பாளரின் பணயத்தையோ கணக்கிடும்; chain 20 இல் இவ்விரண்டுமே இல்லை (திரட்டல் முடக்கப்பட்டுள்ளது, slashing null ஆக உள்ளது). பிணைத்தொகை, கட்டணம், திரும்பப் பெறுதல், பெட்டக வைப்பு ஆகியவை கவசக் குளம், பதிவேடு, பெட்டகங்கள் ஆகியவற்றுக்கு இடையே மதிப்பை நகர்த்துகின்றன; எதையும் புதிதாக உருவாக்குவதில்லை. எண்ணிகளும் ஒரு செய்துகாட்டிய எடுத்துக்காட்டும் வழங்கல் பக்கத்தில் உள்ளன. தொகுதித் திரட்டல் மானியம், அதாவது பாதியாக்க அட்டவணைப்படி முத்திரையிடப்பட்ட ஒவ்வொரு தொகுதிக்கும் உருவாகும் புதிய RAND, ஒரு திரட்டிக்கு வைப்புக் குறிப்பாகச் செலுத்தப்படுவது, முதல் திட்டமிடப்பட்ட வெளியீடாக அமையும்; அது chain 20 இல் செயல்பாட்டில் இல்லை.