You need server with following requierements
2CPU/8GBRAM/200++GB SSD
1. Upgrade your server
sudo apt update && sudo apt upgrade -y
sudo apt install make clang pkg-config libssl-dev libclang-dev build-essential git curl ntp jq llvm tmux htop screen unzip -y
Install Go
sudo rm `pwd`/go*
sudo wget "https://go.dev/dl/$(curl 'https://go.dev/VERSION?m=text').linux-amd64.tar.gz"
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go*.linux-amd64.tar.gz
cat <<EOF >> ~/.profile
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GO111MODULE=on
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin
EOF
source ~/.profile
go version
sudo rm `pwd`/go*
2. Install BSC tesnet node
git clone https://github.com/bnb-chain/bsc
cd bsc
make geth
3. Download the config files
You can download the pre-build binaries from release page or follow the instructions bellow
wget https://github.com/bnb-chain/bsc/releases/latest/download/geth_linux
Testnet
wget https://github.com/bnb-chain/bsc/releases/latest/download/testnet.zip
unzip testnet.zip
Mainnet
wget https://github.com/bnb-chain/bsc/releases/latest/download/mainnet.zip
unzip mainnet.zip
mv geth_linux /usr/bin/geth
chmod +x /usr/bin/geth
rm -rf testnet.zip
4. Configure config.toml file
nano config.toml
Inside the config.toml
found line HTTPHost = "127.0.0.1"
and change IP from 127.0.0.1
on your IP address.
Scroll down and delete following lines:
[Node.LogConfig]
FileRoot = ""
FilePath = "bsc.log"
MaxBytesSize = 10485760
Level = "info"
Save it by command CTRL+X,Y
5. Write state genesis localy
geth --datadir node init genesis.json
6. Configure systemd service file
tee /etc/systemd/system/bscd.service > /dev/null <<EOF
[Unit]
Description=BSC
After=network-online.target
[Service]
User=root
ExecStart=/usr/bin/geth --config root/bsc/config.toml --datadir root/bsc/node --ws --ws.origins '*'
Restart=always
RestartSec=3
LimitNOFILE=10000
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl start bscd
Checkec that node start synching
journalctl -u bscd -f -n 100
7. Synch status
Once your BSC node is fully synced, you can run a cURL request to see the status of your node: Please change YOUR_IP_ADDRESS
on your IP.
curl -H "Content-Type: application/json" -d '{"id":1, "jsonrpc":"2.0", "method": "eth_syncing", "params":[]}' YOUR_IP_ADDRESS:8575
If the node is successfully synced, the output from above will print {"jsonrpc":"2.0","id":1,"result":false}
8. Connect your BSC to Axelar
Axelar Network will be connecting to the EVM compatible Binance
, so your rpc_addr should be exposed in this format:
http://IP:PORT
#for Testnet
Example: http://5.168.135.185:8575
#for Mainnet
Example: http://5.168.135.185:8545
9. If a new update is out
If a new update has been released, then you can update with the following commands.
systemctl stop bscd
mkdir temp
cd temp
Check the latest release page.
wget https://github.com/bnb-chain/bsc/releases/latest/download/geth_linux
mv geth_linux /usr/bin/geth
chmod +x /usr/bin/geth
cd ~
systemctl start bscd
Check that your BSC node work correctly
journalctl -u bscd -f -n 100