LearnBitcoin

Bitcoin Dev Archive 2014

What is the danger if bitcoind startted with -flushwallet=false ?

2 messages, 13 Aug 2014. Started by KingK.Pan.

KingK.Pan, Wladimir J. van der Laan

Permalink Original thread on gnusha.org

KingK.Pan permalink original

Hi everybody,

    I tried to reduce the IO of bitcoind, and I found '-flushwallet=false'.
After trying it, my IO reduced greatly.
    But why 'flushwallet' is true by default? Is there any danger if
closing the flush wallet thread?
    I lost all my coins in testnet after one crash with
'-flushwallet=false', was this because of no flush wallet thread?
  --
  Qing Qing Pan
  okcoin.com
Wladimir J. van der Laan in reply to KingK.Pan permalink original

On Wed, Aug 13, 2014 at 6:22 PM, 潘庆庆 <qingqing.pan@okcoin•com> wrote:

Quoted text (5 lines)
> Hi everybody,
>
>     I tried to reduce the IO of bitcoind, and I found '-flushwallet=false'. After trying it, my IO reduced greatly.
>     But why 'flushwallet' is true by default? Is there any danger if closing the flush wallet thread?
>     I lost all my coins in testnet after one crash with '-flushwallet=false', was this because of no flush wallet thread?

When flushwallet is disabled, the wallet is not flushed (written to disk in a self-contained state) periodically. This means that there's a larger chance that the wallet database is in inconsistent state when the process stops unexpectedly. This can happen either due to a crash, or an external cause such as the power turning off unexpectedly.

With the wallet in non-self-contained state, the next time that you start bitcoind BerkeleyDB will have to process log files. There is a non-zero chance that this will fail and manual recovery is needed.

As the wallet is usually critical, it is unwise to disable that option.

Wladimir