BSC (Binance Smart Chain) Mainnet RPC Node Setup Guide (Non-Mining)

·

This comprehensive guide walks you through setting up a Binance Smart Chain (BSC) Mainnet RPC node for development or infrastructure purposes. Unlike mining nodes, this configuration focuses on providing reliable RPC endpoints without staking.


🛠 Hardware Requirements

1. Server Specifications

2. Network Bandwidth

3. Operating System


📥 Environment Setup

4. System Preparation

yum update -y
yum install screen iftop iotop -y

4.1. Install Golang


🖥 Node Installation

5. Create a Persistent Session

screen -S bsc

Key Notes:

6. Install BSC Client

mkdir -p /data/bsc/data
cd /root
wget -O binance-chain-v1.1.4.tar.gz https://github.com/binance-chain/bsc/archive/refs/tags/v1.1.4.tar.gz
tar -xvf binance-chain-v1.1.4.tar.gz
rm -fr binance-chain-v1.1.4.tar.gz
cd /root/bsc-1.1.4
make all

Verify installation:

/root/bsc-1.1.4/build/bin/geth version

⚙ Configuration

7. Deploy Configuration Files

8. Configure Firewall

firewall-cmd --permanent --zone=public --add-port=30311/tcp
firewall-cmd --permanent --zone=public --add-port=8575/tcp
firewall-cmd --permanent --zone=public --add-port=8576/tcp
firewall-cmd --reload
Temporarily disable firewalls if unsure.

🚀 Synchronization

9.1. Download Snapshot Data

cd /data/bsc/data
wget -O geth.tar.gz 'https://s3.ap-northeast-1.amazonaws.com/dex-bin.bnbstatic.com/geth-20211031.tar.gz?AWSAccessKeyId=AKIAYINE6SBQPUZDDRRO&Signature=ESK5xmr5f1AIK4Mr6our%2FALXzQk%3D&Expires=1638310885'
tar zxvf geth.tar.gz

Note: Adjust directory structure to ensure chaindata and keystore reside directly under /data/bsc/data/.

9.2. Initialize and Start Node

/root/bsc-1.1.4/build/bin/geth --datadir /data/bsc/data --config /data/bsc/config.toml --syncmode "fast" --cache=10240 init /data/bsc/genesis.json
ulimit -n 65535
/root/bsc-1.1.4/build/bin/geth --datadir /data/bsc/data --config /data/bsc/config.toml --syncmode "fast" --cache=8192 --rpc.allow-unprotected-txs --txlookuplimit 0 --allow-insecure-unlock

Detach with Ctrl+A+D.


✅ Verification

10. Test RPC Endpoints

# Check sync status
curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' http://127.0.0.1:8575

# Get latest block
curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' http://127.0.0.1:8575

🛑 Maintenance

11. Stop the Node

screen -r bsc
# Press Ctrl+C to gracefully shutdown.

📚 Resources


⚠ Critical Notes

👉 Optimize your node performance with these pro tips


FAQ

Q: Why does my node keep getting killed?

A: Likely due to hitting the max open files limit. Increase it via ulimit -n 65535.

Q: Can I use a 2TB disk?

A: No—block data alone requires ~1.9TB, leaving no room for growth.

Q: How to check sync progress?

A: Use eth_syncing RPC call. Returns false when synced.

👉 Explore advanced BSC node configurations


For blockchain developers seeking reliable infrastructure, BSC nodes offer unparalleled throughput. 🚀