Install Bitcoin Core 32.1 on Windows, macOS or Linux: download and verify it, or build it from source. Exact commands, what you should see at each step, and links to the official sources only.
Why bother? A node downloads every block and checks every rule itself. You stop trusting anyone else's word about which payments are real: "don't trust, verify". Bitcoin Core is the reference software, written in the open at github.com/bitcoin/bitcoin and released at bitcoincore.org.
| Your system | Windows 10 (version 1903) or newer, macOS 14 or newer, or Linux (kernel 3.17 or newer), as tested for this release (release notes). |
|---|---|
| Disk | Over 750 GB for the whole chain, on a fast disk (an SSD helps a lot). Short on space? Pruning keeps only recent blocks, about 7 GB, and still checks everything (bitcoin.org). |
| Memory | 2 GB or more. Building from source needs at least 1.5 GB free while compiling. |
| Internet | Several hundred GB downloaded the first time; afterwards about 20 GB a month down, and possibly 200 GB or more up (bitcoin.org). |
| Time | Install: 10 minutes. First sync: hours to days, depending on your disk and connection. The node can stop and resume any time. |
Pick one path:
Download only from bitcoincore.org/en/download. For every system you need three files from the 32.1 folder: your download, SHA256SUMS (the list of correct fingerprints) and SHA256SUMS.asc (the developers' signatures on that list). Put all three in one folder.
certUtil -hashfile bitcoin-32.1-win64-setup.exe SHA256
type SHA256SUMS
bitcoin-32.1-win64-setup.exe in SHA256SUMS: the hash on that line must be exactly the same. If it differs, delete the download and stop.gpg --import fanquake.gpg
gpg --verify SHA256SUMS.asc SHA256SUMS
gpg: Good signature from "…", one per builder whose key you imported. For fanquake's key the line Primary key fingerprint: E777 299F C265 DD04 7930 70EB 944D 35F9 AC3D B76A. A warning that the key "is not certified with a trusted signature" is normal. "BAD signature" means stop.shasum -a 256 --ignore-missing --check SHA256SUMS
bitcoin-32.1-arm64-apple-darwin.zip: OK (your file name). "FAILED" means delete the download and stop.brew install gnupg. Then import the builders' keys and verify:
git clone https://github.com/bitcoin-core/guix.sigs
gpg --import guix.sigs/builder-keys/*
gpg --verify SHA256SUMS.asc SHA256SUMS
gpg: Good signature from "…", one per builder. A warning that a key "is not certified with a trusted signature" is normal: it means you haven't personally vouched for that person. "BAD signature" means stop.uname -m tells you): x86_64 or aarch64 (e.g. Raspberry Pi 4/5 with a 64-bit system), plus SHA256SUMS and SHA256SUMS.asc.sha256sum --ignore-missing --check SHA256SUMS
bitcoin-32.1-x86_64-linux-gnu.tar.gz: OK (your file name). "FAILED" means delete the download and stop.gpg --version); if not: sudo apt install gnupg. Then import the builders' keys and verify:
git clone https://github.com/bitcoin-core/guix.sigs
gpg --import guix.sigs/builder-keys/*
gpg --verify SHA256SUMS.asc SHA256SUMS
gpg: Good signature from "…", one per builder. A warning that a key "is not certified with a trusted signature" is normal: it means you haven't personally vouched for that person. "BAD signature" means stop.tar xzf bitcoin-32.1-x86_64-linux-gnu.tar.gz # aarch64: use that file's name
sudo install -m 0755 -o root -g root -t /usr/local/bin bitcoin-32.1/bin/*
bitcoind --version prints Bitcoin Core daemon version v32.1.bitcoin-qt for the window, or bitcoind -daemon for a background node. Continue at First run.You compile the exact code published on GitHub. Always build a release tag (here v32.1), never an untested branch, for real money. The official guides: Windows, macOS, Linux.
git clone https://github.com/bitcoin/bitcoin.git
cd bitcoin
git checkout v32.1
HEAD is now at …. git status says HEAD detached at v32.1.The tag is signed by the release manager. With GnuPG and the builders' keys imported (see Path A):
git verify-tag v32.1
gpg: Good signature from "…".git rev-parse v32.1^{commit} with the commit shown on GitHub's v32.1 page (which shows a "Verified" badge) and confirm the release on bitcoincore.org. That cross-check is fine for practice; for real money, do the signature check once.winget install --id Microsoft.VisualStudio.Community --override "--wait --quiet --add Microsoft.VisualStudio.Workload.NativeDesktop --add Microsoft.VisualStudio.Component.Git --includeRecommended"
winget install python3cmake -B build --preset vs2026-static
cmake --build build --config Release
ctest --test-dir build --build-config Release
Without the window app: cmake -B build --preset vs2026 -DBUILD_GUI=OFF.
100% tests passed. The programs are under build\bin.xcode-select --install
brew install cmake boost capnp
brew install qt@6 qrencode # only for the window appcmake -B build -DBUILD_GUI=ON # leave out -DBUILD_GUI=ON for no window app
cmake --build build -j $(sysctl -n hw.ncpu)
ctest --test-dir build -j $(sysctl -n hw.ncpu)
100% tests passed, and ./build/bin/ holds bitcoind, bitcoin-cli and (with the GUI) bitcoin-qt. ./build/bin/bitcoind --version prints v32.1.sudo apt install build-essential cmake pkgconf python3 libboost-dev libsqlite3-dev libcapnp-dev capnproto
sudo apt install qt6-base-dev qt6-tools-dev qt6-l10n-tools qt6-tools-dev-tools libgl-dev qt6-wayland libqrencode-dev # window app only
Fedora:
sudo dnf install gcc-c++ cmake make python3 boost-devel sqlite-devel capnproto capnproto-devel
sudo dnf install qt6-qtbase-devel qt6-qttools-devel qt6-qtwayland qrencode-devel # window app only
Cap'n Proto is only for the IPC feature; to skip it, add -DENABLE_IPC=OFF below.cmake -B build # add -DBUILD_GUI=ON for the window app
cmake --build build -j $(nproc)
ctest --test-dir build -j $(nproc)
100% tests passed; ./build/bin/bitcoind --version prints v32.1. Optional: sudo cmake --install build puts the programs in your path.The window app (Bitcoin Core / Bitcoin-Qt) asks where to keep the data and offers to limit block chain storage: tick it if your disk is small (pruning). Then a bar shows "Synchronizing with network" and how far behind it is.
The background node (bitcoind -daemon): ask how it's doing.
bitcoin-cli getblockchaininfo
Example while syncing (your numbers will differ):
{
"chain": "main",
"blocks": 312004,
"headers": 922110,
"verificationprogress": 0.1931…,
"initialblockdownload": true,
…
}
blocks climbing towards headers, and verificationprogress towards 1. When it is done, initialblockdownload turns false: your node has checked every block since 2009 by itself.Watch it work: the log is debug.log in the data folder, with a line UpdateTip: new best=… for each block.
| System | Data folder (bitcoin.conf and debug.log live here) |
|---|---|
| Windows | %LOCALAPPDATA%\Bitcoin\ |
| macOS | ~/Library/Application Support/Bitcoin/ |
| Linux | ~/.bitcoin/ |
Stop it cleanly with bitcoin-cli stop (or close the window and wait): shutting down can take a minute.
Settings go in bitcoin.conf in the data folder; you create the file yourself (official guide). A sensible start for a home node:
# Keep only recent blocks (about 7 GB) and still verify everything. Remove for a full archive.
prune=550
# The control port answers this computer only (the default; never open it to the internet).
rpcbind=127.0.0.1
rpcallowip=127.0.0.1
bitcoin-cli on the same computer logs in automatically with a cookie file Bitcoin Core rewrites at every start. Other programs can use rpcauth, a salted hash, made by share/rpcauth/rpcauth.py in the source.Regtest is a private chain on your computer: no download, blocks on demand, nothing to lose. Five minutes:
bitcoind -regtest -daemon -fallbackfee=0.00001
bitcoin-cli -regtest createwallet alice
bitcoin-cli -regtest -rpcwallet=alice getnewaddress
bitcoin-cli -regtest generatetoaddress 101 <that address>
bitcoin-cli -regtest -rpcwallet=alice getbalances
"trusted": 50.00000000 and "immature": 5000.00000000. Block rewards wait 100 blocks before they can be spent, so of 101 blocks only the first counts. Stop with bitcoin-cli -regtest stop.Want the full walk-through (send a payment, replace it, undo a confirmation)? Ask us for a free session: hello@altradits.com.
bitcoin-cli backupwallet <file>, kept offline. Never share listdescriptors true output or wallet files.debug.log for new UpdateTip lines; slow disks make it crawl. Restarting is safe.prune=550, start again.-rpcwallet=NAME.cmake -B build: a tool is missing; repeat the install step. cmake -B build -LH lists every option.Versions change: if bitcoincore.org lists a newer release, use it and replace 32.1 in the commands.