இந்தப் பக்கத்தைப் பயன்படுத்தி testnet-இல் உங்கள் சொந்த rand-node-ஐ இயக்குங்கள்; ஒரு வாலட்டைத் தனியுரிமையுடன் பயன்படுத்தப் பரிந்துரைக்கப்படும் வழியும் இதுவே: நீங்கள் இயக்கும் நோட், நீங்கள் எந்த இலையைச் செலவிடப் போகிறீர்கள் என்பதை உங்களைத் தவிர வேறு யாரிடமிருந்தும் அறிவதில்லை. ஒரு பார்வையாளர் நோட் ஒத்திசைகிறது, ஒவ்வொரு நிரூபணத்தையும் மீண்டும் சரிபார்க்கிறது, JSON-RPC-ஐ வழங்குகிறது; ஒரு சரிபார்ப்பாளர் (validator) அதையே செய்கிறது, மேலும் அதன் விசை ஒரு எபோக்கின் தொகுப்பில் இடம்பெற்றவுடன் ஒருமித்த கருத்தில் (consensus) பங்கேற்கிறது.
உருவாக்கம்
தேவைகள்: Rust 1.98.1 (rust-toolchain.toml-இல் நிலைநிறுத்தப்பட்டுள்ளது; rustup அதை நிறுவும்), RocksDB-க்காக ஒரு C++ தொகுப்பி மற்றும் cmake. zkVM crate-க்கு, நிரூபண அமைப்புக் களஞ்சியத்தின் (randprotocol/zkp-circuits) அருகிலுள்ள circuits/ checkout-இற்குள் பாதைச் சார்புகள் உள்ளன; அது fullnode/-க்கு அருகில், வெளியீடு எந்த commit-இலிருந்து vendor செய்யப்பட்டதோ அந்த commit-இல் இருக்க வேண்டும்: crates/randprotocol-zkvm/guests-compiled/PROVENANCE.md-இன் circuits: வரி (v0.6.7-க்குப் போலவே v0.6.8-க்கும் aeacf31). முதல் உருவாக்கம் 10 முதல் 20 நிமிடங்கள் எடுக்கும்.
git clone https://github.com/randprotocol/fullnode
cargo build --release # target/release/rand-node, target/release/rand, target/release/rand-prover
v0.6.8-ஐ இயக்குங்கள் (git checkout v0.6.8, commit c9c9bd3c, நோட் தொகுதி இயக்கும் வெளியீடு இதுவே; rand_getVersion ஒரு நோட்டின் sha-வைத் தெரிவிக்கிறது). அதன் GitHub வெளியீட்டில் rand-node, rand, rand-prover மற்றும் SHA256SUMS உள்ளன; இவை தொகுதியின் ஒரே ஹோஸ்டில் உருவாக்கப்பட்டவை, கையொப்பமிடப்படாதவை. Chain 20-க்கு இது தேவை: அதன் ஜெனிசிஸில் முந்தைய எந்த உருவாக்கமும் படிக்காத புலங்கள் உள்ளன (testnet, binding_domain, proof_window_blocks, program_state, பாலத்தின் rotation மற்றும் fees குழுக்கள், கேஸ் உச்சவரம்புகள், வாக்கெடுப்பு மூலம் ஸ்டேக்கிங் அனுமதி), மேலும் பழைய நோட் இயக்காத ஒருமித்த கருத்து மாற்றங்களை v0.6.8 கொண்டுள்ளது. chains 18 மற்றும் 19-இல் போலவே நிரூபணங்கள் இன்னும் கட்டுப்பாட்டுத் தொகுப்பு 8-இன் கீழ் உருவாக்கப்படுகின்றன; ஒவ்வொரு தொகுப்பும் அதன் தொகுப்பு நிரூபணத்துடன் ஓர் அங்கீகார நிரூபணத்தையும் இன்னும் கொண்டுள்ளது (chain 17 முதல் பிரிக்கப்பட்ட அங்கீகாரம்), எனவே ஜெனிசிஸ் அதே இரண்டு விருந்தினர் நிரல்களை நிலைநிறுத்துகிறது: தொகுப்பு விருந்தினர் v3 (hc_bundle 60af094a…) மற்றும் அங்கீகார விருந்தினர் (hc_auth 1e4e347f…). ஜெனிசிஸில் ஒரு gas பிரிவு, hardening_v6 மற்றும் envelope_bytes ஆகியவையும் உள்ளன. v0.6.8 உருவாக்கம் chains 14, 15, 16 மற்றும் 17-இன் ஜெனிசிஸை run-இலும் verify-இலும் hash மூலம் மறுக்கிறது; chain 19-இன் ஜெனிசிஸை அது இன்னும் இயக்க முடியும். ஒவ்வொரு நோட்டும் தொகுதியின் உருவாக்கத்தையே இயக்குகிறது.
Chain 20: முழு நிறுத்த ஹார்ட் ஃபோர்க்
Chain 20, 2026-10-01 அன்று 06:17 UTC-க்கு நேரலைக்கு வந்தது. அது chain 19-இன் ஒரு நிலைப்படத்திலிருந்து பிரிக்கப்பட்டு, முழு நிறுத்தம், முழுத் தொடக்கம் என்ற முறையில் செயல்படுத்தப்பட்டது: chain-19 நோட்கள் அனைத்தும் உயரம் 7,700-இல் நின்றன, எல்லா நோட்களும் v0.6.8 உடன் chain 20-இல் தொடங்கின. இரண்டு காரணங்களுக்காக இது படிப்படியான புதுப்பிப்பாக இருக்கவில்லை. Chain 20 ஒரு புதிய ஜெனிசிஸ், எனவே எந்தத் தொகுதியும் chain 19-உடன் பகிரப்படவில்லை. மேலும் v0.6.8, audit v6-இலிருந்து வந்த ஒருமித்த கருத்து மாற்றங்களைக் கொண்டுள்ளது; அவற்றை ஒருபோதும் நோட் நோட்டாகப் படிப்படியாகச் செயல்படுத்தக் கூடாது: CON-4 ஒரு சரிபார்ப்பாளரின் பூட்டின் தானியங்கி விடுவிப்பை நீக்குகிறது, CH-1 ஒரு நேரமுடிவுச் சான்றிதழ் பேஸ்மேக்கரைச் சேர்க்கிறது. 26 சரிபார்ப்பாளர்களும், அவர்களின் விசைகள், peer ids மற்றும் bootstraps அனைத்தும் தொடர்ந்தன; கோரம் இன்னும் 26-இல் 18. Chains 19 மற்றும் 18 ஓய்வு பெற்றுவிட்டன.
எனவே ஒரு நோட்டை chain 19-இலிருந்து chain 20-க்கு மாற்றக் கீழே உள்ளபடி புதிய பைனரி, புதிய ஜெனிசிஸ் கோப்பு மற்றும் புதிய தரவுக் கோப்பகம் தேவை. chain 20-இல் அனுப்ப வாலட்டுகளுக்கு v0.6.8 தேவை: அதன் ஜெனிசிஸ் ஒவ்வொரு நிரூபணத்தையும் ஒவ்வொரு கையொப்பமிட்ட செய்தியையும் அதன் hash-உடன் பிணைக்கிறது (binding_domain: 1); பழைய வாலட் இதைச் செய்வதில்லை.
விசைகள்
rand-node keygen --out node.key.json # prints the address
rand-node address --key node.key.json # address, public key, libp2p peer id
கோப்பு { "seed", "address", "public_key" }, mode 0600; seed மட்டுமே இரகசியமானது. ஒரு பார்வையாளர் நோட்டுக்கும் ஒரு விசை தேவை — அதுவே p2p அடையாளம். நோட் விசை வாலட் விசை அல்ல: வாலட்டுக்கு rand keygen-ஐப் பயன்படுத்துங்கள்.
உங்கள் சொந்த விசையை உருவாக்கி, அதை checkout-க்கு வெளியே வைத்திருங்கள். fullnode களஞ்சியம் இனி எந்த விசையையும் கண்காணிப்பதில்லை (audit v3, OPS-1): chains 8 முதல் 13 வரைக்காக commit செய்யப்பட்ட deploy/node-*.key.json மற்றும் deploy/payout/*.key.json கோப்புகள் வெளியிடப்பட்ட seeds; அவற்றைப் பயன்படுத்தக் கூடாது. Chain 20-இன் சரிபார்ப்பாளர் விசைகள் களஞ்சியத்துக்கு வெளியே உருவாக்கப்பட்டவை, ஒருபோதும் களஞ்சியத்தில் இருந்ததில்லை: அதன் 26 ஜெனிசிஸ் சரிபார்ப்பாளர்கள், chain 14-க்காக உருவாக்கப்பட்ட பதினெட்டு விசைகளும் chain 15-இல் பிணைக்கப்பட்ட எட்டு விசைகளும் ஆகும்; அதன் பின் ஒவ்வொரு பிரிப்பிலும் அவை தொடர்ந்து கொண்டு செல்லப்பட்டன.
v0.6.8 முதல், rand-node keygen ஏற்கனவே உள்ள --out கோப்பை மறுக்கிறது; v0.6.7 கேட்காமலேயே அதை மேலெழுதியது. அந்தக் கோப்பே seed-இன் ஒரே நகல். ஒரு பிணை அதைச் சார்ந்திருக்கும் முன் அதைக் காப்புப் பிரதி எடுங்கள்.
ஜெனிசிஸிலிருந்து தொடக்க அமைப்பு
ஒரு சங்கிலியில் உள்ள ஒவ்வொரு நோட்டுக்கும் பைட்டுக்குப் பைட் ஒத்த ஜெனிசிஸ் கோப்பு தேவை; rand-node init அதைத் தரவுக் கோப்பகத்துக்குள் நகலெடுத்து அதன் hash-ஐ அச்சிடுகிறது; chain 20-க்கு அது 6210cf071a390d7ac61d8cbea5dd9d139d1a493a862b54a45a498f36af2d5135 எனக் காட்ட வேண்டும். கோப்பு deploy/genesis-chain20.json (sha256 0020247a…3a21). அது tag-க்குப் பிறகு, தொடக்கப் பதிவுடன் (commit 74cfaca0) fullnode-இன் main-இல் commit செய்யப்பட்டது; எனவே v0.6.8-இன் checkout-இல் அது இல்லை: அதை main-இலிருந்து பெறுங்கள்.
git -C fullnode show origin/main:deploy/genesis-chain20.json > genesis-chain20.json
rand-node init --datadir ./data-6210cf07 --genesis genesis-chain20.json
இது தொகுதி 0, மரத்தின் முதல் இலைகளாக ஒன்பது ஜெனிசிஸ் குறிப்புகள் (chain 19-இலிருந்து இயக்குநர் வாலட்டுகளின் 5,184.243719258 RAND-ஐக் கொண்ட ஏழு RAND குறிப்புகள், மற்றும் 10 மற்றும் 89 zUSD-இன் இரண்டு zUSD குறிப்புகள், அதாவது பாலத்தின் காப்பில் பூட்டப்பட்ட 99 zUSD), மற்றும் சரிபார்ப்பாளர் பதிவேடு ஆகியவற்றுடன் <datadir>/db (RocksDB)-ஐ உருவாக்குகிறது. அதே ஜெனிசிஸுடன் மீண்டும் இயக்கினால் எதுவும் நிகழாது; வேறொரு ஜெனிசிஸ் மறுக்கப்படும் (already initialized with a different genesis என்றால் அந்தத் தரவுக் கோப்பகம் வேறொரு சங்கிலிக்குரியது). தொகுதி செய்வது போல, தரவுக் கோப்பகத்துக்கு ஜெனிசிஸ் hash-இன் முதல் எட்டு எழுத்துகளின் பெயரைச் சூட்டுங்கள் (data-<name>-6210cf07); அப்போது அது chain 19-இன் கோப்பகத்துடன் (-a3defc93) ஒருபோதும் மோதாது.
ஜெனிசிஸ் கோப்பின் வடிவம்:
{
"chain_id": 20,
"timestamp_ms": 1790835251661,
"validators": [ { "public_key": "<hex>", "stake": 1000000000000, "payout": "rand1…" } ],
"alloc": [ { "cm": "<64 hex>", "envelope": { "kem_ct": "…", "to_receiver": "…", "to_sender": "…", "body": "…" }, "amount": 1000000000000,
"opening": { "pk": "<64 hex>", "time": 0, "r": "<64 hex>" } },
{ "cm": "…", "envelope": { … }, "amount": 1000000000,
"opening": { "pk": "<64 hex>", "time": 0, "r": "<64 hex>", "asset": 1 } } ],
"faucet": true,
"confidential": true,
"fri_profile": "production",
"hc_bundle": "60af094acfe65d85fdb18fb3d06cf9085dcf28c96e59e87f1ee527226e6e3fce",
"bridge": { "emitter": "<64 hex>", "guardians": [ "<40 hex>" ], "emitters": { "2": "<64 hex>", "3": "…", "4": "…", "5": "…" },
"pq_guardians": [ "<hex>" ], "pause_key": "<hex>",
"rules_v2": { "global_mint_cap_per_window": 400000000000, "cap_window_secs": 86400 },
"guardian_set_index": 1, "burn_sequence": 13,
"min_inbound_sequence": { "2": 3, "3": 3, "4": 3, "5": 7 },
"rotation": { "delay_secs": 86400, "needs_possession": true },
"fees": { "mint_bps": 10, "burn_bps": 10, "recipient": "rand1…" } },
"tokens": { "registration_fee": 1000000000, "mint_cap_per_day": 10000000000000,
"tokens": [ { "name": "Shielded USD", "symbol": "zUSD", "salt": "<64 hex>",
"backings": [ { "chain": 2, "token": "<64 hex>", "decimals": 6 }, … ] } ],
"max_tokens": 4096, "burn_registration_fee": true, "bound_note_value": true },
"consensus_domain": 1,
"staking": { "faucet_budget_per_epoch": "10000000000000", "bond_activation_epochs": 2,
"max_weight_bps": 3333, "registration_v2": true,
"faucet_recipients": [ "rand1…" ], "faucet_minters": [ "<validator address>" ],
"max_stake_entry_bps_per_epoch": 2500, "admission_by_vote": true },
"epoch_blocks": 1000,
"max_program_words": 65535,
"max_proof_bytes": 4194304,
"max_block_bytes": 20971520,
"max_call_envelope_bytes": 65536,
"max_program_public_words": 32768,
"envelope_bytes": 1860,
"hardening_v6": true,
"hc_auth": "1e4e347f44cf86750b30a9a4bdf9ec9256efe353d4ff8017451eca7d195639c1",
"gas": { "gas_price": "100", "byte_price": "800", "bundle_gas_limit": 20479, "metering": "circuit",
"dynamic": { "target_block_bytes": 10485760, "target_block_gas": 262144,
"adjust_bps": 1250, "min_gas_price": "100", "min_byte_price": "800",
"max_gas_price": "10000", "max_byte_price": "80000", "byte_load": "paying" } },
"testnet": true,
"binding_domain": 1,
"proof_window_blocks": 1024,
"program_state": { "cell_fee": 10000000 }
}
ஒவ்வொரு புலமும் ஜெனிசிஸ் hash-இல் அடங்கும். ஒவ்வொரு தொகுப்பு நிரூபணமும் எந்தத் தொகுப்பு விருந்தினர் நிரலுக்கு எதிராகச் சரிபார்க்கப்படுகிறதோ அதை hc_bundle நிலைநிறுத்துகிறது; ஒவ்வொரு அங்கீகார நிரூபணமும் எந்த அங்கீகார விருந்தினர் நிரலுக்கு எதிராகச் சரிபார்க்கப்படுகிறதோ அதை hc_auth நிலைநிறுத்துகிறது; வேறொரு விருந்தினர் நிரலைத் தொகுக்கும் உருவாக்கம் கொண்ட நோட் தொடங்க மறுத்து, இரண்டு digest-களையும் குறிப்பிடுகிறது. ஐந்து max_* புலங்கள் விருப்பத்தேர்வானவை; அவை இருக்கும்போது மட்டுமே hash-இல் பிணைக்கப்படுகின்றன; chain 20 ஐந்தையும் அமைக்கிறது. max_proof_bytes 4 MiB; chains 13 முதல் 16 வரை அது 8 MiB ஆக இருந்தது: chain 17 முதல் ஒரு பரிவர்த்தனை மூன்று நிரூபணங்களைக் (தொகுப்பு, அங்கீகாரம், அழைப்பு) கொண்டிருக்கலாம்; hc_auth கொண்ட ஜெனிசிஸில் max_block_bytes குறைந்தது max_proof_bytes-இன் மூன்று மடங்குடன் 1 MiB சேர்த்த அளவாக இருக்க வேண்டும். ஒவ்வொரு alloc குறிப்பும் அதன் opening-ஐக் (pk, time, r, மற்றும் டோக்கன் குறிப்புக்கு asset) கொண்டுள்ளது; எனவே ஒரு ஜெனிசிஸ் குறிப்பின் உரிமையாளரும் தொகையும் வடிவமைப்பின்படியே பொதுவானவை. Chain 20-இல் உள்ளவை:
- ஒரு
bridgeபிரிவு: எட்டுக் காவலர்களுடன் குறியீட்டெண் 1-இல் காவலர் தொகுப்பு 1, மூலச் சங்கிலிகள் 2, 3, 4 மற்றும் 5-க்கான உமிழ்விகள் (chain 19-இனுடையவை), எட்டு Dilithium2pq_guardians, ஒருpause_key,burn_sequence13, மூலச் சங்கிலிகள் 2, 3 மற்றும் 4-க்கு 3 ஆகவும் மூலச் சங்கிலி 5-க்கு 7 ஆகவும்min_inbound_sequence, மற்றும்rules_v2(ஒவ்வொரு 24 h சாளரத்துக்கும் 4,000 zUSD என்ற உலகளாவிய உருவாக்க உச்சவரம்பு). chain 20-இல் புதியவை:rotation, இதன் கீழ் ஒரு PQ-காவலர் அல்லது இடைநிறுத்த-விசை சுழற்சிக்குப் புதிய விசைகளின் உடைமைக்கான நிரூபணம் தேவை, அது commit ஆன 86,400 s-க்குப் பிறகு நடைமுறைக்கு வருகிறது; மற்றும்fees, இதன் கீழ் சங்கிலி ஒவ்வொரு வைப்பிலும் 10 bps-ஐயும் ஒவ்வொரு எரிப்பிலும் 10 bps-ஐயும் ஒரு கருவூல முகவரிக்கான zUSD குறிப்பாக வைத்துக்கொள்கிறது; எனவே ஒரு வைப்பு மொத்தத் தொகையிலிருந்து கட்டணத்தைக் கழித்து வரவு வைக்கிறது, ஓர் எரிப்பு அதன் தொகையிலிருந்து கட்டணத்தைக் கழித்து விடுவிக்கிறது; - ஒரு
tokensபிரிவு: 1 RAND பதிவுக் கட்டணம், இது முன்மொழிபவருக்குச் செலுத்தப்படாமல் எரிக்கப்படுகிறது; எட்டு தசம இடங்களில் ஒவ்வொரு ஆதாரத்துக்கும் 100,000 டோக்கன்கள் என்றmint_cap_per_day; 4,096 டோக்கன்கள் என்ற பதிவேட்டு உச்சவரம்பு; 2^63 குறிப்பு-மதிப்பு வரம்பு; மற்றும் அதன் ஏழு ஆதாரங்களுடன் ஜெனிசிஸில் பட்டியலிடப்பட்ட zUSD, இரண்டு ஜெனிசிஸ் zUSD குறிப்புகளுக்கு எதிராக 99 zUSD பூட்டப்பட்டுள்ளது (Ethereum USDT 22, BSC USDT 22, Tron USDT 30, Solana USDT 25); consensus_domain: 1: ஒவ்வொரு ஒருமித்த கருத்துக் கையொப்பமும் இந்த ஜெனிசிஸுடன் பிணைக்கப்பட்டுள்ளது (ஒருமித்த கருத்து);- ஒரு
stakingபிரிவு: 16 வாலட்டுகளுக்கும் 18 உருவாக்கும் சரிபார்ப்பாளர் விசைகளுக்கும் அனுமதிப்பட்டியலிடப்பட்ட ஃபாசெட், ஒவ்வொரு எபோக்கிற்கும் 10,000 RAND வரவுசெலவு, இரண்டு எபோக் பிணைத் தாமதம், 3,333 bps எடை உச்சவரம்பு மற்றும் v2 பதிவுகள், chain 19-இல் போலவே; chain 20-இல் புதியவை:admission_by_vote(சரிபார்ப்பாளர் தொகுப்பு வாக்களித்து ஏற்ற பின்னரே ஒரு புதிய சரிபார்ப்பாளர் விசை பதிவு செய்யப்படும்), மற்றும் ஒவ்வொரு எபோக் எல்லையிலும் செயலில் உள்ள எடையின் 2,500 bps என்ற நுழைவு வரவுசெலவு; chain 19-இல் இது நிலையான 10,000 RAND ஆக இருந்தது (ஸ்டேக்கிங்).slashingஇல்லை; - ஒரு
gasபிரிவு: ஓர் அழைப்பு அதன் நிரூபணம் அறிவிக்கும் கேஸ் வரம்புக்கும் அதன் பைட்டுகளுக்கும் கட்டணம் செலுத்துகிறது; விலைகள் ஒரு கேஸுக்கு 100 அலகுகள் மற்றும் ஒரு KiB-க்கு 800 அலகுகள் எனத் தொடங்கி, ஒவ்வொரு தொகுதிக்குப் பிறகும் 10,485,760 பைட்டுகள் மற்றும் 262,144 கேஸ் என்ற இலக்குக்கு எதிரான அதன் நிரம்பிய அளவைப் பொறுத்து, ஒரு தொகுதிக்கு அதிகபட்சம் 1,250 bps அளவு மாறுகின்றன; தொடக்க விலைகளுக்குக் கீழே ஒருபோதும் இறங்குவதில்லை, மேலும் chain 20-இல் புதிதாக, 10,000 மற்றும் 80,000-க்கு மேல் ஒருபோதும் உயர்வதில்லை. பைட் விலை செலுத்தும் பைட்டுகள் மட்டுமே, அதாவது ஓர் அழைப்பின் நிரூபணமும் உள்ளீட்டு உறையும் மட்டுமே, பைட் விலையின் சுமையில் கணக்கிடப்படுகின்றன (byte_load: "paying"). ஒவ்வொரு தொகுப்பு நிரூபணமும் ஒரே வரம்பை அறிவிக்கிறது, 20,479 (கட்டணங்கள்); envelope_bytes: 1860: ஒவ்வொரு குறிப்பு உறையும் சரியாக 1,860 பைட்டுகள், அது ஒரு மறையாக்கப்பட்ட memo புலத்தைக் கொண்டுள்ளது;hardening_v6: true, v0.6 வலுப்படுத்தல் சுவிட்ச், chain 16 முதல் ஒவ்வொரு சங்கிலியும் இதை அமைக்கிறது;testnet: true, ஒரு பாலப் பிரிவின் அருகில் ஃபாசெட் இருக்க அனுமதிக்கும் குறியீடு;binding_domain: 1: ஒவ்வொரு பரிவர்த்தனையின் நிரூபணங்களும் ஒவ்வொரு கையொப்பமிட்ட செயல் செய்தியும் ஜெனிசிஸ் hash-ஐ உள்ளடக்குகின்றன; எனவே ஒரு சங்கிலிக்காக நிரூபிக்கப்பட்டதோ கையொப்பமிடப்பட்டதோ எதுவும் வேறொரு சங்கிலியில் சரிபார்க்கப்படாது;proof_window_blocks: 1024: ஒரு தொகுப்பின் நங்கூரம் கடைசி 1,024 தொகுதி-இறுதி வேர்களில் ஒன்றாக இருக்கலாம், அதன்timeஉயரத்துக்கு 1,024 தொகுதிகள் வரை பின்தங்கியிருக்கலாம் (chain 19-இல் 256); இது மெதுவான அல்லது ஒப்படைக்கப்பட்ட நிரூபிப்பவருக்கு ஏறத்தாழ இருபது நிமிடங்களைத் தருகிறது;program_state, RPL-2: நிரல் கலங்கள், நிரல் பெட்டகங்கள் மற்றும்Invokeசெயல், ஓர் invoke உருவாக்கும் ஒவ்வொரு கலத்துக்கும் 0.1 RAND கலக் கட்டணத்துடன் (வரம்புகள் JSON-RPC-இல் உள்ளன).
இதில் aggregation பிரிவு இல்லை; அத்தகைய பிரிவைக் கொண்ட ஜெனிசிஸில் உருவாக்கம் தொடங்க மறுக்கிறது.
timestamp_ms என்பது சங்கிலியின் கடிகாரத்தின் சுழிப்புள்ளி. நீங்களே ஒரு genesis-ஐ உருவாக்கும்போது, அதை உண்மையான தொடக்க நேரத்துக்கு அருகில் அமையுங்கள்; ஒருபோதும் அதற்கு முன்னதாக அமைக்காதீர்கள். மிகவும் கடந்த காலத்தில் அமைத்தால், ஒரு தொகுதிக்கு 60 s என்ற படி வரம்பு அதைப் பிடிக்கவிடும் வரை தொகுதி நேரம் சுவர்க் கடிகாரத்துக்குப் பின்தங்கும். எதிர்காலத்தில் 15 விநாடிகளுக்கு மேல் அமைத்தால், தொகுதி 1 உறுதிசெய்யப்படவே மாட்டாது: சுவர் நேரம் genesis நேர முத்திரையை அடையும் வரை, தலைவரின் வாக்கு உட்பட ஒவ்வொரு வாக்கும் நிறுத்திவைக்கப்படும். கோப்பை உருவாக்கிய இயந்திரத்தின் கடிகாரத்துடன் அல்ல, கணுக் குழுவைத் தொடங்கும் இயந்திரத்தின் கடிகாரத்துடன் அதைச் சரிபாருங்கள்.
இயக்குதல்
rand-node run --datadir ./data --key node.key.json \
--listen /ip4/0.0.0.0/tcp/30303 --rpc 127.0.0.1:8545 --no-mdns \
--bootstrap /ip4/164.90.239.200/tcp/30303/p2p/12D3KooWEQEbUwZRgqhDPXhW7vNBmcRcnhUDGUADe81VFdv3ALYe \
--bootstrap /ip4/165.245.173.74/tcp/30303/p2p/12D3KooWJyc5oDHggAr89e9QrRFBy9Tg8TxXh18yzrb1SM6KKLYw \
--bootstrap /ip4/188.166.235.187/tcp/30303/p2p/12D3KooWSyX84P1DAbWByLHpRBMLRWD53r3Jj4aqVt6tHoF8B2ZQ
| அளபுரு | இயல்புநிலை | பொருள் |
|---|---|---|
--datadir | கட்டாயம் | தொடக்கநிலைப்படுத்தப்பட்ட தரவுக் கோப்பகம் |
--key | கட்டாயம் | சாவிக் கோப்பு: சரிபார்ப்பாளர் அடையாளம், p2p அடையாளம், கட்டணம் பெறுநர் |
--listen | /ip4/0.0.0.0/tcp/30303 | libp2p கேட்கும் multiaddr, மீண்டும் தரலாம் |
--bootstrap | இல்லை | தொடக்கத்திலும், இணைப்பு இல்லாதபோது ஒவ்வொரு 30 s-க்கும் அழைக்க வேண்டிய சக கணு, மீண்டும் தரலாம் |
--rpc | 127.0.0.1:8545 | இயக்குநரின் JSON-RPC மற்றும் WebSocket கேட்பி: எல்லா முறைகளும் கிடைக்கும், loopback-ஐ அது நம்புகிறது. அதை loopback-இலேயே வைத்திருங்கள்; பொது முனையம் எதையும் அதற்கு ஒருபோதும் திருப்பிவிடாதீர்கள் |
--public-rpc <ADDR> | முடக்கம் | v0.6.8: ஒரு reverse proxy அல்லது SSH திருப்பிவிடல் சுட்டுவதற்கான இரண்டாவது, பொதுக் கேட்பி: பார்வைச் சாவி முறைகள், rand_mint, rand_getPeers இல்லாத நிலையான முறைத் தொகுப்பு, தொகுப்புக் கோரிக்கைகள் இல்லை, WebSocket இல்லை, எல்லா அழைப்பாளர்களுக்கும் ஒரே அளவீடு (JSON-RPC) |
--rpc-viewing-token-file <PATH> | முடக்கம் | v0.6.8: --rpc-இன் பார்வைச் சாவி முறைகளில் ஒரு bearer டோக்கனைக் (கோப்பின் முதல் வரி, 32 அல்லது அதற்கு மேற்பட்ட எழுத்துகள்) கட்டாயமாக்கும் |
--reserved-peer <PEER_ID> | இல்லை | v0.6.8, மீண்டும் தரலாம்: உள்வரும் இணைப்பு வரம்பைத் தாண்டி அனுமதிக்கப்படும் சக கணு; ஒதுக்கப்பட்ட சக கணுக்கள் காண்க |
--strict-gossip | முடக்கம் | v0.6.8: செல்லுபடியான ஆசிரியர் கையொப்பம், வரிசை எண், மூலம் கொண்ட பரவல் செய்திகளை மட்டுமே ஏற்கும்; இது கணு கணுவாக அறிமுகமாகிறது |
--validator | முடக்கம் | இந்தக் கணு ஒரு சரிபார்ப்பாளர் சாவியை வைத்திருக்கிறது; அதன் சாவி நடப்புத் தொகுப்பில் இருக்கும்போது ஒருமித்தத்தில் பங்கேற்கிறது |
--no-mdns | முடக்கம் | LAN கண்டறிதலை முடக்கும்; சேவையகங்களில் பரிந்துரைக்கப்படுகிறது |
--block-interval-ms | 1000 | முன்மொழிவுகளுக்கு இடையிலான குறைந்தபட்ச இடைவெளி |
--view-timeout-ms | 3000 | அடிப்படைப் பார்வைக் காலவரம்பு; தொடர்ச்சியான ஒவ்வொரு காலவரம்பு மீறலுக்கும் இரட்டிப்பாகி, 8× வரை செல்லும் |
--verify-chain | quick | தொடக்க ஒருமைப்பாட்டுச் சோதனை: off, quick (கட்டமைப்பும் பேரேட்டு மறுஇயக்கமும்), full (ஒவ்வொரு கையொப்பமும் QC-யும் கூட) |
--keep-raw-proofs | முடக்கம் | தொகுதித் திரட்டலுக்கான காப்பக முறை; chain 20-இல் எந்த விளைவும் இல்லை |
--prune-history | முடக்கம் (அனைத்தையும் வைத்திருக்கும்) | பேரேட்டையும் இவ்வளவு தொகுதி வரலாற்றையும் மட்டும் வைத்திருக்கும்: <n>m, <n>h அல்லது <n>d, குறைந்தது 1h. testnet-இன் சரிபார்ப்பாளர்கள், இரண்டு காப்பகங்களைத் தவிர, 24h உடன் இயங்குகின்றன; வரலாற்றுக் கத்தரிப்பு காண்க |
--min-free-disk-mb | 1024 | தரவுக் கோப்பகத்தின் கோப்பு முறைமையில் இதைவிடக் குறைவான இலவச இடம் இருந்தால் தொடங்க மறுக்கும்; இதன் நான்கு மடங்குக்குக் கீழ் rand_getHealth disk_low எனப் பதிலளிக்கும். 0 இந்தக் காப்பை முடக்கும் |
--prover <ADDR> | முடக்கம் | இந்த முகவரியில் ஒப்படைக்கப்பட்ட நிரூபிப்பானை இயக்கும்; இது தனக்கென ஒரு கேட்பி, ஒருபோதும் RPC அல்ல; கீழே காண்க |
--gas-price, --byte-price | 100, 800 | gas பிரிவு இல்லாத சங்கிலியில் ஓர் அழைப்புக்கான பரிவர்த்தனைக் குளத்தின் குறைந்தபட்ச விலை. chain 20-இன் genesis தனது சொந்த விலைகளை அமைக்கிறது; எனவே அங்கு கணு இரு கொடிகளையும் புறக்கணித்து ஓர் எச்சரிக்கையைப் பதிவுசெய்கிறது |
--prover-accept-spend-key ஓய்வுபெற்றுவிட்டது: அது தரப்பட்ட v0.6.8 கணு தொடங்க மறுக்கும்; எனவே v0.6.7-இலிருந்து கொண்டுவரப்பட்ட எந்த unit கோப்பிலிருந்தும் அதை நீக்குங்கள்.
மேலே உள்ள மூன்று bootstrap கணுக்களும் சரிபார்ப்பாளர்கள் C, D, E; chain 19-இலிருந்து மாறவில்லை. chain 20, chain 14-க்காக உருவாக்கப்பட்ட சரிபார்ப்பாளர் சாவிகளில் இயங்குகிறது; எனவே அவற்றின் peer id-கள் chain 14 பயன்படுத்தியவையே; p2p அடையாளம் சரிபார்ப்பாளர் சாவியிலிருந்து பெறப்படுகிறது. பெரும்பாலான சரிபார்ப்பாளர்கள் ஒரு நாள் தொகுதிகளை மட்டுமே வைத்திருக்கின்றன; எனவே genesis-இலிருந்து ஒத்திசைக்கும் கணுவுக்கோ, ஒரு நாளுக்கு மேல் பின்தங்கிய கணுவுக்கோ முழு வரலாறு கொண்ட ஒரு சக கணுவும் தேவை. இரண்டு காப்பகங்களில் ஒன்றைச் சேர்க்கவும்:
--bootstrap /ip4/168.144.46.203/tcp/30303/p2p/12D3KooWS5usdMPvsbaWSaT2xtKndHvDYurwmueoNvaRRarb2wRf # obs1
--bootstrap /ip4/206.81.29.236/tcp/30303/p2p/12D3KooWPocyZGcNB9Vp68VSfgVvNXhSzBBoJa4h9R1yMkp71XHh # rand-archive-2
கண்காணிப்புக் கணுவை இயக்க --validator-ஐத் தவிர்க்கவும். தொடக்கம்: சேமிப்பகத்தைத் திறத்தல், இந்தக் கட்டமைப்பின் guest-களை genesis-இன் hc_bundle, hc_auth உடன் சரிபார்த்தல், ஒருமைப்பாட்டுச் சோதனையை இயக்குதல் (சேதமடைந்த வால்பகுதியைத் துண்டித்து, வாக்குப் பாதுகாப்பு நிலையை வைத்திருத்தல்), சேமிக்கப்பட்ட தலையிலிருந்து ஒருமித்தத்தைத் தொடர்தல், வலையமைப்பையும் RPC-யையும் தொடங்குதல், பின்னர் முன்னால் உள்ள எந்தச் சக கணுவிலிருந்தும் ஒத்திசைத்தல். RUST_LOG-இன் இயல்புநிலை info,libp2p=warn,libp2p_mdns=off; Ctrl-C அல்லது systemd-இன் நிறுத்தச் சமிக்ஞையான SIGTERM, கணுவைச் சீராக நிறுத்தும். அதே --datadir-இலிருந்து மறுதொடக்கம் செய்தால் சேமிக்கப்பட்ட தலையிலிருந்து தொடரும்.
fullnode-இன் இடவியல் விதிகள்: NAT-க்குப் பின்னால் உள்ள கணுக்கள் பொது முகவரி கொண்ட கணுக்களை வெளிநோக்கி அழைக்கும்; பொதுக் கணுக்களில் TCP 30303-ஐ உள்வரவுக்குத் திறக்கவும்; firewall பாதுகாப்பு இல்லையெனில் RPC-யை 127.0.0.1-இல் பிணைக்கவும்: அதை அடையக்கூடிய எவரிடமிருந்தும் அது பரிவர்த்தனைகளை ஏற்கும்; அதில் ஒரு பார்வைச் சாவி இறக்குமதி செய்யப்பட்டவுடன், அந்தப் போர்ட்டைச் சாவி தாங்கியதாகக் கருதுங்கள். --block-interval-ms-ஐ 1000 அல்லது அதைவிட மெதுவாக வைத்திருங்கள்: ஒரு தொகுப்புச் சான்றுக்குச் சுமார் இரண்டு நிமிடங்கள் ஆகும்; அதன் நங்கூரம் chain 20-இல் 1,024 தொகுதிகளுக்குச் செல்லுபடியாகும் (chain 19-இல் 256).
சரிபார்ப்பாளருக்கு ஒத்திசைக்கப்பட்ட கடிகாரம் தேவை. chain 14 முதல் சுவர்க் கடிகார நேரம் ஒருமித்தத்தின் ஒரு பகுதி (பால வலுவூட்டல் B2). தன் பெற்றோரின் நேர முத்திரையைவிட 60 s-க்கு மேல் பிந்திய நேர முத்திரை கொண்ட தொகுதி செல்லாது; தன் சொந்தக் கடிகாரத்தைவிட 15 s-க்கு மேல் முந்திய நேர முத்திரை கொண்ட தொகுதிக்குச் சரிபார்ப்பாளர் தன் வாக்கை நிறுத்திவைக்கும். ஆகவே கடிகாரம் மெதுவாக ஓடும் சரிபார்ப்பாளர் எந்தப் பிழையையும் பதிவுசெய்யாமலே வாக்களிப்பதை நிறுத்திவிடும்; chain 20-இல் உறுதிசெய்ய இருபத்தாறில் பதினெட்டு வாக்களிக்க வேண்டும். ஒவ்வொரு சரிபார்ப்பாளரிலும் NTP-ஐ இயக்கி, கணுவைத் தொடங்கும் முன் அதைச் சரிபாருங்கள்:
timedatectl # want "System clock synchronized: yes" and "NTP service: active"
chronyc tracking
apt-get install -y chrony && systemctl enable --now chrony # if it is not synchronised
ஒதுக்கப்பட்ட சக கணுக்கள்
v0.6.8 முதல் ஒரு கணு அதிகபட்சம் 256 நிறுவப்பட்ட, 64 அரைத்-திறந்த உள்வரும் இணைப்புகளை ஏற்கிறது; libp2p அடையாளத்தை உருவாக்க எந்தச் செலவும் இல்லை என்பதால், அந்நியர்கள் எல்லா இடங்களையும் பிடித்துக்கொள்ளக்கூடும். மூன்று வகைச் சக கணுக்கள் ஒதுக்கப்படுகின்றன; அவை வரம்பைத் தாண்டி அனுமதிக்கப்பட்டு, ஒத்திசைவு வரவுசெலவில் சரிபார்ப்பாளர்களின் பங்கிலிருந்து சேவை பெறுகின்றன: ஒவ்வொரு --bootstrap சக கணு, ஒவ்வொரு --reserved-peer, கையொப்பமிட்ட சக கணுப் பிணைப்பிலிருந்து அறியப்பட்ட ஒவ்வொரு சரிபார்ப்பாளர் அடையாளம். ஒவ்வொரு --validator கணுவும் தன் libp2p அடையாளத்தைத் தன் சரிபார்ப்பாளர் சாவியால் கையொப்பமிட்டுப் பரப்புகிறது; ஒரு சரிபார்ப்பாளர் தொகுப்பிலிருந்து அந்தச் சாவியை அறிந்த கணு அந்தச் சக கணுவை ஒதுக்கி, அந்தப் பதிவை மறுதொடக்கங்களுக்கு இடையிலும் வைத்திருக்கிறது. புதிதாக உருவாக்கப்பட்ட சங்கிலியின் சேமிப்பகத்தில் பிணைப்புகள் எதுவும் இல்லை; எனவே முதல் அறிவிப்புகள் வரும் வரை முதல் இரு வகைகள் மட்டுமே ஒதுக்கப்படுகின்றன: புதிய சங்கிலியை உருவாக்கும்போது, கணுக் குழுவின் சரிபார்ப்பாளர் peer id-களை --reserved-peer மூலம் தாருங்கள் அல்லது அவற்றை bootstrap பட்டியலில் வைத்திருங்கள் (rand-node address --key <file> ஒரு சாவியின் peer id-ஐ அச்சிடும்). rand_status.reserved_peers அவற்றை எண்ணுகிறது; கணுக் குழுவின் ஒரு கணுவில், தொடங்கிய ஒரு நிமிடத்துக்குள் அது சரிபார்ப்பாளர் எண்ணிக்கையை எட்ட வேண்டும்.
சரிபார்த்தல்
rand-node status # rand_status verbatim
rand --rpc http://127.0.0.1:8545 status
rand peers
rand_status பின்வருவனவற்றை அறிவிக்கிறது: height, view, syncing, sync_target, peer_count, connected_peers, reserved_peers, mempool_size, is_validator, active_validator, faucet, confidential, testnet, fri_profile, programs, notes, nullifiers, tree_root, hc_bundle, hc_auth, binding_domain, gas_prices, கணுவின் address, peer_id, ஒத்திசைவு நோயறிதல்கள் (sync_inflight_age_ms, sync_failures, sync_late_batches), வட்டு (disk_free_bytes, disk_low), தக்கவைப்புத் தளம் (prune_floor, அனைத்தையும் வைத்திருக்கும் கணுவில் 0; prune_history_secs, அமைக்கப்படாதபோது null). chain 20-இல் hc_bundle 60af094a…, hc_auth 1e4e347f…, faucet true, confidential true, testnet true, binding_domain 1, fri_profile "production" ஆகியவற்றையும், ஒரு gas-க்கு 100 முதல் 10,000 வரையும் ஒரு KiB-க்கு 800 முதல் 80,000 வரையும் உள்ள gas_prices-ஐயும் எதிர்பாருங்கள். rand_getGenesisHash 6210cf07…5135 எனவும், rand_getVersion 0.6.8 எனவும் பதிலளிக்க வேண்டும்.
இலவச இடம் --min-free-disk-mb-இன் நான்கு மடங்குக்குக் கீழ் இருக்கும்போது, rand_getHealth ok, syncing அல்லது behind-க்கு முன்னுரிமையாக disk_low (free_bytes உடன்) எனப் பதிலளிக்கும்.
வரலாற்றுக் கத்தரிப்பு
--prune-history 24h உடன் தொடங்கப்பட்ட கணு பேரேட்டை (notes, nullifiers, நங்கூரங்கள், சரிபார்ப்பாளர் பதிவேடு, நிரல்கள்) முழுமையாக வைத்திருந்து, பழைய தொகுதிகளையும் அவற்றின் சான்றிதழ்கள், பரிவர்த்தனைகள், ரசீதுகளையும் நீக்குகிறது. ஒவ்வொரு 16-வது உறுதிசெய்யப்பட்ட தொகுதியிலும் ஒரு சுற்று இயங்கி, தலையின் நேர முத்திரையிலிருந்து சாளரத்தைக் கழித்ததைவிடப் பழைய தொகுதிகளில் 512 வரை நீக்குகிறது; genesis, தலை, அதன் பெற்றோர் ஒருபோதும் நீக்கப்படுவதில்லை; தளம் உயர மட்டுமே செய்யும். RocksDB சுருக்கிய பின் வட்டு இடம் மீளக் கிடைக்கிறது. chain 19-இல் போலவே chain 20-இலும், 26 சரிபார்ப்பாளர்களில் 24 24h உடன் இயங்கி, சுமார் ஒரு நாள் தொகுதிகளை வைத்திருக்கின்றன. chain 14-க்குக் கத்தரிப்பு இயக்கப்பட்டபோது (2026-09-25), நிலுவை தீர்ந்தவுடன் ஒவ்வொரு சரிபார்ப்பாளரின் தொகுதி அட்டவணைகளும் 19 GB-இலிருந்து 3.3–4.4 GB-க்குக் குறைந்தன; மற்ற இரண்டான obs1, rand-archive-2 ஆகியவை, 2026-09-27 முதல் சரிபார்ப்பாளர்களாகவும் இருப்பவை, அந்தக் கொடி இல்லாமல் இயங்கி அனைத்தையும் வைத்திருக்கின்றன. mainnet கணு ஒருபோதும் அந்தக் கொடியைத் தருவதில்லை.
கத்தரிக்கப்பட்ட கணுவில், தளத்துக்குக் கீழே உயரத்தால் முகவரியிடப்படும் தேடல் (rand_getBlockByHeight, உயரத்தின்படி rand_getFinality, அதை எட்டும் rand_getBlocks அல்லது rand_getCompactBlocks வரம்பு) data.floor உடன் -32010 பிழையைத் தரும்: ஒரு காப்பகத்திடம் கேளுங்கள். hash-ஆல் முகவரியிடப்படும் தேடல், ஒருபோதும் இருந்திராத தொகுதிக்குப் போலவே, கணு இனி வைத்திருக்காத தொகுதிக்கும் null எனப் பதிலளிக்கும். notes, nullifiers ஒருபோதும் கத்தரிக்கப்படாததால், பணப்பை வருடல் பாதிக்கப்படுவதில்லை.
கத்தரிக்கப்பட்ட கணுவின் தொடக்கச் சோதனை கட்டமைப்புச் சோதனை மட்டுமே (தொகுதி 0, தக்கவைக்கப்பட்ட தொகுதிகள், அவற்றின் QC-கள், பெற்றோர் இணைப்புகள், தலைவர்கள்); genesis-இலிருந்து மறுஇயக்கம் அல்ல; அது தன்னைத்தானே சரிசெய்துகொள்வதில்லை: அது தோல்வியுற்றால், ஒரு காப்பகத்திலிருந்து மீண்டும் ஒத்திசையுங்கள். --verify-chain off உடன் இயங்கினால் தவிர, கத்தரிக்கப்பட்ட தரவுக் கோப்பகத்தை v0.5.7-ஐவிடப் பழைய கட்டமைப்பால் திறக்காதீர்கள்: அதன் இயல்புநிலைச் சோதனை genesis-இலிருந்து மறுஇயக்கம் செய்து, தொகுதி 1 இல்லாததைக் கண்டு, பேரேட்டை genesis வரை துண்டித்துவிடும்.
நிரூபிப்பானை இயக்குதல்
chain 20-இல் ஒரு பணப்பை ஒவ்வொரு தொகுப்புக்கும் இரண்டு சான்றுகளை உருவாக்குகிறது; அவற்றில் பெரியதற்குச் சுமார் 6 GB நினைவகம் தேவை. அதைத் தாங்க முடியாத பணப்பை, தான் இணைக்கப்பட்டுள்ள ஒப்படைக்கப்பட்ட நிரூபிப்பானிடம் அந்தச் சான்றை ஒப்படைக்கலாம்: தனி rand-prover இருமக் கோப்பு, அல்லது ஒரு கணு இயக்கும் அதே சேவை.
rand-prover --home /root/prover keygen
rand-prover --home /root/prover pair --name laptop --url https://prover.example.net
rand-node run --datadir ./data --key node.key.json --prover 127.0.0.1:8600 --prover-home /root/prover
pair ஒரு randprover: இணைப்பை அச்சிடுகிறது. பணப்பை அதை rand prover pair <link> மூலம் பெற்று, பின்னர் உலகளாவிய --prover விருப்பத்தின் வழியாக அதைக் கொண்டு நிரூபிக்கிறது. நிரூபிப்பானின் கேட்பான் (listener) தனக்கே உரியது, ஒருபோதும் RPC-இன் ஒரு முறை அல்ல: --rpc-க்குச் சமமான முகவரி மறுக்கப்படுகிறது. --prover உடன், <prover-home>/prover.key.json இருந்தால் மட்டுமே (இயல்பாக <datadir>/prover), மேலும் ஒவ்வொரு நிரூபண இடத்திற்கும் 5.74 GB உடன் 1 GiB நினைவகம் கிடைத்தால் மட்டுமே கணு தொடங்குகிறது; --prover-max-parallel இடங்களின் எண்ணிக்கையை அமைக்கிறது, இயல்பாக ஒன்று.
chain 20-இல் நிரூபிப்பானுக்கு அனுப்பப்படுவது பணப்பையின் பார்வைச் சாவியும் ஒரு புதிய salt-உம் மட்டுமே, செலவுச் சாவி அல்ல. அங்கீகார நிரூபணத்தைப் பணப்பை தானே செலவுச் சாவியின் மீது உருவாக்குகிறது; எனவே இணைக்கப்பட்ட நிரூபிப்பான் அந்தப் பணப்பையின் முழு வரலாற்றையும் படிக்க முடியும், ஆனால் செலவழிக்க முடியாது. TLS-ஐ முடிக்கும் ஒரு proxy அதன் முன் இல்லையெனில் கேட்பானை loopback-இலேயே வைத்திருங்கள்; பொது RPC-ஐ வழங்கும் கணினியில் அதை இயக்க வேண்டாம். நிறுத்தும்போது நடப்பிலுள்ள நிரூபணம் முடியும் வரை காத்திருக்கும்; எனவே systemd அலகுக்கு TimeoutStopSec=180 கொடுங்கள்.
சரிபார்த்தலும் சீரமைத்தலும்
rand-node verify --datadir ./data # full: hashes, QCs, signatures, proofs, ledger replay, the supply counters
rand-node verify --datadir ./data --mode quick # structure and ledger replay
rand-node verify --datadir ./data --repair # truncate a damaged tail; peers resync the rest
முதலில் கணுவை நிறுத்துங்கள். நிலைத்தன்மை இருந்தால் வெளியேறு குறியீடு 0; சிக்கல் கண்டறியப்பட்டு --repair கொடுக்கப்படவில்லை என்றால் 2. மறு இயக்கம் ஒவ்வொரு தொகுப்பு நிரூபணத்தையும் மீண்டும் சரிபார்க்கிறது; எனவே சங்கிலியை உருவாக்கியதிலிருந்து வேறுபட்ட கட்டுப்பாட்டுத் தொகுப்பைக் கொண்ட build முதல் தொகுப்பிலேயே நின்றுவிடும்.
சரிபார்ப்பாளர் ஆதல்
சரிபார்ப்பாளர் ஓடிக்கொண்டிருக்கும் சங்கிலியில் பிணையம் வைப்பதன் மூலம் இணைகிறார், புதிய ஜெனிசிஸ் மூலம் அல்ல: கணுவை --validator உடன் தொடங்குங்கள், rand-node register --key node.key.json --payout <rand1…> --v2 மூலம் ஒரு பதிவை அச்சிடுங்கள் (chain 20 v1 பதிவை மறுக்கிறது), ஒரு பணப்பை rand bond <address> 1000 --registration <hex> மூலம் குறைந்தது 1,000 RAND பிணையம் வைக்கட்டும்; பிணையம் செயல்பாட்டுக்கு வந்ததும் கணு தொகுதிகளை முன்மொழிகிறது: chain 20-இல், பிணையத்திற்குப் பிறகு மூன்று 1,000-தொகுதி காலகட்ட எல்லைகள் கடந்த பின்னரே, அதற்கு முன் அல்ல. chain 20-இல் பிணையம் இரண்டாவதாக வருகிறது. அதன் ஜெனிசிஸ் staking.admission_by_vote-ஐ அமைக்கிறது; எனவே புதிய சாவியைப் பதிவுசெய்யும் பிணையம், வாக்கு எடையில் மூன்றில் இரண்டு பங்கிற்கு மேல் வைத்திருக்கும் சரிபார்ப்பாளர்கள் அந்தச் சாவியை ஏற்று வாக்களிக்கும் வரை மறுக்கப்படுகிறது: ஒவ்வொருவரும் rand-node admit sign --candidate <key or registration> --key <validator key> --genesis-hash 6210cf071a390d7ac61d8cbea5dd9d139d1a493a862b54a45a498f36af2d5135 மூலம் கையொப்பமிடுகின்றனர், அவர்களில் ஒருவர் rand-node admit submit மூலம் வாக்குகளைச் சமர்ப்பிக்கிறார் (கட்டளை வரி). வாக்களித்து ஏற்கப்பட்டு இன்னும் பதிவுசெய்யப்படாத சாவிகளை rand_getAdmitted பட்டியலிடுகிறது. ஒரு காலகட்ட எல்லையில் செயலில் உள்ள எடையின் 2,500 bps-க்கு மேல் புதிய எடையாக மாறுவதில்லை. பிணையம் வைத்தல் இதைப் படிப்படியாக விளக்குகிறது. தனிப்பட்ட சோதனைச் சங்கிலிக்கு, rand-node genesis ஒன்றை உருவாக்குகிறது:
rand-node genesis --chain-id 88 \
--validator a.key.json,1000,rand1<a's payout address> \
--validator <hex public key of b>,1000,rand1<b's payout address> \
--alloc rand1<address>=1000 \
--epoch-blocks 1000 --faucet --fri-profile production \
--out genesis.json
மேலும் scripts/local-testnet.sh ஒரே கணினியில் 8545, 8546 இல் RPC உடன் இரண்டு சரிபார்ப்பாளர்களை இயக்குகிறது. கூடுதல் கொடிகள் இல்லாமல் ஜெனிசிஸில் hc_auth இல்லை, gas பிரிவு இல்லை, memo இல்லை. chain 20 இவற்றுக்கு மேல் --hardening-v6 --bundle-guest v3 --auth-guest --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 உடன் உருவாக்கப்பட்டது (chains 18, 19 --envelope-bytes வரையிலான கொடிகளைக் கொண்டிருந்தன); அதன் bridge, staking பிரிவுகளும் consensus_domain-உம் உருவாக்க script மூலம் இணைக்கப்பட்டன. உங்களுடைய புதிய சங்கிலி --binding-domain 1-ஐக் கொடுக்க வேண்டும்: v0.6.8 பணப்பை 14 முதல் 19 வரையிலானவை தவிர்த்த ஒவ்வொரு chain id-இலும் ஜெனிசிஸுடன் பிணைக்கப்பட்ட வடிவத்தையே நிரூபிக்கிறது.
சேவையகத்தில் நிறுவுதல்
களஞ்சியத்தின் deploy/ அடைவில் கணுத் தொகுதி பயன்படுத்தும் scripts உள்ளன: deploy/push-to-vps.sh <ip> <letter> "<bootstraps>" [validator|observer] ஒரு Linux சேவையகத்தைத் தயார்செய்கிறது (மூலக் குறியீட்டை rsync செய்தல், build செய்தல், /usr/local/bin/{rand-node,rand}-ஐ நிறுவுதல், ஜெனிசிஸ் hash-ஐ அடிப்படையாகக் கொண்ட datadir-ஐத் தொடக்குதல், rand-node systemd சேவையை நிறுவுதல்), மேலும் deploy/rebuild-vps.sh <ip> புதிய commit-இல் மீண்டும் build செய்து தரவைத் தக்கவைத்து மறுதொடக்கம் செய்கிறது. இரண்டு எச்சரிக்கைகள். தயார்செய்யும் script deploy/genesis.json-இலிருந்து தொடக்குகிறது, அது chain 20-இன் கோப்பு அல்ல; எனவே testnet-க்கான கணு deploy/genesis-chain20.json-இலிருந்து கைமுறையாக அமைக்கப்படுகிறது (main-இல், மேலே காண்க). மேலும் இரண்டு scripts-உம் /root/fullnode-ஐ --delete உடன் rsync செய்கின்றன; எனவே அந்த அடைவுக்குள் வைக்கப்படும் சாவி அடுத்த மறு-build-இல் நீக்கப்படும்: கணுத் தொகுதி செய்வது போலவும், v0.6.8 தயார்செய்யும் script இப்போது இயல்பாகச் செய்வது போலவும் அதை /root/keys-இல் வைத்திருங்கள் (v0.6.7-இன் script சாவியை /root/fullnode/deploy/-இன் கீழ் எழுதியது). சேவை மேலாண்மை systemctl status rand-node, journalctl -u rand-node -f. சேவையகத்திற்கு build-essential clang cmake pkg-config libssl-dev மற்றும் ஒரு Rust toolchain தேவை. 1-vCPU, 2 GB சேவையகத்தால் binaries-ஐ build செய்ய முடியாது; வேறிடத்தில் build செய்து அவற்றை நகலெடுத்து வையுங்கள். சரிபார்ப்பாளரையும் திரட்டியையும் இயக்குதல் அளவுகளையும் படிப்படியான அமைப்பையும் தருகிறது.
எக்ஸ்ப்ளோரர்
randscan.org சரிபார்ப்பாளர் E-க்கு அருகில் இயங்கி chain 20-ஐ அட்டவணைப்படுத்துகிறது; கணு இல்லாமல் சங்கிலியைப் படிக்க அதன் REST API-யும் WebSocket ஊட்டமும் எளிதான வழி (Explorer API). எக்ஸ்ப்ளோரர் திறந்த மூலமானது (randprotocol/randscan); அதன் அட்டவணைப்படுத்திக்கு ஒரு கணுவின் rand_* JSON-RPC-உம் ஒரு PostgreSQL தரவுத்தளமும் மட்டுமே தேவை; எனவே அதை உங்கள் சொந்தக் கணுவுக்கு எதிராக இயக்கலாம்.