GithubHelp home page GithubHelp logo

blast-io / blast Goto Github PK

View Code? Open in Web Editor NEW
87.0 25.0 48.0 36.35 MB

Shell 0.24% Dockerfile 0.05% Makefile 0.13% Go 59.75% NSIS 0.08% Python 0.25% JavaScript 7.83% HTML 0.05% Assembly 0.63% Solidity 20.15% C 2.39% M4 0.09% Sage 0.11% Java 0.11% HCL 0.02% TypeScript 7.21% Rust 0.03% Nix 0.01% Ruby 0.87% Handlebars 0.01%

blast's Introduction

Blast

This repo contains Blast's fork of optimism and op-geth. If you're interested in self hosting a Blast node for either mainnet or testnet, check out the docs here.

Running Blast locally (against a local L1)

Prereqs

docker, git, go1.20, node, pnpm, foundry, make, yarn, direnv, jq

Steps

  1. Build the blast-geth docker image
docker build blast-geth -f blast-geth/Dockerfile -t blast-geth
  1. Compile the smart contracts & start the devnet
export BLAST_ROOT=$(realpath blast-optimism)

# Compile the smart contracts & deploy them to the L1
cd blast-optimism/packages/contracts-bedrock
pnpm clean  
pnpm install
pnpm build

# If you're on a mac, you might need rosetta instructions, ONLY IF NEEDED FOR M1/M2:
# /usr/sbin/softwareupdate --install-rosetta --agree-to-license`

cd $BLAST_ROOT

# Install geth
make install-geth

# Make sure geth is in your PATH, if it's not, you can set it using
# export PATH="${PATH}:${GOPATH}/bin:${HOME}/go/bin"

make cannon-prestate

# Run the devnet in docker
# L1 RPC: http://localhost:8545
# L2 RPC: http://localhost:9545
make devnet-up

# To stop devnet run command
make devnet-down

L1 faucet address

This is the private key for the devnet L1 faucet: 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80

This is the corresponding address: 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266

Using the L2

  1. Send some ETH from the L1 faucet to your wallet on the L1
  2. Find the Blast bridge address using the command below:
cd $BLAST_ROOT
cat ./packages/contracts-bedrock/deployments/devnetL1/L1BlastBridgeProxy.json | grep -m 1 '"address": '
  1. Send L1 ETH from your wallet to bridge address above
  2. Wait for the tx to get confirmed
  3. Your wallet should now have ETH on the L2

blast's People

Contributors

blast-io-bot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

blast's Issues

Sepolia testnet node

guys, we want to launch test Sepolia node and try it

do you have any docs/manual how to run it and build without docker?

your current advanced doc is outdated and does not have steps where we can avoid docker usage.

Thanks a lot

main net running node issues

hey,
you have incorrect genesis file for mainnet. Test Sepolia node is running okay

Fatal: invalid genesis file: missing required field 'gasLimit' for Genesis

Testnet block stuck at 4656412

I have created 3 full node for the testnet and all of them are stuck at 4656412. Please advice on ways to bypass this or are there any testnet snapshot that we can use?

t=2024-06-03T02:41:04+0000 lvl=info msg="Rollup State Snapshot"                  LOG15_ERROR=log.funcHandler is not a string key LOG15_ERROR="Normalized odd number of arguments by adding nil" event="New unsafe payload" l1Head="{\"hash\":\"0x8b7cdee11c89e4f6336f360a6325b10dc8f775292c06135ce2ff604ddbe1f4ee\",\"number\":6028755,\"parentHash\":\"0x5934e1fa42180ba912e165606962eeeef0d64c4d7d16875b17e3fd098a6c08d1\",\"timestamp\":1717382112}" l1Current="{\"hash\":\"0x6919d75836e0b90f71b556f2c78a031672ac7bbf40c965e9ef137f8f4f6557b1\",\"number\":5770434,\"parentHash\":\"0x6138c364aad4e8fd60bdd6166acbebcecbc6e2f42ad9d9d15798aacf8d1a3b29\",\"timestamp\":1714000068}" l2Head="{\"hash\":\"0x1a3ca109db701e2f0d0ebcda0ee7e89fc4be97088f5f467f5bda8d1fb8a7bcff\",\"number\":4656412,\"parentHash\":\"0xfd5272be35a77ecc0c0076835e87d054403e1888c1b95dee7f677e1f08c446bc\",\"timestamp\":1713999512,\"l1origin\":{\"hash\":\"0x31e28a48e54ee1276bc8f4d83424b52df814d91d52a0385a749deb6b7f41f9ff\",\"number\":5770382},\"sequenceNumber\":5}" l2Safe="{\"hash\":\"0x1a3ca109db701e2f0d0ebcda0ee7e89fc4be97088f5f467f5bda8d1fb8a7bcff\",\"number\":4656412,\"parentHash\":\"0xfd5272be35a77ecc0c0076835e87d054403e1888c1b95dee7f677e1f08c446bc\",\"timestamp\":1713999512,\"l1origin\":{\"hash\":\"0x31e28a48e54ee1276bc8f4d83424b52df814d91d52a0385a749deb6b7f41f9ff\",\"number\":5770382},\"sequenceNumber\":5}" l2FinalizedHead="{\"hash\":\"0x1a3ca109db701e2f0d0ebcda0ee7e89fc4be97088f5f467f5bda8d1fb8a7bcff\",\"number\":4656412,\"parentHash\":\"0xfd5272be35a77ecc0c0076835e87d054403e1888c1b95dee7f677e1f08c446bc\",\"timestamp\":1713999512,\"l1origin\":{\"hash\":\"0x31e28a48e54ee1276bc8f4d83424b52df814d91d52a0385a749deb6b7f41f9ff\",\"number\":5770382},\"sequenceNumber\":5}"

Testnet node is always ~12 hours and 50 minutes behind

Our Blast testnet node is always around ~12 hours and 50 minutes behind the latest block and it is unable to catch up.

Basically, the node is forking from the network and keeps producing blocks...

We tried to recover the node using https://bwarelabs.com/snapshots/aptos snapshot ... it synced until it gets around 12-13 hours behind and it is unable to catch up.

Logs

op-geth

May 26 13:01:13 t-blast-sepolia-01 geth[214131]: INFO [05-26|13:01:13.500] Starting work on payload                 id=0xc1dd33096a3bba4a
May 26 13:01:13 t-blast-sepolia-01 geth[214131]: INFO [05-26|13:01:13.507] Imported new potential chain segment     number=5,997,741 hash=c768f5..a91e02 blocks=1 txs=1  mgas=0.044  elapsed=3.908ms     mgasps=11.225  age=12h51m43s snapdiffs=160.82KiB  triedirty=0.00B
May 26 13:01:13 t-blast-sepolia-01 geth[214131]: INFO [05-26|13:01:13.508] Chain head was updated                   number=5,997,741 hash=c768f5..a91e02 root=ee989b..7690b3 elapsed=1.08981ms   age=12h51m43s
May 26 13:01:13 t-blast-sepolia-01 geth[214131]: INFO [05-26|13:01:13.513] Starting work on payload                 id=0x29b6d8f02d469e66

op-node

May 26 13:05:13 t-blast-sepolia-01 node[219483]: t=2024-05-26T13:05:13+0000 lvl=warn msg="ignoring batch with mismatching parent hash" batch_index=0 batch_type=SpanBatch batch_timestamp=1,716,682,386 parent_check=0x14b9914b0978090b1e5af03b4209f43f100fff08 origin_check=0xf712ed17dccc2d47056c0972f8adf8e4b158fc04 start_epoch_number=5978140 end_epoch_number=5,978,165 block_count=160 parent_block=0x87bd25972d804dbb1688b0435aa168083dda8b7d1f28af058ef6d3ac223368be
May 26 13:05:13 t-blast-sepolia-01 node[219483]: t=2024-05-26T13:05:13+0000 lvl=warn msg="Dropping batch"                         batch_type=SpanBatch batch_timestamp=1,716,682,386 parent_check=0x14b9914b0978090b1e5af03b4209f43f100fff08 origin_check=0xf712ed17dccc2d47056c0972f8adf8e4b158fc04 start_epoch_number=5978140 end_epoch_number=5,978,165 block_count=160 l2_safe_head=0x87bd25972d804dbb1688b0435aa168083dda8b7d1f28af058ef6d3ac223368be:5997848 l2_safe_head_time=1,716,682,384
May 26 13:05:13 t-blast-sepolia-01 node[219483]: t=2024-05-26T13:05:13+0000 lvl=info msg="Generating next batch"                  epoch=0x48ced58945e6858e2d9781a4d465a58799debeebf57f39d93b14d7170bdf72c9:5978146 timestamp=1,716,682,386
May 26 13:05:13 t-blast-sepolia-01 node[219483]: t=2024-05-26T13:05:13+0000 lvl=info msg="generated attributes in payload queue"  txs=1   timestamp=1,716,682,386
May 26 13:05:13 t-blast-sepolia-01 node[219483]: t=2024-05-26T13:05:13+0000 lvl=info msg="inserted block"                         hash=0x92a87d8ead0fe4ab536780d4a35b1a3b856330ff51a09cb4251e89c10f703f17 number=5,997,849 state_root=0xf42c829509514a16da7eb14ab5d72f1cc414846462d048e1b60ffb684678cfc8 timestamp=1,716,682,386 parent=0x87bd25972d804dbb1688b0435aa168083dda8b7d1f28af058ef6d3ac223368be prev_randao=0x025899a87285786222bd23baeef09805852560c2b180249444370c5d44a71dc8 fee_recipient=0x4200000000000000000000000000000000000011 txs=1   update_safe=true
May 26 13:05:13 t-blast-sepolia-01 node[219483]: t=2024-05-26T13:05:13+0000 lvl=info msg="Sync progress"                          reason="processed safe block derived from L1" l2_finalized=0x71f05b6b9f6145d90b43a518fc555fd39eff9a7b49bb2f4481062d816c445942:5997209 l2_safe=0x92a87d8ead0fe4ab536780d4a35b1a3b856330ff51a09cb4251e89c10f703f17:5997849 l2_pending_safe=0x92a87d8ead0fe4ab536780d4a35b1a3b856330ff51a09cb4251e89c10f703f17:5997849 l2_unsafe=0x92a87d8ead0fe4ab536780d4a35b1a3b856330ff51a09cb4251e89c10f703f17:5997849 l2_time=1,716,682,386 l1_derived=0x083f1230cf0324eb4322e65e194520023d5ce1d1c4a4695975ab7e56cdb1f089:5981746
May 26 13:05:13 t-blast-sepolia-01 node[219483]: t=2024-05-26T13:05:13+0000 lvl=info msg="Generating next batch"                  epoch=0x48ced58945e6858e2d9781a4d465a58799debeebf57f39d93b14d7170bdf72c9:5978146 timestamp=1,716,682,388
May 26 13:05:13 t-blast-sepolia-01 node[219483]: t=2024-05-26T13:05:13+0000 lvl=info msg="generated attributes in payload queue"  txs=1   timestamp=1,716,682,388
May 26 13:05:13 t-blast-sepolia-01 node[219483]: t=2024-05-26T13:05:13+0000 lvl=info msg="inserted block"                         hash=0x5d9c9c47981823952983eb7c9694cbc03c0ce3ca7d6ed12274269a39ffc62b7f number=5,997,850 state_root=0xacc563eb5b25d44e801e6a18f8987791c97cbc6bad8916dbf855c16ee3b59cd2 timestamp=1,716,682,388 parent=0x92a87d8ead0fe4ab536780d4a35b1a3b856330ff51a09cb4251e89c10f703f17 prev_randao=0x025899a87285786222bd23baeef09805852560c2b180249444370c5d44a71dc8 fee_recipient=0x4200000000000000000000000000000000000011 txs=1   update_safe=true
May 26 13:05:13 t-blast-sepolia-01 node[219483]: t=2024-05-26T13:05:13+0000 lvl=info msg="Sync progress"                          reason="processed safe block derived from L1" l2_finalized=0x71f05b6b9f6145d90b43a518fc555fd39eff9a7b49bb2f4481062d816c445942:5997209 l2_safe=0x5d9c9c47981823952983eb7c9694cbc03c0ce3ca7d6ed12274269a39ffc62b7f:5997850 l2_pending_safe=0x5d9c9c47981823952983eb7c9694cbc03c0ce3ca7d6ed12274269a39ffc62b7f:5997850 l2_unsafe=0x5d9c9c47981823952983eb7c9694cbc03c0ce3ca7d6ed12274269a39ffc62b7f:5997850 l2_time=1,716,682,388 l1_derived=0x083f1230cf0324eb4322e65e194520023d5ce1d1c4a4695975ab7e56cdb1f089:5981746
May 26 13:05:13 t-blast-sepolia-01 node[219483]: t=2024-05-26T13:05:13+0000 lvl=info msg="Generating next batch"                  epoch=0x48ced58945e6858e2d9781a4d465a58799debeebf57f39d93b14d7170bdf72c9:5978146 timestamp=1,716,682,390
May 26 13:05:13 t-blast-sepolia-01 node[219483]: t=2024-05-26T13:05:13+0000 lvl=info msg="generated attributes in payload queue"  txs=1   timestamp=1,716,682,390

Configuration

op-geth

    --datadir=/var/lib/blast/data/execution \
    --port=30303 \
    --nat=extip:0.0.0.0 \
    --nodiscover \
    --maxpeers=0 \
    --syncmode=full \
    --gcmode=archive \
    --rollup.sequencerhttp=https://sequencer.s2.testblast.io \
    --rollup.disabletxpoolgossip=true \
    --http \
    --http.addr=0.0.0.0 \
    --http.port=8545 \
    --http.corsdomain="*" \
    --http.vhosts="*" \
    --http.api=eth,web3 \
    --rpc.txfeecap 100 \
    --ws \
    --ws.addr=0.0.0.0 \
    --ws.port=8546 \
    --ws.origins="*" \
    --ws.api=eth,web3 \
    --authrpc.addr=127.0.0.1 \
    --authrpc.vhosts=* \
    --authrpc.port=8551 \
    --authrpc.jwtsecret=/var/lib/blast/jwt.hex \
    --metrics \
    --metrics.addr=0.0.0.0 \
    --metrics.port=6060 \
    --override.canyon=0 \
    --override.ecotone=1713999600 \
    --verbosity=3

op-node

    --l1=ws://IP_ADDRESS:8546 \
    --l1.beacon=http://IP_ADDRESS:5052 \
    --l2=http://127.0.0.1:8551 \
    --l2.jwt-secret=/var/lib/blast/jwt.hex \
    --rpc.addr=127.0.0.1 \
    --rpc.port=9545 \
    --rollup.config=/var/lib/blast/data/consensus/rollup.json \
    --rollup.halt=major \
    --p2p.advertise.ip=IP_ADDRESS \
    --p2p.listen.tcp=30304 \
    --p2p.listen.udp=30304 \
    --p2p.bootnodes=enr:-J-4QM3GLUFfKMSJQuP1UvuKQe8DyovE7Eaiit0l6By4zjTodkR4V8NWXJxNmlg8t8rP-Q-wp3jVmeAOml8cjMj__ROGAYznzb_HgmlkgnY0gmlwhA-cZ_eHb3BzdGFja4X947FQAIlzZWNwMjU2azGhAiuDqvB-AsVSRmnnWr6OHfjgY8YfNclFy9p02flKzXnOg3RjcIJ2YYN1ZHCCdmE,enr:-J-4QDCVpByqQ8nFqCS9aHicqwUfXgzFDslvpEyYz19lvkHLIdtcIGp2d4q5dxHdjRNTO6HXCsnIKxUeuZSPcEbyVQCGAYznzz0RgmlkgnY0gmlwhANiQfuHb3BzdGFja4X947FQAIlzZWNwMjU2azGhAy3AtF2Jh_aPdOohg506Hjmtx-fQ1AKmu71C7PfkWAw9g3RjcIJ2YYN1ZHCCdmE \
    --p2p.priv.path=/var/lib/blast/data/consensus/priv.key \
    --p2p.peerstore.path=/var/lib/blast/data/consensus/peerstore \
    --p2p.discovery.path=/var/lib/blast/data/consensus/discovery \
    --metrics.enabled=true \
    --metrics.addr=0.0.0.0 \
    --metrics.port=6061

Related

Related with the following issues:

Ecotone - Blast Geth exits with `panic: runtime error: invalid memory address or nil pointer dereference`

Hey Team,

Since the ecotone update, all of our blast nodes exit with a panic.
We're running it as binary, not via docker.

tried doing geth-init with the new genesis.json from deployment repo, but despite that being successful, our node still fails to run.

Full logs:

INFO [05-28|12:03:28.195] Starting Geth on Ethereum mainnet... 
INFO [05-28|12:03:28.195] Bumping default cache on mainnet         provided=1024 updated=4096
INFO [05-28|12:03:28.195] Enabling metrics collection 
INFO [05-28|12:03:28.195] Enabling stand-alone metrics HTTP endpoint address=10.0.0.10:6061
INFO [05-28|12:03:28.195] Starting metrics server                  addr=http://10.0.0.10:6061/debug/metrics
INFO [05-28|12:03:28.198] Maximum peer count                       ETH=0 LES=0 total=0
INFO [05-28|12:03:28.199] Smartcard socket not found, disabling    err="stat /run/pcscd/pcscd.comm: no such file or directory"
INFO [05-28|12:03:28.203] Enabling recording of key preimages since archive mode is used 
WARN [05-28|12:03:28.203] Disabled transaction unindexing for archive node 
INFO [05-28|12:03:28.203] Set global gas cap                       cap=50,000,000
INFO [05-28|12:03:28.203] Initializing the KZG library             backend=gokzg
INFO [05-28|12:03:28.240] Allocated trie memory caches             clean=1.20GiB dirty=0.00B
INFO [05-28|12:03:28.757] Using pebble as the backing database 
INFO [05-28|12:03:28.757] Allocated cache and file handles         database=/snapshot/blast-data/geth/geth/chaindata cache=2.00GiB handles=524,288
INFO [05-28|12:03:34.320] Opened ancient database                  database=/snapshot/blast-data/geth/geth/chaindata/ancient/chain readonly=false
INFO [05-28|12:03:34.322] State scheme set to already existing     scheme=hash
INFO [05-28|12:03:35.773] Initialising Ethereum protocol           network=81457 dbversion=8
INFO [05-28|12:03:35.773]  
INFO [05-28|12:03:35.773] --------------------------------------------------------------------------------------------------------------------------------------------------------- 
INFO [05-28|12:03:35.773] Chain ID:  81457 (unknown) 
INFO [05-28|12:03:35.773] Consensus: Optimism 
INFO [05-28|12:03:35.773]  
INFO [05-28|12:03:35.773] Pre-Merge hard forks (block based): 
INFO [05-28|12:03:35.773]  - Homestead:                   #0        (https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/homestead.md) 
INFO [05-28|12:03:35.773]  - Tangerine Whistle (EIP 150): #0        (https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/tangerine-whistle.md) 
INFO [05-28|12:03:35.773]  - Spurious Dragon/1 (EIP 155): #0        (https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/spurious-dragon.md) 
INFO [05-28|12:03:35.773]  - Spurious Dragon/2 (EIP 158): #0        (https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/spurious-dragon.md) 
INFO [05-28|12:03:35.773]  - Byzantium:                   #0        (https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/byzantium.md) 
INFO [05-28|12:03:35.773]  - Constantinople:              #0        (https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/constantinople.md) 
INFO [05-28|12:03:35.773]  - Petersburg:                  #0        (https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/petersburg.md) 
INFO [05-28|12:03:35.773]  - Istanbul:                    #0        (https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/istanbul.md) 
INFO [05-28|12:03:35.773]  - Muir Glacier:                #0        (https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/muir-glacier.md) 
INFO [05-28|12:03:35.773]  - Berlin:                      #0        (https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/berlin.md) 
INFO [05-28|12:03:35.773]  - London:                      #0        (https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/london.md) 
INFO [05-28|12:03:35.773]  - Arrow Glacier:               #0        (https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/arrow-glacier.md) 
INFO [05-28|12:03:35.773]  - Gray Glacier:                #0        (https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/gray-glacier.md) 
INFO [05-28|12:03:35.773]  
INFO [05-28|12:03:35.773] Merge configured: 
INFO [05-28|12:03:35.773]  - Hard-fork specification:    https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/paris.md 
INFO [05-28|12:03:35.773]  - Network known to be merged: true 
INFO [05-28|12:03:35.773]  - Total terminal difficulty:  0 
INFO [05-28|12:03:35.773]  - Merge netsplit block:       #0        
INFO [05-28|12:03:35.773]  
INFO [05-28|12:03:35.773] Post-Merge hard forks (timestamp based): 
INFO [05-28|12:03:35.773]  - Shanghai:                    @0          (https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/shanghai.md) 
INFO [05-28|12:03:35.773]  - Cancun:                      @1716843599 
INFO [05-28|12:03:35.773]  - Regolith:                    @0          
INFO [05-28|12:03:35.773]  - Canyon:                      @0          
INFO [05-28|12:03:35.773]  - Ecotone:                     @1716843599 
INFO [05-28|12:03:35.773]  
INFO [05-28|12:03:35.773] --------------------------------------------------------------------------------------------------------------------------------------------------------- 
INFO [05-28|12:03:35.773]  
INFO [05-28|12:03:35.774] Loaded most recent local block           number=4,016,892 hash=d2c457..0ab0cf td=0 age=15h3m36s
INFO [05-28|12:03:35.774] Loaded most recent local finalized block number=4,016,892 hash=d2c457..0ab0cf td=0 age=15h3m36s
INFO [05-28|12:03:35.808] Initialising Ethereum protocol           network=81457 dbversion=8
INFO [05-28|12:03:35.808] Initialized transaction indexer          limit=0
INFO [05-28|12:03:35.809] Loaded local transaction journal         transactions=0 dropped=0
INFO [05-28|12:03:35.809] Regenerated local transaction journal    transactions=0 accounts=0
INFO [05-28|12:03:35.809] Chain post-merge, sync via beacon client 
INFO [05-28|12:03:35.809] Gasprice oracle is ignoring threshold set threshold=2
WARN [05-28|12:03:35.812] Old unclean shutdowns found              count=154
WARN [05-28|12:03:35.812] Unclean shutdown detected                booted=2024-05-28T10:15:27+0000 age=1h48m8s
WARN [05-28|12:03:35.812] Unclean shutdown detected                booted=2024-05-28T10:15:37+0000 age=1h47m58s
WARN [05-28|12:03:35.812] Unclean shutdown detected                booted=2024-05-28T10:15:59+0000 age=1h47m36s
WARN [05-28|12:03:35.812] Unclean shutdown detected                booted=2024-05-28T10:17:41+0000 age=1h45m54s
WARN [05-28|12:03:35.812] Unclean shutdown detected                booted=2024-05-28T10:22:52+0000 age=1h40m43s
WARN [05-28|12:03:35.812] Unclean shutdown detected                booted=2024-05-28T10:25:06+0000 age=1h38m29s
WARN [05-28|12:03:35.812] Unclean shutdown detected                booted=2024-05-28T11:08:56+0000 age=54m39s
WARN [05-28|12:03:35.812] Unclean shutdown detected                booted=2024-05-28T11:29:15+0000 age=34m20s
WARN [05-28|12:03:35.812] Unclean shutdown detected                booted=2024-05-28T11:34:55+0000 age=28m40s
WARN [05-28|12:03:35.812] Unclean shutdown detected                booted=2024-05-28T11:35:29+0000 age=28m6s
WARN [05-28|12:03:35.812] Unclean shutdown detected                booted=2024-05-28T11:38:06+0000 age=25m29s
WARN [05-28|12:03:35.813] Engine API enabled                       protocol=eth
INFO [05-28|12:03:35.813] Starting peer-to-peer node               instance=Geth/v0.1.0-unstable-706acdde-20240521/linux-arm64/go1.22.2
INFO [05-28|12:03:35.826] IPC endpoint opened                      url=/snapshot/blast-data/geth/geth.ipc
INFO [05-28|12:03:35.826] Loaded JWT secret file                   path=/secrets/blast-jwt.hex crc32=0x5c2b8cd0
INFO [05-28|12:03:35.827] HTTP server started                      endpoint=10.0.0.10:8640 auth=false prefix= cors=* vhosts=localhost
INFO [05-28|12:03:35.827] New local node record                    seq=1,714,167,187,005 id=f09cf788294c54e1 ip=127.0.0.1 udp=0 tcp=30304
INFO [05-28|12:03:35.827] WebSocket enabled                        url=ws://10.0.0.10:8641
INFO [05-28|12:03:35.827] Started P2P networking                   self="enode://<redacted>@127.0.0.1:30304?discport=0"
INFO [05-28|12:03:35.827] WebSocket enabled                        url=ws://127.0.0.1:8651
INFO [05-28|12:03:35.827] HTTP server started                      endpoint=127.0.0.1:8651 auth=true  prefix= cors=localhost vhosts=localhost
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0xe8c950]

goroutine 4381 [running]:
github.com/ethereum/go-ethereum/miner.(*worker).prepareWork(0x400e654908, 0x40157dd740)
	github.com/ethereum/go-ethereum/miner/worker.go:1038 +0x5c0
github.com/ethereum/go-ethereum/miner.(*worker).generateWork(0x400e654908, 0x40157dd740)
	github.com/ethereum/go-ethereum/miner/worker.go:1101 +0x38
github.com/ethereum/go-ethereum/miner.(*worker).mainLoop(0x400e654908)
	github.com/ethereum/go-ethereum/miner/worker.go:557 +0x2f0
created by github.com/ethereum/go-ethereum/miner.newWorker in goroutine 1
	github.com/ethereum/go-ethereum/miner/worker.go:295 +0x640
	

Thanks,
8x4

incorrect version number on api call

# curl http://127.0.0.1:3880 -s -X POST -H "Content-Type: application/json" -d '{"jsonrpc": "2.0","method": "web3_clientVersion","params": [],"id": 1}' | jq ".result" 
"Geth/v0.1.0-unstable/linux-amd64/go1.21.10"

Release notes

Please create releases in this repository that node runner can subscribe to in order to not miss any updates to the docker containers.

Unstable synchronization

I have problems with data synchronization, sometimes it stops for a few seconds then resumes. And the block always syncs slowly with high latency.

I am using: GCP 24 CPUs 24GB ram 1TB SSD, region us-central1-c & quicknode endpoint for L1

Here is the logs:

INFO [04-30|15:03:17.971] Chain head was updated                   number=2,839,791 hash=e5ea86..653453 root=5956e2..1013b2 elapsed=3.871777ms
INFO [04-30|15:03:20.335] Imported new potential chain segment     number=2,839,792 hash=fbd3ee..586f71 blocks=1       txs=19        mgas=2.872  elapsed=449.112ms  mgasps=6.394  snapdiffs=1.74MiB triedirty=36.80MiB
INFO [04-30|15:03:20.343] Chain head was updated                   number=2,839,792 hash=fbd3ee..586f71 root=89b8e7..06e452 elapsed=4.769188ms
INFO [04-30|15:03:25.407] Imported new potential chain segment     number=2,839,793 hash=455778..fd8c38 blocks=1       txs=22        mgas=8.478  elapsed=3.095s     mgasps=2.739  snapdiffs=1.74MiB triedirty=37.16MiB
INFO [04-30|15:03:25.418] Chain head was updated                   number=2,839,793 hash=455778..fd8c38 root=3ff8b8..5a2302 elapsed=6.164349ms
INFO [04-30|15:03:26.425] Imported new potential chain segment     number=2,839,794 hash=c20c77..4283a6 blocks=1       txs=14        mgas=3.737  elapsed=995.006ms  mgasps=3.756  snapdiffs=1.74MiB triedirty=37.46MiB
INFO [04-30|15:03:26.431] Chain head was updated                   number=2,839,794 hash=c20c77..4283a6 root=e962d6..bae71d elapsed=4.239748ms
INFO [04-30|15:03:26.476] Imported new potential chain segment     number=2,839,795 hash=d298fb..b41903 blocks=1       txs=6         mgas=0.625  elapsed=37.149ms   mgasps=16.834 snapdiffs=1.74MiB triedirty=37.42MiB
INFO [04-30|15:03:26.481] Chain head was updated                   number=2,839,795 hash=d298fb..b41903 root=f3923a..ba69bd elapsed=3.32476ms
INFO [04-30|15:03:28.399] Imported new potential chain segment     number=2,839,796 hash=ba8a32..0e258d blocks=1       txs=10        mgas=1.956  elapsed=211.774ms  mgasps=9.238  snapdiffs=1.74MiB triedirty=37.55MiB
INFO [04-30|15:03:28.405] Chain head was updated                   number=2,839,796 hash=ba8a32..0e258d root=a890c9..5930be elapsed=3.686709ms
INFO [04-30|15:03:29.925] Imported new potential chain segment     number=2,839,797 hash=8e264e..b1e173 blocks=1       txs=7         mgas=2.053  elapsed=119.556ms  mgasps=17.174 snapdiffs=1.74MiB triedirty=37.60MiB
INFO [04-30|15:03:29.931] Chain head was updated                   number=2,839,797 hash=8e264e..b1e173 root=1f96bb..cd76fc elapsed=4.121763ms
INFO [04-30|15:03:32.038] Imported new potential chain segment     number=2,839,798 hash=9718df..264f58 blocks=1       txs=8         mgas=2.147  elapsed=255.680ms  mgasps=8.398  snapdiffs=1.74MiB triedirty=37.74MiB
INFO [04-30|15:03:32.043] Chain head was updated                   number=2,839,798 hash=9718df..264f58 root=e40cba..99d8f8 elapsed=4.170602ms

Is there any way to make the synchronization more stable and faster?

Syncing from L2

Is there a way to directly sync from L2 so blocks dont lag behind on the node?

Snap Sync Not Working

I have tried to use snap sync on blast sepolia network in the same way I sucessfully used on base and optimism (both sepolia and mainnet) and on blast snap dync is not working.

Immediately after starting op-geth with the settings shared below, I see the log message "Snap sync complete, auto disabling.

I have used snap sync before on optimism and base and the behavior of op-geth is different. I was expecting to see messages like: "Syncing: chain download in progress", "Syncing: state download in progress", "Forkchoice requested sync to new head", etc.

Commands

geth:

/usr/local/bin/geth \
    --datadir=/var/lib/blast/data/execution \
    --port=30303 \
    --discovery.port=30303 \
    --syncmode=snap \
    --gcmode=archive \
    --rollup.sequencerhttp=https://sequencer.s2.testblast.io \
    --rollup.disabletxpoolgossip=true \
    --http \
    --http.addr=0.0.0.0 \
    --http.port=8545 \
    --http.corsdomain="*" \
    --http.vhosts="*" \
    --http.api=eth,web3 \
    --rpc.txfeecap 100 \
    --ws \
    --ws.addr=0.0.0.0 \
    --ws.port=8546 \
    --ws.origins="*" \
    --ws.api=eth,web3 \
    --authrpc.addr=127.0.0.1 \
    --authrpc.vhosts=* \
    --authrpc.port=8551 \
    --authrpc.jwtsecret=/var/lib/blast/jwt.hex \
    --metrics \
    --metrics.addr=0.0.0.0 \
    --metrics.port=6060 \
    --override.canyon=0 \
    --override.ecotone=1713999600 \
    --verbosity=3

node:

/usr/local/bin/node \
    --syncmode=execution-layer \
    --l1=ws://L1_ADDRESS:8546 \
    --l1.beacon=http://L1_ADDRESS:5052 \
    --l2=http://127.0.0.1:8551 \
    --l2.jwt-secret=/var/lib/blast/jwt.hex \
    --rpc.addr=127.0.0.1 \
    --rpc.port=9545 \
    --rollup.config=/var/lib/blast/data/consensus/rollup.json \
    --rollup.halt=major \
    --p2p.listen.tcp=30304 \
    --p2p.listen.udp=30304 \
    --p2p.bootnodes=enr:-J-4QM3GLUFfKMSJQuP1UvuKQe8DyovE7Eaiit0l6By4zjTodkR4V8NWXJxNmlg8t8rP-Q-wp3jVmeAOml8cjMj__ROGAYznzb_HgmlkgnY0gmlwhA-cZ_eHb3BzdGFja4X947FQAIlzZWNwMjU2azGhAiuDqvB-AsVSRmnnWr6OHfjgY8YfNclFy9p02flKzXnOg3RjcIJ2YYN1ZHCCdmE,enr:-J-4QDCVpByqQ8nFqCS9aHicqwUfXgzFDslvpEyYz19lvkHLIdtcIGp2d4q5dxHdjRNTO6HXCsnIKxUeuZSPcEbyVQCGAYznzz0RgmlkgnY0gmlwhANiQfuHb3BzdGFja4X947FQAIlzZWNwMjU2azGhAy3AtF2Jh_aPdOohg506Hjmtx-fQ1AKmu71C7PfkWAw9g3RjcIJ2YYN1ZHCCdmE \
    --p2p.priv.path=/var/lib/blast/data/consensus/priv.key \
    --p2p.peerstore.path=/var/lib/blast/data/consensus/peerstore \
    --p2p.discovery.path=/var/lib/blast/data/consensus/discovery \
    --metrics.enabled=true \
    --metrics.addr=0.0.0.0 \
    --metrics.port=6061

Logs

geth:

Jun 03 16:28:16 t-blast-sepolia-01 geth[851028]: INFO [06-03|16:28:16.011] New local node record                    seq=1,717,432,096,011 id=34e6286517de0c7f ip=127.0.0.1 udp=30303 tcp=30303
Jun 03 16:28:16 t-blast-sepolia-01 geth[851028]: INFO [06-03|16:28:16.013] IPC endpoint opened                      url=/var/lib/blast/data/execution/geth.ipc
Jun 03 16:28:16 t-blast-sepolia-01 geth[851028]: INFO [06-03|16:28:16.015] Started P2P networking                   self=enode://989437b9739623f36ea3bcf9616e9d75bfb8254b936f05e58d6c830225da811eeb073083ecf82b847e7c4142984a35f41dd0a65d1e93c28fe6056810f62a8bc6@127.0.0.1:30303
Jun 03 16:28:16 t-blast-sepolia-01 geth[851028]: INFO [06-03|16:28:16.016] Loaded JWT secret file                   path=/var/lib/blast/jwt.hex crc32=0x96a02554
Jun 03 16:28:16 t-blast-sepolia-01 geth[851028]: INFO [06-03|16:28:16.016] HTTP server started                      endpoint=[::]:8545 auth=false prefix= cors=* vhosts=*
Jun 03 16:28:16 t-blast-sepolia-01 geth[851028]: INFO [06-03|16:28:16.016] WebSocket enabled                        url=ws://[::]:8546
Jun 03 16:28:16 t-blast-sepolia-01 geth[851028]: INFO [06-03|16:28:16.017] WebSocket enabled                        url=ws://127.0.0.1:8551
Jun 03 16:28:16 t-blast-sepolia-01 geth[851028]: INFO [06-03|16:28:16.017] HTTP server started                      endpoint=127.0.0.1:8551 auth=true  prefix= cors=localhost vhosts=*
Jun 03 16:28:16 t-blast-sepolia-01 geth[851028]: INFO [06-03|16:28:16.080] Generated state snapshot                 accounts=2329 slots=2090 storage=399.45KiB dangling=0 elapsed=97.063ms
Jun 03 16:28:17 t-blast-sepolia-01 geth[851028]: INFO [06-03|16:28:17.338] New local node record                    seq=1,717,432,096,012 id=34e6286517de0c7f ip=54.247.93.78 udp=30303 tcp=30303
Jun 03 16:28:26 t-blast-sepolia-01 geth[851028]: INFO [06-03|16:28:26.027] Looking for peers                        peercount=0 tried=265 static=0
Jun 03 16:28:26 t-blast-sepolia-01 geth[851028]: WARN [06-03|16:28:26.138] Served eth_getBlockByNumber              conn=127.0.0.1:34570 reqid=2 duration="80.255µs" err="finalized block not found"
Jun 03 16:28:26 t-blast-sepolia-01 geth[851028]: WARN [06-03|16:28:26.140] Served eth_getBlockByNumber              conn=127.0.0.1:34570 reqid=4 duration="24.062µs" err="safe block not found"
Jun 03 16:28:26 t-blast-sepolia-01 geth[851028]: INFO [06-03|16:28:26.165] Snap sync complete, auto disabling
Jun 03 16:28:36 t-blast-sepolia-01 geth[851028]: INFO [06-03|16:28:36.033] Looking for peers                        peercount=1 tried=150 static=0
Jun 03 16:28:46 t-blast-sepolia-01 geth[851028]: INFO [06-03|16:28:46.897] Looking for peers                        peercount=0 tried=79  static=0
Jun 03 16:28:56 t-blast-sepolia-01 geth[851028]: INFO [06-03|16:28:56.987] Looking for peers                        peercount=0 tried=144 static=0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.