Install Bitcoin Core

Compile and install Bitcoin Core from sources to spawn your node.

Get latest stable version

First clone the repo:

cd ~
git clone https://github.com/bitcoin/bitcoin.git

Next we need to make sure to use the latest stable version. To find it, list the latest tags:

cd bitcoin/
git describe --tags `git rev-list --tags --max-count=20`

The output will look like this:

v28.1
v28.1rc2-6-g36314b8da2
v28.1rc2-5-g58910279dc
v28.1rc2-4-g6a68ef9bfb
v28.1rc2-3-g5b368f88a9
v28.1rc2-2-g05cd448e33
v28.1rc2-1-g621c634b7f
v28.1rc2
v28.1rc1-10-g5576618152
v28.1rc1-9-g01fe07a2ce
v28.1rc1-8-g7ddfcf32da
v28.1rc1-7-ge0b27b234c
v28.1rc1-6-gbdc6b3e531
v28.1rc1-5-ga0585b6087
v28.1rc1-4-gbbde830b97
v28.1rc1-3-g227642d5af
v28.1rc1-2-gb8112cf422
v28.1rc1-1-g2835158be0
v28.1rc1
v28.0-15-g8fef83a0a0

From top (newest) to bottom (oldest) tags, the latest stable version is v28.1.

Stable versions are easily recognizable by their clean format, vX.Y (e.g., v28.1), with no additional suffixes like rc or commit metadata.

Versions with rc in their names are called release candidates (preliminary versions).

Some versions simply represent intermediate development states, serving as milestones. The tag v28.0-15-g8fef83a0a0 indicates version v28.0 with 15 additional commits, followed by the short commit hash 8fef83a0a0.

Alternatively you can find the latest stable version here and take note of the tag here.

Now we can switch to that version:

git checkout <version-tag> # Example: git checkout v28.1

Compile and Install

Create the configuration files:

./autogen.sh

Use one of the following two commands to apply the configuration files:

./configure --without-gui # OPTION 1: Wallet functionalty enabled
./configure --without-gui --disable-wallet # OPTION 2: Wallet functionality disabled

The wallet functionality lets the node manage its own keys, addresses, and transactions. Disabling it removes these features but still allows connection and use of external wallets for validation and broadcasting.

Now compile the source code:

make -j $(nproc)

Finally, copy the binaries to system-wide directories:

sudo make install

Last updated

Was this helpful?