ஒரு Rand கணுவை இயக்குங்கள்
மேற்கோள் முழுக் கணுவும் அதன் பணப்பையும் Rust-இல் எழுதப்பட்டவை; மூலக் குறியீட்டிலிருந்து உருவாக்கப்படுகின்றன. இரண்டு இயக்கக் கோப்புகள் கிடைக்கின்றன: rand-node, அதாவது கணுவும் இயக்குநர் கருவிகளும்; rand, அதாவது கவசமிடப்பட்ட செலவு விசையை வைத்திருந்து, எந்தக் கணுவுடனும் JSON-RPC வழியாகத் தொடர்புகொண்டு, ஒவ்வொரு பரிமாற்றத்துக்கும் ஒவ்வொரு ரகசிய அழைப்புக்கும் zkVM நிரூபிப்பியை உள்ளூரில் இயக்கும் பணப்பை. சோதனைநிலை testnet ஒன்று, chain 21, DigitalOcean droplets-இல் உள்ள 26 சரிபார்ப்பாளர்களில் இயங்குகிறது. இது தணிக்கை செய்யப்படவில்லை; இதற்கு உண்மையான மதிப்பு எதுவும் இல்லை. இரண்டின் Linux x86_64 இயக்கக் கோப்புகளும் v0.8.0 வெளியீட்டுடன் இணைக்கப்பட்டுள்ளன; கணுத்தொகுதி இந்த உருவாக்கத்துக்கே மேம்படுத்தப்பட்டது.
# 1. Rust (rustup நிலைநிறுத்தப்பட்ட 1.98.1 toolchain-ஐ எடுத்துக்கொள்ளும்) மற்றும் RocksDB-இன் உருவாக்கச் சார்புகள்
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
sudo apt install build-essential clang cmake pkg-config libssl-dev # Linux
# 2. நகலெடுத்து உருவாக்குதல் (முதல் முறை 10–20 நிமிடம்)
git clone https://github.com/randprotocol/fullnode.git
cd fullnode
cargo build --release # target/release/rand-node, target/release/rand
# 3. இந்தக் கணினியில் இரண்டு சரிபார்ப்பாளர்கள் கொண்ட சங்கிலி (RPC 8545, 8546 இல்)
scripts/local-testnet.sh
target/release/rand --rpc http://127.0.0.1:8545 status
# 4. சோதனைகள்; debug பயன்முறையில் STARK நிரூபணம் மெதுவாக இருப்பதால் release (678 சோதனைகள், 2026-09-14 அன்று அளந்தபடி சுமார் 43 நிமிடம்)
cargo test --workspace --release
# வெளியீடு v0.8.0 (c0878c3f) சங்கிலி 21-ஐ இயக்குகிறது; இதற்கு முந்தைய எந்த வெளியீடும் இயக்காது: சங்கிலி 21 கட்டுப்பாட்டுத் தொகுப்பு 9-ஐ இயக்குகிறது, அதன் சரிபார்ப்பி விசைகளையும் நிரூபண குறியாக்கத்தையும் பழைய எதுவும் கொண்டிருக்கவில்லை. டேக்கிலிருந்து உருவாக்குங்கள், அல்லது Linux x86_64-இல் பயன்படுத்துங்கள்
# வெளியீட்டு இயக்கக் கோப்புகளை எடுத்து, அதனுடன் வெளியிடப்பட்ட SHA256SUMS-உடன் சரிபாருங்கள்
git checkout v0.8.0 && cargo build --release
curl -LO https://github.com/randprotocol/fullnode/releases/download/v0.8.0/rand-node -LO https://github.com/randprotocol/fullnode/releases/download/v0.8.0/rand \
-LO https://github.com/randprotocol/fullnode/releases/download/v0.8.0/msauth-vk-production.bin# நிலைநிறுத்தப்பட்ட பல்கையொப்ப (multisig) சரிபார்ப்பி விசை: rand-node இதைத் தன் இயங்குகோப்புக்கு அருகிலிருந்து ஏற்றுகிறது, இது இல்லாமல் தொடங்க மறுக்கிறது
sha256sum rand-node rand msauth-vk-production.bin # வெளியீட்டின் மதிப்புகளை அச்சிட வேண்டும் (SHA256SUMS, SHA256SUMS.sig ஆகக் கையொப்பமிடப்பட்டது):
# 324a4ab1029d39e67fc2de36b036341b0f88f13089997d7fe24c596363a58278 rand-node
# e3a38e74ee28743a960fc1c3eb1ac6c538e18dc259411e10afff7f54e268bbf4 rand
# 68facb06c7f321aaf1d4d541acf6b5c0e9d7f17788ed1c9add6c5a8a8f7acd30 msauth-vk-production.bin
# உங்கள் நோட் அடையாளம்: Dilithium2 சரிபார்ப்பாளர் விசையும் p2p peer id-யும் ஒரே கோப்பில். உங்களுடையதை நீங்களே உருவாக்குங்கள்
# அதை checkout-க்கு வெளியே வைத்திருங்கள்; களஞ்சியம் இனி எந்த விசையையும் கண்காணிப்பதில்லை
rand-node keygen --out node.key.json
# ஜெனிசிஸ் களஞ்சியத்திலேயே வருகிறது; ஒவ்வொரு நோடும் அதே கோப்பை வைத்திருக்க வேண்டும்.
# init அதன் ஹாஷை அச்சிடுகிறது, அது கீழுள்ளதுடன் பொருந்த வேண்டும்
rand-node init --datadir ./data --genesis deploy/genesis-chain21.json
# பொது சரிபார்ப்பாளர்களை அழையுங்கள் (சங்கிலி 21 சங்கிலி 14-இன் விசைகளையே வைத்திருந்தது, எனவே அதன் peer id-களையும் IP-களையும்).
# --validator-ஐ விட்டுவிடுங்கள்: உங்கள் விசை சரிபார்ப்பாளர் தொகுப்பில் இல்லை. சரிபார்ப்பாளருக்கு NTP-யும் தேவை
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
# பணப்பை என்பது தனியான, மறைக்கப்பட்ட (shielded) விசை. அதன் rand1… முகவரி சுமார் 1.6 KB உரை
rand keygen && rand address
# faucet mint-ஐ ஒரு சரிபார்ப்பாளர் கையொப்பமிடுகிறார், எனவே அதற்கு ஒரு சரிபார்ப்பாளரின் RPC தேவை: அது
# உள்ளூர் இரண்டு-சரிபார்ப்பாளர் சங்கிலியில் அப்படியே செயல்படும்; பார்வையாளர் நோட் "ஒரு சரிபார்ப்பாளர் நோடைக் கேளுங்கள்" என்று பதிலளிக்கும். சங்கிலி 21-இல்
# faucet தனது ஜெனிசிஸ் அனுமதிப்பட்டியலில் உள்ள 16 பணப்பைகளுக்கு மட்டுமே, அது குறிப்பிடும் சரிபார்ப்பாளர்களிடமிருந்து மட்டுமே mint செய்கிறது
rand faucet # நீங்கள் மட்டுமே திறக்கக்கூடிய ஒரு குறிப்பில் (note) 100 RAND
rand balance # உங்கள் விசையால் மரத்தை ஸ்கேன் செய்கிறது; வேறு யாராலும் முடியாது
rand send <rand1 address> 1.5 # உறுதிப்படுத்தக் கேட்கிறது, நிரூபிக்கிறது (~2 நிமிடம்), commit-க்காகக் காத்திருக்கிறது
# உள்ளமைந்த guest ஒன்றைத் தொகுத்தல்: நான்கு தனிப்பட்ட இருப்புகள் போதுமானால் 1000-க்கு மேலான உபரியைச் செலுத்து
rand program build --guest private_payment --arg 1000 --out pp.json
rand program deploy pp.json # நிரல் id-ஐ (அதன் உள்ளடக்க hash) அச்சிடுகிறது
# உள்ளூரில் நிரூபியுங்கள்; சான்று, எட்டு வெளியீட்டுச் சொற்கள், முத்திரையிடப்பட்ட உள்ளீட்டுப் பதிவு மட்டுமே சங்கிலிக்குச் செல்கின்றன
rand call <program id> --input 400 --input 250 --input 300 --input 75
rand receipt <tx> # வெளியீடுகள் [1, 0, 25, 0, ...]: உபரி, தரவாக வெளியிடப்படுகிறது
# பின்னர், பதிவைத் திறந்து சான்று வெளியிட்ட H_IN-உடன் சரிபாருங்கள்
rand open-call <tx> # உள்ளீடுகள்: [400, 250, 300, 75] — தீர்ப்பு: faithful
தேவைகள்
- இயங்குதளம்
- Linux x86_64 அல்லது macOS arm64
- Rust
- 1.98.1, rust-toolchain.toml மூலம் நிலைநிறுத்தப்பட்டது; rustup அதை நிறுவும்
- உருவாக்கச் சார்புகள்
- C++ தொகுப்பி, cmake, pkg-config, OpenSSL தலைப்புக் கோப்புகள் (RocksDB)
- முதல் உருவாக்கம்
- 10 முதல் 20 நிமிடம்: RocksDB, Plonky3 ஆகியவை மூலக் குறியீட்டிலிருந்து
- போர்ட்கள்
- பொதுக் கணுக்களில் உள்வரும் TCP 30303; RPC 127.0.0.1:8545 இல்
- சேவையகம்
- 1 முதல் 2 vCPU கொண்ட மேகக் கணினி ஒரு testnet சரிபார்ப்பாளரை இயக்கும்
- கடிகாரம்
- சரிபார்ப்பாளரில் NTP (chrony): தன் கடிகாரத்தைவிட 15 s-க்கு மேல் முன்னிருக்கும் தொகுதிக்கு அது வாக்களிக்காது; எனவே பின்தங்கிய கடிகாரம் எந்த அறிவிப்புமின்றி வாக்களிப்பை நிறுத்திவிடும்
- நிரூபணம்
- தற்போது CPU மட்டும்: ஒரு கவசமிடப்பட்ட பரிமாற்றம் மடிக்கணினியில் சுமார் இரண்டு நிமிடம் (7 s அங்கீகாரச் சான்றும் சுமார் 110 s தொகுப்புச் சான்றும்) மற்றும் சுமார் 6 GB நினைவகம் எடுக்கும்; ஒரு சிறிய அழைப்பு சுமார் 30 s கூட்டும்
ஒரு பங்கைத் தேர்ந்தெடுங்கள்
- கண்காணிப்பாளர் அனைவருக்கும் திறந்தது
--validator இல்லாத அதே இயக்கக் கோப்பு. சங்கிலியை ஒத்திசைக்கிறது, ஒவ்வொரு சான்றிதழையும் ஒவ்வொரு தொகுப்பு, அழைப்புச் சான்றையும் சரிபார்க்கிறது, ஒவ்வொரு தொகுதியையும் மீண்டும் இயக்குகிறது, ரசீதுகளை ஒப்பிடுகிறது, JSON-RPC சேவை வழங்குகிறது. பொது testnet-இல் ஒரு புதிய விசை இயக்குவது இதையே.
- சரிபார்ப்பாளர் பிணையிடப்பட்டது
சங்கிலிப்பிணைப்பு HotStuff முறையில் வாக்களித்து முன்மொழிகிறது. சங்கிலி 20-ஐப் போலவே சங்கிலி 21-இலும், புதிய சரிபார்ப்பாளர் முதலில் வாக்கெடுப்பின் மூலம் சேர்க்கப்படுகிறார்: பங்குத்தொகையில் மூன்றில் இரண்டு பங்குக்கு மேல் வைத்திருக்கும் சரிபார்ப்பாளர்கள் அவரது விசைக்கான AdmitValidator செயலில் கையொப்பமிடுகின்றனர். பின்னர் அவர் நோட் விசையைப் பதிவு செய்கிறார் (rand-node register --v2), ஒரு பணப்பையிலிருந்து குறைந்தது 1,000 RAND-ஐப் பிணைக்கிறார், பிணைப்புக்குப் பிறகு வரும் மூன்றாவது 1,000-பிளாக் எபோக் எல்லையில் தொகுப்பில் நுழைகிறார் (சங்கிலி 18-இன் இரண்டு-எபோக் பிணைப்புத் தாமதம்). சங்கிலி 18 தலா 1,000 RAND கொண்ட 26 சரிபார்ப்பாளர்களுடன் தொடங்கியது; commit ஆக, பங்குத்தொகையில் மூன்றில் இரண்டு பங்குக்கு மேல், அதாவது 26-இல் 18 பேர், இணைப்பில் இருந்து வாக்களிக்க வேண்டும். உங்கள் விசையை நீங்களே உருவாக்குங்கள்: களஞ்சியத்தில் இனி எந்த சரிபார்ப்பாளர் விசையும் வைக்கப்படுவதில்லை, முந்தைய சங்கிலிகளுக்காகப் பதிவேற்றப்பட்ட விசைக் கோப்புகள் பொதுவில் வெளியிடப்பட்ட seed-கள்.
- பணப்பையும் நிரூபிப்பியும் உள்ளூர்
rand கிளையன்ட் 256-பிட் செலவு விசையை வைத்திருக்கிறது, எதிலும் கையொப்பமிடுவதில்லை: இரண்டு சான்றுகளே அங்கீகாரம் — செலவு விசையால் உருவாக்கப்படும் ஒரு சிறிய சான்றும், 4-உள்ளீடு-4-வெளியீடு தொகுப்புச் சான்றும். அது தன் சொந்தக் குறிப்புகளுக்காக மரத்தை வருடுகிறது, இரண்டையும் உங்கள் கணினியிலேயே நிரூபிக்கிறது — RAND-க்கும் எந்த RPL டோக்கனுக்கும் அதே வடிவில் — ரகசிய அழைப்புக்கு நிரலையும் நிரூபிக்கிறது. சான்றுகள், உறுதிமொழிகள், ரத்துக்குறிகள், முத்திரையிடப்பட்ட உறைகள் மட்டுமே சங்கிலியை அடைகின்றன.
கணுவை இயக்கவில்லையா? அதே பணப்பை iOS, Android, Chrome, Firefox ஆகியவற்றுக்கான செயலியாகக் கிடைக்கிறது: பணப்பைகள்.
ஒவ்வொரு கணுவும் அனைத்தையும் சரிபார்க்கிறது
ஒத்திசைக்கும் கணு, ஏற்றுக்கொள்ளும் முன் ஒவ்வொரு சான்றிதழையும் மீண்டும் சரிபார்க்கிறது, ஒவ்வொரு தொகுதியையும் அதன் சான்றுகள் உட்பட மீண்டும் இயக்குகிறது, ரசீதுகளை ஒப்பிடுகிறது. தொடக்கத்தில் அது தன் தரவுத்தளத்தைச் சரிபார்த்து, முரண்பாடான எதையும் வெட்டி நீக்குகிறது — தன் வாக்குப் பாதுகாப்பு நிலையைத் தக்கவைத்தபடி — விடுபட்ட பகுதியைச் சக கணுக்களிடமிருந்து மீண்டும் பெறுகிறது.
# கணு நிறுத்தப்பட்டது: hashes, QCs, கையொப்பங்கள், சான்றுகள், மீளியக்கம்
rand-node verify --datadir ./data --mode full
rand-node verify --datadir ./data --repair
நேரடி testnet-இல் இயக்கப்படும் பிழைச் சோதனைகள்
- ›நான்கில் ஒரு சரிபார்ப்பாளரை நிறுத்துங்கள்: சங்கிலி தொடர்ந்து உறுதிசெய்கிறது; கணு திரும்பும்போது சில வினாடிகளில் இணைந்துகொள்கிறது.
- ›நான்கில் இரண்டை நிறுத்துங்கள்: குறைவெண் இல்லாமல் சங்கிலி நின்றுவிடுகிறது; அவை திரும்பும்போது பிளவின்றி மீண்டும் தொடர்கிறது.
- ›ஒரு கணுவின் தரவுத்தளத்தைச் சிதையுங்கள்: தொடக்கத்தில் கண்டறியப்பட்டு, வெட்டி நீக்கப்பட்டு, சக கணுக்களிடமிருந்து மீண்டும் ஒத்திசைக்கப்படுகிறது; பின்னர் பைட்-அளவில் ஒத்ததாகிறது.
- ›வெவ்வேறு கணுக்கள் வழியான பரிமாற்றங்கள்: அனைத்தும் உறுதிசெய்யப்பட்டன, இருப்புகள் எங்கும் ஒத்தவை, மொத்த வழங்கல் மாறவில்லை.
- ›துண்டிக்கப்பட்ட சக இணைப்பு, மீள்அழைப்பு தர்க்கத்தால் சுமார் 30 வினாடிகளுக்குள் மீண்டும் நிறுவப்படுகிறது.
இன்னும் செயல்படுத்தப்படாதவை
ஆய்வுக்கட்டுரைக்கும் கணுவுக்கும் இடையிலான இடைவெளி ஊகிக்கப்படாமல் தெளிவாகத் தெரிய வேண்டும் என்பதற்காகப் பட்டியலிடப்பட்டுள்ளது.
- ›நிரல் வாரியான நிலைத்த நிலையும் நிரல்களுக்கு இடையிலான அழைப்புகளும்
- ›பணப்பையிலேயே ஒரு தொகுப்பி: ஒரு நிரல் என்பது உள்ளமைந்த, அசெம்பிளியில் எழுதப்பட்ட விருந்தினர் நிரல் அல்லது தனியான rand-guest கருவித்தொடரால் உருவாக்கப்பட்ட ஒரு படிமம்
- ›பங்குக் குறைப்பு மற்றும் தற்காலிக நீக்கம், தொகுதி வெகுமதிகள், கட்டணச் சந்தைகள், ஹாஷ்-குலுக்கல் அடிப்படையிலான தலைவர் தேர்வுச் சமிக்ஞை
- ›நலிஃபையர் திரட்டி, இறுதிநிலைக்குப் பின் நிரூபணக் கத்தரிப்பு, நிரூபணத் தொகுப்பாக்கம்
- ›SPL Token பரிமாற்றத்திற்கான அடுக்கு-20 நிரூபணம், மற்றும் ஆய்வுக் கட்டுரையில் விவரிக்கப்பட்ட GPU நிரூபகர் சந்தை