CodeBlockLabs
CommunityPromo VPS
  • Welcome
  • Getting Started
    • What is Node?
    • Your First Nodes
  • Blockchain Nodes
    • Banano
      • Installation
      • Node Configuration
      • RPC Command
      • Cli Command
      • Other
    • BlockCast
      • Installation
    • BlockX
      • Installation
      • Useful Command
    • Elys
      • Installation
      • Useful Command
    • LayerEdge
      • Installation
      • Automation
    • Lumera
      • Installation
      • Useful Command
      • Snapshot
    • RaiBlocksOne
      • Installation
      • RPC Command
      • Other
    • RaiCoin
      • Installation
      • Node Configuration
      • RPC Command
      • Other
    • Selfchain
      • Installation
      • Useful Command
      • Snapshot
    • Symphony
      • Installation
      • Useful Command
      • Snapshot
      • Oracle
      • Patch
  • Other
    • Automation Scripts
      • Auto Send
    • Blockchain Explorer
    • Go Version Manager (Multi Go)
    • NodeJS
    • Proxmox
      • Proxmox Installation
      • Proxmox FAQ
    • WSL
      • Linux Packages
Powered by GitBook
On this page
  • Installation (Docker)
  • Installation (sourcecode)
  1. Blockchain Nodes
  2. Banano

Installation

PreviousBananoNextNode Configuration

Last updated 7 months ago

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 \
  bananocoin/banano

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/bootstrap_boost.sh --m

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

manual build

wget https://netix.dl.sourceforge.net/project/boost/boost/1.70.0/boost_1_70_0.tar.gz   
tar xzvf boost_1_70_0.tar.gz   
cd boost_1_70_0   
./bootstrap.sh --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 https://github.com/BananoCoin/banano.git banano_build   

check out V23.3 branch.

git clone --branch v23.3 --recursive https://github.com/BananoCoin/banano.git 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 https://github.com/BananoCoin/banano.git 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"}' 'https://kaliumapi.appditto.com/api';

# check how many accounts are still being processed.
cat BananoData/log/* | grep -e 'accounts in pull queue' | tail -n 2
https://docs.docker.com/engine/install/ubuntu/