Continuing the discussion from 0.17.1rc1 Reindex speed (one drive):
OK, my full txindex experiment. I ran with this in my
[main] debug=1 #assumevalid=0 #reindex=1 txindex=1
The system was already fully synced before I started the txindex, so the timing is just for adding the txindex to an existing node. The node appeared fully functional while added the index.
Note: typical people running a full node on their computer don’t need the txindex enabled. It’s necessary for some services, and it makes it possible to look up any transaction quickly. If you use the full node as a wallet, it will keep an index of all of your transactions whether or not you enable txindex. If you enable it, the node will will keep an index of all transactions. (This needs to be done by the nodes used by blockchain explorers, some services providers, etc.)
Here goes - start:
2019-09-28T18:00:22Z Opening LevelDB in D:\BitcoinGold\indexes\txindex 2019-09-28T18:00:22Z leveldb: Delete type=3 #1 2019-09-28T18:00:22Z Opened LevelDB successfully 2019-09-28T18:00:22Z Using obfuscation key for D:\BitcoinGold\indexes\txindex: 0000000000000000 2019-09-28T18:00:22Z init message: Loading wallet... 2019-09-28T18:00:22Z txindex thread start 2019-09-28T18:00:22Z [default wallet] nFileVersion = 170100 2019-09-28T18:00:22Z [default wallet] Keys: 2007 plaintext, 0 encrypted, 2007 w/ metadata, 2007 total. Unknown wallet records: 1 2019-09-28T18:00:22Z [default wallet] Wallet completed loading in 184ms 2019-09-28T18:00:22Z Syncing txindex with block chain from height 1 2019-09-28T18:00:22Z [default wallet] setKeyPool.size() = 2000 2019-09-28T18:00:22Z [default wallet] mapWallet.size() = 4 2019-09-28T18:00:22Z [default wallet] mapAddressBook.size() = 6 2019-09-28T18:00:22Z WriteBatch memory usage: db=txindex, before=0.0MiB, after=0.0MiB
2019-09-28T19:57:05Z WriteBatch memory usage: db=txindex, before=14.4MiB, after=14.4MiB 2019-09-28T19:57:05Z WriteBatch memory usage: db=txindex, before=14.4MiB, after=14.4MiB 2019-09-28T19:57:05Z txindex is enabled at height 601005 2019-09-28T19:57:05Z txindex thread exit
Am quite surprised that only took two hours! It probably helped that I got my issues sorted out with my disappearing symlinks - at this point, my block index, chainstate, and txindex are all on the SSD, while the node software, logs, and blocks are all on the hard drive. (And my system memory is pretty good at 24 GB.)
Obviously, it takes space. Here’s where I stand on disk usage at this point:
- All the folders on the C: (SSD) drive take up 15.5 GB.
- The new txindex files are 12.7 GB of that.
- The chainstate takes 2.5 GB
- The block index takes 0.3 GB
- The folders on the D: (HD) drive take up 152 GB
- This includes the actual blocks, which are more than 151 GB, by themselves.
My system is nothing special - and old workstation I bought at the end of 2017 as a refurb on sale. Hardware from 2012 or 2013, except that I replaced the hard drives and added memory. These threads are turning into something of a performance report, so I’ll document the details for posterity: