Validator Client
The standalone validator package is
@botcoinmoney/coretex-client.
It installs as its own validator client and defaults to CPU replay. The current
npm latest is 0.2.0; bin names are unchanged.
npm install @botcoinmoney/coretex-client
Required environment:
export BASE_RPC_URL=https://mainnet.base.org
export CORETEX_REGISTRY_ADDRESS=0x...
export BOTCOIN_MINING_CONTRACT_ADDRESS=0x...
export CORETEX_ARTIFACT_BASE_URL=https://.../coretex/launch/v16
export CORETEX_REGISTRY_DEPLOY_BLOCK=<deploy-block>
Setup hydrates and verifies the public artifact set:
npx coretex-validator-setup --registry-deploy-block "$CORETEX_REGISTRY_DEPLOY_BLOCK"
Setup fetches coretex-launch-v16-artifacts.json, verifies payload SHA-256 and
byte sizes, materializes the production corpus, records the launch base corpus,
and bootstraps a pinned CPU scorer venv unless the operator opts out.
Sync replays chain state and verifies scoring evidence:
npx coretex-validator-sync
The default sync path:
- Reads V4
currentEpoch()and registry pins at one confirmed block tag. - Verifies bundle version, corpus root, frontier root, baseline hash, and hidden seed commitment.
- Uses the epoch-115 launch-recovery pin when applicable, verifying the pinned
parent root against
CoreTexRegistry.liveStateRoot(epoch)at block47358408before replay. - Falls back to state-deploy or env-deploy bootstrap when no recovery pin applies.
- Replays
CoreTexStateAdvancedlogs from the recovery/start block or prior cursor. - Recomputes each substrate root from public compact patch bytes.
- Checks local live root equals
CoreTexRegistry.liveStateRoot(epoch). - Before reveal, exits 0 with
awaiting_epoch_secret_reveal. - After reveal, fetches eval reports and re-scores accepted advances on CPU.
0.2.0 ships a Base mainnet epoch-115 launch-recovery pin for parent root
0x4c7e...73af at block 47358408, tx 0x92d5...587e, with the packed
32,768-byte substrate embedded and merkle-verified before use. This is the
normal sync path for post-incident clients. Use --full-history or
CORETEX_REPLAY_FULL_HISTORY=1 only when explicitly auditing the operator
incident from the legacy deploy-block path.
Useful replay controls:
# Replay a bounded historical window from a known parent substrate.
npx coretex-validator-sync \
--epoch <epoch> \
--from-block <block-containing-advance> \
--parent-state ./parent-state.bin
# Explicitly bypass launch recovery and audit full history.
npx coretex-validator-sync --full-history
# Provide a known corpus file for a historical corpus root, as a manual shortcut.
npx coretex-validator-sync \
--corpus-for-root 0x<corpusRoot>=./corpus-for-that-root.json
# Verify one post-reveal eval report by hash.
npx coretex-validator-sync verify-patch \
--hash 0x<evalReportHash> \
--epoch-secret 0x<revealedSecret> \
--parent-state ./parent-state.bin
--skip-score-replay exits with code 3. It is useful for root and artifact
checks, while a score attestation requires the pinned reranker path.