This instruction is provided for servers on the CentOS 7 operating system.
For all other operating systems, the steps are the same except for the names of some packages and the package managers used.
1. Install Bitcoin core
Follow this instruction for installation
https://ma.ttias.be/run-a-bitcoin-core-full-node-on-centos-7/ with the replacement of the specified version with the current version of the
Bitcoin core.
Or you can use
Snap for easy install
If you installed Bitcoin core using Snap, in commands you must change:
bitcoin-cli
to
bitcoin-core.cli
bitcoind
to
bitcoin-core.daemon
Don't start the core yet.
2. Сonfigure RPC authorization
Based on the instructions above, your config should be located along the path
/home/bitcoin/.bitcoin/bitcoin.conf
or
/home/$USER$/.bitcoin/bitcoin.conf
The
.bitcoin
folder is created when the Bitcoin core starts, so you need to start the core for a few seconds and then stop it.
This can be done with this command:
bitcoind
. Then wait for the kernel to create the folder. And then press the key combination
Ctrl + c
.
Now, if we don't have a
bitcoin.conf
file, we just need to create it.
Insert this content to config:
Code:
# Always run the core in the daemon
daemon=1
# Enable pruning to reduce storage requirements by deleting old blocks.
# This mode is incompatible with -txindex and -rescan.
# 0 = default (no pruning).
# 1 = allows manual pruning via RPC.
# >=550 = target to stay under in MiB.
prune=2000
# Tells bitcoind to accept JSON-RPC commands
server=1
2.1. Generating a password for RPC authorization
Python 3 must be installed on your server.
Here is an instruction for installation:
https://www.liquidweb.com/kb/how-to-install-python-3-on-centos-7/
I advise you to install with
yum
After we installed python:
wget https://raw.githubusercontent.com/bitcoin/bitcoin/master/share/rpcauth/rpcauth.py
python3 rpcauth.py bitcoin
You must get something like:
Code:
String to be appended to bitcoin.conf:
rpcauth=bitcoin:43bd1663daa3407c9117d86beed9d5b5$c751a9599e42d97079eccdb71a3ff11b103c582c764b8c2893aa8018940f7224
Your password:
0qmKqe1Oj5gESXR8y8yK-WfjUz6DuCqgqmsiRHtEV2w=
Keep the password and copy the
rpcauth
line and paste it into the config. Now our config looks like this:
Code:
# Always run the core in the daemon
daemon=1
# Enable pruning to reduce storage requirements by deleting old blocks.
# This mode is incompatible with -txindex and -rescan.
# 0 = default (no pruning).
# 1 = allows manual pruning via RPC.
# >=550 = target to stay under in MiB.
prune=2000
# Tells bitcoind to accept JSON-RPC commands
server=1
rpcauth=bitcoin:43bd1663daa3407c9117d86beed9d5b5$c751a9599e42d97079eccdb71a3ff11b103c582c764b8c2893aa8018940f7224
3. We run the Bitcoin core and wait for the download blockchain
Run:
bitcoind
To check if the blockchain is downloaded, we perform this command:
bitcoin-cli getblockchaininfo
Scroll up and compare the
blocks
and
headers
fields. When their values are the same, it means that the blockchain has loaded and the server is ready to use.
View attachment 232
4. Create a wallet for each forum
bitcoin-cli createwallet $WALLET_NAME$
(Replace
$WALLET_NAME$
with any name you wish)
5. Create a payment profile
Field | Value |
---|
User | bitcoin |
Password | Specify here the password here from step 2.1 |
Wallet | Specify here the wallet name from step 4 |
All other fields fill on the basis of the explanation under the input field when creating a profile
If the Bitcoin core was installed not on the forum server, you need to specify the
rpcallowip
and
rpcbind
parameters in the config.
Code:
# Allow connection for forum server
rpcallowip=HERE_IS_FORUM_SERVER_IP
# Bind RPC for localhost
rpcbind=127.0.0.1
# Bind RPC for bitcoin server IP to allow external connections from other servers
rpcbind=HERE_IS_BITCOIN_SERVER_IP
If you need to allow connection for multiple servers, just add
rpcallowip
again on new line.
After changes in the config, it is advisable to restart the server:
bitcoin-cli stop
bitcoind
And, if you created a wallet in the core, you need to load it:
bitcoin-cli loadwallet $WALLET_NAME$