|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to this project will be documented in this file. |
| 4 | + |
| 5 | +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), |
| 6 | +and this project adheres to |
| 7 | +[Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
| 8 | + |
| 9 | +## [v1.0.0-beta.14] |
| 10 | + |
| 11 | +* Limit the number of bytes read by NR RPC middleware |
| 12 | + |
| 13 | +## [v1.0.0-beta.13] |
| 14 | + |
| 15 | +* Remove deployer allowlist |
| 16 | +* Add `GETH_FLAG_IMMUTABLE_LONG_RANGE_SYNC` flag to allow snap sync from genesis |
| 17 | + |
| 18 | +## [v1.0.0-beta.12] |
| 19 | + |
| 20 | +#### Cancun |
| 21 | +This release enables Cancun fork on all Immutable zkEVM networks. |
| 22 | +| Network | Unix Timestamp | Date | |
| 23 | +| -------- | ------- | ------- | |
| 24 | +| Devnet | 1724796000 | Tue Aug 27 22:00:00 UTC 2024 | |
| 25 | +| Testnet | 1727128800 | Mon Sep 23 22:00:00 UTC 2024 | |
| 26 | +| Mainnet | 1728338400 | Mon Oct 7 22:00:00 UTC 2024 | |
| 27 | + |
| 28 | +* Enable `ExcessBlobGas`, `BlobGasUsed`, `ParentBeaconRoot` |
| 29 | + * All values are `0x0` |
| 30 | +* Enable `WithdrawalsHash`, and `Withdrawals` headers |
| 31 | + * `Withdrawals` are empty and `WithdrawalsHash` is the corresponding digest |
| 32 | +* Enable `TSTORE`, `TLOAD`, and `MCOPY` op codes |
| 33 | +* Enable `BLOBHASH` op code |
| 34 | +* Enable Point Evaluation precompile |
| 35 | +* Update `SELFDESTRUCT` op code |
| 36 | +* Update clique stack to support Cancun |
| 37 | +* Disable blob transactions |
| 38 | +* Re-order logic that sets blob block headers and beacon root header to after `engine.Prepare` in order to interoperate with clique which produces variable blocktimes (rather than fixed slots) |
| 39 | + |
| 40 | + |
| 41 | +#### Other |
| 42 | + |
| 43 | +* Add `--gossipdefault` flag to toggle default geth tx gossiping |
| 44 | +* Add GETH_FLAG_P2P_SUBNET env var to limit inbound messages based on subnet |
| 45 | +* Add specific peer message handling in `eth/handler.go` to disable ingestion of state |
| 46 | +* Add `--rpcproxy` flag to toggle RPC proxy forwarding |
| 47 | +* Add RPC proxy forwarding to Immutable zkEVM |
| 48 | +* Add `--disabletxpoolgossip` flag to disable tx gossiping |
| 49 | +* Add `--gossipdefault` flag to toggle default geth tx gossiping |
| 50 | +* Add GETH_FLAG_P2P_SUBNET env var to limit inbound messages based on subnet |
| 51 | + |
| 52 | +## [v1.0.0-beta.11] |
| 53 | + |
| 54 | +* Added partner public role to init container logic |
| 55 | + |
| 56 | +## [v1.0.0-beta.10] |
| 57 | + |
| 58 | +* Add log to correlate block period with block number and hash |
| 59 | + |
| 60 | +## [v1.0.0-beta.9] |
| 61 | + |
| 62 | +* Reject forkids that do not contain prevrandao fork |
| 63 | +* Disable more RPC namespaces |
| 64 | +* Correct the embedded mainnet.toml's price limit value to 10 gwei |
| 65 | + |
| 66 | +## [v1.0.0-beta.8] |
| 67 | + |
| 68 | +* Add prevrandao fork to forkid |
| 69 | +* Pull v1.13.15 from upstream: [ethereum/go-ethereum](https://github.com/ethereum/go-ethereum) |
| 70 | +* Log peer fullnames rather than abbreviated |
| 71 | +* Do not rate limit peer connections that match on the supplied networks from the net restrict configuration |
| 72 | +* Reduce p2p discv4 default refresh interval |
| 73 | + |
| 74 | +## [v1.0.0-beta.7] |
| 75 | + |
| 76 | +* Create Prevrandao fork |
| 77 | +* Fix issues syncing with testnet and mainnet relating to Prevrandao fork |
| 78 | + |
| 79 | +## [v1.0.0-beta.6] |
| 80 | + |
| 81 | +* Update geth version logic to be based on immutable/go-ethereum releases |
| 82 | +* Add `downloader/sync` metric |
| 83 | + |
| 84 | +## [v1.0.0-beta.5] |
| 85 | + |
| 86 | +* Pull v1.13.14 from upstream: [ethereum/go-ethereum](https://github.com/ethereum/go-ethereum) |
| 87 | +* Make `DefaultBaseFeeChangeDenominator` consistent with upstream (8) and mutate it based on chain configuration |
| 88 | + * If chain configuration matches Immutable zkEVM network ID and clique settings, set `DefaultBaseFeeChangeDenominator` to 50 |
| 89 | +* Validate chain configuration based on expected values if Immutable zkEVM network ID is specified |
| 90 | +* Use minimum price limit instead of last price to represent the priority fee of each fetched empty block inside suggested tip cap endpoint. |
| 91 | +* Add block period, block propagation, and suggested tip cap metrics |
| 92 | + |
| 93 | +## [v1.0.0-beta.4] |
| 94 | + |
| 95 | +- Fix PREVRANDAO opcode on shanghai network by setting random to mixhash |
| 96 | + |
| 97 | +## [v1.0.0-beta.3] |
| 98 | + |
| 99 | +- Testing release flow |
| 100 | + |
| 101 | +## [v1.0.0-beta.2] |
| 102 | + |
| 103 | +- Enforce minimum price limit on suggested tip cap endpoint |
| 104 | + |
| 105 | +## [v1.0.0-beta.1] |
| 106 | + |
| 107 | +This release enables Shanghai fork on all Immutable zkEVM networks. |
| 108 | +| Network | Unix Timestamp | Date | |
| 109 | +| -------- | ------- | ------- | |
| 110 | +| Devnet | 1709067600 | Tue Feb 27 21:00:00 UTC 2024 | |
| 111 | +| Testnet | 1710280800 | Tue Mar 12 22:00:00 UTC 2024 | |
| 112 | +| Mainnet | 1711490400 | Tue Mar 26 22:00:00 UTC 2024 | |
| 113 | + |
| 114 | +The following changes were made to support the forks: |
| 115 | +- Update clique to |
| 116 | + - allow for Shanghai to be enabled; and |
| 117 | + - log more detail around existence of withdrawals and withdrawals hashes |
| 118 | +- Update geth node initialization from genesis |
| 119 | + - Add command to be used instead of `geth init` |
| 120 | + ```sh |
| 121 | + geth immutable bootstrap rpc --zkevm testnet --datadir "..." |
| 122 | + ``` |
| 123 | + - genesis.json has been removed from Docker image |
| 124 | +- Update geth node run configuration |
| 125 | + - Add `--zkevm [testnet|mainnet]` flag to automatically configure genesis and fork overrides |
| 126 | + |
| 127 | +## [v0.0.16] |
| 128 | + |
| 129 | +- Add `geth immutable run boot` command for running boot node on cluster |
| 130 | +- Move boot node p2p keys to Secrets Manager |
| 131 | +- Update logs around allowlists |
| 132 | +- Added more logging for ACL initialisation and a log when ACL rejects a TX from pool |
| 133 | + |
| 134 | +## [v0.0.15] |
| 135 | + |
| 136 | +- Re-enabled single sequencer invariants |
| 137 | + |
| 138 | +## [v0.0.14] |
| 139 | + |
| 140 | +- Change pod initialization process to use Put instead of Push |
| 141 | + |
| 142 | +## [v0.0.13] |
| 143 | + |
| 144 | +- Implement Immutable wallet backend |
| 145 | + - Add AWS Secrets Manager backend store implementation for private key access via AWS |
| 146 | + - Add local keystore backend store implementation for testing purposes |
| 147 | + - Add `GETH_FLAG_IMMUTABLE_AWS_REGION` and `POD_NAMESPACE` env var support for configuring aws wallet backend |
| 148 | + - Add `GETH_FLAG_PASSWORD_FILEPATH` env var to existing password filepath flag |
| 149 | +- Added flag to disable Clique endpoints on RPC server |
| 150 | +- Added Clique Client |
| 151 | +- Added CLI for Clique Voting |
| 152 | + |
| 153 | +## [v0.0.12] |
| 154 | + |
| 155 | +- Revert dialHistoryExpiration change back to 35s |
| 156 | + |
| 157 | +## [v0.0.11] |
| 158 | + |
| 159 | +- Revert change to always drop peers when find node errors are greater than the threshold |
| 160 | +- Reduce dialHistoryExpiration from 35 seconds to 5 |
| 161 | + |
| 162 | +## [v0.0.10] |
| 163 | + |
| 164 | +- Decrease `seedMaxAge` to 1 second to ensure that nodes always query boot node for peer IPs |
| 165 | +- Always drop peers when find node errors are greater than the threshold |
| 166 | + |
| 167 | +## [v0.0.9] |
| 168 | + |
| 169 | +- Automation / CD updates only. Releasing with latest prod workflows. |
| 170 | + |
| 171 | +## [v0.0.8] |
| 172 | + |
| 173 | +- Added max block range for logs queried using eth_getLogs (#346) |
| 174 | +- Default mainnet configuration (`/etc/geth/mainnet.toml`) and genesis (`/etc/geth/mainnet.json`) added to Docker image |
| 175 | + |
| 176 | +## [v0.0.7] |
| 177 | + |
| 178 | +- Automation / CD updates only: immutable init command |
| 179 | + |
| 180 | +## [v0.0.6] |
| 181 | + |
| 182 | +- Automation / CD updates only |
| 183 | + |
| 184 | +## [v0.0.5] |
| 185 | + |
| 186 | +- Reduce price limit 100->10 Gwei |
| 187 | + |
| 188 | +## [v0.0.4] |
| 189 | + |
| 190 | +### Added |
| 191 | + |
| 192 | +- Default testnet configuration (`/etc/geth/testnet.toml`) and genesis (`/etc/geth/testnet.json`) added to Docker image |
| 193 | + |
| 194 | +## [v0.0.3] |
| 195 | + |
| 196 | +### Added |
| 197 | + |
| 198 | +- Add NewRelic agent to geth runtime for application metrics |
| 199 | + |
| 200 | +### Fixed |
| 201 | + |
| 202 | +- Price limit being 100 Gwei rather than 100 Gwei - 1 Wei |
| 203 | +- Fixed bug in ACLs that caused transactions to be blocked when they should not have been |
| 204 | + |
| 205 | +## [v0.0.2] |
| 206 | + |
| 207 | +### Changed |
| 208 | + |
| 209 | +- Change to add access control layer to geth legacypool, which safeguards txs |
| 210 | + from entering txpool if the sender is part of a collective SDN list (#17) |
| 211 | +- Mempool Rebroadcasting: Legacy pool now rebroadcasts pending transactions |
| 212 | + whenever a pool reorg is triggered. Pool reorgs are triggered when a new block |
| 213 | + is received - (#103) |
| 214 | +- Transaction Broadcasting: Transactions are broadcast to all peers, not a |
| 215 | + square root. All peers get the transaction, regardless of whether they may |
| 216 | + have previously received it. All peers get the full transaction payload, i.e. |
| 217 | + no more announcements. (#103) |
| 218 | +- Changed `maxUncleDist` from 7 to 0. This means old blocks are rejected, |
| 219 | + reducing chance of reorgs. (#156) |
| 220 | +- Changed `maxQueueDist` from 32 to 256. This means more blocks in the future |
| 221 | + can be received without being rejected. This is to account for our increased |
| 222 | + block production due to reduced block time. (#156) |
| 223 | +- Changed `blockLimit` from 64 to 256. Since we only have a small amount of |
| 224 | + peers, more will come from the same set of peers, so we need to allow for |
| 225 | + this. (#156) |
| 226 | +- Added invariants to prevents reorgs (#175) |
| 227 | +- Added check for NoLocals on legacytxpool to reject underpriced TXs |
| 228 | +- Changed the `DefaultBaseFeeChangeDenominator` from 8 to 50. This makes the max |
| 229 | + base fee rate of change 2%, instead of 12.5%. With a block time of 2 seconds, |
| 230 | + we match Ethereum in that it would take 72 seconds for the base fee to double. |
| 231 | + (#178) |
| 232 | +- Mine a tx even if its effective tipcap (tipcap-basefee) is less than miner's minimum tipcap (which is pricelimit, or 100 gwei) (#258) |
| 233 | + |
| 234 | +### Added |
| 235 | + |
| 236 | +- CLI commands for bootstrapping local and remote Immutable chains |
| 237 | +- Added CLI parameter options for the geth immutable bootstraper, which can |
| 238 | + potentially takes in a list of filepaths for blocklists and allowlists (#83) |
| 239 | +- Added flags to disable Admin/Txpool/Engine/Debug endpoints on RPC server |
| 240 | + |
| 241 | +### Fixed |
| 242 | + |
| 243 | +[unreleased]: https://github.com/immutable/go-ethereum/compare/v1.11.6-beta.1...HEAD |
0 commit comments