/bitcoin

Laanwj's Bitcoin Core fork - see README.md on master branch

Laanwj's Bitcoin Core repository

In progress

Security

Hashing performance

Wallet database experiments

  • 20170310_experiment_leveldb_wallet Experiment with wallet running LevelDB as wallet backend instead of BerkeleyDB. At the time of writing passes the unit tests and QA tests apart from backupwallet which isn't implemented at the moment..

UTXO database experiments

  • 2016_04_mdb LMDB experiment - change UTXO and block index DB to use LMDB (aka "Symas Lightning Memory-Mapped Database") instead of LevelDB.

  • 2016_04_dummy_db Dummy database experiment - This replaces the block index and UTXO database with an in-memory data structure which is read from disk at start, and written to disk at shutdown. There are no intermediate flushes.

  • 2016_04_leveldb_sse42_crc32c_test Use SSE4.2 CRC32C instructions in LevelDB. LevelDB uses this cyclic redundancy check for integrity verification. See also crcbench, to see the difference in raw throughput.

Statistics and notifications

  • zmq mempool notifications: Add notifications when transactions enter or leave the mempool.

  • bc-monitor: ncurses (console) tool for monitoring a bitcoind instance (see discussion in PR #7753). To be released soon.

HTTP streaming

This is still very unstable.

  • Add a streaming API to the HTTP server. This allows streaming data to the client chunk by chunk, which is useful when not the entire data is available at once or it is huge and wouldn't fit (efficiently) in memory.

  • Allows downloading the entire UTXO set through /rest/utxoset. This is a raw dump of all outputs, the state normally hashed by gettxoutsetinfo. The dump is performed in the background by making use of leveldb snapshotting, so without keeping cs_main locked.

    • This can be useful for analysis purposes if you don't want to mess with bitcoin core's database
    • Filename (via content-disposition) is utxoset-<height>-<bestblockhash>.dat. Also a custom X-Best-Block and X-Block-Height header is added.

See PR #7759 or the branch 2016_03_utxo_streaming.

Documents and notes

Scripts