# verkle-gen-devnet-4 :::info :mega: verkle-gen in the devnet name means that the genesis state is a verkle state. There is no fork transition. ::: :::warning :mega: In order to be able to sync up this network, you have to make sure that the **dencun** related code is **not** being triggered, as the current version of verkle is built on top of **shapella**. ::: :::info :mega: Verkle-genesis-Devnet-4 launched on 6th Feb 2024. It shuts down on the 29th of March 2024. ::: :::info :mega: The legacy name of kaustinen-testnet has been dropped in favor of `verkle-devnet-x` and `verkle-gen-devnet-x`. `verkle-gen-devnet-x` begins at a verkle-genesis state. `verkle-devnet-x` begins at a shapella-genesis state, and goes through the fork transition. ::: ## EIP List for Verkle (EL) - [EIP-2935: Save historical block hashes in state](https://eips.ethereum.org/EIPS/eip-2935) - :heavy_check_mark: Active - [EIP-4762: Statelessness gas cost changes](https://eips.ethereum.org/EIPS/eip-4762) - :heavy_check_mark: Active - [EIP-6800: Ethereum state using a unified verkle tree](https://eips.ethereum.org/EIPS/eip-6800) - :heavy_check_mark: Active - [EIP-7545: Verkle proof verification precompile](https://eips.ethereum.org/EIPS/eip-7545) - :exclamation: Not yet active on this devnet ## EIP List for Verkle (CL) - [PR-3230: TheVerge: spec draft](https://github.com/ethereum/consensus-specs/pull/3230) :exclamation: Draft ## [Docker images](https://github.com/ethpandaops/verkle-devnets/blob/master/ansible/inventories/gen-devnet-4/group_vars/all/images.yaml) for devnet 4 ### Known bugs |Block number|description|Fixed for relaunch?|fixed in block #| |:-:|-|:-:|:-:| |1|Account header of the history contract, all 0s, is present in the state but missing from the witness.| :heavy_check_mark: |NA| |374|Computation of an address hash when the address is less than 20 bytes is padded on the wrong size| :heavy_check_mark: | NA| |542(?)|542 has a contract create with leading 0 byte (address<20) however its stem is calculated correctly not as per padding on 374 (just tracking the inconsistency here, no fix required)| :heavy_check_mark: | NA| | 479 | Witness missing for EXTCODEHASH| |716|`BALANCE` opcode doesn't charge witness costs, and does not add its access to the witness| :heavy_check_mark: | NA| |4810|`SELFDESTRUCT` overwrites the first 256 leafs of an account with zeroes. This is coming from a piece of code that is used for replaying mainnet blocks and get information, which was accidentally merged.| :heavy_check_mark: | NA| |5077|Same thing as 4810.| :heavy_check_mark: | NA | |6842|Upon contract creation init, the code hash leaf is touched before it should be, and gas is charged for it. Then, a transaction uses the `GAS` instruction in order to determine the beneficiary address of a `SELFDESTRUCT`, which therefore changes the root (even though the final gas consumption is the same as the tx reverts)| :heavy_check_mark: | NA | |8621|Witness charging for contract completion code was done after total contract gas consumption logic on failure scenarios| :heavy_check_mark: | NA | |NA|`BLOCKHASH` storage offset ignores `MAIN_STORAGE_OFFSET` which means while values are stored at the right location, they are not read from the right location. This does not seem to appear on the testnet as presumably the `BLOCKHASH` instruction is never called.| :heavy_check_mark: |NA| ### Spec changes for verkle-gen-devnet-4 **Consensus Spec** - No additional change compared to verkle-gen-devnet-3 **Execution EIPs** - [EIP-2935: Save historical block hashes in state](https://eips.ethereum.org/EIPS/eip-2935) using [this update](https://github.com/ethereum/EIPs/pull/8166) - [EIP-4762: Statelessness gas cost changes](https://eips.ethereum.org/EIPS/eip-4762) using [this update](https://github.com/ethereum/EIPs/pull/8138) (i.e. `to` and `from` are not charged) **Execution bugfixes** - [ CREATE-time PUSHn adds non-existent entries to witness #361](https://github.com/gballet/go-ethereum/pull/361) **Engine API** - No additional change compared to verkle-gen-devnet-3 **Beacon API** - No additional change compared to verkle-gen-devnet-3 **Builder Spec** - No additional change compared to verkle-gen-devnet-3 [Previous devnet's spec list](https://notes.ethereum.org/@ethpandaops/verkle-gen-devnet-3)