This audit traces how the VirtaCoin source handles an incoming block: validation → proof-of-work → transactions → Merkle root → UTXO state → block index → most-work selection → disconnect/connect → active-chain update. The page separates source-verified behavior from measurements that still require a live network test.
CheckBlock() rejects empty/oversized blocks and enforces MAX_BLOCK_SIZE serialization limits.
CheckBlock() validates the PoW hash against nBits; AcceptBlock() also requires the exact target from GetNextWorkRequired().
CheckBlock() rejects blocks more than 2 hours in the future; AcceptBlock() requires block time to be greater than the previous chain median-time-past.
The first transaction must be coinbase and later transactions must not be coinbase.
Every transaction is passed through CheckTransaction(); duplicate transaction IDs are rejected.
The block builds its Merkle tree and compares the computed root with hashMerkleRoot.
CheckBlock() counts legacy signature operations and rejects blocks above MAX_BLOCK_SIGOPS.
AcceptBlock() rejects nBits that do not equal GetNextWorkRequired(previous block, block).
AcceptBlock() checks IsFinalTx() for every transaction using the candidate height and block time.
AcceptBlock() applies checkpoint checks and rejects forks older than the last checkpoint.
ConnectBlock() checks the prior UTXO view, validates inputs/scripts, fees and coinbase value, then advances the view best-block pointer.
DisconnectBlock() reads undo data, reverses transactions, restores spent outputs and moves the UTXO best-block pointer to the previous block.
CBlockIndexWorkComparator orders candidates by nChainWork; FindMostWorkChain() excludes candidates with failed ancestors.
ActivateBestChain() disconnects active blocks no longer in the selected chain and connects the replacement chain.
Unknown-parent blocks are stored in orphan maps, pruned when necessary, and retried after their parent arrives.
The source code path is verified, but this website has not performed a controlled live network-wide reorganization test.
No independently verified current network-wide reorg frequency/depth dataset is available from the local bridge.