Deployment tools of BSC
September 9, 2025 ยท View on GitHub
Installation
Before proceeding to the next steps, please ensure that the following packages and softwares are well installed in your local machine:
- nodejs: v16.15.0
- npm: 6.14.6
- go: 1.24+
- foundry
- python3 3.12.x
- poetry
- jq
Quick Start
- Clone this repository
git clone https://github.com/bnb-chain/node-deploy.git
- For the first time, please execute the following command
pip3 install -r requirements.txt
- build
create-validator
# This tool is used to register the validators into StakeHub.
cd create-validator
go build
- Configure the cluster
You can configure the cluster by modifying the following files:
- `config.toml`
- `genesis/genesis-template.json`
- `genesis/scripts/init_holders.template`
- `.env`
- Setup all nodes. two different ways, choose as you like.
bash -x ./bsc_cluster.sh reset # will reset the cluster and start
# The 'vidx' parameter is optional. If provided, its value must be in the range [0, ${BSC_CLUSTER_SIZE}). If omitted, it affects all clusters.
bash -x ./bsc_cluster.sh stop [vidx] # Stops the cluster
bash -x ./bsc_cluster.sh start [vidx] # only start the cluster
bash -x ./bsc_cluster.sh restart [vidx] # start the cluster after stopping it
- Setup a full node. If you want to run a full node to test snap/full syncing, you can run:
Attention: it relies on the validator cluster, so you should set up validators by
bsc_cluster.shfirstly.
# reset a full sync node0
bash +x ./bsc_fullnode.sh reset 0 full
# reset a snap sync node1
bash +x ./bsc_fullnode.sh reset 1 snap
# restart the snap sync node1
bash +x ./bsc_fullnode.sh restart 1 snap
# stop the snap sync node1
bash +x ./bsc_fullnode.sh stop 1 snap
# clean the snap sync node1
bash +x ./bsc_fullnode.sh clean 1 snap
# reset a full sync node as fast node
bash +x ./bsc_fullnode.sh reset 2 full "--tries-verify-mode none"
# reset a snap sync node with prune ancient
bash +x ./bsc_fullnode.sh reset 3 snap "--pruneancient"
You can see the logs in .local/fullnode.
Generally, you need to wait for the validator to produce a certain amount of blocks before starting the full/snap syncing test, such as 1000 blocks.
Background transactions
## normal tx
cd txbot
go build
./air-drops
## blob tx
cd txblob
go build
./txblob