Rand Protocol
பங்கேற்க

ஒரு Rand கணுவை இயக்குங்கள்

மேற்கோள் முழுக் கணுவும் அதன் பணப்பையும் Rust-இல் எழுதப்பட்டவை; மூலக் குறியீட்டிலிருந்து உருவாக்கப்படுகின்றன. இரண்டு இயக்கக் கோப்புகள் கிடைக்கின்றன: rand-node, அதாவது கணுவும் இயக்குநர் கருவிகளும்; rand, அதாவது கவசமிடப்பட்ட செலவு விசையை வைத்திருந்து, எந்தக் கணுவுடனும் JSON-RPC வழியாகத் தொடர்புகொண்டு, ஒவ்வொரு பரிமாற்றத்துக்கும் ஒவ்வொரு ரகசிய அழைப்புக்கும் zkVM நிரூபிப்பியை உள்ளூரில் இயக்கும் பணப்பை. சோதனைநிலை testnet ஒன்று, chain 21, DigitalOcean droplets-இல் உள்ள 26 சரிபார்ப்பாளர்களில் இயங்குகிறது. இது தணிக்கை செய்யப்படவில்லை; இதற்கு உண்மையான மதிப்பு எதுவும் இல்லை. இரண்டின் Linux x86_64 இயக்கக் கோப்புகளும் v0.8.0 வெளியீட்டுடன் இணைக்கப்பட்டுள்ளன; கணுத்தொகுதி இந்த உருவாக்கத்துக்கே மேம்படுத்தப்பட்டது.

உள்ளூரில் உருவாக்கி இயக்குதல்
bash
# 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
பொது testnet-இல் கண்காணிப்பாளராக இணைதல்
chain 21
# வெளியீடு 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-க்காகக் காத்திருக்கிறது
சரிபார்ப்பாளர்கள்
26
குறைவெண்
18 of 26
Genesis
ca76c2766ed6090ac6ba5dad86b724dd5d2b80c0edfaed287cd8b129e663ca9a
ஒரு ரகசிய அழைப்பை மேற்கொள்ளுதல்
rand
# உள்ளமைந்த 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
சங்கிலி நிரல் id-ஐயும், gas அடுக்கையும், எட்டு வெளியீட்டுச் சொற்களையும் காண்கிறது. இருப்புகளை அது ஒருபோதும் காண்பதில்லை; கட்டணம் ஒரு கவசமிடப்பட்ட தொகுப்பால் செலுத்தப்படுவதால், யார் அழைத்தார் என்பதையும் அது அறிவதில்லை; வெளியீடுகள் தரவு மட்டுமே, எந்தச் செலுத்துதலும் அழைப்பவர் உருவாக்கும் தொகுப்பே. Apple Silicon-இல் அளந்தவை: அடுக்கு 10-இல் நிரூபணம் சுமார் 7 s, 80-வினவல் FRI சுயவிவரத்தில் சுமார் 1.2 MB சான்று, தயார்நிலைச் சரிபார்ப்பி விசையுடன் சுமார் 16 ms-இல் சரிபார்ப்பு; அந்த விசையைக் கணு ஒவ்வொரு அடுக்குக்கும் ஒருமுறை கணக்கிட்டு நிரல்களிடையே மீண்டும் பயன்படுத்துகிறது.

தேவைகள்

இயங்குதளம்
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 ஆகியவற்றுக்கான செயலியாகக் கிடைக்கிறது: பணப்பைகள்.

மூலக் குறியீடு
randprotocol/fullnode
GPL-3.0-only · testnet சமீபத்திய வெளியீடான v0.8.0-ஐ இயக்குகிறது
சரிபார்

ஒவ்வொரு கணுவும் அனைத்தையும் சரிபார்க்கிறது

ஒத்திசைக்கும் கணு, ஏற்றுக்கொள்ளும் முன் ஒவ்வொரு சான்றிதழையும் மீண்டும் சரிபார்க்கிறது, ஒவ்வொரு தொகுதியையும் அதன் சான்றுகள் உட்பட மீண்டும் இயக்குகிறது, ரசீதுகளை ஒப்பிடுகிறது. தொடக்கத்தில் அது தன் தரவுத்தளத்தைச் சரிபார்த்து, முரண்பாடான எதையும் வெட்டி நீக்குகிறது — தன் வாக்குப் பாதுகாப்பு நிலையைத் தக்கவைத்தபடி — விடுபட்ட பகுதியைச் சக கணுக்களிடமிருந்து மீண்டும் பெறுகிறது.

# கணு நிறுத்தப்பட்டது: hashes, QCs, கையொப்பங்கள், சான்றுகள், மீளியக்கம்
rand-node verify --datadir ./data --mode full
rand-node verify --datadir ./data --repair

நேரடி testnet-இல் இயக்கப்படும் பிழைச் சோதனைகள்

  • ›நான்கில் ஒரு சரிபார்ப்பாளரை நிறுத்துங்கள்: சங்கிலி தொடர்ந்து உறுதிசெய்கிறது; கணு திரும்பும்போது சில வினாடிகளில் இணைந்துகொள்கிறது.
  • ›நான்கில் இரண்டை நிறுத்துங்கள்: குறைவெண் இல்லாமல் சங்கிலி நின்றுவிடுகிறது; அவை திரும்பும்போது பிளவின்றி மீண்டும் தொடர்கிறது.
  • ›ஒரு கணுவின் தரவுத்தளத்தைச் சிதையுங்கள்: தொடக்கத்தில் கண்டறியப்பட்டு, வெட்டி நீக்கப்பட்டு, சக கணுக்களிடமிருந்து மீண்டும் ஒத்திசைக்கப்படுகிறது; பின்னர் பைட்-அளவில் ஒத்ததாகிறது.
  • ›வெவ்வேறு கணுக்கள் வழியான பரிமாற்றங்கள்: அனைத்தும் உறுதிசெய்யப்பட்டன, இருப்புகள் எங்கும் ஒத்தவை, மொத்த வழங்கல் மாறவில்லை.
  • ›துண்டிக்கப்பட்ட சக இணைப்பு, மீள்அழைப்பு தர்க்கத்தால் சுமார் 30 வினாடிகளுக்குள் மீண்டும் நிறுவப்படுகிறது.

இன்னும் செயல்படுத்தப்படாதவை

ஆய்வுக்கட்டுரைக்கும் கணுவுக்கும் இடையிலான இடைவெளி ஊகிக்கப்படாமல் தெளிவாகத் தெரிய வேண்டும் என்பதற்காகப் பட்டியலிடப்பட்டுள்ளது.

  • ›நிரல் வாரியான நிலைத்த நிலையும் நிரல்களுக்கு இடையிலான அழைப்புகளும்
  • ›பணப்பையிலேயே ஒரு தொகுப்பி: ஒரு நிரல் என்பது உள்ளமைந்த, அசெம்பிளியில் எழுதப்பட்ட விருந்தினர் நிரல் அல்லது தனியான rand-guest கருவித்தொடரால் உருவாக்கப்பட்ட ஒரு படிமம்
  • ›பங்குக் குறைப்பு மற்றும் தற்காலிக நீக்கம், தொகுதி வெகுமதிகள், கட்டணச் சந்தைகள், ஹாஷ்-குலுக்கல் அடிப்படையிலான தலைவர் தேர்வுச் சமிக்ஞை
  • ›நலிஃபையர் திரட்டி, இறுதிநிலைக்குப் பின் நிரூபணக் கத்தரிப்பு, நிரூபணத் தொகுப்பாக்கம்
  • ›SPL Token பரிமாற்றத்திற்கான அடுக்கு-20 நிரூபணம், மற்றும் ஆய்வுக் கட்டுரையில் விவரிக்கப்பட்ட GPU நிரூபகர் சந்தை