Skip to content

Commit

Permalink
Merge #20152: doc: Update wallet files in files.md
Browse files Browse the repository at this point in the history
defe48a doc: Update wallet files in files.md (Hennadii Stepanov)

Pull request description:

  This PR is a #19077 follow up, and it addresses the [comment](bitcoin/bitcoin#19077 (comment)):

  > If need to update, there are two corrections that could be made:
  >
  >  * Line 69 "Wallets are Berkeley DB (BDB) databases" is no longer true
  >
  >  * Line 76 "Wallet lock file" should say "BDB wallet lock file"

ACKs for top commit:
  RiccardoMasutti:
    ACK defe48a
  meshcollider:
    ACK defe48a

Tree-SHA512: 39939f86a9c7842bf06913998305dcbd6209585f1da0fe9c274bac0572eb8464e59176884dd9e2b91312f34efad40cdeb4085ec72c2a2c1b33d16b6ab505140c
  • Loading branch information
fanquake committed Oct 27, 2020
2 parents fa463f1 + defe48a commit 67d4643
Showing 1 changed file with 25 additions and 11 deletions.
36 changes: 25 additions & 11 deletions doc/files.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@

- [Multi-wallet environment](#multi-wallet-environment)

- [Berkeley DB database based wallets](#berkeley-db-database-based-wallets)

- [SQLite database based wallets](#sqlite-database-based-wallets)

- [GUI settings](#gui-settings)

- [Legacy subdirectories and files](#legacy-subdirectories-and-files)
Expand Down Expand Up @@ -67,26 +71,36 @@ Subdirectory | File(s) | Description

## Multi-wallet environment

Wallets are Berkeley DB (BDB) databases:
Wallets are Berkeley DB (BDB) or SQLite databases.

Subdirectory | File(s) | Description
-------------|-------------------|------------
`database/` | BDB logging files | Part of BDB environment; created at start and deleted on shutdown; a user *must keep it as safe* as personal wallet `wallet.dat`
`./` | `db.log` | BDB error file
`./` | `wallet.dat` | Personal wallet with keys and transactions. May be either a Berkeley DB or SQLite database file.
`./` | `.walletlock` | Wallet lock file
`./` | `wallet.dat-journal` | SQLite Rollback Journal file for `wallet.dat`. Usually created at start and deleted on shutdown. A user *must keep it as safe* as the `wallet.dat` file.

1. Each user-defined wallet named "wallet_name" resides in `wallets/wallet_name/` subdirectory.
1. Each user-defined wallet named "wallet_name" resides in the `wallets/wallet_name/` subdirectory.

2. The default (unnamed) wallet resides in `wallets/` subdirectory; if the latter does not exist, the wallet resides in the data directory.

3. A wallet database path can be specified by `-wallet` option.
3. A wallet database path can be specified with the `-wallet` option.

4. `wallet.dat` files must not be shared across different node instances, as that can result in key-reuse and double-spends due the lack of synchronization between instances.

5. Any copy or backup of the wallet should be done through a `backupwallet` call in order to update and lock the wallet, preventing any file corruption caused by updates during the copy.


### Berkeley DB database based wallets

Subdirectory | File(s) | Description
-------------|-------------------|-------------
`database/` | BDB logging files | Part of BDB environment; created at start and deleted on shutdown; a user *must keep it as safe* as personal wallet `wallet.dat`
`./` | `db.log` | BDB error file
`./` | `wallet.dat` | Personal wallet (a BDB database) with keys and transactions
`./` | `.walletlock` | BDB wallet lock file

### SQLite database based wallets

Subdirectory | File | Description
-------------|----------------------|-------------
`./` | `wallet.dat` | Personal wallet (a SQLite database) with keys and transactions
`./` | `wallet.dat-journal` | SQLite Rollback Journal file for `wallet.dat`. Usually created at start and deleted on shutdown. A user *must keep it as safe* as the `wallet.dat` file.


## GUI settings

`bitcoin-qt` uses [`QSettings`](https://doc.qt.io/qt-5/qsettings.html) class; this implies platform-specific [locations where application settings are stored](https://doc.qt.io/qt-5/qsettings.html#locations-where-application-settings-are-stored).
Expand Down

0 comments on commit 67d4643

Please sign in to comment.