I haven't tried to symlink the chainstate yet, if it improves speed I'll go that way. And you just gave me the idea to symlink the blocks-directory, so I can have my data-directory and wallet on my SSD again.
Normally, a program just follows any symlink the file system shows. I disagree with the way Bitcoin Core rejects a symlinked wallet.dat.
I wouldn't be so happy storing it on a USB disk though, that risks unplugging and corrupting your data.
Test results
chainstate on hdd
When starting, "Verifying blocks" takes a long time.
Total time to start Bitcoin Core 0.15.1, and close it directly after popping up: 1m20.391s.
chainstate on ssd
When starting, "Verifying blocks" is much faster.
Total time to start Bitcoin Core 0.15.1, and close it directly after popping up: 0m22.246s.
For testing, I made sure my file cache was empty. All data has to come from disk while loading Bitcoin Core.
I'd say you're on to something
It's much faster, and as a bonus I can have my wallets on my ssd again. Thanks for giving me the idea!
The only drawback is that the chainstate directory performs many write actions, adding to the wear level of my SSD.
Basically, from your perspective, I did this:
mv blocks/ /media/hdd/bitcoin/
ln -s /media/hdd/bitcoin/blocks blocks
You want to move your chainstate, so use some variation to this:
In ~/.config/Bitcoin/Bitcoin-Qt.conf , edit the location of your bitcoin data directory to point it at your USB-disk
mv chainstate/ /home/directory-on-ssd/bitcoin/
ln -s /home/directory-on-ssd/bitcoin/chainstate chainstate