This commit is contained in:
goldsquid
2025-12-22 19:17:24 +07:00
parent 3115055079
commit 774408aae1
25 changed files with 7 additions and 135744 deletions

View File

@@ -64,6 +64,7 @@ services:
- --http.vhosts=*
- --init.download-path=/tmp
- --init.latest=pruned
- --init.prune=full
- --metrics
- --metrics-server.addr=0.0.0.0
- --metrics-server.port=6070

View File

@@ -65,6 +65,7 @@ services:
- --http.vhosts=*
- --init.download-path=/tmp
- --init.latest=pruned
- --init.prune=full
- --metrics
- --metrics-server.addr=0.0.0.0
- --metrics-server.port=6070

View File

@@ -64,6 +64,7 @@ services:
- --http.vhosts=*
- --init.download-path=/tmp
- --init.latest=pruned
- --init.prune=full
- --metrics
- --metrics-server.addr=0.0.0.0
- --metrics-server.port=6070

View File

@@ -64,6 +64,7 @@ services:
- --http.vhosts=*
- --init.download-path=/tmp
- --init.latest=pruned
- --init.prune=full
- --metrics
- --metrics-server.addr=0.0.0.0
- --metrics-server.port=6070

View File

@@ -3482,7 +3482,7 @@
"trace"
],
"network": "snax",
"node": "node",
"node": null,
"relay": null,
"stack": "op",
"type": "archive",
@@ -4778,7 +4778,7 @@
"leveldb"
],
"network": "snax",
"node": "node",
"node": null,
"relay": null,
"stack": "op",
"type": "archive",
@@ -4795,7 +4795,7 @@
"pebble"
],
"network": "snax",
"node": "node",
"node": null,
"relay": null,
"stack": "op",
"type": "pruned",

View File

@@ -1 +0,0 @@
.

File diff suppressed because one or more lines are too long

View File

@@ -1,29 +0,0 @@
{
"genesis": {
"l1": {
"hash": "0x5c13d307623a926cd31415036c8b7fa14572f9dac64528e857a470511fc30771",
"number": 17481768
},
"l2": {
"hash": "0xf712aa9241cc24369b143cf6dce85f0902a9731e70d66818a3a5845b296c73dd",
"number": 0
},
"l2_time": 1686789347,
"system_config": {
"batcherAddr": "0x5050f69a9786f081509234f1a7f4684b5e5b76c9",
"overhead": "0x00000000000000000000000000000000000000000000000000000000000000bc",
"scalar": "0x00000000000000000000000000000000000000000000000000000000000a6fe0",
"gasLimit": 30000000
}
},
"block_time": 2,
"max_sequencer_drift": 600,
"seq_window_size": 3600,
"channel_timeout": 300,
"l1_chain_id": 1,
"l2_chain_id": 8453,
"regolith_time": 0,
"batch_inbox_address": "0xff00000000000000000000000000000000008453",
"deposit_contract_address": "0x49048044d57e1c92a77f79988d21fa8faf74e97e",
"l1_system_config_address": "0x73a79fab69143498ed3712e519a88a918e1f4072"
}

File diff suppressed because one or more lines are too long

View File

@@ -1,34 +0,0 @@
{
"genesis": {
"l1": {
"hash": "0x218132178d65c4bc490aadd93c31535326043fe1fe8fea2d87f26c1da83d45c2",
"number": 19634321
},
"l2": {
"hash": "0x8ed4903b7f9c3f7bb7a09374d63ae9c9852cd9aab1784b433c41dbeb47b4dba2",
"number": 0
},
"l2_time": 1712861987,
"system_config": {
"batcherAddr": "0x08f9f14ff43e112b18c96f0986f28cb1878f1d11",
"overhead": "0x00000000000000000000000000000000000000000000000000000000000000bc",
"scalar": "0x00000000000000000000000000000000000000000000000000000000000a6fe0",
"gasLimit": 30000000
}
},
"block_time": 2,
"max_sequencer_drift": 600,
"seq_window_size": 3600,
"channel_timeout": 300,
"l1_chain_id": 1,
"l2_chain_id": 60808,
"regolith_time": 0,
"canyon_time": 0,
"delta_time": 0,
"ecotone_time": 0,
"batch_inbox_address": "0x3a75346f81302aac0333fb5dcdd407e12a6cfa83",
"deposit_contract_address": "0x8adee124447435fe03e3cd24df3f4cae32e65a3e",
"l1_system_config_address": "0xacb886b75d76d1c8d9248cfddfa09b70c71c5393",
"protocol_versions_address": "0x0000000000000000000000000000000000000000"
}

File diff suppressed because one or more lines are too long

View File

@@ -1,33 +0,0 @@
{
"genesis": {
"l1": {
"hash": "0xd580bdbd001908860f225c16ddaa08ada64471a68435694760c111253d97ffce",
"number": 19788720
},
"l2": {
"hash": "0x5a693d1d8ee27b8e62868d0349af430a2d2e173c8c8988e7b0c9ef91893cbf00",
"number": 0
},
"l2_time": 1714728791,
"system_config": {
"scalar": "0x00000000000000000000000000000000000000000000000000000000000f4240",
"gasLimit": 30000000,
"overhead": "0x00000000000000000000000000000000000000000000000000000000000000bc",
"batcherAddr": "0xa6ea2f3299b63c53143c993d2d5e60a69cd6fe24"
}
},
"block_time": 2,
"delta_time": 0,
"canyon_time": 0,
"l1_chain_id": 1,
"l2_chain_id": 1135,
"ecotone_time": 0,
"regolith_time": 0,
"channel_timeout": 300,
"seq_window_size": 3600,
"batch_inbox_address": "0xff00000000000000000000000000000000001135",
"max_sequencer_drift": 600,
"deposit_contract_address": "0x26db93f8b8b4f7016240af62f7730979d353f9a7",
"l1_system_config_address": "0x05f23282ffdca8286e4738c1af79079f3d843750",
"protocol_versions_address": "0x0000000000000000000000000000000000000000"
}

File diff suppressed because one or more lines are too long

View File

@@ -1,29 +0,0 @@
{
"genesis": {
"l1": {
"hash": "0xf9b1b22a7ef9d13f063ea467bcb70fb6e9f29698ecb7366a2cdf5af2165cacee",
"number": 18586927
},
"l2": {
"hash": "0xb0f682e12fc555fd5ce8fce51a59a67d66a5b46be28611a168260a549dac8a9b",
"number": 0
},
"l2_time": 1700167583,
"system_config": {
"batcherAddr": "0x99199a22125034c808ff20f377d91187e8050f2e",
"overhead": "0x00000000000000000000000000000000000000000000000000000000000000bc",
"scalar": "0x00000000000000000000000000000000000000000000000000000000000a6fe0",
"gasLimit": 30000000
}
},
"block_time": 2,
"max_sequencer_drift": 600,
"seq_window_size": 3600,
"channel_timeout": 300,
"l1_chain_id": 1,
"l2_chain_id": 34443,
"regolith_time": 0,
"batch_inbox_address": "0x24e59d9d3bd73ccc28dc54062af7ef7bff58bd67",
"deposit_contract_address": "0x8b34b14c7c7123459cf3076b8cb929be097d0c07",
"l1_system_config_address": "0x5e6432f18bc5d497b1ab2288a025fbf9d69e2221"
}

File diff suppressed because one or more lines are too long

View File

@@ -1,35 +0,0 @@
{
"genesis": {
"l1": {
"hash": "0x920dc48c1f037d444cb4dee5c69f41853f469dd9e7751398458126a6f76ecea6",
"number": 20520542
},
"l2": {
"hash": "0x518aadbc56e4ca8b03aa141c13b2fc246a9eae88edea09ee477f3d620b00d5ae",
"number": 0
},
"l2_time": 1723562231,
"system_config": {
"batcherAddr": "0x060b915ca4904b56ada63565626b9c97f6cad212",
"overhead": "0x00000000000000000000000000000000000000000000000000000000000000bc",
"scalar": "0x00000000000000000000000000000000000000000000000000000000000a6fe0",
"gasLimit": 30000000
}
},
"block_time": 2,
"max_sequencer_drift": 600,
"seq_window_size": 3600,
"channel_timeout": 300,
"l1_chain_id": 1,
"l2_chain_id": 2192,
"regolith_time": 0,
"canyon_time": 0,
"delta_time": 0,
"ecotone_time": 0,
"fjord_time": 0,
"batch_inbox_address": "0xfec57bd3729a5f930d4ee8ac5992fdc8988426e4",
"deposit_contract_address": "0x936d881b4760d5e9b6d55b774f65c509236b4743",
"l1_system_config_address": "0x9c9b78f798f821c2f6398f603825fd175e2427f9",
"protocol_versions_address": "0x0000000000000000000000000000000000000000"
}

File diff suppressed because one or more lines are too long

View File

@@ -1,29 +0,0 @@
{
"genesis": {
"l1": {
"hash": "0xbdbd2847f7aa5f7cd1bd4c9f904057f4ba0b498c7e380199c01d240e3a41a84f",
"number": 17473923
},
"l2": {
"hash": "0x47555a45a1af8d4728ca337a1e48375a83919b1ea16591e070a07388b7364e29",
"number": 0
},
"l2_time": 1686693839,
"system_config": {
"batcherAddr": "0x625726c858dbf78c0125436c943bf4b4be9d9033",
"overhead": "0x00000000000000000000000000000000000000000000000000000000000000bc",
"scalar": "0x00000000000000000000000000000000000000000000000000000000000a6fe0",
"gasLimit": 30000000
}
},
"block_time": 2,
"max_sequencer_drift": 600,
"seq_window_size": 3600,
"channel_timeout": 300,
"l1_chain_id": 1,
"l2_chain_id": 7777777,
"regolith_time": 0,
"batch_inbox_address": "0x6f54ca6f6ede96662024ffd61bfd18f3f4e34dff",
"deposit_contract_address": "0x1a0ad011913a150f69f6a19df447a0cfd9551054",
"l1_system_config_address": "0xa3cab0126d5f504b071b81a3e8a2bbbf17930d86"
}

File diff suppressed because one or more lines are too long

View File

@@ -1,20 +0,0 @@
Subject: [PATCH] Lisk Sepolia patch
---
Index: op-node/rollup/derive/system_config.go
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/op-node/rollup/derive/system_config.go b/op-node/rollup/derive/system_config.go
--- a/op-node/rollup/derive/system_config.go (revision bd0ef87f20bc2575c060571b92de9b4ce249fac5)
+++ b/op-node/rollup/derive/system_config.go (revision 8c0a1fc612c062a61253cb2763796f1bffe95e89)
@@ -142,6 +142,9 @@
destSysCfg.GasLimit = gasLimit
return nil
case SystemConfigUpdateEIP1559Params:
+ if !rollupCfg.IsHolocene(l1Time) {
+ return nil // ignore event prior to Holocene
+ }
if pointer, err := solabi.ReadUint64(reader); err != nil || pointer != 32 {
return NewCriticalError(errors.New("invalid pointer field"))
}

View File

@@ -1,152 +0,0 @@
package derive
import (
"bytes"
"errors"
"fmt"
"github.com/hashicorp/go-multierror"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum-optimism/optimism/op-node/rollup"
"github.com/ethereum-optimism/optimism/op-service/eth"
"github.com/ethereum-optimism/optimism/op-service/solabi"
)
var (
SystemConfigUpdateBatcher = common.Hash{31: 0}
SystemConfigUpdateGasConfig = common.Hash{31: 1}
SystemConfigUpdateGasLimit = common.Hash{31: 2}
SystemConfigUpdateUnsafeBlockSigner = common.Hash{31: 3}
SystemConfigUpdateGasConfigEcotone = common.Hash{31: 4}
)
var (
ConfigUpdateEventABI = "ConfigUpdate(uint256,uint8,bytes)"
ConfigUpdateEventABIHash = crypto.Keccak256Hash([]byte(ConfigUpdateEventABI))
ConfigUpdateEventVersion0 = common.Hash{}
)
// UpdateSystemConfigWithL1Receipts filters all L1 receipts to find config updates and applies the config updates to the given sysCfg
func UpdateSystemConfigWithL1Receipts(sysCfg *eth.SystemConfig, receipts []*types.Receipt, cfg *rollup.Config, l1Time uint64) error {
var result error
for i, rec := range receipts {
if rec.Status != types.ReceiptStatusSuccessful {
continue
}
for j, log := range rec.Logs {
if log.Address == cfg.L1SystemConfigAddress && len(log.Topics) > 0 && log.Topics[0] == ConfigUpdateEventABIHash {
if err := ProcessSystemConfigUpdateLogEvent(sysCfg, log, cfg, l1Time); err != nil {
result = multierror.Append(result, fmt.Errorf("malformatted L1 system sysCfg log in receipt %d, log %d: %w", i, j, err))
}
}
}
}
return result
}
// ProcessSystemConfigUpdateLogEvent decodes an EVM log entry emitted by the system config contract and applies it as a system config change.
//
// parse log data for:
//
// event ConfigUpdate(
// uint256 indexed version,
// UpdateType indexed updateType,
// bytes data
// );
func ProcessSystemConfigUpdateLogEvent(destSysCfg *eth.SystemConfig, ev *types.Log, rollupCfg *rollup.Config, l1Time uint64) error {
if len(ev.Topics) != 3 {
return fmt.Errorf("expected 3 event topics (event identity, indexed version, indexed updateType), got %d", len(ev.Topics))
}
if ev.Topics[0] != ConfigUpdateEventABIHash {
return fmt.Errorf("invalid SystemConfig update event: %s, expected %s", ev.Topics[0], ConfigUpdateEventABIHash)
}
// indexed 0
version := ev.Topics[1]
if version != ConfigUpdateEventVersion0 {
return fmt.Errorf("unrecognized SystemConfig update event version: %s", version)
}
// indexed 1
updateType := ev.Topics[2]
// Create a reader of the unindexed data
reader := bytes.NewReader(ev.Data)
// Attempt to read unindexed data
switch updateType {
case SystemConfigUpdateBatcher:
if pointer, err := solabi.ReadUint64(reader); err != nil || pointer != 32 {
return NewCriticalError(errors.New("invalid pointer field"))
}
if length, err := solabi.ReadUint64(reader); err != nil || length != 32 {
return NewCriticalError(errors.New("invalid length field"))
}
address, err := solabi.ReadAddress(reader)
if err != nil {
return NewCriticalError(errors.New("could not read address"))
}
if !solabi.EmptyReader(reader) {
return NewCriticalError(errors.New("too many bytes"))
}
destSysCfg.BatcherAddr = address
return nil
case SystemConfigUpdateGasConfig:
if pointer, err := solabi.ReadUint64(reader); err != nil || pointer != 32 {
return NewCriticalError(errors.New("invalid pointer field"))
}
if length, err := solabi.ReadUint64(reader); err != nil || length != 64 {
return NewCriticalError(errors.New("invalid length field"))
}
overhead, err := solabi.ReadEthBytes32(reader)
if err != nil {
return NewCriticalError(errors.New("could not read overhead"))
}
scalar, err := solabi.ReadEthBytes32(reader)
if err != nil {
return NewCriticalError(errors.New("could not read scalar"))
}
if !solabi.EmptyReader(reader) {
return NewCriticalError(errors.New("too many bytes"))
}
if rollupCfg.IsEcotone(l1Time) {
if err := eth.CheckEcotoneL1SystemConfigScalar(scalar); err != nil {
return nil // ignore invalid scalars, retain the old system-config scalar
}
// retain the scalar data in encoded form
destSysCfg.Scalar = scalar
// zero out the overhead, it will not affect the state-transition after Ecotone
destSysCfg.Overhead = eth.Bytes32{}
} else {
destSysCfg.Overhead = overhead
destSysCfg.Scalar = scalar
}
return nil
case SystemConfigUpdateGasLimit:
if pointer, err := solabi.ReadUint64(reader); err != nil || pointer != 32 {
return NewCriticalError(errors.New("invalid pointer field"))
}
if length, err := solabi.ReadUint64(reader); err != nil || length != 32 {
return NewCriticalError(errors.New("invalid length field"))
}
gasLimit, err := solabi.ReadUint64(reader)
if err != nil {
return NewCriticalError(errors.New("could not read gas limit"))
}
if !solabi.EmptyReader(reader) {
return NewCriticalError(errors.New("too many bytes"))
}
destSysCfg.GasLimit = gasLimit
return nil
case SystemConfigUpdateUnsafeBlockSigner:
// Ignored in derivation. This configurable applies to runtime configuration outside of the derivation.
return nil
case SystemConfigUpdateGasConfigEcotone:
return nil
default:
return fmt.Errorf("unrecognized L1 sysCfg update type: %s", updateType)
}
}

View File

@@ -1,36 +0,0 @@
{
"genesis": {
"l1": {
"hash": "0x7d9d6dcec39efe182119f41b1bd2aa7b35b82e43927522afea86d210a4eace4b",
"number": 5089851
},
"l2": {
"hash": "0xead3e6ddd08ae7e27fd952b74ceb468ba889047ac96b351dd13bd55e5faf3372",
"number": 0
},
"l2_time": 1705312992,
"system_config": {
"scalar": "0x00000000000000000000000000000000000000000000000000000000000f4240",
"gasLimit": 30000000,
"overhead": "0x0000000000000000000000000000000000000000000000000000000000000834",
"batcherAddr": "0x246e119a5bcc2875161b23e4e602e25cece96e37"
}
},
"block_time": 2,
"l1_chain_id": 11155111,
"l2_chain_id": 4202,
"regolith_time": 0,
"canyon_time": 1705312994,
"delta_time": 1705312994,
"ecotone_time": 1708534800,
"fjord_time": 1716998400,
"granite_time": 1723478400,
"holocene_time": 1732633200,
"channel_timeout": 300,
"seq_window_size": 3600,
"batch_inbox_address": "0xff00000000000000000000000000000000004202",
"max_sequencer_drift": 600,
"deposit_contract_address": "0xe3d90f21490686ec7ef37be788e02dfc12787264",
"l1_system_config_address": "0xf54791059df4a12ba461b881b4080ae81a1d0ac0",
"protocol_versions_address": "0x0000000000000000000000000000000000000000"
}

File diff suppressed because one or more lines are too long

View File

@@ -1,29 +0,0 @@
{
"genesis": {
"l1": {
"hash": "0xf782446a2487d900addb5d466a8597c7c543b59fa9aaa154d413830238f8798a",
"number": 4548041
},
"l2": {
"hash": "0x8b17d2d52564a5a90079d9c860e1386272579e87b17ea27a3868513f53facd74",
"number": 0
},
"l2_time": 1698080004,
"system_config": {
"batcherAddr": "0x3cd868e221a3be64b161d596a7482257a99d857f",
"overhead": "0x00000000000000000000000000000000000000000000000000000000000000bc",
"scalar": "0x00000000000000000000000000000000000000000000000000000000000a6fe0",
"gasLimit": 30000000
}
},
"block_time": 2,
"max_sequencer_drift": 600,
"seq_window_size": 3600,
"channel_timeout": 300,
"l1_chain_id": 11155111,
"l2_chain_id": 999999999,
"regolith_time": 0,
"batch_inbox_address": "0xcd734290e4bd0200dac631c7d4b9e8a33234e91f",
"deposit_contract_address": "0xeffe2c6ca9ab797d418f0d91ea60807713f3536f",
"l1_system_config_address": "0xb54c7bfc223058773cf9b739cc5bd4095184fb08"
}

File diff suppressed because one or more lines are too long