---
# System prepended metadata

title: core-geth merge foundation v1.10.15

---

# core-geth merge foundation v1.10.15

Notes from the merge.


### Cases

---

Is `ctx.GlobalBool(CatalystFlag.Name)` still a thing? Is __Catalyst__ gone? Defaulted? What even was it?

> I have left the flag in so far, though it seems to have disappeared in upstream.

Same question, sort of, for `ctx.OverrideTerminalTotalDifficulty`. 


---

:boom: `Blockchain.Forker` eg `bc.forker.ReorgNeeded()`

`core/forkchoice.go` https://github.com/ethereum/go-ethereum/blob/3038e480f5297b0e80196c156d9f9b45fd86a0bf/core/forkchoice.go

This impacts core-geth's "Artificial Finality" logic, which operates directly on reorg conditions.
I am going to accept the bulk of upstream changes and then fit our logic back in.

All of this __reorg logic__ needs to be looked at again. `core/blockchain.go`

:boom: `consensus.NewMerger` ?! `core/blockchain_test.go`

```go
	// Activate the transition since genesis if required
	if mergePoint == 0 {
		merger.ReachTTD()
		merger.FinalizePoS()
```


```go
		genEngine = beacon.New(ethash.NewFaker())
		runEngine = beacon.New(ethash.NewFaker())
```

I'm starting to think this PoS merge thing might actually happen.

Also: `consensus.Beacon(engine)`.

---

Speaking of, we need to add `MergeForkBlock` to config interface. eg `core/forkid/forkid_test.go` `mergeConfig` test cases.

---

`CaptureStart`, `CaptureEnd`, `CaptureFault`... etc. See [`core/vm/runtime/runtime_test.go`](`https://github.com/ethereum/go-ethereum/tree/v1.10.15/core/vm/runtime/runtime_test.go#L337`).

:question: Not real sure which A/B to use here. __Deferring to @chris.__

---

:question: `gasSha3` renamed(?) to `gasKeccak256`.

[`core/vm/runtime/runtime_test.go`](`https://github.com/ethereum/go-ethereum/tree/v1.10.15/core/vm/gas_table.go#L250`)

See also `vars.Keccak256WordGas`.

---

:question: Where did `core/vm/interpreter.go`'s write restrictions go? EIP-214. `operation.writes`

---

`core/vm/logger.go` Where did all the structs go?

---

`eth/tracers/js/internal/tracers/assets.go`. This is a generated file. There are core-geth specific tracers. __@chris, PTAL.__

Other tracers stuff, too.

---

### Trivia (Tiny Cases)

---

`-dev.gaslimit` flag added for `DeveloperGenesisBlock`. I have messed around this with before, glad to have it.

---

A __max__ gas limit variable is added in params. There also exists `GenesisGasLimit`; to which network does this belong?

```
MaxGasLimit          uint64 = 0x7fffffffffffffff // Maximum the gas limit (2^63-1).
```

`TrustedCheckpoint.HashEqual` @ params/config.go; is this a new method?

`AllEthashProtocolChanges` being on one unkeyed line is SUPERANNOYING.
