I made files re-accessible. Now we could return to a later, already synchronized state with the files. I tried to put ./bitcoind -reindex-chainstate=0, also in a bitcoin.conf, also directly calling the conf. It goes on reindexing the chainstate.

2 Answers 2


-reindex-chainstate is an instant operation: it wipes a the chainstate (UTXO) database. It is performed at startup whenever the -reindex-chainstate command-line option, or the reindex-chainstate=1 config file parameter is provided. It cannot be interrupted, but it is so fast this is rarely a concern. It's equivalent to emptying the chainstate/ directory by hand, FWIW.

Whenever the chainstate is behind the blockchain (i.e., you have blocks in your blocks/ directory which haven't been processed yet), the missing blocks will automatically be processed. This will typically happen after a -reindex or -reindex-chainstate, but it can happen outside of those too. E.g. when you wipe the chainstate/ directory yourself, or maybe if restore it to an older backup without making the equivalent restoration of the blocks/ directory.

The naming of these options is somewhat confusing, because what they trigger isn't the actual reindexing, but just the wiping that preceeds it; the reindex is automatic, and progressive (it will continue where it left off if you shutdown and start again, unless you specify the reindex option again at startup; in that case, it is wiped again and you'll start over again).

FWIW, any option, including these, can be disabled using the "no" variant (-noreindex-chainstate here) or passing 0 (-reindex-chainstate=0). But, as explained, that just disables the wiping; it cannot undo a wipe, and thus cannot "abort" the reindexing, as Bitcoin Core cannot proceed without first processing all the blocks it has.


In -help, -reindex-chainstate doesn't advertise to be an assignable [string typed] argument.

This means it is a boolean argument.

Don't assign it zero. Remove it completely.


Non assignable argument, boolean:

       Rebuild chain state from the currently indexed blocks. When in pruning
       mode or if blocks on disk might be corrupted, use full -reindex

Assignable argument, type string, not boolean:

       Specify path to dynamic settings data file. Can be disabled with
       -nosettings. File is written at runtime and not meant to be
       edited by users (use bitcoin.conf instead for custom settings).
       Relative paths will be prefixed by datadir location. (default:
  • removing lets it go on reindexing
    – jubel
    Sep 30, 2021 at 7:09
  • let it reindex completely, then command it to close normally, let it finish normally; then try again and it shouldn't reindex
    – Mercedes
    Sep 30, 2021 at 7:12
  • It does. Even after switching to ´-reindex´ and ´bitcoin-cli stop´.
    – jubel
    Sep 30, 2021 at 7:20
  • It's impossible to abort reindexing, because it is an instant operation. Passing -reindex or -reindex-chainstate wipes certain parts of the database, at startup. The actual reindexing is what follows: the process of rebuilding the databases. Bitcoind cannot operate without those databases. Sep 30, 2021 at 14:06
  • seems to be right description according to src/init.cpp "// This is a no-op if we cleared the coinsviewdb with -reindex or -reindex-chainstate". Post it as a main answer? Dbs are supposed to be edited finely record by record, and this measure would have been of help.
    – jubel
    Sep 30, 2021 at 22:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.