Skip to content

Commit e4d92c4

Browse files
authored
clients: add 'glacier' forks in mapper (#941)
* clients/go-ethereum: remove 'yolo' fork blocks * clients/ethereumjs: remove 'yolo' forks in mapper * clients: add missing 'glacier' forks in mapper * cmd/hivechain: put back difficulty-only forks This reverts commit f01b2d3. * simulators/smoke: add 'glacier' forks * cmd/hivechain: improve uncle generation
1 parent 431557d commit e4d92c4

File tree

10 files changed

+37
-15
lines changed

10 files changed

+37
-15
lines changed

clients/besu/mapper.jq

+2
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ def to_int:
4343
"muirGlacierBlock": env.HIVE_FORK_MUIR_GLACIER|to_int,
4444
"berlinBlock": env.HIVE_FORK_BERLIN|to_int,
4545
"londonBlock": env.HIVE_FORK_LONDON|to_int,
46+
"arrowGlacierBlock": env.HIVE_FORK_ARROW_GLACIER|to_int,
47+
"grayGlacierBlock": env.HIVE_FORK_GRAY_GLACIER|to_int,
4648
"parisBlock": env.HIVE_MERGE_BLOCK_ID|to_int,
4749
"terminalTotalDifficulty": env.HIVE_TERMINAL_TOTAL_DIFFICULTY|to_int,
4850
"shanghaiTime": env.HIVE_SHANGHAI_TIMESTAMP|to_int,

clients/erigon/mapper.jq

+2
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ def to_bool:
5050
"muirGlacierBlock": env.HIVE_FORK_MUIR_GLACIER|to_int,
5151
"berlinBlock": env.HIVE_FORK_BERLIN|to_int,
5252
"londonBlock": env.HIVE_FORK_LONDON|to_int,
53+
"arrowGlacierBlock": env.HIVE_FORK_ARROW_GLACIER|to_int,
54+
"grayGlacierBlock": env.HIVE_FORK_GRAY_GLACIER|to_int,
5355
"mergeNetsplitBlock": env.HIVE_MERGE_BLOCK_ID|to_int,
5456
"terminalTotalDifficulty": env.HIVE_TERMINAL_TOTAL_DIFFICULTY|to_int,
5557
"terminalTotalDifficultyPassed": true,

clients/ethereumjs/mapper.jq

+2-2
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,9 @@ def to_bool:
5050
"istanbulBlock": env.HIVE_FORK_ISTANBUL|to_int,
5151
"muirGlacierBlock": env.HIVE_FORK_MUIR_GLACIER|to_int,
5252
"berlinBlock": env.HIVE_FORK_BERLIN|to_int,
53-
"yolov2Block": env.HIVE_FORK_BERLIN|to_int,
54-
"yolov3Block": env.HIVE_FORK_BERLIN|to_int,
5553
"londonBlock": env.HIVE_FORK_LONDON|to_int,
54+
"arrowGlacierBlock": env.HIVE_FORK_ARROW_GLACIER|to_int,
55+
"grayGlacierBlock": env.HIVE_FORK_GRAY_GLACIER|to_int,
5656
"mergeForkBlock": env.HIVE_MERGE_BLOCK_ID|to_int,
5757
"terminalTotalDifficulty": env.HIVE_TERMINAL_TOTAL_DIFFICULTY|to_int,
5858
"shanghaiTime": env.HIVE_SHANGHAI_TIMESTAMP|to_int,

clients/go-ethereum/mapper.jq

+2-2
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,9 @@ def to_bool:
4949
"istanbulBlock": env.HIVE_FORK_ISTANBUL|to_int,
5050
"muirGlacierBlock": env.HIVE_FORK_MUIR_GLACIER|to_int,
5151
"berlinBlock": env.HIVE_FORK_BERLIN|to_int,
52-
"yolov2Block": env.HIVE_FORK_BERLIN|to_int,
53-
"yolov3Block": env.HIVE_FORK_BERLIN|to_int,
5452
"londonBlock": env.HIVE_FORK_LONDON|to_int,
53+
"arrowGlacierBlock": env.HIVE_FORK_ARROW_GLACIER|to_int,
54+
"grayGlacierBlock": env.HIVE_FORK_GRAY_GLACIER|to_int,
5555
"mergeNetsplitBlock": env.HIVE_MERGE_BLOCK_ID|to_int,
5656
"terminalTotalDifficulty": env.HIVE_TERMINAL_TOTAL_DIFFICULTY|to_int,
5757
"shanghaiTime": env.HIVE_SHANGHAI_TIMESTAMP|to_int,

clients/nethermind/mapper.jq

+2
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ def ethash_engine:
6262
(env.HIVE_FORK_CONSTANTINOPLE|to_hex//""): 2000000,
6363
(env.HIVE_FORK_MUIR_GLACIER|to_hex//""): 4000000,
6464
(env.HIVE_FORK_LONDON|to_hex//""): 700000,
65+
(env.HIVE_FORK_ARROW_GLACIER|to_hex//""): 1000000,
66+
(env.HIVE_FORK_GRAY_GLACIER|to_hex//""): 700000,
6567
}
6668
}
6769
}

clients/nimbus-el/mapper.jq

+2
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@ def to_bool:
7171
"muirGlacierBlock": env.HIVE_FORK_MUIR_GLACIER|to_int,
7272
"berlinBlock": env.HIVE_FORK_BERLIN|to_int,
7373
"londonBlock": env.HIVE_FORK_LONDON|to_int,
74+
"arrowGlacierBlock": env.HIVE_FORK_ARROW_GLACIER|to_int,
75+
"grayGlacierBlock": env.HIVE_FORK_GRAY_GLACIER|to_int,
7476
"mergeForkBlock": env.HIVE_MERGE_BLOCK_ID|to_int,
7577
"terminalTotalDifficulty": env.HIVE_TERMINAL_TOTAL_DIFFICULTY|to_int,
7678
"shanghaiTime": env.HIVE_SHANGHAI_TIMESTAMP|to_int,

cmd/hivechain/genesis.go

+6-2
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ var (
4141
"muirglacier",
4242
"berlin",
4343
"london",
44-
// "arrowglacier", "grayglacier" forks were difficulty bomb changes. They are not
45-
// available here because hive doesn't support configuring them on clients.
44+
"arrowglacier",
45+
"grayglacier",
4646
"merge",
4747
}
4848

@@ -98,6 +98,10 @@ func (cfg *generatorConfig) createChainConfig() *params.ChainConfig {
9898
chaincfg.BerlinBlock = new(big.Int).SetUint64(b)
9999
case "london":
100100
chaincfg.LondonBlock = new(big.Int).SetUint64(b)
101+
case "arrowglacier":
102+
chaincfg.ArrowGlacierBlock = new(big.Int).SetUint64(b)
103+
case "grayglacier":
104+
chaincfg.GrayGlacierBlock = new(big.Int).SetUint64(b)
101105
case "merge":
102106
chaincfg.MergeNetsplitBlock = new(big.Int).SetUint64(b)
103107
chaincfg.TerminalTotalDifficultyPassed = true

cmd/hivechain/mod_uncles.go

+12-6
Original file line numberDiff line numberDiff line change
@@ -26,27 +26,33 @@ type unclesInfo struct {
2626
}
2727

2828
func (m *modUncles) apply(ctx *genBlockContext) bool {
29-
merge := ctx.ChainConfig().MergeNetsplitBlock
30-
if merge != nil && merge.Cmp(ctx.Number()) <= 0 {
31-
return false // no uncles after merge
32-
}
33-
if ctx.NumberU64() < 3 {
29+
cfg := ctx.ChainConfig()
30+
merged := cfg.MergeNetsplitBlock != nil && cfg.MergeNetsplitBlock.Cmp(ctx.Number()) <= 0
31+
if merged || cfg.Ethash == nil || ctx.NumberU64() < 3 {
3432
return false
3533
}
34+
3635
info := m.info[ctx.NumberU64()]
3736
if len(info.Hashes) >= 2 {
38-
return false
37+
return false // block has enough uncles already
3938
}
4039

4140
parent := ctx.ParentBlock()
41+
time := parent.Time() + 1
4242
uncle := &types.Header{
4343
Number: parent.Number(),
4444
ParentHash: parent.ParentHash(),
45+
Time: time,
4546
Extra: []byte(fmt.Sprintf("hivechain uncle %d", m.counter)),
4647
}
48+
// Initialize the remaining remaining header fields by converting to a full block.
4749
ub := types.NewBlock(uncle, nil, nil, nil, trie.NewStackTrie(nil))
4850
uncle = ub.Header()
51+
52+
// Add the uncle to the generated block.
53+
// Note that AddUncle computes the difficulty and gas limit for us.
4954
ctx.block.AddUncle(uncle)
55+
5056
info.Hashes = append(info.Hashes, uncle.Hash())
5157
m.info[ctx.NumberU64()] = info
5258
m.counter++

cmd/hivechain/output_forkenv.go

+2
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ func (g *generator) writeForkEnv() error {
3838
setNum("HIVE_FORK_PETERSBURG", cfg.PetersburgBlock)
3939
setNum("HIVE_FORK_ISTANBUL", cfg.IstanbulBlock)
4040
setNum("HIVE_FORK_MUIR_GLACIER", cfg.MuirGlacierBlock)
41+
setNum("HIVE_FORK_ARROW_GLACIER", cfg.ArrowGlacierBlock)
42+
setNum("HIVE_FORK_GRAY_GLACIER", cfg.GrayGlacierBlock)
4143
setNum("HIVE_FORK_BERLIN", cfg.BerlinBlock)
4244
setNum("HIVE_FORK_LONDON", cfg.LondonBlock)
4345
setNum("HIVE_MERGE_BLOCK_ID", cfg.MergeNetsplitBlock)

simulators/smoke/genesis/main.go

+5-3
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,11 @@ func main() {
3838
"HIVE_FORK_MUIR_GLACIER": "19",
3939
"HIVE_FORK_BERLIN": "20",
4040
"HIVE_FORK_LONDON": "21",
41-
"HIVE_TERMINAL_TOTAL_DIFFICULTY": "22",
42-
"HIVE_SHANGHAI_TIMESTAMP": "23",
43-
"HIVE_CANCUN_TIMESTAMP": "24",
41+
"HIVE_FORK_ARROW_GLACIER": "22",
42+
"HIVE_FORK_GRAY_GLACIER": "23",
43+
"HIVE_TERMINAL_TOTAL_DIFFICULTY": "24",
44+
"HIVE_SHANGHAI_TIMESTAMP": "25",
45+
"HIVE_CANCUN_TIMESTAMP": "26",
4446
},
4547
Run: genesisTest{"0x433d0b859a77a29753d2a6df477c971dcc6300af33f9d64d821a1d490b4148b1"}.test,
4648
})

0 commit comments

Comments
 (0)