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