Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Panel
panelIconIdatlassian-note
panelIcon:note:
bgColor#FFF0B3

This guide is based on VPS installation only!

This guide has been updated for Bitcoin Core version: 27.0

...

...

Info

 Before you begin…

The following example presumes you have the following ready:

  • root access to a server running any current Ubuntu LTS (2024.04 in this example),

  • sufficient free space on your storage/hard drive for the full Bitcoin blockchain,

    • the blockchain increases in size by approximately 20GB per month,

  • 4+ GB of memory (RAM).

...

Download and install the Bitcoin daemon on your server:

Code Block
wget https://bitcoinbitcoincore.org/bin/bitcoin-core-27.0.20.1/bitcoin-27.0.20.1-x86_64-linux-gnu.tar.gz

Optional: verify the file integrity:

Code Block
wget https://bitcoincore.org/bin/bitcoin-core-27.0.20.1/SHA256SUMS.asc
gpg --list-keys
gpg --keyserver hkp://keyserver.ubuntu.com --refresh-keys
gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 0x90C8019E36C2E964
gpg --edit-key 0x90C8019E36C2E964 trust
  • Press 5 (“5 = I trust ultimately” ), and “y”:

...

  • then type “quit” to exit gpg. Next, examine the signature:

Code Block
gpg --keyid-format long --list-keys --with-fingerprint 0x90C8019E36C2E964
  • expect to see: "Key fingerprint = 01EA 5486 DE18 A882 D4C2  6845 90C8 019E 36C2 E964"

Code Block
gpg --verify
SHA256SUMS.asc
  • expect to see: 'gpg: Good signature from "Wladimir J. van der Laan (Bitcoin Core binary release signing key) <laanwj@gmail.com>"'

Code Block
sha256sum --ignore-missing --check SHA256SUMS.asc

...

  • If successfully verified, you’ll see: "bitcoin-0.2027.0.1-x86_64-linux-gnu.tar.gz: OK" .

  • ignore anything additionally reported by the last command.

Decompress the Bitcoin Core tarball:

Code Block
tar xzf bitcoin-27.0.20.1-x86_64-linux-gnu.tar.gz

Install

...

the 2 required binaries to the system:

Code Block
sudo install -m 0755 -o root -g root -t /usr/local/bin bitcoin-27.0.20.1/bin/*/bin/bitcoind
sudo install -m 0755 -o root -g root -t /usr/local/bin bitcoin-27.0/bin/bitcoin-cli

...

2. Create an RPC token:

The RPC token is designed to eliminate the need for hard-coded passwords in configuration and script files. You will receive a password here ONCE.

Tip

This password is required for CAS - it's your “RPC Password” noted in Step 6.

Download rpcauth.py

...

from GitHub:

Code Block
sudo wget https://raw.githubusercontent.com/bitcoin/bitcoin/master/share/rpcauth/rpcauth.py -O /usr/local/bin/rpcauth.py

...

Code Block
rpcauth.py AnyNameYouWantHere
  • Replace AnyNameYouWantHere with any preferred user name.Avoid using

    • Don’t use spaces or any special symbols.

Tip

The user name is required for CAS - it's your “RPC User” noted in Step 6.

...

The cookie/token is a secure hash of your password. The point is to hide your password on the node server to other users of the node. If your node is secure, then using the cookie is simply added security in the event of a server breach, however if your server is breached - you have a bigger problem than an exposed password - and that hash will afford very little protection.

The password is sent to the RPC server software by CAS, and must be kept encrypted while traveling over the Internet. This is accomplished using “tunnels”. More on that below.

...

3. Create the Bitcoin Core configuration file.

...

Code Block
nano $HOME/.bitcoin/bitcoin.conf

Add the following settings & rpcauth credentials (created above):

Code Block
server=1
daemon=1
rpcport=8332
rpcauth=AnyNameYouWantHere:cbb36c03b15219cafb1e72ae9329d5fd$72de450660cdb6dd2689cd2cba4091646a5e8005490dec07dc577b6dad608a80

...

  • It may take several minutes for Bitcoin Core to completely start.

  • In actual practice, expect to wait 1-5 days for bitcoind to fully synchronize.

  • CAS will NOT be able to interact with bitcoind until the synchronization is COMPLETE!

  • To check the status, get the current block being processed by your node: 

    • Code Block
      bitcoin-cli getblockcount
    •  Compare the returned number to the latest network block:

    • The debug log is typically located at $HOME/.bitcoin/debug.log

      • You can also check the status periodically using tail .bitcoin/debug.log

...

password: is the “RPC Password” you also created earlier in Step 2.

...

7. Create a Wallet

After the node has fully synchronized, you’ll need to create a hot wallet.

Create a Descriptor wallet:

Code Block
bitcoin-cli -named createwallet wallet_name=cas_default avoid_reuse=true load_on_startup=true
  • Creates a subfolder cas_default containing a wallet.dat file (the actual wallet),

  • sets the avoid_reuse flag to comply with Bitcoin convention, and

  • loads the wallet by default.

Create a new wallet address for funding:

Code Block
bitcoin-cli getnewaddress bech32m

...

  • The “bech32m” option is demonstrated, but you may also specify legacy, p2sh-segwit, or bech32.

  • The resulting address (e.g. bc1q4wv99c3yqpwttt7a59qqqqmyxda0z8l2ups7fx) funds the wallet.

...

8. Final Step: Configure your CAS

Your bitcoind node is now complete, but you’ll still need to plug in the parameters (created above) into your Bitcoin Crypto Settings.

...

More information about the RPC API: https://developer.bitcoin.org/reference/rpc/index.html

Note

Note: bitcoin-qt (a GUI wallet) is NOT supported at this time.

Important notes regarding pruning nodes:

...