38PASS
0FAIL
6NOT MEASURED
How to read this. A PASS means the live chain matched an expectation written down before the chain was asked. A NOT MEASURED line is not a confirmation: it names something this toolkit cannot decide from a public endpoint, and it is listed instead of hidden. The toolkit refuses to report green unless its own self-test, which plants twenty-one deliberate defects, catches every one first.
0. The endpoint PASS 1 · FAIL 0 · NOT MEASURED 0
| check | claim | expected | observed | verdict |
|---|---|---|---|---|
| lant.chainId | the endpoint serves the chain this toolkit is written about | 2800 | 2800 | PASS |
1. Post-quantum precompiles on the live chain PASS 17 · FAIL 0 · NOT MEASURED 1
| check | claim | expected | observed | verdict |
|---|---|---|---|---|
| pqc.punct-final.corp-mare | this endpoint accepts a request large enough to carry an SLH-DSA verification (~11.8 KB of calldata). A failure HERE is about the endpoint in front of the node, not about the chain | accepts 12000 bytes of calldata | accepts 12000 bytes of calldata | PASS |
| pqc.calibrare.identity | gas ruler calibrated on the identity precompile 0x04 at the Yellow Paper price 15+3*ceil(len/32) | 21 | 21 | PASS |
| pqc.gaz.FALCON512 | 0x0000000000000000000000000000000000000ae1 burns exactly the gas its published source declares for a 64-byte input | 40000 | 40000 | PASS |
| pqc.gaz.FALCON1024 | 0x0000000000000000000000000000000000000ae2 burns exactly the gas its published source declares for a 64-byte input | 75000 | 75000 | PASS |
| pqc.gaz.MLDSA44 | 0x0000000000000000000000000000000000000ae3 burns exactly the gas its published source declares for a 64-byte input | 55000 | 55000 | PASS |
| pqc.gaz.SLHDSA128S | 0x0000000000000000000000000000000000000ae4 burns exactly the gas its published source declares for a 64-byte input | 350000 | 350000 | PASS |
| pqc.control.adresa-goala | an address in the same band with nothing behind it burns 0 extra gas, so a nonzero charge above is not an artefact of the method | 0 | 0 | PASS |
| pqc.testnet-only.MLKEM768_TESTNET_ONLY | 0x0000000000000000000000000000000000000ae6 is TESTNET ONLY and is NOT active on this chain | 0 | 0 | PASS |
| pqc.testnet-only.HASHTOPOINT_TESTNET_ONLY | 0x0000000000000000000000000000000000000ae7 is TESTNET ONLY and is NOT active on this chain | 0 | 0 | PASS |
| pqc.falcon512.kat | 0x0AE1 accepts every reference Falcon-512 signature and rejects every one-bit mutation of it (8 accept, 8 reject) | 8/8 | 8/8 | PASS |
| pqc.mldsa44.acvp | 0x0000000000000000000000000000000000000ae3 agrees on every vector, accepts and rejects alike (3 accept, 12 reject) -- NIST wrote the reject cases, not us | 3/12 | 3/12 | PASS |
| pqc.slhdsa128s.acvp | 0x0000000000000000000000000000000000000ae4 agrees on every vector, accepts and rejects alike (2 accept, 12 reject) -- NIST wrote the reject cases, not us | 2/12 | 2/12 | PASS |
| pqc.shake256.acvp | 0x0AE5 reproduces every NIST ACVP SHAKE-256 digest byte for byte (139 vectors) | 139 | 139 | PASS |
| pqc.shake256.oracol-local | the toolkit's own pure-JS SHAKE256 agrees with NIST on the same vectors, so a chain match is a three-way agreement and not two copies of one mistake | 0 | 0 | PASS |
| pqc.falcon1024.parametru-gresit | 0x0AE2 rejects a Falcon-512 input, so it is not a stub that answers 1 to anything | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | PASS |
| pqc.falcon1024.executa | 0x0AE2 returns a full 32-byte word rather than the empty 0x an absent address returns | 66 | 66 | PASS |
| pqc.falcon1024.acvp | 0x0000000000000000000000000000000000000ae2 agrees on every vector, accepts and rejects alike (2 accept, 3 reject) -- the accept vectors carry a NIST round-3 attribution this kit passed through without verifying, and the reject vectors are our own bit-flips, because NIST publishes no Falcon suite | 2/3 | 2/3 | PASS |
| pqc.consens | whether block sealing uses a post-quantum signature | null | null | NOT MEASURED |
2. Block interval, measured PASS 4 · FAIL 0 · NOT MEASURED 2
| check | claim | expected | observed | verdict |
|---|---|---|---|---|
| interval.banda | every one of 4 disjoint 2000-block windows near the head gives a block interval inside the stated band | 0.62 .. 0.7 s | 0.6545 .. 0.6635 s | PASS |
| interval.banda-masurabila | the declared band is wider than what 2000-block windows can resolve, so a verdict on it is a statement about the chain rather than about timestamp truncation | > 0.00100 s, which is 2/K | 0.08000 s | PASS |
| interval.imprastiere | the 4 windows disagree by 0.00900 s, so the rate is quoted as +/- 0.00450 s, dominated by the disagreement between windows; with that margin included the figure still fits inside the declared band, so one number honestly describes this sample | 0.62 .. 0.7 s | 0.65363 .. 0.66263 s | PASS |
| interval.regimuri | the chain has run at more than one speed: a 2000-block window at height 1000000 gives 1.00000 s against 0.65813 s now, which is why one average over the whole life describes neither | > 0.01000 s apart | 0.34187 s apart | PASS |
| interval.cauza | why the current rate is what it is, and whether it will hold | null | null | NOT MEASURED |
| interval.varianta-reala | how much of the window-to-window spread is a real change of speed and how much is sampling noise | null | null | NOT MEASURED |
3. Validator set, read out of headers PASS 8 · FAIL 0 · NOT MEASURED 1
| check | claim | expected | observed | verdict |
|---|---|---|---|---|
| validatori.numar | every one of 200 sampled headers publishes the same validator count | 10 | 10 | PASS |
| validatori.set-stabil | the validator MEMBERSHIP is byte-identical across all 200 sampled headers | 1 | 1 | PASS |
| validatori.forma-antet | every sampled header has the form legal at its height (ECDSA committed seals below block 25,080,000, AIP-22 stage 5; from it no ECDSA seal and one post-quantum proposer seal) | 0 headers in the wrong form | 0 (0 ECDSA-form, 200 stage-5 form) | PASS |
| validatori.cvorum-sigilii | every sampled block is sealed as its form requires: at least ceil(2*10/3) = 7 ECDSA committed seals before stage 5, none and one proposer seal of a row of the published set from it | 0 ECDSA seals, 1 proposer seal | 200 stage-5 headers, 0 off | PASS |
| validatori.propunator-membru | the proposer of every sampled block is a member of the validator set that same block publishes | 200 | 200 | PASS |
| validatori.recensamant | distinct proposers actually seen producing blocks in the sample -- configured is not the same as producing | 10 | 10 | PASS |
| validatori.lungime-sigiliu | header seals have the size of their form: 65-byte secp256k1 ECDSA committed seals before stage 5, a 600 to 700 byte Falcon-512 proposer seal from it | 600..700 | 649..660 | PASS |
| validatori.rpc-vs-antet | the qbft_getValidatorsByBlockNumber RPC method agrees with what the headers themselves carry -- if these ever differ, believe the headers | 0x38fb1510d4d11624564a74e6ebfd752e666849c3,0x542191c95aa291abc9bc78cd4a2336898aafcce5,0x6aebb6786ee10756b5e4c7b9910e800be286314c,0x824635f3e11b5702d32668588878eacbf0a76b3f,0xbbeecc251b373fecd3462527fc589879b1c1f49f,0xc4ecae0e104fd8ab19bcc4708abd0cdb1180692d,0xcad2ca4b26d3096f0fc3ffb221033e6d7b424a6a,0xd22e71400eee01f4f70eccd3e20f838a4649d11c,0xd55ec6319fb9ccb57900799f771106752c425001,0xf58a3907d9b97b62dc227272997d4abba02e4fba | 0x38fb1510d4d11624564a74e6ebfd752e666849c3,0x542191c95aa291abc9bc78cd4a2336898aafcce5,0x6aebb6786ee10756b5e4c7b9910e800be286314c,0x824635f3e11b5702d32668588878eacbf0a76b3f,0xbbeecc251b373fecd3462527fc589879b1c1f49f,0xc4ecae0e104fd8ab19bcc4708abd0cdb1180692d,0xcad2ca4b26d3096f0fc3ffb221033e6d7b424a6a,0xd22e71400eee01f4f70eccd3e20f838a4649d11c,0xd55ec6319fb9ccb57900799f771106752c425001,0xf58a3907d9b97b62dc227272997d4abba02e4fba | PASS |
| validatori.cine-le-opereaza | who operates these 10 keys | null | null | NOT MEASURED |
4. On-chain contract fingerprints PASS 5 · FAIL 0 · NOT MEASURED 1
| check | claim | expected | observed | verdict |
|---|---|---|---|---|
| amprente.chainid | the endpoint being questioned is the chain this manifest was built against | 2800 | 2800 | PASS |
| amprente.citiri-instabile | no registered address answered the same pinned read-only eth_getCode two different ways during this run. A failure HERE is about the endpoint, not about the chain: it means a caller doing one read and believing it would have been told something false | 0 | 0 | PASS |
| amprente.neschimbate | all 185 registered contracts still carry exactly the runtime code the manifest recorded | 0 | 0 | PASS |
| amprente.sursa-publicata | the number of live contracts whose runtime code is byte-for-byte the output of a published compiled artifact | 34 | 34 | PASS |
| amprente.sursa-fara-metadata | the number of live contracts that match a published artifact only once the Solidity metadata trailer is stripped | 7 | 7 | PASS |
| amprente.restul | source provenance of the other 144 live registered contracts | null | null | NOT MEASURED |
5. Kernelul de executie, acord intre clienti PASS 2 · FAIL 0 · NOT MEASURED 1
| check | claim | expected | observed | verdict |
|---|---|---|---|---|
| kernel.acord | the Besu endpoint and the Nethermind endpoint report an IDENTICAL state root for every one of 16 recent blocks, both directions | agree | agree (16 blocks) | PASS |
| kernel.lant | each agreed block links to its parent on both clients, so the shared state roots sit on one continuous chain | links | links ok | PASS |
| kernel.dovezi | a public execution-proof endpoint exists so a stranger can also check the validity proof over each window | null | null | NOT MEASURED |
5. Endpoint behaviour during the run PASS 1 · FAIL 0 · NOT MEASURED 0
| check | claim | expected | observed | verdict |
|---|---|---|---|---|
| punct-final.raspunsuri-nereusite | this endpoint answered every one of 630 read-only questions on the first attempt, with no transport failure, no HTTP 5xx and no -32603. A failure HERE is about the endpoint, not the chain. 0 answer(s) only arrived after a retry, and 0 never arrived at all -- a caller who asked once and believed what came back would have been misled in the first case and stuck in the second | 0 | 0 | PASS |
Reproduce this report yourself
The toolkit is a single download, installs nothing, and talks only to a public RPC endpoint. Node 18 or newer.
curl -O https://aere.network/tools/verifica-lantul.tar.gz tar -xzf verifica-lantul.tar.gz && cd verifica-lantul node autotest.mjs # prove the toolkit can say NO node verifica.mjs --json report.json node genereaza-raport-conformitate.cjs report.json my-report.html