ஒரு பரிவர்த்தனை எப்போது இறுதியாகிறது, எத்தனை சரிபார்ப்பாளர்கள் இயங்க வேண்டும், RPC-யிலும் தொகுதி உலாவியிலும் நீங்கள் காணும் தொகுதிப் புலங்கள் எதைக் குறிக்கின்றன என்பவற்றை அறிய இந்தப் பக்கத்தைப் பயன்படுத்துங்கள். ஒருமித்த இணக்கம் என்பது பங்கு-எடையிடப்பட்ட குறைவெண்களுடன் கூடிய சங்கிலித்தொடர் HotStuff BFT; சங்கிலி 20-இல் அது 26 சரிபார்ப்பாளர்களில் 18.
முனை இயக்கும் விதிகள்
| விதி | செயல்படுத்தப்பட்டபடி |
|---|---|
| குறைவெண் | ஒரு குறைவெண் சான்றிதழ் (QC) என்பது மொத்தப் பங்கில் 2/3-க்குக் கண்டிப்பாக அதிகமானதை வைத்திருக்கும் சரிபார்ப்பாளர்களிடமிருந்து பெறப்பட்ட Dilithium2 வாக்குகளின் தொகுப்பு |
| தலைவர் அட்டவணை | தூய சுழல்முறை: பார்வை v-இன் தலைவர் validators[v mod n]; தொகுப்பு முகவரிப்படி வரிசைப்படுத்தப்பட்டது. பங்கு வாக்குகளுக்கு எடை அளிக்கிறது, தலைவர் தேர்வுக்கு அல்ல |
| முன்மொழிதல் | பார்வை v-இன் தலைவர், v − 1-க்கான QC அல்லது v-க்கான NewView செய்திகளின் குறைவெண் தன்னிடம் வந்தவுடன் முன்மொழிகிறார். செல்லாத பரிவர்த்தனையைப் பயன்படுத்தக்கூடிய ஒரு முன்மொழிவு, தொகுதியை அல்ல, அந்தப் பரிவர்த்தனையையே கைவிடுகிறது |
| வாக்களிப்பும் பாதுகாப்பும் | ஒரு சரிபார்ப்பாளர் ஒரு பார்வைக்கு ஒருமுறை மட்டுமே வாக்களிக்கிறார், அதுவும் தனது பூட்டைப் பொறுத்துப் பாதுகாப்பான தொகுதிக்கு மட்டுமே (அதன் நியாயப்படுத்தும் QC பூட்டிய QC-ஐ விடப் புதியது, அல்லது அத்தொகுதி பூட்டிய தொகுதியை நீட்டிக்கிறது). ஒரு வாக்கு முனையை விட்டு வெளியேறும் முன் பாதுகாப்பு நிலை RocksDB-க்கு fsync செய்யப்படுகிறது |
| கையொப்பக் களம் | consensus_domain: 1 கொண்ட ஜெனிசிஸில் (சங்கிலி 20, மற்றும் 15 முதல் ஒவ்வொரு சங்கிலியும்) ஒவ்வொரு வாக்கு, புதிய-பார்வை, முன்மொழிவுக் கையொப்பமும் ஜெனிசிஸ் ஹாஷை உள்ளடக்குகிறது (rand-vote-2, rand-newview-2, rand-block-2); எனவே ஒரு சங்கிலிக்கான கையொப்பம் வேறு எந்தச் சங்கிலியிலும் சரிபார்க்கப்படாது. சங்கிலி 14-உம் அதற்கு முந்தையவையும் அது இல்லாமல் கையொப்பமிட்டன. சங்கிலி 20-இன் binding_domain: 1 இதே விதியைப் பரிவர்த்தனைச் சான்றுகளுக்கும் கையொப்பமிட்ட செயல்களுக்கும் நீட்டிக்கிறது (பரிவர்த்தனைகள்) |
| உடன்பிறப்பு முன்மொழிவுகள் | ஒரு நகல் முனை (பார்வை, தலைவர்) ஒன்றுக்கு ஒரு தொகுதியை மட்டுமே வைத்திருக்கிறது; அதே பார்வைக்கு அதே தலைவரிடமிருந்து வரும் இரண்டாவது, வேறுபட்ட தொகுதி இருமுக நடத்தையாகக் கருதப்பட்டு மறுக்கப்படுகிறது. நகல் முனையின் சொந்தப் பார்வையை விட 8 பார்வைகளுக்கு மேல் முன்னால் உள்ள முன்மொழிவு (PROPOSAL_VIEW_WINDOW) அதன் கையொப்பம் சரிபார்க்கப்படுவதற்கு முன்பே மறுக்கப்படுகிறது; நிரம்பிய ஊக மரம் எதையும் மறுப்பதற்கு முன் கிளைக்கு வெளியே உள்ள தொகுதிகளை வெளியேற்றுகிறது |
| பூட்டு விடுவிப்பு | பூட்டு ஒருபோதும் தானாகக் கீழிறக்கப்படுவதில்லை (CON-4, v0.6.8). நியாயப்படுத்தும் QC அதை விட மேல்நிலையில் உள்ள முன்மொழிவுக்கோ, பூட்டிய தொகுதி வந்து சேரும்போதோ மட்டுமே அது விலகுகிறது. கையொப்பமிட்ட NotHeld பதில்களின் குறைவெண் இயக்குநருக்காகப் பதிவு செய்யப்படுகிறது, எதையும் விடுவிப்பதில்லை; ஒரு சரிபார்ப்பாளர் தான் வாக்களித்த தொகுதிக்கு ஒருபோதும் NotHeld கையொப்பமிடாதபடி தனது வாக்குகளைப் பதிவு செய்கிறார். தலைத் தொகுதிக்கு மேலே உள்ள ஒவ்வொரு சான்றளிக்கப்பட்ட தொகுதியும் சேமிக்கப்பட்டு மறுதொடக்கத்தில் மீட்டெடுக்கப்படுகிறது; எனவே முழுத் தொகுப்பின் மறுதொடக்கம் யாரிடமும் இல்லாத தொகுதியின் மீது ஒரு QC-ஐச் சிக்கவைப்பதில்லை. பூட்டிய தொகுதியை நிரந்தரமாக இழந்த சரிபார்ப்பாளர் இணைப்பற்ற நிலையில் கைமுறையாக விடுவிக்கப்படுகிறார்: rand-node safety release-lock |
| QC தொகுப்பு | ஒவ்வொரு சரிபார்ப்பாளரும் பரப்பப்பட்ட வாக்குகளிலிருந்து QC-களை உள்ளூரிலேயே தொகுக்கிறார்; எனவே அடுத்த தலைவர் இணைப்பில் இல்லாதபோதும் சங்கிலி தொடர்ந்து உறுதிசெய்கிறது |
| உறுதிசெய்தல் | சங்கிலித்தொடர் மூன்று-QC விதி: ஒரு தொகுதியின் மீது மூன்று சான்றிதழ்கள் தொடர்ச்சியான பார்வைகளில் v, v+1, v+2 சங்கிலியாக அமைந்து, அந்தச் சங்கிலி உறுதிசெய்யப்பட்ட தலைத் தொகுதி வரை தொடர்ந்து சென்றவுடன் அத்தொகுதி உறுதிசெய்யப்படுகிறது |
| நேர முடிவுகளும் பார்வை மாற்றங்களும் | அடிப்படை --view-timeout-ms 3,000 ms; ஒவ்வொரு தொடர்ச்சியான நேர முடிவுக்கும் இரட்டிப்பாகிறது, எந்த முன்னேற்றம் ஏற்பட்டாலும் மீட்டமைக்கப்படுகிறது. நேர முடிவுச் சான்றிதழ் வேகக்கட்டுப்பாட்டி (CH-1, v0.6.8): நேரங்காட்டி முடிவடையும் நகல் முனை தனது பார்வையிலேயே இருந்து, அடுத்ததைக் கோரும் NewView-இல் கையொப்பமிடுகிறது. முந்தைய பார்வைக்கான QC கிடைக்கும்போதோ, பங்கில் 2/3-க்கு மேல் வைத்திருக்கும் சரிபார்ப்பாளர்கள் அந்தப் பார்வையையோ அதற்குப் பிந்தைய ஒன்றையோ கோரியிருக்கும்போதோ அது அந்தப் பார்வைக்குள் நுழைகிறது; தனது பார்வைக்கு அப்பாற்பட்ட ஒரு பார்வையை 1/3-க்கு மேற்பட்டவர்கள் கோரும்போது அது இணைகிறது (தனது சொந்தக் கோரிக்கையில் கையொப்பமிடுகிறது). எந்த ஒரு தனிச் சரிபார்ப்பாளரின் NewView-உம் யாரையும் நகர்த்துவதில்லை. பார்வைகள் வரம்புக்குட்பட்டவை (MAX_VIEW_AHEAD = 10⁶) |
| வேகக்கட்டுப்பாடு | நிலுவையில் எதுவும் இல்லாதபோது, எந்த முன்மொழிவாளரிடமிருந்தும் கடைசியாகக் காணப்பட்ட தொகுதிக்குப் பின் குறைந்தது --block-interval-ms (இயல்புநிலை 1,000 ms) கழித்து, தலைவர் ஒரு வெற்றுத் தொகுதியை முன்மொழிகிறார் |
| வாக்கு மற்றும் பரப்புதல் வரம்புகள் | 8 பார்வைகளுக்கு மேல் முன்னால் உள்ள வாக்குகள் புறக்கணிக்கப்படுகின்றன, (பார்வை, வாக்காளர்) ஒன்றுக்கு ஒரு வாக்கு மட்டுமே கணக்கிடப்படுகிறது; ஒருமித்த இணக்கப் பரப்புதல் ஒவ்வொரு அனுப்பும் சக முனைக்கும் அளவிடப்படுகிறது (வெடிப்பு 256, 64/s); பெற்றோர் தொகுதி அறியப்படாத முன்மொழிவு, அதன் முன்மொழிவாளர் நடப்புக் காலகட்டத் தொகுப்பிலோ அடுத்ததிலோ அதன் பார்வையின் தலைவராக இருந்து, உறுதிசெய்யப்பட்ட தலைத் தொகுதியிலிருந்து மர வரம்புக்குள் இருந்து, அதன் அளவும் பரிவர்த்தனை மூலமும் சரியாக இருந்தால் மட்டுமே அனாதையாக வைக்கப்படுகிறது (அனாதைக் குளம் 64 MiB-இல் வரம்பிடப்பட்டுள்ளது, v0.6.1 முதல் ஒரு முன்மொழிவாளருக்கு 16 அனாதைகள்). v0.6.8 முதல், ஒரு முன்மொழிவின் பரிவர்த்தனைப் பட்டியல் அதன் தலைப்பு உறுதியளிக்கும் மூலத்துக்கு ஹாஷ் ஆகி, எந்தப் பரிவர்த்தனையும் மீண்டும் இடம்பெறாதபோது மட்டுமே அது அனுப்பப்படுகிறது, அனாதையாகவும் வைக்கப்படுகிறது (GOSSIP-2) |
| தொகுதி வரம்புகள் | சங்கிலியின் max_block_bytes அளவிலான பரிவர்த்தனை பைட்டுகள் (இயல்பாக 4 MiB, சங்கிலி 20-இன் ஜெனிசிஸில் 20 MiB) மற்றும் 2,000 பரிவர்த்தனைகள்; இவை முன்மொழிவாளராலும், மீண்டும் Ledger::apply_block-இல் ஒவ்வொரு நகல் முனையாலும் செயல்படுத்தப்படுகின்றன |
| தொகுதி நேரம் | bridge பிரிவு கொண்ட சங்கிலியில்: ஒரு தொகுதியின் timestamp_ms அதன் பெற்றோரின் நேரத்துக்கு முந்தியதாக இருக்கக்கூடாது (TimestampRewind), அதை 60 s-க்கு மேல் மிஞ்சவும் கூடாது (TimestampLeap); மேலும் ஒரு சரிபார்ப்பாளர் தனது சொந்தக் கடிகாரத்தை விட 15 s-க்கு மேல் முன்னால் உள்ள தொகுதிக்குத் தனது வாக்கை அளிப்பதில்லை; கீழே காண்க |
தொடர்ச்சியான மூன்று பார்வை உறுதிசெய்தல் விதி இன்றியமையாதது: அதைத் தளர்த்தினால், முழு முனையில் பின்னடைவுச் சோதனை ஒன்று உள்ள முரண்பட்ட இறுதித்தன்மைப் பிழை மீண்டும் திறக்கிறது. ஒரு கிளையன்ட் RPC வழியாகக் காணும் அனைத்தும் உறுதிசெய்யப்பட்டவை: உறுதிசெய்யப்பட்ட தொகுதிகள் மட்டுமே வழங்கப்படுகின்றன, WebSocket newHeads ஓட்டம் உறுதிசெய்யப்பட்ட ஒவ்வொரு தொகுதிக்கும் ஒரு அறிவிப்பை வரிசைப்படி அனுப்புகிறது.
இந்த அட்டவணை v0.6.8-ஐக் குறிக்கிறது; சங்கிலி 20 இயக்கும் வெளியீடு அதுவே. அதன் விதிகளில் மூன்று v0.6.8-இல் புதியவை (தணிக்கை v6); 2026-10-01 அன்று சங்கிலி 20 இயக்கத்துக்கு வந்தது முதல் அவை நடைமுறையில் உள்ளன: நேர முடிவுச் சான்றிதழ் வேகக்கட்டுப்பாட்டி (CH-1), தானியங்கிப் பூட்டு விடுவிப்பு இல்லாமை (CON-4), முன்மொழிவுப் பரிவர்த்தனைப் பட்டியல் சரிபார்ப்பு (GOSSIP-2). சங்கிலிகள் 18, 19-இல் (v0.6.7) ஒரு தனிச் சரிபார்ப்பாளரின் கையொப்பமிட்ட NewView ஒவ்வொரு நகல் முனையையும் அதன் பார்வைக்கு நகர்த்தியது; பங்கின் குறைவெண்ணிடமிருந்து வந்த கையொப்பமிட்ட NotHeld பதில்களின் பேரில் பூட்டு கீழிறக்கப்பட்டது. வேகக்கட்டுப்பாட்டியும் பூட்டு விதியும் சரிபார்ப்பாளர்கள் எதில், எப்போது கையொப்பமிடுகிறார்கள் என்பதை மாற்றுவதால், v0.6.8 சங்கிலி 20 வெட்டுடன் அனைத்தையும் நிறுத்தி அனைத்தையும் தொடங்கும் முறையில் வெளியிடப்பட்டது; ஒருபோதும் முனை முனையாக அல்ல.
testnet-இன் எண்ணிக்கைகள்
சங்கிலி 20-இல் 26 சரிபார்ப்பாளர்கள் உள்ளனர்; ஒவ்வொருவரும் சரியாக 1,000 RAND பங்கு வைத்துள்ளனர். 26 பேரும், சங்கிலிகள் 17 முதல் 19 வரை இயங்கிய அதே திறவுகோல்கள் மற்றும் சக முனை அடையாளங்களுடன், அதன் ஜெனிசிஸில் உள்ளனர். சங்கிலி 15-இல் பதினெட்டு பேர் சங்கிலி 14-இன் திறவுகோல்களுடன் ஜெனிசிஸில் இருந்தனர்; மேலும் எட்டு பேர் 2026-09-27 அன்று v2 பதிவுகளின் கீழ் பிணைக்கப்பட்டு, காலகட்டம் 43 முதல் செயலில் இருந்தனர். பங்கு சீரானது, எனவே குறைவெண் என்பது தலைக்கணக்கு: எதையும் உறுதிசெய்ய 26 பேரில் 18 பேர் இணைப்பில் இருக்க வேண்டும். 17 பேர் இயங்கும்போது பார்வைகள் முன்னேறுகின்றன, ஆனால் எதுவும் இறுதியாவதில்லை. n சம சரிபார்ப்பாளர்களைக் கொண்ட தொகுப்புக்குப் பங்கில் 2/3-க்கு மேல் தேவை: 2-இல் 2, 4-இல் 3, 6-இல் 5, 18-இல் 13, 26-இல் 18. ஜெனிசிஸ் எடை வரம்பு (ஒரு சரிபார்ப்பாளருக்கு 3,333 bps) சம பங்குகளின் தொகுப்பைக் கட்டுப்படுத்துவதில்லை.
தொகுதிகள் இயல்புநிலையான 1,000 ms இடைவெளியில் அமைகின்றன. சங்கிலி 15-இல் நடைமுறையில் அவை ஏறக்குறைய ஒவ்வொரு 1.2 s-க்கும் வந்தன (அதன் முதல் 29 மணி நேரச் சராசரி 1.18 s); சங்கிலி 20-இல் உயரம் 3,270-இல் தொகுதி உலாவி 1.34 s சராசரியைப் பதிவு செய்தது (2026-10-01, avg_block_time_ms). தொகுதி உலாவி தான் காணும் சராசரி தொகுதி நேரத்தை அறிவிக்கிறது (GET /stats-இல் avg_block_time_ms). பார்வைகள் நேர முடிவடையும் போதெல்லாம் ஒரு சரிபார்ப்பாளரின் பார்வை உயரத்தை விட முன்னால் செல்கிறது; அதனால்தான் rand_getHead இரண்டையும் அறிவிக்கிறது.
காலகட்டங்கள்
சரிபார்ப்பாளர் தொகுப்பு ஒவ்வொரு epoch_blocks = 1,000 தொகுதிகளுக்கும் (ஒரு ஜெனிசிஸ் அளவுரு) பதிவேட்டிலிருந்து மீண்டும் தருவிக்கப்படுகிறது. epoch(h) = h / 1000; காலகட்டம் e ≥ 1-க்கான தொகுப்பு, காலகட்டம் e − 1-இன் கடைசித் தொகுதியின் நிலையிலான பதிவேட்டிலிருந்து தருவிக்கப்படுகிறது: stake ≥ 1,000 RAND கொண்ட ஒவ்வொரு வரிசையும், பங்கின்படி முதல் 100, முகவரிப்படி வரிசைப்படுத்தப்பட்டு. staking பிரிவு இல்லாத சங்கிலியில் ஒரு பிணைப்பு அடுத்த எல்லையில் எடையாகிறது. சங்கிலி 20-இல் அது மேலும் இரண்டு காலகட்டங்களுக்கும், எல்லையில் உள்ள செயலில் பிணைக்கப்பட்ட எடையின் 2,500 bps என்ற காலகட்டத்துக்கான நுழைவு ஒதுக்கீட்டுக்கும் (தொகுப்பு 26,000 வைத்திருக்கும் வரை 6,500 RAND) காத்திருக்கிறது; மேலும் புதிய சரிபார்ப்பாளரைப் பதிவு செய்யும் பிணைப்பு, தொகுப்பு முதலில் AdmitValidator மூலம் அந்தத் திறவுகோலை வாக்களித்து ஏற்றிருந்தால் அன்றி மறுக்கப்படுகிறது (staking.admission_by_vote). சங்கிலி 19-இன் ஒதுக்கீடு ஒரு காலகட்டத்துக்கு நிலையான 10,000 RAND; அதில் சேர்க்கை வாக்கு இல்லை. பிணைப்பு நீக்கம் அடுத்த எல்லையில் எடையைக் குறைக்கிறது; ஆனால் அந்தத் தொகை திரும்பப் பெறக்கூடியதாக ஆக இரண்டு காலகட்டங்கள் காத்திருக்கிறது. rand_getEpoch காலகட்டம், காலகட்ட நீளம், அடுத்த தொகுப்பின் கணிப்பு ஆகியவற்றைத் தருகிறது. பங்கு வைப்பு காண்க.
ஒரு தொகுதி கொண்டிருப்பவை
{
"hash": "647b…", "height": 50, "view": 92, "parent": "2d41…",
"proposer": "3v3VBJ…", "timestamp_ms": 1788000123456,
"tx_root": "0000…", "state_root": "a1b2…", "justify_view": 91,
"tx_count": 0, "transactions": []
}
view என்பது தொகுதி முன்மொழியப்பட்ட பார்வை; justify_view என்பது அது தன் பெற்றோருக்காகக் கொண்டுள்ள QC-இன் பார்வை. timestamp_ms அடுத்த பிரிவின் வரம்புகளுக்குள் முன்மொழிவாளரால் அமைக்கப்படுகிறது. state_root தொகுதிக்குப் பிந்தைய பேரேட்டுக்கான உறுதிமொழியாகும். சங்கிலி 20-இல்:
inner = blake3("rand-state-8" || tree_root || nullifier_root || validators_root || programs_root
|| bridge_root || tokens_root
|| faucet_epoch || faucet_minted_in_epoch || bond_queue_root
|| gas_price || byte_price
|| program_state_root)
state_root = blake3("rand-state-admitted-1" || inner || admitted_root)
சங்கிலி 19 அதே புலங்களை program_state_root இல்லாமல், rand-state-7-இன் கீழ், உறை இன்றி உறுதிப்படுத்தியது.
கூறுகள் genesis-ஐப் பொறுத்தவை. விருப்பப் பிரிவுகள் எதுவும் இல்லாத சங்கிலி முதல் நான்கையும் rand-state-2 கீழ் உறுதிசெய்கிறது. ஒரு bridge பிரிவு bridge_root-ஐச் சேர்க்கிறது. ஒரு tokens பிரிவு அதன் பின் tokens_root-ஐச் சேர்த்து, முழு ஹாஷையும் rand-state-4 டொமைனுக்கு மாற்றுகிறது; bridge பிரிவு உள்ள genesis-இல் tokens பிரிவும் இருக்க வேண்டும், எனவே சங்கிலி 20-இல் இரண்டும் உள்ளன. ஒரு aggregation பிரிவு அடுத்ததாக aggregator-களின் வேரைச் சேர்க்கிறது (டோக்கன்கள் இல்லாத சங்கிலியில் rand-state-3 கீழ்); சங்கிலி 20-இல் அது இல்லை. ஒரு staking பிரிவு faucet-இன் இரண்டு epoch எண்ணிகளையும் பிணைப்பு வரிசையின் வேரையும் (rand-bond-queue-1) கடைசியாகச் சேர்த்து, வேறு எவை இருந்தாலும் முழு ஹாஷையும் rand-state-5 டொமைனுக்கு மாற்றுகிறது; சங்கிலி 14-இல் அத்தகைய பிரிவு இல்லாததால் அது rand-state-4 கீழ் ஹாஷ் செய்யப்பட்டது, சங்கிலிகள் 15 முதல் 17 வரை rand-state-5 கீழ் ஹாஷ் செய்யப்பட்டன. ஒரு vesting பிரிவு அதன் பின் vesting பதிவேட்டின் வேரைச் சேர்த்து, ஹாஷை rand-state-6 டொமைனுக்கு மாற்றுகிறது; சங்கிலி 20-இல் அது இல்லை. dynamic கட்டுப்படுத்தியுடன் கூடிய ஒரு gas பிரிவு, நடப்பு gas_price, byte_price ஆகியவற்றை, ஒவ்வொன்றும் big-endian u64 ஆக, மற்ற அனைத்திற்கும் பின் சேர்த்து, ஹாஷை rand-state-7 டொமைனுக்கு மாற்றுகிறது. அது சங்கிலி 19-இன் டொமைன்; சங்கிலி 20 விலைகளைத் தன் வேரில் வைத்திருக்கிறது: அவை ஒரு தொகுதிக்கு ஒருமுறை, தொகுதியின் பரிவர்த்தனைகளுக்குப் பின்னும் வேருக்கு முன்னும் மாறுகின்றன (கட்டணங்கள்). நிலையான விலைகள் கொண்ட gas பிரிவு வேரில் இடம்பெறாது. ஒரு program_state பிரிவு (RPL-2) ஒவ்வொரு நிரலின் cell-கள் மற்றும் vault-களின் வேரை விலைகளுக்குப் பின் சேர்த்து, ஹாஷை rand-state-8 டொமைனுக்கு மாற்றுகிறது: அதுவே சங்கிலி 20-இன் டொமைன். Audit v6-இன் staking நிலை அதனுள் அல்லாமல் அதைச் சுற்றி இணைக்கப்படுகிறது: staking.admission_by_vote (சங்கிலி 20) கீழ் வேர் blake3("rand-state-admitted-1" || inner || admitted_root) ஆகும்; staking.slashing (இதுவரை எந்தச் சங்கிலியிலும் இல்லை) கீழ் இரண்டாவது உறை சிறைப்படுத்தப்பட்ட தொகுப்பைச் சேர்க்கிறது. tokens_root என்பது குறியீட்டு வரிசையிலுள்ள blake3("rand-token-leaf-1" || bincode(TokenInfo)) இலைகளின் Merkle வேர்; எனவே ஒவ்வொரு டோக்கனின் மெட்டாடேட்டா, அதிகாரம், mint_nonce, வழங்கல், ஒவ்வொரு பின்னணி ஆதாரத்தின் locked தொகை ஆகிய அனைத்தும் ஒருமித்த நிலை: ஒரு டோக்கன் வரிசையில் முரண்படும் இரண்டு முனைகள் சங்கிலியிலேயே முரண்படுகின்றன. சங்கிலி 20-இல் டோக்கன் வேர், பதிவேட்டு நீட்டிப்பையும் (max_tokens வரம்பு, எரிக்கப்பட்ட பதிவுக் கட்டணம், note மதிப்பு வரம்பு, பாலத்தின் நகரும் mint-வரம்புச் சாளரங்கள்) rand-token-registry-3 கீழ் இணைக்கிறது. பால வேர் உமிழ்ப்பாளர்கள், காப்பாளர் தொகுப்புகள், செலவிடப்பட்ட சான்றளிப்புச் சுருக்கங்கள், எரிப்பு வரிசை எண், PQ காப்பாளர் விசைகள், இடைநிறுத்த விசை, இடைநிறுத்தக் கொடி, இரண்டு ஆளுகை nonce-கள் ஆகியவற்றை உள்ளடக்குகிறது; சொத்துப் பதிவேடு அதிலிருந்து tokens_root-க்கு மாற்றப்பட்டது. சங்கிலி 20-இன் பாலத்தில் rules_v2 உள்ளது, எனவே சுழற்சி nonce-உம் உலகளாவிய வரம்பு அளவுருக்களும் சேர்க்கப்பட்டு டொமைன் rand-bridge-state-5 ஆகிறது (சங்கிலி 14-இல் அது rand-bridge-state-4); அந்த வேர் பின்னர் உள்வரும் மறுஇயக்கத் தளத்தால் (rand-bridge-replay-floor-1) உறையிடப்படுகிறது; சங்கிலி 20-இல் சுழற்சி விதிகள் மற்றும் நிலுவையிலுள்ள சுழற்சிகளாலும் (rand-bridge-rotation-1), கட்டணக் குழுவாலும் (rand-bridge-fees-1) உறையிடப்படுகிறது. சரிபார்ப்பாளர் பதிவேடு validators_root-இல் ஹாஷ் செய்யப்படுகிறது (சங்கிலி 20-இல் ஒவ்வொரு வரிசையின் activation_epoch உடன் இலை டொமைன் rand-validator-leaf-4; staking பிரிவு இல்லாத சங்கிலியில் rand-validator-leaf-2), எனவே பதிவேட்டின் ஒரு வரிசையில் முரண்படும் முனை சங்கிலியிலேயே முரண்படுகிறது.
தொகுதி நேரம் வரம்புக்குட்பட்டது (B2)
பாலம் இணைக்கப்பட்ட சங்கிலியில், காப்பாளர் தொகுப்பின் காலாவதியையும், ஒரு பின்னணி ஆதாரத்தின் தினசரி mint வரம்பு எந்த நாளுக்குக் கணக்கிடப்படுகிறது என்பதையும் தொகுதியின் நேரமுத்திரை தீர்மானிக்கிறது; எனவே கடிகாரத்தை முன்னோக்கித் தாவச் செய்யக்கூடிய ஒரு தலைமை முனை, சுழற்றப்பட்ட தொகுப்பின் சலுகைச் சாளரத்தை முன்கூட்டியே காலாவதியாக்கவோ ஒரு நாளின் வரம்பைத் தாண்டிச் செல்லவோ முடியும். சங்கிலி 20-இல் bridge பிரிவு உள்ளது, எனவே மூன்று விதிகள் பொருந்துகின்றன, அனைத்தும் அதைச் சார்ந்தவை:
| விதி | வரம்பு | வகை |
|---|---|---|
| பின்னோக்கல் இல்லை | timestamp_ms ≥ parent.timestamp_ms (சமம் அனுமதிக்கப்படுகிறது), இல்லையெனில் BlockError::TimestampRewind; முன்மொழிபவர் max(now, parent.timestamp_ms)-ஐ வெளியிடுகிறார் | செல்லுபடித்தன்மை, மறுஇயக்கத்திலும் ஒத்திசைவிலும் சரிபார்க்கப்படுகிறது |
| தாவல் இல்லை | timestamp_ms ≤ parent.timestamp_ms + MAX_TIMESTAMP_STEP_MS (60,000 ms), இல்லையெனில் BlockError::TimestampLeap | செல்லுபடித்தன்மை, மறுஇயக்கத்திலும் ஒத்திசைவிலும் சரிபார்க்கப்படுகிறது |
| கடிகார விலகல் | தன் சொந்தக் கடிகாரத்தைவிட MAX_CLOCK_DRIFT_MS (15,000 ms)-க்கு மேல் முன்னிருக்கும் தொகுதிக்கு சரிபார்ப்பாளர் வாக்களிக்க மறுக்கிறார் | வாக்கு விதி மட்டுமே: தொகுதி ஊக மரத்தில் தொடர்கிறது, கடிகாரங்கள் ஒத்துப்போகும் கோரம் அதை இன்னும் சான்றளிக்க முடியும், உறுதிசெய்யப்பட்ட வரலாற்றை மறுஇயக்கும்போது இது ஒருபோதும் பொருந்தாது |
பாலம் இணைக்கப்பட்ட சங்கிலியிலுள்ள ஒவ்வொரு சரிபார்ப்பாளருக்கும் NTP தேவை. கடிகாரம் 15 வினாடிகளுக்கு மேல் பிழையாக உள்ள சரிபார்ப்பாளர் ஒரு குறைபாடுள்ள தலைமை முனை (அதன் முன்மொழிவுகளுக்கு வாக்குகள் கிடைக்காமல் போகலாம்), ஒரு குறைபாடுள்ள வாக்காளரும் கூட (நேர்மையான தலைமை முனையின் சரியான நேரத் தொகுதியை அது மறுக்கலாம்). நேர்மையான பெரும்பான்மையின் கடிகாரங்கள் ஒத்துப்போகும் வரை இவ்விரண்டில் எதுவும் சங்கிலியை நிறுத்தாது; ஆனால் ஒத்திசைக்கப்படாத முனைத் தொகுப்பு காரணமின்றி இயக்கத் தொடர்ச்சிக்கான இடைவெளியை இழக்கிறது.
genesis timestamp_ms உண்மையான தொடக்க நேரத்திற்கு அருகில் இருக்க வேண்டும். மிகவும் கடந்த காலத்தில் இருந்தால், படி வரம்பு அதைப் பிடிக்க அனுமதிக்கும் வரை, தொகுதிக்கு அதிகபட்சம் 60 s என்ற அளவில், தொகுதி நேரம் சுவர்க் கடிகாரத்தைவிடப் பின்தங்கும். 15 s-க்கு மேல் எதிர்காலத்தில் இருந்தால் தொகுதி 1 உறுதிசெய்யப்படவே மாட்டாது: சுவர் நேரம் அதை அடையும் வரை, தலைமை முனையின் சொந்த வாக்கு உட்பட, ஒவ்வொரு வாக்கும் நிறுத்திவைக்கப்படும். நீண்ட நிறுத்தத்திற்குப் பின், இதே பிடிப்பு ஒரு mint-வரம்பு நாளை உண்மையான ஒரு நாளுக்கு ஒருமுறை என்பதைவிட வேகமாக மாற்றக்கூடும்; இது திரண்ட பின்தங்கலின் ஒவ்வொரு முழு நாளுக்கும் ஒரு கூடுதல் நாள் வரம்பு என்ற அளவுக்குக் கட்டுப்படுத்தப்பட்டுள்ளது.
ஒரு கிளையண்டுக்கான இறுதித்தன்மை
rand_getTransaction(hash)ஒரு தொகுதியைத் திருப்பும்போது பரிவர்த்தனை இறுதியானது.rand_sendTransactionஏற்பது mempool-இல் சேர்ப்பது மட்டுமே.- RPC வழங்கும் அல்லது explorer குறியிடும் தொகுதி உறுதிசெய்யப்பட்டதே. காத்திருக்க வேண்டிய இறுதித்தன்மைச் சாளரம் எதுவும் இல்லை; explorer-இன் வழிகாட்டியும் இதையே கூறுகிறது.
rand_subscribe["newHeads"]இலிருந்து வரும் தலை, முனை இழக்காத தலையாகும்: தொகுதி சேமிப்பகத்தில் உறுதிசெய்யப்படுவதற்கு முன் எதுவும் அனுப்பப்படுவதில்லை.- பின்தங்கும் முனை அனைத்தையும் மீண்டும் சரிபார்க்கிறது: ஒத்திசைக்கப்பட்ட தொகுதியை ஏற்பதற்கு முன் ஒவ்வொரு சான்றிதழ், ஒவ்வொரு தொகுப்பு மற்றும் அழைப்பு நிரூபணம், ஒவ்வொரு ரசீது. இறுதித்தன்மைக் கையொப்பங்கள் நிரூபணங்களுக்குப் பதிலாக ஒருபோதும் நம்பப்படுவதில்லை.
மீட்புக் குறிப்புத்தாள், முழு முனையின் சொந்தக் குறிப்புத்தாளிலிருந்து: குறைந்த peer_count உடன் உயரம் முன்னேறவில்லை என்றால் அது வலையமைப்புச் சிக்கல்; peer-கள் சரியாக இருந்தும் உயரம் முன்னேறவில்லை என்றால் stake-இன் 2/3-க்கும் குறைவானது இணையத்தில் உள்ளது என்று பொருள்; தொடக்கத்தில் CORRUPT CHAIN என்றால் முனை சேதமடைந்த வால்பகுதியை வெட்டிவிட்டு மீண்டும் ஒத்திசைக்கிறது என்று பொருள்.