🐳Docker

Authors: [ Ankur | Dapplooker]

System Requirements

CPU
OS
RAM
DISK

8 vCPU

Ubuntu 22.04

16 GB

500 GB

Pre-requisite

Before starting, clean the setup then update and upgrade. Install following:

  • Docker

Commands

sudo apt update -y && sudo apt upgrade -y && sudo apt auto-remove -y
sudo apt install docker.io ufw -y jq -y

Firewall Settings

Check status & enable UFW

sudo ufw enable
sudo ufw status verbose

Set explicit default UFW rules

sudo ufw default deny incoming
sudo ufw default allow outgoing

Allow SSH, HTTP, and HTTPS

sudo ufw allow 22/tcp
sudo ufw allow 80
sudo ufw allow 443

Allow Remote connection

sudo ufw allow from ${REMOTE.HOST.IP} to any port 8545

Setup Instructions

1

Pull Docker Image

Pull the image from the GitHub container registry (ghr):

docker pull ghcr.io/node-real/bsc-erigon:v1.3.2-beta2
2

Create docker compose file

Create project directory

mkdir /mnt/erigon-bsc/

Create docker-compose.yml file

version: '3.8'

services:
  bsc-erigon:
    container_name: bsc-erigon
    image: ghcr.io/node-real/bsc-erigon:v1.3.2-beta2
    restart: on-failure
    user: root
    volumes:
      - /mnt/erigon-bsc:/root/data/bsc-erigon
    ports:
      - "8545:8545"   # HTTP RPC
      - "8546:8546"   # WebSocket
      - "30303:30303" # P2P TCP
      - "30303:30303/udp" # P2P UDP
      - "42069:42069" # Torrent Port
      - "6060:6060"   # Metrics
      - "6061:6061"   # PProf Debugging
      - "9090:9090"   # Private API
      - "8551:8551"   # Auth RPC
    command:
      - --private.api.addr=127.0.0.1:9090
      - --chain=chapel
      - --prune.mode=archive
      - --torrent.download.rate=1g
      - --torrent.download.slots=400
      - --batchSize=2g
      - --bsc.blobSidecars.no-pruning=true
      - --txpool.disable
      - --metrics
      - --metrics.addr=0.0.0.0
      - --metrics.port=6060
      - --pprof
      - --pprof.addr=0.0.0.0
      - --pprof.port=6061
      - --authrpc.jwtsecret=/root/data/bsc-erigon/jwt.hex
      - --authrpc.port=8551
      - --datadir=/root/data/bsc-erigon/
      - --http.addr=0.0.0.0
      - --http.port=8545
      - --http.api=eth,debug,net,trace,web3,erigon,bsc,admin
      - --http.vhosts=any
      - --http.corsdomain=*
      - --ws
      - --ws.port=8546
      - --torrent.port=42069
      - --nat=extip:157.90.180.249
      - --db.pagesize=16k
      - --db.size.limit=3t
      - --port=30303
    ulimits:
      nofile:
        soft: 500000
        hard: 500000
3

Start the Node

docker compose up -d 

Monitoring

Monitor Logs of Docker Container

docker ps 
docker logs bsc-erigon

Sync Status

Latest Block

curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' http://localhost:8545

Response should look like:

{"jsonrpc":"2.0","id":1,"result":"0x2f19521"}

REFERENCES

Development Guide
Testnet Block Explorer

Last updated