<aside> 💡 This document is deprecated, see Blast Deployment Docs

</aside>

The deployment process is the same as a typical OP stack chain. The testnet code snapshot this document is based on is the sepolia-testnet branch of the blast-io/blast repo: https://github.com/blast-io/blast/commits/sepolia-testnet/

This document is targeted at advanced users that want to build Blast from source. If you’d prefer to run prebuilt docker images, check out this repo here: https://github.com/blast-io/deployment

Building the Docker Images

blast-geth

cd blast-geth/
docker build -t blast-geth .

op-node

cd blast-optimism/
# TODO: you can use whatever registry and repository makes sense for your own build process
REGISTRY=blast.io REPOSITORY=blast-optimism docker buildx bake --load -f docker-bake.hcl op-node

Setup (run once)

Generate the jwt secret

openssl rand -hex 32 | tr -d "\\n" > /jwt.txt

Initialize the blast-geth data directory

geth init \\
  --datadir=$GETH_DATA_DIR \\
  config/genesis.json

Running

blast-geth

# TODO: limit RPC methods to only what you need
geth \\
  --datadir=$GETH_DATA_DIR \\
  --http \\
  --http.corsdomain="*" \\
  --http.vhosts="*" \\
  --http.addr=0.0.0.0 \\
  --http.port=$RPC_PORT \\
  --http.api=web3,debug,eth,txpool,net,engine \\
  --ws \\
  --ws.addr=0.0.0.0 \\
  --ws.port=$WS_PORT \\
  --ws.origins="*" \\
  --ws.api=debug,eth,txpool,net,engine \\
  --authrpc.addr="0.0.0.0" \\
  --authrpc.port="8551" \\
  --authrpc.vhosts="*" \\
  --authrpc.jwtsecret=/jwt.txt \\
  --syncmode=full \\
  --gcmode=archive \\
  --nodiscover \\
  --maxpeers=0 \\
  --rollup.disabletxpoolgossip=true \\
  --rollup.sequencerhttp=https://sequencer.s2.testblast.io

op-node

op-node \\
  --l1=$L1_RPC_URL \\
  --l1.rpckind=$L1_RPC_KIND \\
  --l2=ws://blast-geth:8551 \\
  --l2.jwt-secret=/jwt.txt \\
  --rollup.config=config/rollup.json \\
  --p2p.bootnodes=enr:-J-4QM3GLUFfKMSJQuP1UvuKQe8DyovE7Eaiit0l6By4zjTodkR4V8NWXJxNmlg8t8rP-Q-wp3jVmeAOml8cjMj__ROGAYznzb_HgmlkgnY0gmlwhA-cZ_eHb3BzdGFja4X947FQAIlzZWNwMjU2azGhAiuDqvB-AsVSRmnnWr6OHfjgY8YfNclFy9p02flKzXnOg3RjcIJ2YYN1ZHCCdmE,enr:-J-4QDCVpByqQ8nFqCS9aHicqwUfXgzFDslvpEyYz19lvkHLIdtcIGp2d4q5dxHdjRNTO6HXCsnIKxUeuZSPcEbyVQCGAYznzz0RgmlkgnY0gmlwhANiQfuHb3BzdGFja4X947FQAIlzZWNwMjU2azGhAy3AtF2Jh_aPdOohg506Hjmtx-fQ1AKmu71C7PfkWAw9g3RjcIJ2YYN1ZHCCdmE

To fully participate in p2p, please ensure TCP/UDP is allowed on port 9003 and set --p2p.advertise.ip=$PUBLIC_IP.

Additional RPC methods