diff options
author | Pieter Wuille <pieter.wuille@gmail.com> | 2013-01-03 15:29:07 +0100 |
---|---|---|
committer | Pieter Wuille <pieter.wuille@gmail.com> | 2013-01-04 14:58:47 +0100 |
commit | 1f355b66cd90f1bd96a862604a7216e8ba56f853 (patch) | |
tree | 05998e9ab46b5fe669211a5c0675fa8a8d73ac23 /src/main.h | |
parent | 8539361e66eace839060f77f39b770d045e7ce28 (diff) |
New database check routine
-checklevel gets a new meaning:
0: verify blocks can be read from disk (like before)
1: verify (contextless) block validity (like before)
2: verify undo files can be read and have good checksums
3: verify coin database is consistent with the last few blocks
(close to level 6 before)
4: verify all validity rules of the last few blocks
Level 3 is the new default, as it's reasonably fast. As level 3 and
4 are implemented using an in-memory rollback of the database, they
are limited to as many blocks as possible without exceeding the
limits set by -dbcache. The default of -dbcache=25 allows for some
150-200 blocks to be rolled back.
In case an error is found, the application quits with a message
instructing the user to restart with -reindex. Better instructions,
and automatic recovery (when possible) or automatic reindexing are
left as future work.
Diffstat (limited to 'src/main.h')
-rw-r--r-- | src/main.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/main.h b/src/main.h index 557df8bc5f..2e3e1c5efe 100644 --- a/src/main.h +++ b/src/main.h @@ -126,6 +126,8 @@ FILE* OpenUndoFile(const CDiskBlockPos &pos, bool fReadOnly = false); bool LoadExternalBlockFile(FILE* fileIn, CDiskBlockPos *dbp = NULL); /** Load the block tree and coins database from disk */ bool LoadBlockIndex(); +/** Verify consistency of the block and coin databases */ +bool VerifyDB(); /** Print the loaded block tree */ void PrintBlockTree(); /** Find a block by height in the currently-connected chain */ |