For the complete documentation index, see llms.txt. This page is also available as Markdown.

Running BLAST Testnet from Source

Please follow these steps first if you have not done so already.

Create a shared secret between op-geth and bl-node

  1. Navigate into your op-geth directory and run these commands:

openssl rand -hex 32 > jwt.txt
cp jwt.txt ../blast/bl-node

Scripts to start the different components

In the root of your working directory create a new directory: scripts.

# op-geth

  1. Create a new file:

    touch run-op-geth.sh

  2. Make it executable:

    chmod +x run-op-geth.sh

  3. Insert this snippet of code into run-op-geth.sh and modify the path to the op-geth directory.

    #! /usr/bin/bash
    SEQUENCER_URL=https://goerli-sequencer.blastblockchain.com/
    cd <>
    ./build/bin/geth
    --datadir=./datadir
    --http
    --http.port=8545
    --http.addr=0.0.0.0
    --authrpc.addr=localhost
    --authrpc.jwtsecret=./jwt.txt
    --verbosity=3
    --rollup.sequencerhttp=$SEQUENCER_URL
    --nodiscover
    --syncmode=full
    --maxpeers=0

Other Sequencer URLs can be found here: Networks, Public RPC Endpoints, & APIs.

  1. Run the following command to start op-geth:

op-node

  1. Navigate to the scripts directory you created.

  2. Create a new file:

  3. Make it executable:

  4. Insert this snippet of code into run-bl-node.sh:

  • Change << L1 RPC URL >> to your local L1 node or a service provider's URL for the L1 node (L1 Ethereum). E.g. for Infura, https://goerli.infura.io/v3/API_KEY.

  • Set L1KIND to the network provider you are using (options: alchemy, quicknode, infura, parity, nethermind, debug_geth, erigon, basic, any).

  1. Run the following command to start op-node:

The initial synchronization

The datadir provided by Blast is not updated continuously, so before you can use the node you need a to synchronize it.

During that process you get log messages from bl-node, and nothing else appears to happen.

That is normal - it means that bl-node is looking for a location in the batch queue. After a few minutes it finds it, and then it can start synchronizing.

While it is synchronizing, you can expect log messages such as these from bl-node:

And log messages such as these from op-geth:

#How long will the synchronization take?

To estimate how long the synchronization will take, you need to first find out how many blocks you synchronize in a minute. You can use this Foundry (opens new window)script to get an estimated sync time.

  1. Navigate to your scripts directory

  2. Create a new file:

  3. Make it executable:

  4. Insert this snippet of code into run-estimate.sh:

  1. Run the following command to get an estimate:

#Operations

It is best to start op-geth first and shut it down last.

Last updated