# 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.