Erigon Segment Integrity Check
The erigon seg integrity command runs integrity checks on an Erigon datadir to verify that snapshot and segment files are valid and consistent.
Prerequisites
- Erigon must be stopped - The command requires exclusive access to the datadir
- Binary must be built - Run
/erigon-buildfirst if the binary doesn't exist - Datadir must exist - A synced Erigon datadir with blockchain data
Command Syntax
./build/bin/erigon seg integrity --datadir=<path>
Replace <path> with the actual path to your Erigon data directory.
Available Flags
--check— Comma-separated list of specific checks to run (default: all default checks)--skip-check— Comma-separated list of checks to exclude from the run--failFast— Stop after the first problem is found (default:true). Set tofalseto continue and collect all warnings--file-integrity-cache— Path to a cache file that speeds up repeated runs. Setting it also enables a torrent piece-hash verification pass before the checks--skip-check TorrentPieces— Skip that torrent verification pass; it is a named check like any other
Discovering Available Checks
The list of available checks is dynamic and changes over time as new checks are added or removed. Do NOT assume a fixed list. Instead, discover the current checks by running:
./build/bin/erigon seg integrity --help
Look at the --check flag description in the output — it lists all currently available check names.
Workflow
When the user wants to run integrity checks:
- Ask for the datadir path if not already provided
- Verify prerequisites
- Check the datadir exists
- Ensure Erigon is not running (file lock will prevent concurrent access)
- Build the binary if needed
- Discover available checks by running
--helpif the user wants to run or skip specific checks - Execute the command with the appropriate flags
- Interpret the output — report any errors or warnings found
Examples
Run all default checks
./build/bin/erigon seg integrity --datadir=/data/erigon
Run a specific check only
First discover available checks via --help, then:
./build/bin/erigon seg integrity --datadir=/data/erigon --check=<check_name>
Skip a specific check
./build/bin/erigon seg integrity --datadir=/data/erigon --skip-check=<check_name>
Continue past failures instead of stopping
./build/bin/erigon seg integrity --datadir=/data/erigon --failFast=false
Important Notes
- File Lock: If Erigon is running, the command will fail due to file lock
- Long running: Integrity checks can take significant time on large datadirs, especially mainnet
- Torrent verification scope: With
--file-integrity-cacheset, the pre-pass scans<datadir>/snapshotsrecursively — top-level block segments pluscaplin/,domain/,history/,idx/,accessor/. On a mainnet archive datadir that is roughly 2.6x the files of the top-level set; use--skip-check TorrentPiecesto skip it - Torrent verification exit code:
--failFast=falseonly means "verify every file before giving up" — a piece-hash mismatch, a path undersnapshots/the scan could not read, or an interrupted run all still exit non-zero. A partial or failed scan is never reported as a pass - Discover checks dynamically: Always use
--helpto find the current list of available checks rather than assuming fixed names