இந்தப் பக்கத்தைக் கொண்டு rand_getSupply-ஐச் சரியாகப் படிக்கலாம்; வெளியீட்டைப் பற்றியும் பகுத்தாயலாம்: RAND எங்கிருந்து வருகிறது, எங்கே செல்கிறது, ஒரு மறைக்கப்பட்ட சங்கிலியின் குறிப்புகளை யாராலும் கூட்ட முடியாவிட்டாலும் அதன் வழங்கலைத் துல்லியமாக்கும் முற்றொருமை எது என்பவற்றை இது விளக்குகிறது.
RAND எங்கிருந்து வருகிறது, எங்கே செல்கிறது
மறைக்கப்பட்ட சங்கிலியால் தன் சொந்தப் பணத்தைக் கூட்ட முடியாது: ஒரு குறிப்பின் மதிப்பு அதன் உறுதிப்பாட்டுக்குள் இருக்கிறது. பொதுவில் தெரிவது குளத்தின் எல்லையைக் கடக்கும் ஒவ்வொரு கடப்பும்தான். அவை ஐந்து வகை; நிரல் பெட்டகங்கள் உள்ள சங்கிலியில் (RPL-2, சங்கிலி 20) ஏழு வகை:
| திசை | கடப்பு | எப்போது |
|---|---|---|
| உள்ளே | ஒரு ஜெனிசிஸ் வைப்புக் குறிப்பு (ஜெனிசிஸ் கோப்பில் alloc, சங்கிலி 14 முதல் திறக்கப்பட்டது) | தொகுதி 0 |
| உள்ளே | ஒரு ஃபாசெட் உருவாக்கம் (Mint, 100 RAND வரை, சரிபார்ப்பாளர் கையொப்பமிட்டது, சங்கிலி 14 முதல் குறிப்பின் திறப்பையும் கொண்டது) | "faucet": true கொண்ட testnet சங்கிலிகள்; சங்கிலி 20-இல் அனுமதிப் பட்டியலிலுள்ள 16 வாலெட்டுகளுக்கு மட்டும், ஜெனிசிஸில் பட்டியலிடப்பட்ட 18 உருவாக்குநர்களில் ஒருவரின் கையொப்பத்துடன், 1,000-தொகுதி காலப்பகுதிக்கு அதிகபட்சம் 10,000 RAND |
| உள்ளே | ஒரு சரிபார்ப்பாளரின் Withdraw; விடுவிக்கப்பட்ட பிணைப்புத் தொகையையும் வெகுமதிகளையும் இது ஒரு குறிப்பில் செலுத்துகிறது | எந்த நேரத்திலும் |
| வெளியே | ஒரு தொகுப்பின் fee, தொகுதி முன்மொழிபவரின் rewards-க்குள் | ஒவ்வொரு தொகுப்பும் |
| வெளியே | ஒரு தொகுப்பின் burn_r: ஒரு Bond பிணைப்புத் தொகையை எரித்து ஒரு சரிபார்ப்பாளரின் பொது stake-க்குள் சேர்க்கிறது | ஒவ்வொரு பிணைப்பும் |
| வெளியே | ஒரு Invoke-இன் burn_r: ஒரு நிரலின் பொதுப் பெட்டகத்தில் வைப்பு செய்யப்படும் RAND | சங்கிலி 20, v0.6.8 முதல் |
| உள்ளே | ஒரு பெட்டகச் செலுத்துகை: ஒரு Invoke ஒரு நிரலின் பெட்டகத்திலிருந்து குறிப்பாகச் செலுத்தும் RAND; அதன் தொகையும் பெறுநரும் பொதுவானவை | சங்கிலி 20, v0.6.8 முதல் |
ஜெனிசிஸ் tokens.burn_registration_fee-ஐ அமைக்கும் சங்கிலியில் (சங்கிலி 20-இன் ஜெனிசிஸ் அதை அமைக்கிறது), ஒரு டோக்கன் பதிவின் 1 RAND registration_fee-உம் burned வழியாகக் குளத்தை விட்டு வெளியேறுகிறது; ஆனால் அது எந்தப் பதிவேட்டு உள்ளீட்டுக்கும் செல்வதில்லை: அது அழிக்கப்படுகிறது, முன்மொழிபவருக்குத் தொகுப்பின் அடிப்படைத் தொகை மட்டுமே கிடைக்கிறது.
குளத்தின் அருகே சரிபார்ப்பாளர் பதிவேடு உள்ளது. ஒருமித்த ஒப்புதலின் எடை பொதுவாக இருக்க வேண்டும் என்பதால், அது தொகைகளை வெளிப்படையாக வைத்திருக்கிறது. பதிவேட்டிலுள்ள பிணைப்புத் தொகை உண்மையான RAND: அதைப் பிணைப்பிலிருந்து விடுவித்து மீண்டும் ஒரு குறிப்பாகத் திரும்பப் பெறலாம். சங்கிலி 20-இல் நிரல் பெட்டகங்கள் அதன் அருகே இரண்டாவது பொது இருப்பாக உள்ளன: ஓர் அழைப்பு வைப்பு செய்யும் RAND, ஒரு செலுத்துகை அதை ஒரு குறிப்பாகக் குளத்துக்குத் திருப்பும் வரை அங்கே எண்ணக்கூடியதாகவே இருக்கும்.
சங்கிலி 20-இல் தொகுதி வெகுமதிகளும் இல்லை, பணவீக்கமும் இல்லை. சங்கிலியின் முதல் திட்டமிடப்பட்ட வெளியீடு தொகுதி-திரட்டல் மானியம்: முத்திரையிடப்பட்ட ஒவ்வொரு தொகுதிக்கும் படிப்படியாகக் குறையும் அளவில் புதிய RAND, அந்தத் தொகுதியை உள்ளடக்கும் நிரூபணத்தை வழங்கும் திரட்டிக்குச் செலுத்தப்படும். அது சங்கிலி 20-இல் செயல்பாட்டில் இல்லை (நிரூபணங்கள்). சங்கிலி 20 ஒரு புதிய சங்கிலி; 2026-10-01 அன்று 06:17 UTC முதல் இயங்குகிறது; சங்கிலி 19-இலிருந்து பிரிக்கப்பட்டது (முழு முனை v0.6.8, ஒரு கடினப் பிளவு). அதன் ஜெனிசிஸ் 31,184.243719258 RAND வெளியிட்டது: 26 ஜெனிசிஸ் சரிபார்ப்பாளர்களிடையே பிணைக்கப்பட்ட 26,000, ஏழு வைப்புக் குறிப்புகளில் 5,184.243719258. இந்த ஏழு குறிப்புகளும் சங்கிலி 19-இலிருந்து கொண்டுவரப்பட்ட ஏழு இயக்குநர் வாலெட்டுகளின் இருப்புகள். சங்கிலி 19-இல் பிற வாலெட்டுகள் வைத்திருந்த சுமார் 519.9 RAND (அனுமதிப் பட்டியலிலுள்ள பெறுநர்களுக்கான ஃபாசெட் உருவாக்கங்கள், பயனர்களுக்கான கொடுப்பனவுகள்) கொண்டுவரப்படவில்லை, ஏனெனில் உரிமையாளரின் முகவரி இல்லாமல் ஒரு குறிப்பை மீண்டும் உருவாக்க முடியாது; திரும்பப் பெறப்படாத 0.499 RAND சரிபார்ப்பாளர் வெகுமதிகளும் கொண்டுவரப்படவில்லை. மேலும் இரண்டு ஜெனிசிஸ் குறிப்புகள் (மொத்தம் ஒன்பது) பாலத்தின் 99 zUSD-ஐக் (10, 89) கொண்டுள்ளன. அது RAND அல்ல; இந்தத் தணிக்கைக்கு வெளியே உள்ளது. சங்கிலி 20-இல் rand_getSupply காட்டுவது: genesis_deposited 5,184,243,719,258 அலகுகள், invariant_holds: true (உயரம் 3,037, 2026-10-01). அதே நாளில் உயரம் 141,935-இல் சங்கிலி 18-இன் நிலைப்படத்திலிருந்து பிரிக்கப்பட்ட சங்கிலி 19, 31,294.644359629 RAND வெளியிட்டது: அதே 26,000 பிணைக்கப்பட்டவை, ஏழு குறிப்புகளில் 5,294.644359629, அவற்றுடன் ஒரு 10 zUSD குறிப்பு. அதன் பிறகான ஒவ்வொரு ஃபாசெட் உருவாக்கமும் வெளியிடப்பட்ட தொகையைக் கூட்டுகிறது; எரிக்கப்பட்ட ஒவ்வொரு பதிவுக் கட்டணமும் அதைக் குறைக்கிறது. 2026-09-26 அன்று பிரிக்கப்பட்ட சங்கிலி 15, ஜெனிசிஸில் 23,000 RAND வெளியிட்டது: 18 சரிபார்ப்பாளர்களிடையே பிணைக்கப்பட்ட 18,000, ஐந்து குறிப்புகளில் 5,000. பின்னர் சேர்ந்த அதன் எட்டு சரிபார்ப்பாளர்கள் ஏற்கனவே உள்ள குறிப்புகளிலிருந்து பிணைத்தனர்; அதனால் எதுவும் வெளியிடப்படவில்லை.
டோக்கன்கள் இந்தத் தணிக்கைக்கு வெளியே உள்ளன
மேலே உள்ள கடப்புகள் RAND-க்கு உரியவை. ஒரு RPL டோக்கன், பாலம் வழியாக வந்ததாயினும் சொந்தமானதாயினும், ஒருபோதும் RAND எல்லையைக் கடப்பதில்லை. சொத்துக் குறியீடு 0 RAND-க்கு ஒதுக்கப்பட்டுள்ளது; டோக்கன் பதிவகம் அதை ஒருபோதும் வழங்குவதில்லை. எனவே ஒரு BridgeAttest, ஒரு TokenMint அல்லது ஒரு பதிவின் தொடக்க உருவாக்கம் எப்போதும் வேறொரு சொத்தின் குறிப்பையே வைப்பு செய்கிறது; ஒரு BridgeBurn-இன் அல்லது ஒரு TokenBurn-இன் burn_a எப்போதும் அத்தகைய குறிப்பையே அழிக்கிறது (burn_a வழியாக RAND-ஐ எரிக்கும் முயற்சி மறுக்கப்படுகிறது). fees_paid, burned இரண்டும் ஒரு தொகுப்பின் fee, burn_r ஆகியவற்றிலிருந்து மட்டுமே எண்ணப்படுகின்றன. குளத்துக்குள் நடக்கும் டோக்கன் பரிமாற்றம் எந்த எண்ணியையும் நகர்த்துவதில்லை, ஏனெனில் அதன் சொத்துகூடப் பொதுவில் தெரிவதில்லை. சங்கிலி 20-இல் ஒரு Invoke burn_a வழியாக ஒரு டோக்கனையும் உள்ளே எடுக்கலாம்: நிரலின் பெட்டகத்துக்குள் (deposit), இது அதன் வழங்கலை மாற்றாது; அல்லது அழிப்பதற்கு (burn), இது நிரலின் சொந்த டோக்கனுக்கு மட்டுமே. பாலத்தின் கட்டணக் குறிப்புகள் (சங்கிலி 20, ஒவ்வொரு zUSD வைப்பு, எரிப்பின் 10 bps, ஒரு கருவூல முகவரிக்கு) zUSD ஆகும், ஒருபோதும் RAND அல்ல. அவை வெளியிடப்பட்டவை, ஆதாரத்துடன் உள்ளவை; எனவே ஒரு வைப்பில் ஆதாரமும் வழங்கலும் மொத்தத் தொகை அளவு நகர்கின்றன, ஒரு எரிப்பில் அவை amount − fee அளவு குறைகின்றன. ஒரு டோக்கனின் சொந்த வழங்கல் பதிவகத்தின் பொது எண்ணிக்கையே: rand_getTokenSupply total_supply-ஐத் தருகிறது; பாலம் வழியான டோக்கனுக்கு ஒவ்வொரு ஆதாரத்தின் locked தொகையையும் தருகிறது; இவற்றின் கூட்டுத்தொகை total_supply-க்குச் சமம் (RPL டோக்கன்கள்).
தணிக்கை முற்றொருமை
அலகுகளில் (1 RAND = 10⁹) ஆறு ஒருபோக்கு எண்ணிகள், அழிக்கப்பட்டதைப் பதிவுசெய்யும் இரண்டு எண்ணிகள், சங்கிலி 20-இல் நிரல் பெட்டகங்களுக்கான இரண்டு எண்ணிகள்:
| எண்ணி | கூட்டுவது |
|---|---|
genesis_deposited | ஜெனிசிஸ் கோப்பிலுள்ள alloc வைப்புக் குறிப்புகள் |
genesis_staked | ஜெனிசிஸ் பதிவேட்டில் தொடக்கமாக இட்ட பிணைப்புத் தொகைகள் |
faucet_minted | ஏற்கப்பட்ட ஒவ்வொரு Mint |
withdraw_deposited | ஏற்கப்பட்ட Withdraw-கள் உருவாக்கிய குறிப்புகள் (ஒவ்வொன்றும் amount − 0.001 RAND) |
fees_paid | ஒவ்வொரு தொகுப்புக் கட்டணமும் |
burned | ஒவ்வொரு தொகுப்பின் burn_r (ஒரு Bond-இன் பிணைப்புத் தொகை, சங்கிலி 20-இல் ஓர் அழைப்பின் பெட்டக வைப்பு), எரிக்கப்பட்ட ஒவ்வொரு பதிவுக் கட்டணமும் |
slashed | பறிமுதல் செய்யப்பட்ட திரட்டிப் பிணைப்புகள் (தொகுதி திரட்டல்; அது முடக்கப்பட்டிருக்கும்போது 0) |
registration_fees_burned | tokens.burn_registration_fee-இன் கீழ் எரிக்கப்பட்ட பதிவுக் கட்டணங்கள்; இவை burned-இலும் அடங்கும் |
program_rand_out | நிரல் பெட்டகங்கள் செலுத்திய RAND குறிப்புகள் (RPL-2; program_state பிரிவு இல்லையெனில் 0) |
program_rand_held | பெட்டகங்கள் இன்னும் வைத்திருக்கும் RAND: ஒவ்வோர் அழைப்பின் burn_r கழித்தல் program_rand_out. இது burned வழியாகவே அங்கே சென்றது; எனவே இது அந்த எண்ணியின் பெட்டகப் பக்கம் |
pool_value = genesis_deposited + faucet_minted + withdraw_deposited + program_rand_out − fees_paid − burned
register_total = Σ over the register of (stake + pending + rewards)
total_supply = pool_value + register_total + program_rand_held
issued = genesis_deposited + genesis_staked + faucet_minted
invariant: total_supply == issued − slashed − registration_fees_burned
pool_value என்பது உள்ளே வந்தது கழித்தல் வெளியே சென்றது. இது குறிப்புகளின் கூட்டுத்தொகைக்குச் சமமான அதே எண்; அந்தக் கூட்டுத்தொகையை யாராலும் கணக்கிட முடியாது. ஒரு திரும்பப்பெறுதலின் 0.001 RAND அடிப்படைத் தொகை ஒரு கடப்பு அல்ல: அது ஒரு பதிவேட்டு வரிசையிலிருந்து முன்மொழிபவரின் வரிசைக்கு நகர்கிறது; குறிப்பு மட்டுமே எல்லையைக் கடந்தது. invariant_holds பொய்யாக இருந்தால் அது ஒருமித்த ஒப்புதல் பிழை அல்லது சேதமடைந்த தரவுத்தளம்; ஒருபோதும் முறையான நிலை அல்ல. நிரல் பெட்டகங்கள் இல்லாத சங்கிலியில் இரண்டு நிரல் உறுப்புகளும் பூஜ்யம்; எனவே அங்கே முற்றொருமை சங்கிலி 19-இன் முற்றொருமையே. இதுவரை எந்தச் சங்கிலியிலும் இல்லாத ஜெனிசிஸ் vesting பிரிவு இருந்தால், அது இதே வழியில் மூன்றாவது பொதுப் பதிவேட்டைச் சேர்க்கும் (JSON-RPC).
2,000 வைப்பு செய்து 4,000 பிணைத்த ஒரு சங்கிலியில், 1,000 RAND-இன் ஒரு பிணைப்பையும் ஒரு திரும்பப்பெறுதலையும் பின்தொடர்ந்தால்:
| பின்னர் | burned | withdraw_deposited | fees_paid | pool_value | register_total | total_supply |
|---|---|---|---|---|---|---|
| ஜெனிசிஸ் | 0 | 0 | 0 | 2,000 | 4,000 | 6,000 |
| 1,000 பிணைப்பு (கட்டணம் 0.001) | 1,000 | 0 | 0.001 | 999.999 | 5,000.001 | 6,000 |
| அதன் பிணைப்பு விடுவிப்பு | 1,000 | 0 | 0.001 | 999.999 | 5,000.001 | 6,000 |
| அதன் 1,000 திரும்பப்பெறுதல் | 1,000 | 999.999 | 0.001 | 1,999.998 | 4,000.002 | 6,000 |
இதைப் படித்தல்
curl -s http://127.0.0.1:8545 -H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"rand_getSupply","params":[]}'
{ "height": 1998,
"genesis_deposited": "2000000000000", "genesis_staked": "4000000000000",
"faucet_minted": "0", "withdraw_deposited": "999999000000",
"fees_paid": "1000000", "burned": "1000000000000",
"slashed": "0", "registration_fees_burned": "0",
"pool_value": "1999998000000", "register_total": "4000002000000",
"total_supply": "6000000000000", "invariant_holds": true }
2⁵³-ஐத் தாண்டிய JSON எண் துல்லியமான முழு எண் அல்ல; அதனால் ஒவ்வொரு தொகையும் அலகுகளின் தசமச் சரமாக உள்ளது. முழுப் பொருளில் இங்கே காட்டப்பட்டதை விட அதிகப் புலங்கள் உள்ளன. அவற்றில் சில: ஃபாசெட்டின் காலப்பகுதிக்கான ஜோடி faucet_epoch, faucet_minted_in_epoch (சங்கிலி 20 இவற்றைத் தன் வரம்புடன் ஒப்பிட்டுச் சரிபார்க்கிறது), program_rand_out, program_rand_held (v0.6.8 முதல்), நான்கு vesting_* எண்ணிகள். சங்கிலி 20-இன் ஜெனிசிஸில் vesting பிரிவு இல்லாததால், அங்கே இந்த நான்கு எண்ணிகளும் "0" எனக் காட்டுகின்றன (JSON-RPC). எக்ஸ்ப்ளோரர் இதே பொருளை GET /supply-இலும், முதன்மை எண்ணிக்கைகளை GET /stats-இலும் வழங்குகிறது.
இது எவ்வளவு துல்லியமானது
சங்கிலி தானே செய்த அனைத்துக்கும் எண்ணிகள் துல்லியமானவை: ஒவ்வொரு எண்ணியும் ஒரு செயலைப் பயன்படுத்தும் குறியீட்டுப் பாதையிலேயே அதிகரிக்கப்படுகிறது; அந்தச் செயலின் சொந்தப் பொதுப் புலங்களிலிருந்தே அதன் மதிப்பு வருகிறது.
இரண்டு உள்ளீடுகள் முன்பு ஒரு கூற்றை மட்டுமே நம்பியிருந்தன; சங்கிலி 14 அவை இரண்டையும் சரிபார்ப்புகளாக மாற்றுகிறது (தணிக்கை v3, POOL-1):
- ஃபாசெட்
Mintஒன்று குறிப்பின் திறப்பைத் தன்னுடன் கொண்டுள்ளது.cm,amountஆகியவற்றுடன் இந்தச் செயல்pk,time,rஆகியவற்றையும் வெளியிடுகிறது. ஏற்பின்போது(pk, no sender, amount, asset 0, time, r)என்பதன் உறுதிமொழி மீண்டும் கணக்கிடப்படுகிறது; பொருந்தாவிட்டால்the mint's commitment does not open to its published note and amountஎன்ற பிழையுடன் நிராகரிக்கப்படுகிறது;timeதொகுப்புச் சாளரத்திற்குள் இருக்க வேண்டும் எனவும் கட்டுப்படுத்தப்படுகிறது. அச்சிடுபவர் ஏழு புலங்களிலும்rand-mint-2என்ற களத்தின் கீழ் கையொப்பமிடுகிறார். இதற்கு முன், ஒரு சரிபார்ப்பாளர் ஒரு தொகையை வெளியிட்டு, வேறொரு மதிப்புள்ள குறிப்பை முத்திரையிட முடிந்தது. இதன் விலை என்னவெனில், திரும்பப்பெறுதலின் செலுத்துதொகை பொதுவில் இருப்பதைப் போலவே, ஃபாசெட் குறிப்பின் உரிமையாளர்pkபொதுவில் தெரியும்;rand_mint-இன் அளவுருக்கள் மாறவில்லை. - ஜெனிசிஸ்
allocகுறிப்பும் தன் திறப்பைக் கொண்டுள்ளது.tokensபிரிவு உள்ள ஒரு சங்கிலியில் ஒவ்வொரு வரிசையும்{ cm, envelope, amount, opening: { pk, time, r } }ஆகும்; ஒரு நோடு உறுதிமொழியை மீண்டும் கணக்கிடுகிறது (திறப்பு பட்டியலிடப்பட்ட ஒரு டோக்கனின்asset-ஐக் குறிப்பிடாவிட்டால் asset 0-இல்), மேலும்cmபொருந்தாத ஜெனிசிஸ் கோப்பை நிராகரிக்கிறது. asset-0 வரிசைகள் மட்டுமேgenesis_deposited-இல் கணக்கிடப்படுகின்றன. ஒரு ஜெனிசிஸ் ஆசிரியர் எவராலும் சரிபார்க்க முடியாதபடி, எந்தச் சொத்தினுடையதாயினும், பின்புலமற்ற ஒரு குறிப்பைக் குளத்தில் சேர்க்கக்கூடிய ஒரே வழி ஒளிபுகாcmஆகும். எனவே, கோப்பு வெளியிடப்பட்டவுடன் ஜெனிசிஸ் குறிப்பின் உரிமையாளரும் தொகையும் வடிவமைப்பின்படியே பொதுவில் தெரியும்; அது பின்னர் எப்போது, எதில் செலவிடப்படுகிறது என்பது மட்டுமே தனிப்பட்டதாக இருக்கும்.rand-node genesisஎப்போதும் திறப்பை எழுதுகிறது.
tokens பிரிவு இல்லாமல் உருவாக்கப்பட்ட சங்கிலியில் பழைய விதியே இன்னும் பொருந்தும்: genesis_deposited என்பது அறிவிக்கப்பட்ட amount புலங்களின் கூட்டுத்தொகை, ஜெனிசிஸ் கோப்பை நம்பி ஏற்கப்படுகிறது. இரண்டு ஜெனிசிஸ் தொகைகளும் ஜெனிசிஸ் ஹாஷில் அடங்கியுள்ளன; எனவே எவ்வழியிலும் ஒவ்வொரு நோடும் அவற்றில் ஒத்துப்போகிறது.
கவுண்டர்கள் வேண்டுமென்றே ஒருமித்த நிலையின் பகுதியாக இல்லை — நிலை வேர் அவற்றை ஹாஷ் செய்வதில்லை — மேலும் rand-node verify --mode quick சங்கிலியை மீண்டும் இயக்கி ஒவ்வொன்றையும் மீண்டும் கணக்கிடுகிறது; சேமிக்கப்பட்ட நிலைப்பதிவு வேறுபட்டால் பொருத்தமின்மையைப் புகாரளிக்கிறது.