install bananode on your server

Installation (Docker)

Install docker from

then use command below to install and run banano nodes automatically on port 6900.

docker run --restart=unless-stopped -d -p 6900:6900-v ~:/root bananocoin/banano

or if you want to use different folder or different port:

docker run --restart=unless-stopped -d \
  -p 7071:7071 \
  -p [::0]:7072:7072 \
  -p [::0]:7074:7074 \
  -v /mnt/blockstorage:/root \

just change the data on -v and port on -p (it's also specified more port for accessing nodes from outside)

To check logs, use command:

docker log

Installation (sourcecode)

install dependencies

sudo apt update;
sudo apt upgrade -y;
sudo apt-get install -y git cmake make g++ curl wget python-dev;
sudo apt install python3-pip;
sudo pip install cmake-format;

create swap (only if your nodes are not having a good configuration)

sudo fallocate -l 4G /swapfile;
sudo chmod 600 /swapfile;
sudo mkswap /swapfile;
sudo swapon /swapfile;
sudo nano /etc/fstab;

# add the below line to /etc/fstab
/swapfile swap swap defaults 0 0

Installing precompiled Boost

sudo apt install -y libboost-all-dev

Building static Boost

automatic build

sudo banano_build/util/build_prep/ --m

**the --m flags are optional, it may reduce time, but may break Boost for other use cases than building the bananode

manual build

tar xzvf boost_1_70_0.tar.gz   
cd boost_1_70_0   
./ --with-libraries=system,thread,log,filesystem,program_options,coroutine,context  
./b2 --prefix=/usr/local/boost link=static install   
cd ..

Cloning the Bananode's git repository

check out master branch

git clone --recursive banano_build   

check out V23.3 branch.

git clone --branch v23.3 --recursive banano_build

NOTE: rocksdb needs to be updated or you get a compiler error regarding block_rep The below code updates rocksdb to the v24 version of rocksdb:

cd banano_build
cd rocksdb
git checkout 79f08d7ffa6d34d9ca3357777bcb335884a56cfb
cd ..
cd ..

check out V24 branch.

git clone --branch v24 --recursive banano_build

Building bananode

cd banano_build   

git submodule update --init --force --recursive

cmake -G "Unix Makefiles"   
make bananode

Configuring bananode

## copy the node executable into the parent directory
cp bananode ../bananode;
cd ..;
## check if the freshly compiled executable executes 
./bananode --diagnostics;
## generate default config files with all available options. You can then customize the config files, for example to activate RPC or activate voting.
mkdir BananoData;
./bananode --generate_config node > /root/BananoData/config-node.toml 
./bananode --generate_config rpc > /root/BananoData/config-rpc.toml
cp ./banano_build/docker/node/config/config-* BananoData;
## you can delete the banano_build directory now, if you want

Running the bananode

# start the node in the background
screen -dmSL bananode ./bananode --daemon;

# check that it has peers (firewall may prevent peers)
curl -g -d '{"action": "peers"}' 'localhost:7072';

# check local block count (RPC)
curl -g -d '{"action": "block_count"}' 'localhost:7072';

# check local block count (CLI)
./bananode --debug_block_count;

# check kalium block count (RPC)
curl -g -d '{"action": "block_count"}' '';

# check how many accounts are still being processed.
cat BananoData/log/* | grep -e 'accounts in pull queue' | tail -n 2

Last updated