Bitcoin Server for Fedora and Red Hat Enterprise Linux

The Bitcoin server bitcoind provided by this repository has some important differences in operation from the binary provided by the Bitcoin open source project. These differences are documented here.

Berkeley DB

Bitcoin is built against the latest version of Berkeley DB provided by the distribution vendor. On RHEL 6 this was DB 4.7; on RHEL 7, Fedora and the upstream build it is currently DB 4.8. (This applies to both the server and GUI client.) Take precautions and test when moving an existing wallet from one to the other, as Berkeley DB does not guarantee forward or backward compatibility. It is necessary to dump your wallet’s private keys from an old installation and import them to your new installation (or simply send your bitcoins from one to the other).

File Storage

When started from the system inititalization script, bitcoind stores all of its files in /var/lib/bitcoin instead of $HOME/.bitcoin. This change was necessary to ensure that SELinux policies could be applied to them with maximum security. In particular, some system services may be allowed to access /home, and this change helps to ensure that such services, if compromised, cannot access the Bitcoin wallet.

This does not apply to the GUI client, which continues to store its wallet in $HOME/.bitcoin. I hope that upstream will eventually provide the capability for the GUI to speak RPC to the server rather than using its own wallet, as this will provide the best possible wallet security. In the meantime, I recommend against using the GUI and the server on the same machine as each will generate its own independent wallet and blockchain copy.

SELinux

Bitcoin includes an SELinux policy which restricts access to the Bitcoin wallet and other files in /var/lib/bitcoin to bitcoind. It also does the reverse, preventing bitcoind from accesssing data of other system services (which it has no need for).