Running an OP Sepolia Node from Source (2024)

Builders

Node Operators

Tutorials

Running OP Sepolia from Source

This tutorial explains how to run an OP Sepolia node from source code.Running an OP Sepolia node from source code is a flexible alternative to using pre-built Docker images.

Building the Source Code

You'll need to build op-node and op-geth from their respective source repositories before you can run a node.Make sure to follow the instructions on Building a Node from Source before continuing.

Hardware Requirements

Hardware requirements for OP Sepolia nodes can vary depending on the type of node you plan to run.Archive nodes generally require significantly more resources than full nodes.Below are suggested minimum hardware requirements for each type of node.

  • 8GB RAM
  • 60 GB SSD (full node) or 200 GB SSD (archive node)
  • Reasonably modern CPU

Assess Blob Archiver

Assess if you need to configure a blob archiver service by reading theConfigure a Blob Archiver documentation.

Create a JWT Secret

op-geth and op-node communicate over the engine API authrpc.This communication is secured using a shared secret.You will need to generate a shared secret and provide it to both op-geth and op-node when you start them.In this case, the secret takes the form of a 32 byte hex string.

Run the following command to generate a random 32 byte hex string:

openssl rand -hex 32 > jwt.txt

Start op-geth

It's generally easier to start op-geth before starting op-node.You can still start op-geth without yet running op-node, but the op-geth instance will simply not receive any blocks until op-node is started.

Navigate to your op-geth directory

Find the directory where you built the op-geth binary.

Copy in the JWT secret

Copy the JWT secret you generated in a previous step into the op-geth directory.

cp /path/to/jwt.txt .

Set environment variables

Set the following environment variables (if not already set):

export DATADIR_PATH=... # Path to the folder where geth data will be stored

Start op-geth

Use the following command to start op-geth in a default configuration.The JSON-RPC API will become available on port 8545.Refer to the op-geth configuration documentation for more detailed information about available options.

  • Set --syncmode=execution-layer on op-node if you don't set --syncmode=full here on op-geth.
  • For archive nodes, set --syncmode=full and --gcmode=archive on op-geth.
  • The default settings are for full nodes.
./build/bin/geth \ --http \ --http.port=8545 \ --http.addr=localhost \ --authrpc.addr=localhost \ --authrpc.jwtsecret=./jwt.txt \ --verbosity=3 \ --rollup.sequencerhttp=https://sepolia-sequencer.optimism.io/ \ --op-network=op-sepolia \ --datadir=$DATADIR_PATH

Start op-node

Once you've started op-geth, you can start op-node.op-node will connect to op-geth and begin synchronizing the OP Sepolia state.op-node will begin sending block payloads to op-geth when it derives enough blocks from Sepolia.

Navigate to your op-node directory

Find the directory where you built the op-node binary.

Copy in the JWT secret

Both op-geth and op-node need to use the same JWT secret.Copy the JWT secret you generated in a previous step into the op-node directory.

cp /path/to/jwt.txt .

Set environment variables

Set the following environment variables:

export L1_RPC_URL=... # URL for the L1 node to sync from. If your L1 RPC is a local node, the most common URL is http://127.0.0.1:8545export L1_RPC_KIND=... # RPC type (alchemy, quicknode, infura, parity, nethermind, debug_geth, erigon, basic, any)export L1_BEACON_URL=... # URL address for the L1 Beacon-node HTTP endpoint to use. If your L1 Beacon is a local node, the most common URL is http://127.0.0.1:3500

Start op-node

Use the following command to start op-node in a default configuration.Refer to the op-node configuration documentation for more detailed information about available options.

โš ๏ธ

The op-node RPC should not be exposed publicly. If left exposed, it couldaccidentally expose admin controls to the public internet.

Sync mode is set to --syncmode=execution-layer to enable snap sync.

./bin/op-node \ --l1=$L1_RPC_URL \ --l1.rpckind=$L1_RPC_KIND \ --l1.beacon=$L1_BEACON_URL \ --l2=ws://localhost:8551 \ --l2.jwt-secret=./jwt.txt \ --network=op-sepolia \ --syncmode=execution-layer

๐Ÿ’ก

Some L1 nodes, like Erigon, do not support the eth_getProof RPC method that the op-node uses to load L1 data for certain processing steps.If you are using an L1 node that does not support eth_getProof, you will need to include the --l1.trustrpc flag when starting op-node.Note that this flag will cause op-node to trust the L1 node to provide correct data as it will no longer be able to independently verify the data it receives.

Synchronization Verification

Once you've started op-geth and op-node you should see the two begin tocommunicate with each other and synchronize the OP Mainnet chain.

Snap Sync (Default)

Initial synchronization can take several hours to complete. You will see theseop-node logs at the start of snap sync:

INFO [03-06|10:56:55.602] Starting EL syncINFO [03-06|10:56:55.615] Sync progress reason="unsafe payload from sequencer while in EL sync" l2_finalized=000000..000000:0 l2_safe=000000..000000:0 l2_pending_safe=000000..000000:0 l2_unsafe=4284ab..7e7e84:117076319 l2_time=1,709,751,415 l1_derived=000000..000000:0INFO [03-06|10:56:57.567] Optimistically inserting unsafe L2 execution payload to drive EL sync id=4ac160..df4d12:117076320

Starting EL sync is shown once and the sync progress / inserting logs should be repeated until done.

op-node will log the following when done:

lvl=info msg="Finished EL sync" sync_duration=23h25m0.370558429s finalized_block=0x4f69e83ff1407f2e2882f2526ee8a154ac326590799889cede3af04a7742f18d:116817417

There are two stages on op-geth for snap sync:

Downloading the headers

op-geth log something like this as it is downloading the headers:

lvl=info msg="Syncing beacon headers" downloaded=116775778 left=1162878 eta=53.182s 

Sync progress

For the second stage, op-geth will log the following:

lvl=info msg="Syncing: state download in progress" synced=99.75% state="191.33 GiB" accounts=124,983,[emailprotected] slots=806,829,[emailprotected] [emailprotected] eta=-2m7.602s
msg="Syncing: chain download in progress" synced=100.00% chain="176.01 GiB" headers=116,817,[emailprotected] bodies=116,817,[emailprotected] receipts=116,817,[emailprotected] eta=77.430ms

All the while, op-geth will also log the forkchoice update:

Forkchoice requested sync to new head number=117,076,468 hash=e3884c..bf4e2b

Full Sync

Initial full synchronization can take several days to complete.

During this time, you will initially observe op-node deriving blocks from Ethereum without sending these blocks to op-geth.This means that op-node is requesting blocks from Ethereum one-by-one and determining the corresponding OP Mainnet blocks that were published to Ethereum.You should see logs like the following from op-node:

INFO [06-26|13:31:20.389] Advancing bq origin origin=17171d..1bc69b:8300332 originBehind=false

Once the op-node has derived enough blocks from Ethereum, it will begin sending these blocks to op-geth.You should see logs like the following from op-node:

INFO [06-26|14:00:59.460] Sync progress reason="processed safe block derived from L1" l2_finalized=ef93e6..e0f367:4067805 l2_safe=7fe3f6..900127:4068014 l2_unsafe=7fe3f6..900127:4068014 l2_time=1,673,564,096 l1_derived=6079cd..be4231:8301091INFO [06-26|14:00:59.460] Found next batch epoch=8e8a03..11a6de:8301087 batch_epoch=8301087 batch_timestamp=1,673,564,098INFO [06-26|14:00:59.461] generated attributes in payload queue txs=1 timestamp=1,673,564,098INFO [06-26|14:00:59.463] inserted block hash=e80dc4..72a759 number=4,068,015 state_root=660ced..043025 timestamp=1,673,564,098 parent=7fe3f6..900127 prev_randao=78e43d..36f07a fee_recipient=0x4200000000000000000000000000000000000011 txs=1 update_safe=true

You should then also begin to see logs like the following from op-geth:

INFO [06-26|14:02:12.974] Imported new potential chain segment number=4,068,194 hash=a334a0..609a83 blocks=1 txs=1 mgas=0.000 elapsed=1.482ms mgasps=0.000 age=5mo2w20h dirty=2.31MiBINFO [06-26|14:02:12.976] Chain head was updated number=4,068,194 hash=a334a0..609a83 root=e80f5e..dd06f9 elapsed="188.373ยตs" age=5mo2w20hINFO [06-26|14:02:12.982] Starting work on payload id=0x5542117d680dbd4e

Next Steps

  • If you've already got your node up and running, check out the Node Metrics and Monitoring Guide to learn how to keep tabs on your node and make sure it keeps running smoothly.
  • If you run into any problems, please visit the Node Troubleshooting Guide for help.
Running OP Mainnet from SourceBase Configuration
Running an OP Sepolia Node from Source (2024)
Top Articles
Cancel data transfer - Apple Community
Is It Worth Paying a Wealth Manager?
Ffxiv Palm Chippings
Gamevault Agent
News - Rachel Stevens at RachelStevens.com
Valley Fair Tickets Costco
Davante Adams Wikipedia
Hotels Near 500 W Sunshine St Springfield Mo 65807
Mohawkind Docagent
Emmalangevin Fanhouse Leak
123 Movies Black Adam
Mndot Road Closures
Erskine Plus Portal
Craigslist Heavy Equipment Knoxville Tennessee
Slag bij Plataeae tussen de Grieken en de Perzen
Oscar Nominated Brings Winning Profile to the Kentucky Turf Cup
Superhot Unblocked Games
My.doculivery.com/Crowncork
Love In The Air Ep 9 Eng Sub Dailymotion
7543460065
Committees Of Correspondence | Encyclopedia.com
Vanessawest.tripod.com Bundy
My Homework Lesson 11 Volume Of Composite Figures Answer Key
Huntersville Town Billboards
Mychart Anmed Health Login
Timeforce Choctaw
Ford F-350 Models Trim Levels and Packages
Sofia the baddie dog
City Of Durham Recycling Schedule
Sandals Travel Agent Login
Orange Park Dog Racing Results
DIY Building Plans for a Picnic Table
Otis Offender Michigan
Nicole Wallace Mother Of Pearl Necklace
The Pretty Kitty Tanglewood
Steven Batash Md Pc Photos
Tamil Play.com
Atlantic Broadband Email Login Pronto
Spinning Gold Showtimes Near Emagine Birch Run
Asian Grocery Williamsburg Va
Directions To 401 East Chestnut Street Louisville Kentucky
Academic important dates - University of Victoria
Gpa Calculator Georgia Tech
T&Cs | Hollywood Bowl
Immobiliare di Felice| Appartamento | Appartamento in vendita Porto San
Sdn Fertitta 2024
4k Movie, Streaming, Blu-Ray Disc, and Home Theater Product Reviews & News
St Vrain Schoology
Online College Scholarships | Strayer University
Unpleasant Realities Nyt
Tyrone Unblocked Games Bitlife
How To Connect To Rutgers Wifi
Latest Posts
Article information

Author: Melvina Ondricka

Last Updated:

Views: 6050

Rating: 4.8 / 5 (48 voted)

Reviews: 87% of readers found this page helpful

Author information

Name: Melvina Ondricka

Birthday: 2000-12-23

Address: Suite 382 139 Shaniqua Locks, Paulaborough, UT 90498

Phone: +636383657021

Job: Dynamic Government Specialist

Hobby: Kite flying, Watching movies, Knitting, Model building, Reading, Wood carving, Paintball

Introduction: My name is Melvina Ondricka, I am a helpful, fancy, friendly, innocent, outstanding, courageous, thoughtful person who loves writing and wants to share my knowledge and understanding with you.