Run a Node with Docker
Stacks Blockchain with Docker
Run your own Stacks Blockchain node using docker-compose with just a few commands using stacks-blockchain-docker
Requirements
The minimum viable requirements are listed below.
While you can run a node using these specs, it's recommended to assign more than the minimum for better performance.
⚠️ docker-compose version
2.2.2or greater is required8GB memory if running only a Stacks node
16 GB memory if running Stacks + Bitcoin node
1 Vcpu ( minimum of 2 Vcpu is recommended )
500GB disk for Stacks node
1TB disk space for Bitcoin node
MacOS with an ARM (M-series chip) processor is NOT recommended
The way Docker for Mac on an Arm CPU is designed makes the I/O incredibly slow, and blockchains are very heavy on I/O. This only seems to affect MacOS with the M-series chip, other Arm based systems like Raspberry Pi work as expected.
Storage
A fully synced Stacks node can use significant disk space and will continue to grow. If your boot drive doesn't have enough room, mount a dedicated disk and symlink the persistent-data directory before starting the node:
The Docker volumes write to persistent-data/mainnet/, so the symlink redirects all chainstate, database, and event data to the external disk transparently.
Quickstart
The <network> placeholder used below can be replaced with one of:
mainnet
testnet
mocknet
Clone the repository
Clone the stacks-blockchain-docker repository locally and change into the directory:
Start the services
Start the docker-compose services for the chosen network:
macOS users: The manage.sh script uses GNU sed syntax that is incompatible with macOS BSD sed. If you encounter sed: bad flag in substitute command errors, install GNU sed and prepend it to your PATH:
With an optional HTTP proxy on port 80:
Accessing the services
For networks other than mocknet, downloading the initial headers can take several minutes. Until the headers are downloaded, the /v2/info endpoints won't return any data.
Follow the logs to track the sync progress:
stacks-blockchain:
Ports
20443-20444are exposed onlocalhost
stacks-blockchain-api:
Port
3999is exposed onlocalhost
proxy:
Port
80is exposed onlocalhost
Upgrades
For schema-breaking upgrades to running instances of this repo, you'll need to run an event-replay.
Last updated
Was this helpful?