There are plenty of guides on installing Bitcoin Core on Linux, and the most popular advice is to do this:

install -m 0755 -o root -g root -t /usr/local/bin bitcoin-0.21.1/bin/*

Here is an unarchived file tree:

├── SHA256SUMS.asc
├── bitcoin-0.21.1
│   ├── README.md
│   ├── bin
│   │   ├── bitcoin-cli
│   │   ├── bitcoin-qt
│   │   ├── bitcoin-tx
│   │   ├── bitcoin-wallet
│   │   ├── bitcoind
│   │   └── test_bitcoin
│   ├── include
│   │   └── bitcoinconsensus.h
│   ├── lib
│   │   ├── libbitcoinconsensus.so -> libbitcoinconsensus.so.0.0.0
│   │   ├── libbitcoinconsensus.so.0 -> libbitcoinconsensus.so.0.0.0
│   │   └── libbitcoinconsensus.so.0.0.0
│   └── share
│       └── man
│           └── man1
│               ├── bitcoin-cli.1
│               ├── bitcoin-qt.1
│               ├── bitcoin-tx.1
│               ├── bitcoin-wallet.1
│               └── bitcoind.1
├── bitcoin-0.21.1-x86_64-linux-gnu.tar.gz
└── laanwj-releases.asc

So it looks like this command copies six binary files and it doesn't install man pages. Is it necessary to copy all of those binaries to run a headless node without any issues? I've been using bitcoind and bitcoin-cli directly so I'm pretty sure they're required, but I didn't find any info on the rest of the binaries.


TL;DR: you don't need any binaries except the ones you want to invoke.

Let me go over your list:

  • SHA256SUMS.asc: a PGP signed SHA256SUMS file with the SHA256 checksums of all distributed files. The purpose of this is purely to let you verify you have legitimate binaries.
  • bitcoin-0.21.1/README.md: README file with general documentation
  • bitcoin-0.21.1/bin/bitcoin-cli: command line tool send commands to a runningbitcoind or bitcoin-qt -server instance.
  • bitcoin-0.21.1/bin/bitcoin-qt: the Bitcoin Core server binary, with Qt GUI included.
  • bitcoin-0.21.1/bin/bitcoin-tx: a standalone tool to create/manipulate/sign raw transactions.
  • bitcoin-0.21.1/bin/bitcoin-wallet: a standalone tool to perform operations on Bitcoin Core wallet.dat files, while they are not currently loaded into a bitcoind or bitcoin-qt instance.
  • bitcoin-0.21.1/bin/bitcoind: the Bitcoin Core server binary, without GUI included.
  • bitcoin-0.21.1/bin/test_bitcoin: the binary that implements all of Bitcoin Core's unit tests. It has been verified to pass all tests when this build of Bitcoin Core was created, but you're of course free to run it on your own system too.
  • bitcoin-0.21.1/include/bitcoinconsensus.h: C header file for those who want to build software using the libbitcoinconsensus.so library.
  • bitcoin-0.21.1/lib/libbitcoinconsensus.so*: shared library that you can link your own software against. It implements the exact same script validation rules as Bitcoin Core does, so avoids the need to reimplement consensus logic yourself.
  • bitcoin-0.21.1/man/man1/*: man pages
  • bitcoin-0.21.1-x86_64-linux-gnu.tar.gz: distribution tarball
  • laanwj-releases.asc: PGP key used to sign releases

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.