BounceBit Mainnet Node Setup
Deployment Guides (Just refer to the testnet)
Testnet Snapshot 2025-03-12
https://snapshots.bouncebit.io/bouncebit_testnet_snapshot_2025-03-12T06_28_37-UTC.tar.zst
Mainnet Snapshot 2025-06-06
https://snapshots.bouncebit.io/bouncebit_archive_snapshot_2025-06-06T00_01_28-UTC.tar.zst
Mainnet Configuration Spec
💡 Mainnet
Chain-id
bouncebit_6001-1
Fullnode Endpoint
https://fullnode-mainnet.bouncebitapi.com
Latest Snapshot
echo "https://snapshots.bouncebit.io/bouncebit_archive_snapshot_$(curl -s https://snapshots.bouncebit.io/latest).tar.zst"
Mainnet Latest Version
v1.6.1
docker pull bouncebit/bouncebit-node:v1.6.1
v1.5.4
docker pull bouncebit/bouncebit-node:v1.5.4
DO NOT UPGRADE TO V1.5.3
v1.5.2
docker pull bouncebit/bouncebit-node:v1.5.2
Mainnet Deployment Guide
Preparation
Create workspace directory
cd $WORKSPACE
mkdir -p bouncebit/bin
mkdir -p bouncebit/config
Create work user
sudo groupadd -r -g 979 bouncebit
sudo useradd -m -u 979 -g 979 --system -s /sbin/nologin -d /var/lib/bouncebit bouncebit
sudo mkdir /etc/bouncebit && sudo chown bouncebit:bouncebit /etc/bouncebit
sudo tee /etc/bouncebit/bbcored.env <<EOF
GOGC=75
EOF
## rm old node key
sudo rm /data/bouncebit/config/node_key.json
🌈 Download Latest Version
bbcored
Latest Version
bbcoredcurl -OL https://github.com/BounceBit-Labs/node/releases/download/v1.5.4/bbcored
tar zxf bbcored.tgz -C bouncebit/bin
sha256sum bbcored
chmod +x bbcored
ln -s $WORKSPACE/bin/bbcored /usr/local/bin/bbcored
# or
# sudo cp bbcored /usr/local/bin/bbcored
Init Bouncebit Mainnet Network
cd $WORKSPACE
bbcored init [moniker] -o --chain-id bouncebit_6001-1 --home $WORKSPACE
🖇️ Download Mainnet Network_files
Mainnet configuration files can be downloaded from here 👇
Unzip mainnet-config-files.zip
And move the downloaded file to the following path.
config/app.toml
config/client.toml
config/config.toml
config/genesis.json
Update seeds ( Required )
config.toml
[p2p]
seeds = "[email protected]:26656,[email protected]:26656"
Config ( Optional )
If you want to run an archived node , we recommend simply using the following settings.
app.toml
pruning = "nothing"
config.toml
indexer = "kv"
If you are running as a validator and seeking to save disk space, we recommend simply using the following settings.
app.toml
pruning = "custom"
# These are applied if and only if the pruning strategy is custom.
pruning-keep-recent = "100"
pruning-interval = "10"
config.toml
indexer = "null"
🌈 Download Latest Version
snapshot
Latest Version
snapshotDownload and check snapshot file
wget -c -O bouncebit_archive_snapshot.tar.zst -c https://snapshots.bouncebit.io/bouncebit_archive_snapshot_$(curl -s https://snapshots.bouncebit.io/latest>).tar.zst
wget -c -O bouncebit_archive_snapshot.tar.zst.sha256 -c https://snapshots.bouncebit.io/bouncebit_archive_snapshot_$(curl -s https://snapshots.bouncebit.io/latest>).tar.zst.sha256
# check sha256
sha256sum -c bouncebit_archive_snapshot.tar.zst.sha256
sudo -u bouncebit bash -c "tar --use-compress-program=zstd -xvf bouncebit_archive_snapshot.tar.zst -C /data/bouncebit"
Show the $WORKSPACE
├── bin
│ ├── bbcored
│ └── checksum.txt
├── config
│ ├── addrbook.json
│ ├── app.toml
│ ├── client.toml
│ ├── config.toml
│ ├── genesis.json
│ ├── node_key.json
│ └── priv_validator_key.json
└── data
├── application.db
├── blockstore.db
├── cs.wal
├── evidence.db
├── evmindexer.db
├── priv_validator_state.json
├── snapshots
├── state.db
└── tx_index.db
Running Node via systemd
We recommend using Systemd to manage Bouncebit service and check logs.
Setting up systemd unit file
You can create a Systemd unit file at the following location /etc/systemd/system/bouncebit.service
:
sudo tee /etc/systemd/system/bouncebit.service <<EOF
[Unit]
Description=bouncebit node daemon
After=network-online.target
Wants=network-online.target data.mount
Requires=data.mount
[Service]
ExecStart=/usr/local/bin/bbcored start \\
--log_format=json \\
--log_level=info \\
--home=/data/bouncebit
Type=simple
Restart=on-failure
KillMode=process
KillSignal=SIGINT
TimeoutStartSec=infinity
TimeoutStopSec=600
User=bouncebit
Group=bouncebit
CPUSchedulingPolicy=batch
LimitNOFILE=524288
LimitNPROC=16384
MemoryMax=27G
WorkingDirectory=/data/bouncebit
EnvironmentFile=-/etc/bouncebit/bbcored.env
# /run/bouncebit
RuntimeDirectory=bouncebit
RuntimeDirectoryMode=0700
# /etc/bouncebit
ConfigurationDirectory=bouncebit
ConfigurationDirectoryMode=0755
# /var/lib/bouncebit
StateDirectory=bitcoind
StateDirectoryMode=0710
SyslogIdentifier=bbcored
# Provide a private /tmp and /var/tmp.
PrivateTmp=true
# Mount /usr, /boot/ and /etc read-only for the process.
ProtectSystem=full
# Deny access to /home, /root and /run/user
ProtectHome=true
# Disallow the process and all of its children to gain
# new privileges through execve().
NoNewPrivileges=true
# Use a new /dev namespace only populated with API pseudo devices
# such as /dev/null, /dev/zero and /dev/random.
PrivateDevices=true
# Deny the creation of writable and executable memory mappings.
MemoryDenyWriteExecute=true
[Install]
WantedBy=multi-user.target
EOF
Start the service
systemctl daemon-reload
systemctl start bouncebit.service
systemctl enable bouncebit.service
View logs
journalctl -o cat -f -u bouncebit
Monitoring
Monitor your Full node using the instructions at Logging, Tracing, Metrics, and Observability.
The default metrics port is 26660
. To change the port, edit your config/config.toml file.
prometheus = true
# Address to listen for Prometheus collector(s) connections
prometheus_listen_addr = ":26660"
Last updated