Skip to content

Conversation

lightclient
Copy link
Member

@lightclient lightclient commented Sep 8, 2025

We need to rethink our approach to "overwriting" the chain config a bit.

In the past, forks were quite simple. Either a block number or timestamp is chosen for the fork to activate on and all other changes follow from there. Now we are adding other configuration parameters to the fork, such as the max and target blob counts. Combining this with the BPO-style forking, we would need 3 flags for each upcoming fork to allow on-the-fly modifications to the schedule and shadowfork support. With 5 BPOs following Osaka, that means we'd need 18 flags to fully configure the fork. Obviously not a scalable solution.

We've discussed rethinking the whole concept of geth init a bit to combine it with normal running. Since we need a way for Osaka shadow forks to progress ASAP, I won't open that up for now. The minimal thing we can do is this PR which simply avoids overwriting a stored config with a generic genesis hash based default.

You can see this behavior play out by running the following and noting the Osaka activation time printed out:

$ geth --datadir data --holesky
<writes holesky genesis and config>

$ geth --datadir data init genesis.json
<overwrites genesis and config if compatible>

$ geth --datadir data
<silently overwrites genesis and config with default for the genesis hash>
sample genesis.json with Osaka { "config": { "chainId": 17000, "homesteadBlock": 0, "eip150Block": 0, "eip155Block": 0, "eip158Block": 0, "byzantiumBlock": 0, "constantinopleBlock": 0, "petersburgBlock": 0, "istanbulBlock": 0, "berlinBlock": 0, "londonBlock": 0, "mergeNetsplitBlock": 0, "terminalTotalDifficulty": 0, "terminalTotalDifficultyPassed": true, "shanghaiTime": 1696000704, "cancunTime": 1707305664, "pragueTime": 1740434112, "osakaTime": 1757361538, "blobSchedule": { "cancun": { "target": 3, "max": 6, "baseFeeUpdateFraction": 3338477 }, "prague": { "target": 6, "max": 9, "baseFeeUpdateFraction": 5007716 }, "osaka": { "target": 6, "max": 9, "baseFeeUpdateFraction": 5007716 } }, "depositContractAddress": "0x4242424242424242424242424242424242424242" }, "alloc": { "0x0000000000000000000000000000000000000000": { "balance": "1" }, "0x0000000000000000000000000000000000000001": { "balance": "1" }, "0x0000000000000000000000000000000000000002": { "balance": "1" }, "0x0000000000000000000000000000000000000003": { "balance": "1" }, "0x0000000000000000000000000000000000000004": { "balance": "1" }, "0x0000000000000000000000000000000000000005": { "balance": "1" }, "0x0000000000000000000000000000000000000006": { "balance": "1" }, "0x0000000000000000000000000000000000000007": { "balance": "1" }, "0x0000000000000000000000000000000000000008": { "balance": "1" }, "0x0000000000000000000000000000000000000009": { "balance": "1" }, "0x000000000000000000000000000000000000000a": { "balance": "1" }, "0x000000000000000000000000000000000000000b": { "balance": "1" }, "0x000000000000000000000000000000000000000c": { "balance": "1" }, "0x000000000000000000000000000000000000000d": { "balance": "1" }, "0x000000000000000000000000000000000000000e": { "balance": "1" }, "0x000000000000000000000000000000000000000f": { "balance": "1" }, "0x0000000000000000000000000000000000000010": { "balance": "1" }, "0x0000000000000000000000000000000000000011": { "balance": "1" }, "0x0000000000000000000000000000000000000012": { "balance": "1" }, "0x0000000000000000000000000000000000000013": { "balance": "1" }, "0x0000000000000000000000000000000000000014": { "balance": "1" }, "0x0000000000000000000000000000000000000015": { "balance": "1" }, "0x0000000000000000000000000000000000000016": { "balance": "1" }, "0x0000000000000000000000000000000000000017": { "balance": "1" }, "0x0000000000000000000000000000000000000018": { "balance": "1" }, "0x0000000000000000000000000000000000000019": { "balance": "1" }, "0x000000000000000000000000000000000000001a": { "balance": "1" }, "0x000000000000000000000000000000000000001b": { "balance": "1" }, "0x000000000000000000000000000000000000001c": { "balance": "1" }, "0x000000000000000000000000000000000000001d": { "balance": "1" }, "0x000000000000000000000000000000000000001e": { "balance": "1" }, "0x000000000000000000000000000000000000001f": { "balance": "1" }, "0x0000000000000000000000000000000000000020": { "balance": "1" }, "0x0000000000000000000000000000000000000021": { "balance": "1" }, "0x0000000000000000000000000000000000000022": { "balance": "1" }, "0x0000000000000000000000000000000000000023": { "balance": "1" }, "0x0000000000000000000000000000000000000024": { "balance": "1" }, "0x0000000000000000000000000000000000000025": { "balance": "1" }, "0x0000000000000000000000000000000000000026": { "balance": "1" }, "0x0000000000000000000000000000000000000027": { "balance": "1" }, "0x0000000000000000000000000000000000000028": { "balance": "1" }, "0x0000000000000000000000000000000000000029": { "balance": "1" }, "0x000000000000000000000000000000000000002a": { "balance": "1" }, "0x000000000000000000000000000000000000002b": { "balance": "1" }, "0x000000000000000000000000000000000000002c": { "balance": "1" }, "0x000000000000000000000000000000000000002d": { "balance": "1" }, "0x000000000000000000000000000000000000002e": { "balance": "1" }, "0x000000000000000000000000000000000000002f": { "balance": "1" }, "0x0000000000000000000000000000000000000030": { "balance": "1" }, "0x0000000000000000000000000000000000000031": { "balance": "1" }, "0x0000000000000000000000000000000000000032": { "balance": "1" }, "0x0000000000000000000000000000000000000033": { "balance": "1" }, "0x0000000000000000000000000000000000000034": { "balance": "1" }, "0x0000000000000000000000000000000000000035": { "balance": "1" }, "0x0000000000000000000000000000000000000036": { "balance": "1" }, "0x0000000000000000000000000000000000000037": { "balance": "1" }, "0x0000000000000000000000000000000000000038": { "balance": "1" }, "0x0000000000000000000000000000000000000039": { "balance": "1" }, "0x000000000000000000000000000000000000003a": { "balance": "1" }, "0x000000000000000000000000000000000000003b": { "balance": "1" }, "0x000000000000000000000000000000000000003c": { "balance": "1" }, "0x000000000000000000000000000000000000003d": { "balance": "1" }, "0x000000000000000000000000000000000000003e": { "balance": "1" }, "0x000000000000000000000000000000000000003f": { "balance": "1" }, "0x0000000000000000000000000000000000000040": { "balance": "1" }, "0x0000000000000000000000000000000000000041": { "balance": "1" }, "0x0000000000000000000000000000000000000042": { "balance": "1" }, "0x0000000000000000000000000000000000000043": { "balance": "1" }, "0x0000000000000000000000000000000000000044": { "balance": "1" }, "0x0000000000000000000000000000000000000045": { "balance": "1" }, "0x0000000000000000000000000000000000000046": { "balance": "1" }, "0x0000000000000000000000000000000000000047": { "balance": "1" }, "0x0000000000000000000000000000000000000048": { "balance": "1" }, "0x0000000000000000000000000000000000000049": { "balance": "1" }, "0x000000000000000000000000000000000000004a": { "balance": "1" }, "0x000000000000000000000000000000000000004b": { "balance": "1" }, "0x000000000000000000000000000000000000004c": { "balance": "1" }, "0x000000000000000000000000000000000000004d": { "balance": "1" }, "0x000000000000000000000000000000000000004e": { "balance": "1" }, "0x000000000000000000000000000000000000004f": { "balance": "1" }, "0x0000000000000000000000000000000000000050": { "balance": "1" }, "0x0000000000000000000000000000000000000051": { "balance": "1" }, "0x0000000000000000000000000000000000000052": { "balance": "1" }, "0x0000000000000000000000000000000000000053": { "balance": "1" }, "0x0000000000000000000000000000000000000054": { "balance": "1" }, "0x0000000000000000000000000000000000000055": { "balance": "1" }, "0x0000000000000000000000000000000000000056": { "balance": "1" }, "0x0000000000000000000000000000000000000057": { "balance": "1" }, "0x0000000000000000000000000000000000000058": { "balance": "1" }, "0x0000000000000000000000000000000000000059": { "balance": "1" }, "0x000000000000000000000000000000000000005a": { "balance": "1" }, "0x000000000000000000000000000000000000005b": { "balance": "1" }, "0x000000000000000000000000000000000000005c": { "balance": "1" }, "0x000000000000000000000000000000000000005d": { "balance": "1" }, "0x000000000000000000000000000000000000005e": { "balance": "1" }, "0x000000000000000000000000000000000000005f": { "balance": "1" }, "0x0000000000000000000000000000000000000060": { "balance": "1" }, "0x0000000000000000000000000000000000000061": { "balance": "1" }, "0x0000000000000000000000000000000000000062": { "balance": "1" }, "0x0000000000000000000000000000000000000063": { "balance": "1" }, "0x0000000000000000000000000000000000000064": { "balance": "1" }, "0x0000000000000000000000000000000000000065": { "balance": "1" }, "0x0000000000000000000000000000000000000066": { "balance": "1" }, "0x0000000000000000000000000000000000000067": { "balance": "1" }, "0x0000000000000000000000000000000000000068": { "balance": "1" }, "0x0000000000000000000000000000000000000069": { "balance": "1" }, "0x000000000000000000000000000000000000006a": { "balance": "1" }, "0x000000000000000000000000000000000000006b": { "balance": "1" }, "0x000000000000000000000000000000000000006c": { "balance": "1" }, "0x000000000000000000000000000000000000006d": { "balance": "1" }, "0x000000000000000000000000000000000000006e": { "balance": "1" }, "0x000000000000000000000000000000000000006f": { "balance": "1" }, "0x0000000000000000000000000000000000000070": { "balance": "1" }, "0x0000000000000000000000000000000000000071": { "balance": "1" }, "0x0000000000000000000000000000000000000072": { "balance": "1" }, "0x0000000000000000000000000000000000000073": { "balance": "1" }, "0x0000000000000000000000000000000000000074": { "balance": "1" }, "0x0000000000000000000000000000000000000075": { "balance": "1" }, "0x0000000000000000000000000000000000000076": { "balance": "1" }, "0x0000000000000000000000000000000000000077": { "balance": "1" }, "0x0000000000000000000000000000000000000078": { "balance": "1" }, "0x0000000000000000000000000000000000000079": { "balance": "1" }, "0x000000000000000000000000000000000000007a": { "balance": "1" }, "0x000000000000000000000000000000000000007b": { "balance": "1" }, "0x000000000000000000000000000000000000007c": { "balance": "1" }, "0x000000000000000000000000000000000000007d": { "balance": "1" }, "0x000000000000000000000000000000000000007e": { "balance": "1" }, "0x000000000000000000000000000000000000007f": { "balance": "1" }, "0x0000000000000000000000000000000000000080": { "balance": "1" }, "0x0000000000000000000000000000000000000081": { "balance": "1" }, "0x0000000000000000000000000000000000000082": { "balance": "1" }, "0x0000000000000000000000000000000000000083": { "balance": "1" }, "0x0000000000000000000000000000000000000084": { "balance": "1" }, "0x0000000000000000000000000000000000000085": { "balance": "1" }, "0x0000000000000000000000000000000000000086": { "balance": "1" }, "0x0000000000000000000000000000000000000087": { "balance": "1" }, "0x0000000000000000000000000000000000000088": { "balance": "1" }, "0x0000000000000000000000000000000000000089": { "balance": "1" }, "0x000000000000000000000000000000000000008a": { "balance": "1" }, "0x000000000000000000000000000000000000008b": { "balance": "1" }, "0x000000000000000000000000000000000000008c": { "balance": "1" }, "0x000000000000000000000000000000000000008d": { "balance": "1" }, "0x000000000000000000000000000000000000008e": { "balance": "1" }, "0x000000000000000000000000000000000000008f": { "balance": "1" }, "0x0000000000000000000000000000000000000090": { "balance": "1" }, "0x0000000000000000000000000000000000000091": { "balance": "1" }, "0x0000000000000000000000000000000000000092": { "balance": "1" }, "0x0000000000000000000000000000000000000093": { "balance": "1" }, "0x0000000000000000000000000000000000000094": { "balance": "1" }, "0x0000000000000000000000000000000000000095": { "balance": "1" }, "0x0000000000000000000000000000000000000096": { "balance": "1" }, "0x0000000000000000000000000000000000000097": { "balance": "1" }, "0x0000000000000000000000000000000000000098": { "balance": "1" }, "0x0000000000000000000000000000000000000099": { "balance": "1" }, "0x000000000000000000000000000000000000009a": { "balance": "1" }, "0x000000000000000000000000000000000000009b": { "balance": "1" }, "0x000000000000000000000000000000000000009c": { "balance": "1" }, "0x000000000000000000000000000000000000009d": { "balance": "1" }, "0x000000000000000000000000000000000000009e": { "balance": "1" }, "0x000000000000000000000000000000000000009f": { "balance": "1" }, "0x00000000000000000000000000000000000000a0": { "balance": "1" }, "0x00000000000000000000000000000000000000a1": { "balance": "1" }, "0x00000000000000000000000000000000000000a2": { "balance": "1" }, "0x00000000000000000000000000000000000000a3": { "balance": "1" }, "0x00000000000000000000000000000000000000a4": { "balance": "1" }, "0x00000000000000000000000000000000000000a5": { "balance": "1" }, "0x00000000000000000000000000000000000000a6": { "balance": "1" }, "0x00000000000000000000000000000000000000a7": { "balance": "1" }, "0x00000000000000000000000000000000000000a8": { "balance": "1" }, "0x00000000000000000000000000000000000000a9": { "balance": "1" }, "0x00000000000000000000000000000000000000aa": { "balance": "1" }, "0x00000000000000000000000000000000000000ab": { "balance": "1" }, "0x00000000000000000000000000000000000000ac": { "balance": "1" }, "0x00000000000000000000000000000000000000ad": { "balance": "1" }, "0x00000000000000000000000000000000000000ae": { "balance": "1" }, "0x00000000000000000000000000000000000000af": { "balance": "1" }, "0x00000000000000000000000000000000000000b0": { "balance": "1" }, "0x00000000000000000000000000000000000000b1": { "balance": "1" }, "0x00000000000000000000000000000000000000b2": { "balance": "1" }, "0x00000000000000000000000000000000000000b3": { "balance": "1" }, "0x00000000000000000000000000000000000000b4": { "balance": "1" }, "0x00000000000000000000000000000000000000b5": { "balance": "1" }, "0x00000000000000000000000000000000000000b6": { "balance": "1" }, "0x00000000000000000000000000000000000000b7": { "balance": "1" }, "0x00000000000000000000000000000000000000b8": { "balance": "1" }, "0x00000000000000000000000000000000000000b9": { "balance": "1" }, "0x00000000000000000000000000000000000000ba": { "balance": "1" }, "0x00000000000000000000000000000000000000bb": { "balance": "1" }, "0x00000000000000000000000000000000000000bc": { "balance": "1" }, "0x00000000000000000000000000000000000000bd": { "balance": "1" }, "0x00000000000000000000000000000000000000be": { "balance": "1" }, "0x00000000000000000000000000000000000000bf": { "balance": "1" }, "0x00000000000000000000000000000000000000c0": { "balance": "1" }, "0x00000000000000000000000000000000000000c1": { "balance": "1" }, "0x00000000000000000000000000000000000000c2": { "balance": "1" }, "0x00000000000000000000000000000000000000c3": { "balance": "1" }, "0x00000000000000000000000000000000000000c4": { "balance": "1" }, "0x00000000000000000000000000000000000000c5": { "balance": "1" }, "0x00000000000000000000000000000000000000c6": { "balance": "1" }, "0x00000000000000000000000000000000000000c7": { "balance": "1" }, "0x00000000000000000000000000000000000000c8": { "balance": "1" }, "0x00000000000000000000000000000000000000c9": { "balance": "1" }, "0x00000000000000000000000000000000000000ca": { "balance": "1" }, "0x00000000000000000000000000000000000000cb": { "balance": "1" }, "0x00000000000000000000000000000000000000cc": { "balance": "1" }, "0x00000000000000000000000000000000000000cd": { "balance": "1" }, "0x00000000000000000000000000000000000000ce": { "balance": "1" }, "0x00000000000000000000000000000000000000cf": { "balance": "1" }, "0x00000000000000000000000000000000000000d0": { "balance": "1" }, "0x00000000000000000000000000000000000000d1": { "balance": "1" }, "0x00000000000000000000000000000000000000d2": { "balance": "1" }, "0x00000000000000000000000000000000000000d3": { "balance": "1" }, "0x00000000000000000000000000000000000000d4": { "balance": "1" }, "0x00000000000000000000000000000000000000d5": { "balance": "1" }, "0x00000000000000000000000000000000000000d6": { "balance": "1" }, "0x00000000000000000000000000000000000000d7": { "balance": "1" }, "0x00000000000000000000000000000000000000d8": { "balance": "1" }, "0x00000000000000000000000000000000000000d9": { "balance": "1" }, "0x00000000000000000000000000000000000000da": { "balance": "1" }, "0x00000000000000000000000000000000000000db": { "balance": "1" }, "0x00000000000000000000000000000000000000dc": { "balance": "1" }, "0x00000000000000000000000000000000000000dd": { "balance": "1" }, "0x00000000000000000000000000000000000000de": { "balance": "1" }, "0x00000000000000000000000000000000000000df": { "balance": "1" }, "0x00000000000000000000000000000000000000e0": { "balance": "1" }, "0x00000000000000000000000000000000000000e1": { "balance": "1" }, "0x00000000000000000000000000000000000000e2": { "balance": "1" }, "0x00000000000000000000000000000000000000e3": { "balance": "1" }, "0x00000000000000000000000000000000000000e4": { "balance": "1" }, "0x00000000000000000000000000000000000000e5": { "balance": "1" }, "0x00000000000000000000000000000000000000e6": { "balance": "1" }, "0x00000000000000000000000000000000000000e7": { "balance": "1" }, "0x00000000000000000000000000000000000000e8": { "balance": "1" }, "0x00000000000000000000000000000000000000e9": { "balance": "1" }, "0x00000000000000000000000000000000000000ea": { "balance": "1" }, "0x00000000000000000000000000000000000000eb": { "balance": "1" }, "0x00000000000000000000000000000000000000ec": { "balance": "1" }, "0x00000000000000000000000000000000000000ed": { "balance": "1" }, "0x00000000000000000000000000000000000000ee": { "balance": "1" }, "0x00000000000000000000000000000000000000ef": { "balance": "1" }, "0x00000000000000000000000000000000000000f0": { "balance": "1" }, "0x00000000000000000000000000000000000000f1": { "balance": "1" }, "0x00000000000000000000000000000000000000f2": { "balance": "1" }, "0x00000000000000000000000000000000000000f3": { "balance": "1" }, "0x00000000000000000000000000000000000000f4": { "balance": "1" }, "0x00000000000000000000000000000000000000f5": { "balance": "1" }, "0x00000000000000000000000000000000000000f6": { "balance": "1" }, "0x00000000000000000000000000000000000000f7": { "balance": "1" }, "0x00000000000000000000000000000000000000f8": { "balance": "1" }, "0x00000000000000000000000000000000000000f9": { "balance": "1" }, "0x00000000000000000000000000000000000000fa": { "balance": "1" }, "0x00000000000000000000000000000000000000fb": { "balance": "1" }, "0x00000000000000000000000000000000000000fc": { "balance": "1" }, "0x00000000000000000000000000000000000000fd": { "balance": "1" }, "0x00000000000000000000000000000000000000fe": { "balance": "1" }, "0x00000000000000000000000000000000000000ff": { "balance": "1" }, "0x4242424242424242424242424242424242424242": { "balance": "0", "code": "0x60806040526004361061003f5760003560e01c806301ffc9a71461004457806322895118146100a4578063621fd130146101ba578063c5f2892f14610244575b600080fd5b34801561005057600080fd5b506100906004803603602081101561006757600080fd5b50357fffffffff000000000000000000000000000000000000000000000000000000001661026b565b604080519115158252519081900360200190f35b6101b8600480360360808110156100ba57600080fd5b8101906020810181356401000000008111156100d557600080fd5b8201836020820111156100e757600080fd5b8035906020019184600183028401116401000000008311171561010957600080fd5b91939092909160208101903564010000000081111561012757600080fd5b82018360208201111561013957600080fd5b8035906020019184600183028401116401000000008311171561015b57600080fd5b91939092909160208101903564010000000081111561017957600080fd5b82018360208201111561018b57600080fd5b803590602001918460018302840111640100000000831117156101ad57600080fd5b919350915035610304565b005b3480156101c657600080fd5b506101cf6110b5565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102095781810151838201526020016101f1565b50505050905090810190601f1680156102365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025057600080fd5b506102596110c7565b60408051918252519081900360200190f35b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a70000000000000000000000000000000000000000000000000000000014806102fe57507fffffffff0000000000000000000000000000000000000000000000000000000082167f8564090700000000000000000000000000000000000000000000000000000000145b92915050565b6030861461035d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118056026913960400191505060405180910390fd5b602084146103b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061179c6036913960400191505060405180910390fd5b6060821461040f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806118786029913960400191505060405180910390fd5b670de0b6b3a7640000341015610470576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118526026913960400191505060405180910390fd5b633b9aca003406156104cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806117d26033913960400191505060405180910390fd5b633b9aca00340467ffffffffffffffff811115610535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602781526020018061182b6027913960400191505060405180910390fd5b6060610540826114ba565b90507f649bbc62d0e31342afea4e5cd82d4049e7e1ee912fc0889aa790803be39038c589898989858a8a6105756020546114ba565b6040805160a0808252810189905290819060208201908201606083016080840160c085018e8e80828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910187810386528c815260200190508c8c808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690920188810386528c5181528c51602091820193918e019250908190849084905b83811015610648578181015183820152602001610630565b50505050905090810190601f1680156106755780820380516001836020036101000a031916815260200191505b5086810383528881526020018989808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018881038452895181528951602091820193918b019250908190849084905b838110156106ef5781810151838201526020016106d7565b50505050905090810190601f16801561071c5780820380516001836020036101000a031916815260200191505b509d505050505050505050505050505060405180910390a1600060028a8a600060801b604051602001808484808284377fffffffffffffffffffffffffffffffff0000000000000000000000000000000090941691909301908152604080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0818403018152601090920190819052815191955093508392506020850191508083835b602083106107fc57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016107bf565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610859573d6000803e3d6000fd5b5050506040513d602081101561086e57600080fd5b5051905060006002806108846040848a8c6116fe565b6040516020018083838082843780830192505050925050506040516020818303038152906040526040518082805190602001908083835b602083106108f857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016108bb565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610955573d6000803e3d6000fd5b5050506040513d602081101561096a57600080fd5b5051600261097b896040818d6116fe565b60405160009060200180848480828437919091019283525050604080518083038152602092830191829052805190945090925082918401908083835b602083106109f457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016109b7565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610a51573d6000803e3d6000fd5b5050506040513d6020811015610a6657600080fd5b5051604080516020818101949094528082019290925280518083038201815260609092019081905281519192909182918401908083835b60208310610ada57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610a9d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610b37573d6000803e3d6000fd5b5050506040513d6020811015610b4c57600080fd5b50516040805160208101858152929350600092600292839287928f928f92018383808284378083019250505093505050506040516020818303038152906040526040518082805190602001908083835b60208310610bd957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610b9c565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610c36573d6000803e3d6000fd5b5050506040513d6020811015610c4b57600080fd5b50516040518651600291889160009188916020918201918291908601908083835b60208310610ca957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610c6c565b6001836020036101000a0380198251168184511680821785525050505050509050018367ffffffffffffffff191667ffffffffffffffff1916815260180182815260200193505050506040516020818303038152906040526040518082805190602001908083835b60208310610d4e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610d11565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610dab573d6000803e3d6000fd5b5050506040513d6020811015610dc057600080fd5b5051604080516020818101949094528082019290925280518083038201815260609092019081905281519192909182918401908083835b60208310610e3457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610df7565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610e91573d6000803e3d6000fd5b5050506040513d6020811015610ea657600080fd5b50519050858114610f02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260548152602001806117486054913960600191505060405180910390fd5b60205463ffffffff11610f60576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806117276021913960400191505060405180910390fd5b602080546001019081905560005b60208110156110a9578160011660011415610fa0578260008260208110610f9157fe5b0155506110ac95505050505050565b600260008260208110610faf57fe5b01548460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061102557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610fe8565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015611082573d6000803e3d6000fd5b5050506040513d602081101561109757600080fd5b50519250600282049150600101610f6e565b50fe5b50505050505050565b60606110c26020546114ba565b905090565b6020546000908190815b60208110156112f05781600116600114156111e6576002600082602081106110f557fe5b01548460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061116b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161112e565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa1580156111c8573d6000803e3d6000fd5b5050506040513d60208110156111dd57600080fd5b505192506112e2565b600283602183602081106111f657fe5b015460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061126b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161122e565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa1580156112c8573d6000803e3d6000fd5b5050506040513d60208110156112dd57600080fd5b505192505b6002820491506001016110d1565b506002826112ff6020546114ba565b600060401b6040516020018084815260200183805190602001908083835b6020831061135a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161131d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790527fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000095909516920191825250604080518083037ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8018152601890920190819052815191955093508392850191508083835b6020831061143f57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611402565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa15801561149c573d6000803e3d6000fd5b5050506040513d60208110156114b157600080fd5b50519250505090565b60408051600880825281830190925260609160208201818036833701905050905060c082901b8060071a60f81b826000815181106114f457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060061a60f81b8260018151811061153757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060051a60f81b8260028151811061157a57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060041a60f81b826003815181106115bd57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060031a60f81b8260048151811061160057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060021a60f81b8260058151811061164357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060011a60f81b8260068151811061168657fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060001a60f81b826007815181106116c957fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535050919050565b6000808585111561170d578182fd5b83861115611719578182fd5b505082019391909203915056fe4465706f736974436f6e74726163743a206d65726b6c6520747265652066756c6c4465706f736974436f6e74726163743a207265636f6e7374727563746564204465706f7369744461746120646f6573206e6f74206d6174636820737570706c696564206465706f7369745f646174615f726f6f744465706f736974436f6e74726163743a20696e76616c6964207769746864726177616c5f63726564656e7469616c73206c656e6774684465706f736974436f6e74726163743a206465706f7369742076616c7565206e6f74206d756c7469706c65206f6620677765694465706f736974436f6e74726163743a20696e76616c6964207075626b6579206c656e6774684465706f736974436f6e74726163743a206465706f7369742076616c756520746f6f20686967684465706f736974436f6e74726163743a206465706f7369742076616c756520746f6f206c6f774465706f736974436f6e74726163743a20696e76616c6964207369676e6174757265206c656e677468a26469706673582212201dd26f37a621703009abf16e77e69c93dc50c79db7f6cc37543e3e0e3decdc9764736f6c634300060b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000022": "0xf5a5fd42d16a20302798ef6ed309979b43003d2320d9f0e8ea9831a92759fb4b", "0x0000000000000000000000000000000000000000000000000000000000000023": "0xdb56114e00fdd4c1f85c892bf35ac9a89289aaecb1ebd0a96cde606a748b5d71", "0x0000000000000000000000000000000000000000000000000000000000000024": "0xc78009fdf07fc56a11f122370658a353aaa542ed63e44c4bc15ff4cd105ab33c", "0x0000000000000000000000000000000000000000000000000000000000000025": "0x536d98837f2dd165a55d5eeae91485954472d56f246df256bf3cae19352a123c", "0x0000000000000000000000000000000000000000000000000000000000000026": "0x9efde052aa15429fae05bad4d0b1d7c64da64d03d7a1854a588c2cb8430c0d30", "0x0000000000000000000000000000000000000000000000000000000000000027": "0xd88ddfeed400a8755596b21942c1497e114c302e6118290f91e6772976041fa1", "0x0000000000000000000000000000000000000000000000000000000000000028": "0x87eb0ddba57e35f6d286673802a4af5975e22506c7cf4c64bb6be5ee11527f2c", "0x0000000000000000000000000000000000000000000000000000000000000029": "0x26846476fd5fc54a5d43385167c95144f2643f533cc85bb9d16b782f8d7db193", "0x000000000000000000000000000000000000000000000000000000000000002a": "0x506d86582d252405b840018792cad2bf1259f1ef5aa5f887e13cb2f0094f51e1", "0x000000000000000000000000000000000000000000000000000000000000002b": "0xffff0ad7e659772f9534c195c815efc4014ef1e1daed4404c06385d11192e92b", "0x000000000000000000000000000000000000000000000000000000000000002c": "0x6cf04127db05441cd833107a52be852868890e4317e6a02ab47683aa75964220", "0x000000000000000000000000000000000000000000000000000000000000002d": "0xb7d05f875f140027ef5118a2247bbb84ce8f2f0f1123623085daf7960c329f5f", "0x000000000000000000000000000000000000000000000000000000000000002e": "0xdf6af5f5bbdb6be9ef8aa618e4bf8073960867171e29676f8b284dea6a08a85e", "0x000000000000000000000000000000000000000000000000000000000000002f": "0xb58d900f5e182e3c50ef74969ea16c7726c549757cc23523c369587da7293784", "0x0000000000000000000000000000000000000000000000000000000000000030": "0xd49a7502ffcfb0340b1d7885688500ca308161a7f96b62df9d083b71fcc8f2bb", "0x0000000000000000000000000000000000000000000000000000000000000031": "0x8fe6b1689256c0d385f42f5bbe2027a22c1996e110ba97c171d3e5948de92beb", "0x0000000000000000000000000000000000000000000000000000000000000032": "0x8d0d63c39ebade8509e0ae3c9c3876fb5fa112be18f905ecacfecb92057603ab", "0x0000000000000000000000000000000000000000000000000000000000000033": "0x95eec8b2e541cad4e91de38385f2e046619f54496c2382cb6cacd5b98c26f5a4", "0x0000000000000000000000000000000000000000000000000000000000000034": "0xf893e908917775b62bff23294dbbe3a1cd8e6cc1c35b4801887b646a6f81f17f", "0x0000000000000000000000000000000000000000000000000000000000000035": "0xcddba7b592e3133393c16194fac7431abf2f5485ed711db282183c819e08ebaa", "0x0000000000000000000000000000000000000000000000000000000000000036": "0x8a8d7fe3af8caa085a7639a832001457dfb9128a8061142ad0335629ff23ff9c", "0x0000000000000000000000000000000000000000000000000000000000000037": "0xfeb3c337d7a51a6fbf00b9e34c52e1c9195c969bd4e7a0bfd51d5c5bed9c1167", "0x0000000000000000000000000000000000000000000000000000000000000038": "0xe71f0aa83cc32edfbefa9f4d3e0174ca85182eec9f3a09f6a6c0df6377a510d7", "0x0000000000000000000000000000000000000000000000000000000000000039": "0x31206fa80a50bb6abe29085058f16212212a60eec8f049fecb92d8c8e0a84bc0", "0x000000000000000000000000000000000000000000000000000000000000003a": "0x21352bfecbeddde993839f614c3dac0a3ee37543f9b412b16199dc158e23b544", "0x000000000000000000000000000000000000000000000000000000000000003b": "0x619e312724bb6d7c3153ed9de791d764a366b389af13c58bf8a8d90481a46765", "0x000000000000000000000000000000000000000000000000000000000000003c": "0x7cdd2986268250628d0c10e385c58c6191e6fbe05191bcc04f133f2cea72c1c4", "0x000000000000000000000000000000000000000000000000000000000000003d": "0x848930bd7ba8cac54661072113fb278869e07bb8587f91392933374d017bcbe1", "0x000000000000000000000000000000000000000000000000000000000000003e": "0x8869ff2c22b28cc10510d9853292803328be4fb0e80495e8bb8d271f5b889636", "0x000000000000000000000000000000000000000000000000000000000000003f": "0xb5fe28e79f1b850f8658246ce9b6a1e7b49fc06db7143e8fe0b4f2b0c5523a5c", "0x0000000000000000000000000000000000000000000000000000000000000040": "0x985e929f70af28d0bdd1a90a808f977f597c7c778c489e98d3bd8910d31ac0f7" } }, "0x0000006916a87b82333f4245046623b23794C65C": { "balance": "0x52b7d2dcc80cd2e4000000" }, "0x0be949928Ff199c9EBA9E110db210AA5C94EFAd0": { "balance": "0x7c13bc4b2c133c56000000" }, "0x0C100000006d7b5e23a1eAEE637f28cA32Cd5b31": { "balance": "0x52b7d2dcc80cd2e4000000" }, "0x0C35317B7a96C454E2CB3d1A255D775Ab112cCc8": { "balance": "0xd3c21bcecceda1000000" }, "0x0d731cfabC5574329823F26d488416451d2ea376": { "balance": "0xd3c21bcecceda1000000" }, "0x0e79065B5F11b5BD1e62B935A600976ffF3754B9": { "balance": "0xd3c21bcecceda1000000" }, "0x105083929bF9bb22C26cB1777Ec92661170D4285": { "balance": "0xd3c21bcecceda1000000" }, "0x10F5d45854e038071485AC9e402308cF80D2d2fE": { "balance": "0x52b7d2dcc80cd2e4000000" }, "0x1268AD189526AC0b386faF06eFfC46779c340eE6": { "balance": "0xd3c21bcecceda1000000" }, "0x12Cba59f5A74DB81a12ff63C349Bd82CBF6007C2": { "balance": "0xd3c21bcecceda1000000" }, "0x1446D7f6dF00380F246d8211dE7f0FaBC4Fd248C": { "balance": "0xd3c21bcecceda1000000" }, "0x164e38a375247A784A81d420201AA8fe4E513921": { "balance": "0xd3c21bcecceda1000000" }, "0x1B7aA44088a0eA95bdc65fef6E5071E946Bf7d8f": { "balance": "0x52b7d2dcc80cd2e4000000" }, "0x222222222222cF64a76AE3d36859958c864fDA2c": { "balance": "0xd3c21bcecceda1000000" }, "0x2f14582947E292a2eCd20C430B46f2d27CFE213c": { "balance": "0x52b7d2dcc80cd2e4000000" }, "0x2f2c75B5Dd5D246194812b00eEb3B09c2c66e2eE": { "balance": "0x52b7d2dcc80cd2e4000000" }, "0x341c40b94bf2afbfa42573cb78f16ee15a056238": { "balance": "0xd3c21bcecceda1000000" }, "0x34f845773D4364999f2fbC7AA26ABDeE902cBb46": { "balance": "0xd3c21bcecceda1000000" }, "0x3C75594181e03E8ECD8468A0037F058a9dAfad79": { "balance": "0xd3c21bcecceda1000000" }, "0x462396E69dBfa455F405f4DD82F3014Af8003B72": { "balance": "0xa56fa5b99019a5c8000000" }, "0x49Df3CCa2670eB0D591146B16359fe336e476F29": { "balance": "0xd3c21bcecceda1000000" }, "0x4D0b04b405c6b62C7cFC3aE54759747e2C0b4662": { "balance": "0xd3c21bcecceda1000000" }, "0x4D496CcC28058B1D74B7a19541663E21154f9c84": { "balance": "0x52b7d2dcc80cd2e4000000" }, "0x509a7667aC8D0320e36172c192506a6188aA84f6": { "balance": "0x7c13bc4b2c133c56000000" }, "0x5180db0237291A6449DdA9ed33aD90a38787621c": { "balance": "0xd3c21bcecceda1000000" }, "0x52730f347dEf6BA09adfF62EaC60D5fEe8205BC4": { "balance": "0xd3c21bcecceda1000000" }, "0x5EAC0fBd3dfef8aE3efa3c5dc1aa193bc6033dFd": { "balance": "0xd3c21bcecceda1000000" }, "0x6a7aA9b882d50Bb7bc5Da1a244719C99f12F06a3": { "balance": "0x52b7d2dcc80cd2e4000000" }, "0x6Cc9397c3B38739daCbfaA68EaD5F5D77Ba5F455": { "balance": "0x52b7d2dcc80cd2e4000000" }, "0x762cA62ca2549ad806763B3Aa1eA317c429bDBDa": { "balance": "0xd3c21bcecceda1000000" }, "0x778F5F13C4Be78A3a4d7141BCB26999702f407CF": { "balance": "0x52b7d2dcc80cd2e4000000" }, "0x875D25Ee4bC604C71BaF6236a8488F22399BED4b": { "balance": "0xd3c21bcecceda1000000" }, "0x8dF7878d3571BEF5e5a744F96287C8D20386d75A": { "balance": "0x52b7d2dcc80cd2e4000000" }, "0x9E415A096fF77650dc925dEA546585B4adB322B6": { "balance": "0xd3c21bcecceda1000000" }, "0xA0766B65A4f7B1da79a1AF79aC695456eFa28644": { "balance": "0xd3c21bcecceda1000000" }, "0xA29B144A449E414A472c60C7AAf1aaFfE329021D": { "balance": "0xd3c21bcecceda1000000" }, "0xa55395566b0b54395B3246f96A0bDc4b8a483df9": { "balance": "0xd3c21bcecceda1000000" }, "0xAC9ba72fb61aA7c31A95df0A8b6ebA6f41EF875e": { "balance": "0xd3c21bcecceda1000000" }, "0xB0498C15879db2eE5471d4926c5fAA25C9a09683": { "balance": "0xd3c21bcecceda1000000" }, "0xB19Fb4c1f280327e60Ed37b1Dc6EE77533539314": { "balance": "0x52b7d2dcc80cd2e4000000" }, "0xC21cB9C99C316d1863142F7dD86dd5496D81A8D6": { "balance": "0xd3c21bcecceda1000000" }, "0xc473d412dc52e349862209924c8981b2ee420768": { "balance": "0xd3c21bcecceda1000000" }, "0xC48E23C5F6e1eA0BaEf6530734edC3968f79Af2e": { "balance": "0x52b7d2dcc80cd2e4000000" }, "0xc6e2459991BfE27cca6d86722F35da23A1E4Cb97": { "balance": "0x52b7d2dcc80cd2e4000000" }, "0xD3994e4d3202dD23c8497d7F75bF1647d1DA1bb1": { "balance": "0x19D971E4FE8401E74000000" }, "0xDCA6e9B48Ea86AeBFDf9929949124042296b6e34": { "balance": "0xd3c21bcecceda1000000" }, "0xe0a2Bd4258D2768837BAa26A28fE71Dc079f84c7": { "balance": "0x52b7d2dcc80cd2e4000000" }, "0xEA28d002042fd9898D0Db016be9758eeAFE35C1E": { "balance": "0xd3c21bcecceda1000000" }, "0xEfA7454f1116807975A4750B46695E967850de5D": { "balance": "0xd3c21bcecceda1000000" }, "0xFBFd6Fa9F73Ac6A058E01259034C28001BEf8247": { "balance": "0x52b7d2dcc80cd2e4000000" }, "0xe0991E844041bE6F11B99da5b114b6bCf84EBd57": { "balance": "0xd3c21bcecceda1000000" }, "0x15E719b6AcAf1E4411Bf0f9576CB1D0dB161DdFc": { "balance": "0xd3c21bcecceda1000000" }, "0x346D827a75F98F0A7a324Ff80b7C3F90252E8baC": { "balance": "0xd3c21bcecceda1000000" }, "0x73b2e0E54510239E22cC936F0b4a6dE1acf0AbdE": { "balance": "0x52b7d2dcc80cd2e4000000" }, "0xBb977B2EE8a111D788B3477D242078d0B837E72b": { "balance": "0xd3c21bcecceda1000000" }, "0x834Dbf5A03e29c25bc55459cCe9c021EeBE676Ad": { "balance": "0xd3c21bcecceda1000000" }, "0xD1F77E4C1C45186e8653C489F90e008a73597296": { "balance": "0xd3c21bcecceda1000000" }, "0xb04aeF2a3d2D86B01006cCD4339A2e943d9c6480": { "balance": "0xd3c21bcecceda1000000" }, "0xC9CA2bA9A27De1Db589d8c33Ab8EDFa2111b31fb": { "balance": "0xd3c21bcecceda1000000" }, "0x4BC656B34De23896fa6069C9862F355b740401aF": { "balance": "0x084595161401484a000000" } }, "coinbase": "0x0000000000000000000000000000000000000000", "difficulty": "0x01", "extraData": "", "gasLimit": "0x17D7840", "nonce": "0x1234", "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000", "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "timestamp": "1695902100" }

The main insight is that when a network flag is passed, genesis is always non-nil and therefore this newCfg will always be the current default for the network, so when the config needs to change it will still be updated so-long-as the network flag is passed.

@fjl
Copy link
Contributor

fjl commented Sep 18, 2025

I think this PR might break the auto-upgrade of the chain config for predefined networks. Something to be investigated.

// object is null, it returns the default chain configuration based on the given
// genesis hash, or the locally stored config if it's not a pre-defined network.
func (g *Genesis) chainConfigOrDefault(ghash common.Hash, stored *params.ChainConfig) *params.ChainConfig {
switch {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about we check the stored config before all the default configs?

e.g.,

diff --git a/core/genesis.go b/core/genesis.go
index 2673334e9e..95c31c6279 100644
--- a/core/genesis.go
+++ b/core/genesis.go
@@ -430,6 +430,8 @@ func (g *Genesis) chainConfigOrDefault(ghash common.Hash, stored *params.ChainCo
 	switch {
 	case g != nil:
 		return g.Config
+	case stored != nil:
+		return stored
 	case ghash == params.MainnetGenesisHash:
 		return params.MainnetChainConfig
 	case ghash == params.HoleskyGenesisHash:
@@ -439,7 +441,7 @@ func (g *Genesis) chainConfigOrDefault(ghash common.Hash, stored *params.ChainCo
 	case ghash == params.HoodiGenesisHash:
 		return params.HoodiChainConfig
 	default:
-		return stored
+		return nil
 	}
 }
 

// The new config is sourced either directly from provided Genesis or by
// applying overrides to the stored config.
newCfg := storedCfg
if genesis != nil {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It breaks the auto-upgrade for mainnet.

(a) the chain config was persisted with old geth version, e.g., osaka at time-x;
(b) a new geth is release then with osaka at time-y;
(c) the node is launched without network == mainnet, the genesis object here is nil, the chain config won't be overridden then

Copy link
Member Author

@lightclient lightclient Sep 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point. I fixed it in cbff538.

@lightclient lightclient force-pushed the core-genesis-no-default branch from 0ad3362 to cbff538 Compare September 23, 2025 15:03
@lightclient
Copy link
Member Author

I was confused by the --mainnet flag and thought it was enabled by default, but it is was actually a "no op" flag added in #21932. So actually the genesis is not defined by default, which causes the issue pointed out by Gary.

My resolution to this is to define the config's genesis by default via cbff538. One of Felix's concern was decoding the mainnet genesis each time, but from my benchmark it appears the decoding is around 0.0032 seconds, so should not be noticeable.

$ go test -run=^$ -bench=BenchmarkMainnetGenesis ./core
goos: darwin
goarch: arm64
pkg: github.com/ethereum/go-ethereum/core
cpu: Apple M1 Pro
BenchmarkMainnetGenesis-10           387           3228151 ns/op
PASS
ok      github.com/ethereum/go-ethereum/core    1.645s

@lightclient
Copy link
Member Author

I realized that my resolution in cbff538 is actually wrong. Although it does solve the issue of fixing the auto-upgrade for mainnet, it breaks the main use of the PR -> allowing users to overwrite their chain config with geth init. This is because when no flag is provided, the mainnet genesis ends up being provided to the setup.

After playing with a few other options, it seems like if we are to continue supporting the current interface it isn't going to be possible to change the start up logic a little bit to "know" when to use the the stored config vs. auto-upgrade.

For those reasons I'm going to close this PR. I'm planning to open an alternative to this that allows a user to overwrite the active genesis by passing a genesis.json path on startup.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants