github.com/ethereum-optimism/optimism/l2geth@v0.0.0-20230612200230-50b04ade19e3/CHANGELOG.md (about) 1 # Changelog 2 3 ## 0.5.33 4 5 ### Patch Changes 6 7 - 33acb7c6a: Has l2geth return a NonceToHigh response if the txn nonce is greater than the expected nonce. 8 9 ## 0.5.32 10 11 ### Patch Changes 12 13 - ea817097b: Use default cas gap of 25 million 14 15 ## 0.5.31 16 17 ### Patch Changes 18 19 - ccbca22c3: Patch release for additional instrumentation for the Bedrock upgrade. 20 21 ## 0.5.30 22 23 ### Patch Changes 24 25 - 0e8652c29: Close down the syncservice more cleanly 26 27 ## 0.5.29 28 29 ### Patch Changes 30 31 - 4e65ceb9d: Dedupe dumper addresses in memory 32 33 ## 0.5.28 34 35 ### Patch Changes 36 37 - ac0f14f5: Fix state dumper 38 - 5005da9a: Fixes a small l2geth bug when trying to dump state 39 40 ## 0.5.27 41 42 ### Patch Changes 43 44 - 596c974e: Kick the build 45 46 ## 0.5.26 47 48 ### Patch Changes 49 50 - 397b27ee: Add data exporter 51 52 ## 0.5.25 53 54 ### Patch Changes 55 56 - 89f1abfa: add --rpc.evmtimeout flag to configure timeout for eth_call 57 58 ## 0.5.24 59 60 ### Patch Changes 61 62 - c3e66e57: Add the gas estimation block tag to `eth_estimateGas` to be RPC compliant 63 64 ## 0.5.23 65 66 ### Patch Changes 67 68 - c3363225: fix NPE in debug_standardTraceBlockToFile 69 70 ## 0.5.22 71 72 ### Patch Changes 73 74 - ff0723aa: Have L2Geth Verifier sync in parallel with the DTL. 75 76 ## 0.5.21 77 78 ### Patch Changes 79 80 - 248f73c5: Rerelease the previous version 81 82 ## 0.5.20 83 84 ### Patch Changes 85 86 - 359bc604: Patch for L1 syncing nodes that got stuck after DTL batch sync errors 87 88 ## 0.5.19 89 90 ### Patch Changes 91 92 - 1bcee8f1: Fix `eth_getBlockRange` 93 - c799535d: Add system addresses for nightly goerli 94 95 ## 0.5.18 96 97 ### Patch Changes 98 99 - 935a98e6: rollup: fix log.Crit usage 100 - 81f09f16: l2geth: Record rollup transaction metrics 101 102 ## 0.5.17 103 104 ### Patch Changes 105 106 - 13524da4: Style fix in the sync service 107 - 160f4c3d: Update docker image to use golang 1.18.0 108 - 1a28ba5f: Skip account cmd tests 109 - 45582fcc: Skip unused tests in l2geth 110 - 0c4d4e08: l2geth: Revert transaction pubsub feature 111 112 ## 0.5.16 113 114 ### Patch Changes 115 116 - a01a2eb1: Skip TestWSAttachWelcome 117 - 23ad6068: Skip some geth console tests that flake in CI 118 - 6926b293: Adds a flag for changing the genesis fetch timeout 119 120 ## 0.5.15 121 122 ### Patch Changes 123 124 - 88601cb7: Refactored Dockerfiles 125 - f8348862: l2geth: Sync from Backend Queue 126 127 ## 0.5.14 128 129 ### Patch Changes 130 131 - 962f36e4: Add support for system addresses 132 133 ## 0.5.13 134 135 ### Patch Changes 136 137 - 0002b1df: Remove dead code in l2geth 138 - 1187dc9a: Don't block read rpc requests when syncing 139 - bc342ec4: Fix queue index comparison 140 141 ## 0.5.12 142 143 ### Patch Changes 144 145 - 84e6a158: Bump the timeout to download the genesis file on l2geth 146 147 ## 0.5.11 148 149 ### Patch Changes 150 151 - 9ef215b8: Various small changes to reduce our upstream Geth diff 152 153 ## 0.5.10 154 155 ### Patch Changes 156 157 - 2e7f6a55: Fixes incorrect timestamp handling for L1 syncing verifiers 158 - 81d90563: Bring back RPC methods that were previously blocked 159 160 ## 0.5.9 161 162 ### Patch Changes 163 164 - e631c39c: Implement berlin hardfork 165 166 ## 0.5.8 167 168 ### Patch Changes 169 170 - 949916f8: Add a better error message for when the sequencer url is not configured when proxying user requests to the sequencer for `eth_sendRawTransaction` when running as a verifier/replica 171 - 300f79bf: Fix nonce issue 172 - ae96d784: Add reinitialize-by-url command, add dump chain state command 173 - c7569a16: Fix blocknumber monotonicity logging bug 174 175 ## 0.5.7 176 177 ### Patch Changes 178 179 - d4bf299f: Add support to fully unmarshal Receipts with Optimism fields 180 - 8be69ca7: Add changeset for https://github.com/ethereum-optimism/optimism/pull/2011 - replicas forward write requests to the sequencer via a configured parameter `--sequencer.clienthttp` or `SEQUENCER_CLIENT_HTTP` 181 - c9fd6ec2: Correctly parse fee enforcement via config to allow turning off L2 fees for development 182 183 ## 0.5.6 184 185 ### Patch Changes 186 187 - 3a77bbcc: Implement updated timestamp logic 188 - 3e3c07a3: changed the default address to be address(0) in `call` 189 190 ## 0.5.5 191 192 ### Patch Changes 193 194 - 2924845d: expose ErrNonceTooHigh from miner 195 196 ## 0.5.4 197 198 ### Patch Changes 199 200 - d205c1d6: surface sequencer low-level sequencer execution errors 201 202 ## 0.5.3 203 204 ### Patch Changes 205 206 - 5febe10f: fixes empty block detection and removes empty worker tasks 207 - 272d20d6: renames l2geth package name to github.com/ethereum-optimism/optimism/l2geth 208 209 ## 0.5.2 210 211 ### Patch Changes 212 213 - d141095c: Allow for unprotected transactions 214 215 ## 0.5.1 216 217 ### Patch Changes 218 219 - 7f2898ba: Fixes deadlock 220 221 ## 0.5.0 222 223 ### Minor Changes 224 225 - e03dcead: Start refactor to new version of the OVM 226 - e4a1129c: Adds aliasing to msg.sender and tx.origin to avoid xdomain attacks 227 - 299a459e: Introduces a new opcode L1BLOCKNUMBER to replace old functionality where blocknumber would return the L1 block number and the L2 block number was inaccessible. 228 - 872f5976: Removes various unused OVM contracts 229 - 65289e63: Add optimistic ethereum specific fields to the receipt. These fields are related to the L1 portion of the fee. Note that this is a consensus change as it will impact the blockhash through the receipts root 230 - 92c9692d: Opcode tweaks. Coinbase returns SequencerFeeVault address. Difficulty returns zero. 231 - 1e63ffa0: Refactors and simplifies OVM_ETH usage 232 - d3cb1b86: Reintroduces the whitelist into the v2 system 233 - 81ccd6e4: `regenesis/0.5.0` release 234 - f38b8000: Removes ERC20 and WETH9 features from OVM_ETH 235 - 3605b963: Adds refactored support for the L1MESSAGESENDER opcode 236 - 3f28385a: Removes all custom genesis initialization 237 238 ### Patch Changes 239 240 - 8988a460: Cleanup `time.Ticker`s 241 - fbdd06f5: Set the latest queue index and index after the tx has been applied to the chain 242 - 5c0e90aa: Handle policy/consensus race condition for balance check 243 - 8c8807c0: Refactor to simplify the process of generating the genesis json file 244 - 95a0d803: Remove calls to `syncBatchesToTip` in the main `sequence()` loop 245 - da99cc43: Remove dead `debug_ingestTransactions` endpoint and `txType` from RPC transactions 246 - 6bb040b7: Remove complex mutex logic in favor of simple mutex logic in the `SyncService` 247 - 7bd88e81: Use `OVM_GasPriceOracle` based L1 base fee instead of fetching it from remote 248 - b70ee70c: upgraded to solidity 0.8.9 249 - 3c56126c: Handle race condition in L2 geth for fee logic 250 - c39165f8: Remove dead L1 gas price fetching code 251 - 95c0463c: Fix various geth tests 252 - e11c3ea2: Use minimal EIP-2929 for state accessing opcodes 253 254 ## 0.4.15 255 256 ### Patch Changes 257 258 - 5c9b6343: Fix execution manager run 259 260 ## 0.4.14 261 262 ### Patch Changes 263 264 - 0d429564: Add ROLLUP_ENABLE_ARBITRARY_CONTRACT_DEPLOYMENT_FLAG 265 266 ## 0.4.13 267 268 ### Patch Changes 269 270 - dfe3598f: Lower per tx fee overhead to more accurately represent L1 costs 271 272 ## 0.4.12 273 274 ### Patch Changes 275 276 - 0e14855c: Add in min accepted L2 gas limit config flag 277 278 ## 0.4.11 279 280 ### Patch Changes 281 282 - f331428f: Update the memory usage in geth 283 284 ## 0.4.10 285 286 ### Patch Changes 287 288 - eb1eb327: Ensure that L2 geth doesn't reject blocks from the future 289 290 ## 0.4.9 291 292 ### Patch Changes 293 294 - 3c420ec3: Reduce the geth diff 295 - 9d1ff999: Allow transactions via RPC to `address(0)` 296 - 101b942c: Removes `id` field from EVM and no longer logs the EVM execution id 297 - 4cf68ade: Style fix in the `RollupClient` 298 - 6dbb9293: Remove dead code in `blockchain.go` and `miner/worker.go` 299 300 ## 0.4.8 301 302 ### Patch Changes 303 304 - a8e37aac: Style fix to the ovm state manager precompile 305 - 616b7a28: Small fixes to miner codepath 306 - 7ee76c23: Remove an unnecessary use of `reflect` in l2geth 307 - 75d8dcd3: Remove layer of indirection in `callStateManager` 308 - f0a02385: Update the start script to work with the latest regenesis, `0.4.0` 309 - 75ec2869: Return correct value in L2 Geth fee too high error message 310 - 7acbab74: Delete stateobjects in the miner as blocks are produced to prevent a build up of memory 311 - 0975f738: Remove diffdb 312 - 8f9bb36f: Quick syntax fix in the sync service 313 - 11d46182: Make the extradata deterministic for deterministic block hashes 314 315 ## 0.4.7 316 317 ### Patch Changes 318 319 - bb7b916e: revert rpcGasCap logic to upstream geth behavior 320 321 ## 0.4.6 322 323 ### Patch Changes 324 325 - 32a9f494: Give a better error message for when the fee is too high when sending transactions to the sequencer 326 - 735ef774: Fix a bug in the fee logic that allowed for fees that were too low to get through 327 328 ## 0.4.5 329 330 ### Patch Changes 331 332 - 53b37978: Fixes the flags to use float64 instead of bools for the `--rollup.feethresholddown` and `-rollup.feethresholdup` config options 333 - 709c85d6: Prevents the sequencer from accepting transactions with a too high nonce 334 335 ## 0.4.4 336 337 ### Patch Changes 338 339 - 0404c964: Allow zero gas price transactions from the `OVM_GasPriceOracle.owner` when enforce fees is set to true. This is to prevent the need to manage an additional hot wallet as well as prevent any situation where a bug causes the fees to go too high that it is not possible to lower the fee by sending a transaction 340 - c612a903: Add sequencer fee buffer with config options `ROLLUP_FEE_THRESHOLD_UP` and `ROLLUP_FEE_THRESHOLD_DOWN` that are interpreted as floating point numbers 341 342 ## 0.4.3 343 344 ### Patch Changes 345 346 - 6e2074c5: Update the `RollupClient` transaction type to use `hexutil.Big` 347 348 ## 0.4.2 349 350 ### Patch Changes 351 352 - 7e04137d: Handle errors correctly in the RollupClient and retry in the SyncService when initially attempting to connect to the DTL 353 354 ## 0.4.1 355 356 ### Patch Changes 357 358 - 40b99a6e: Add new RPC endpoint `rollup_gasPrices` 359 360 ## 0.4.0 361 362 ### Minor Changes 363 364 - e04de624: Add support for ovmCALL with nonzero ETH value 365 366 ### Patch Changes 367 368 - 01646a0a: Add new config `ROLLUP_GAS_PRICE_ORACLE_OWNER_ADDRESS` to set the owner of the gas price oracle at runtime 369 - 8fee7bed: Add extra overflow protection for the DTL types 370 - 5fc728da: Add a new Standard Token Bridge, to handle deposits and withdrawals of any ERC20 token. 371 For projects developing a custom bridge, if you were previously importing `iAbs_BaseCrossDomainMessenger`, you should now 372 import `iOVM_CrossDomainMessenger`. 373 - 257deb70: Prevent overflows in abi encoding of ovm codec transaction from geth types.Transaction 374 - 08873674: Update queueOrigin type 375 - 01646a0a: Removes config options that are no longer required. `ROLLUP_DATAPRICE`, `ROLLUP_EXECUTION_PRICE`, `ROLLUP_GAS_PRICE_ORACLE_ADDRESS` and `ROLLUP_ENABLE_L2_GAS_POLLING`. The oracle was moved to a predeploy 0x42.. address and polling is always enabled as it no longer needs to be backwards compatible 376 - 0a7f5a46: Removes the gas refund for unused gas in geth since it is instead managed in the smart contracts 377 - e045f582: Adds new SequencerFeeVault contract to store generated fees 378 - 25a5dbdd: Removes the SignatureHashType from l2geth as it is deprecated and no longer required. 379 380 ## 0.3.9 381 382 ### Patch Changes 383 384 - f409ce75: Fixes an off-by-one error that would sometimes break replica syncing when stopping and restarting geth. 385 - d9fd67d2: Correctly log 'end of OVM execution' message. 386 387 ## 0.3.8 388 389 ### Patch Changes 390 391 - 989a3027: Optimize main polling loops 392 - cc6c7f07: Bump golang version to 1.15 393 394 ## 0.3.7 395 396 ### Patch Changes 397 398 - cb4a928b: Make block hashes deterministic by using the same clique signer key 399 - f1b27318: Fixes incorrect type parsing in the RollupClient. The gasLimit became greater than the largest safe JS number so it needs to be represented as a string 400 - a64f8161: Implement the next fee spec in both geth and in core-utils 401 - 5e4eaea1: fix potential underflow when launching the chain when the last verified index is 0 402 - 1293825c: Fix gasLimit overflow 403 - a25acbbd: Refactor the SyncService to more closely implement the specification. This includes using query params to select the backend from the DTL, trailing syncing of batches for the sequencer, syncing by batches as the verifier as well as unified code paths for transaction ingestion to prevent double ingestion or missed ingestion 404 - c2b6e14b: Implement the latest fee spec such that the L2 gas limit is scaled and the tx.gasPrice/tx.gasLimit show correctly in metamask 405 406 ## 0.3.6 407 408 ### Patch Changes 409 410 - f091e86: Fix to ensure that L1 => L2 success status is reflected correctly in receipts 411 - f880479: End to end fee integration with recoverable L2 gas limit 412 413 ## 0.3.5 414 415 ### Patch Changes 416 417 - d4c9793: Fixed a bug where reverts without data would not be correctly propagated for eth_call 418 - 3958644: Adds the `debug_ingestTransactions` endpoint that takes a list of RPC transactions and applies each of them to the state sequentially. This is useful for testing purposes 419 - c880043: Fix gas estimation logic for simple ETH transfers 420 - 467d6cb: Adds a test for contract deployments that run out of gas 421 - 4e6c3f9: add an env var METRICS_ENABLE for MetricsEnabledFlag 422 423 ## 0.3.4 424 425 ### Patch Changes 426 427 - e2b70c1: Don't panic on a monotonicity violation 428 429 ## 0.3.3 430 431 ### Patch Changes 432 433 - f5185bb: Fix bug with replica syncing where contract creations would fail in replicas but pass in the sequencer. This was due to the change from a custom batched tx serialization to the batch serialzation for txs being regular RLP encoding 434 435 ## 0.3.2 436 437 ### Patch Changes 438 439 - 20242af: Fixes a bug in L2geth that causes it to skip the first deposit if there have been no deposits batch-submitted yet 440 - cf3cfe4: Allow for dynamically set configuration of the gasLimit in the contracts by setting the storage slot at runtime 441 - de5e3dc: Updates `scripts/start.sh` with the mainnet config by default 442 443 ## 0.3.1 444 445 ### Patch Changes 446 447 - 9231063: Prevent montonicity errors in the miner 448 449 ## 0.3.0 450 451 ### Minor Changes 452 453 - b799caa: Updates to use RLP encoded transactions in batches for the `v0.3.0` release 454 455 ### Patch Changes 456 457 - b799caa: Add value parsing to the rollup client 458 - b799caa: Removes the extra setting of the txmeta in the syncservice and instead sets the raw tx in the txmeta at the rpc layer 459 - b799caa: Fill in the raw transaction into the txmeta in the `eth_sendTransaction` codepath 460 - b799caa: Add support for parsed revert reasons in DoEstimateGas 461 - b799caa: Update minimum response from estimate gas 462 - b799caa: Add value transfer support to ECDSAContractAccount 463 - b799caa: Ignore the deprecated type field in the API 464 - b799caa: Return bytes from both ExecutionManager.run and ExecutionManager.simulateMessage and be sure to properly ABI decode the return values and the nested (bool, returndata) 465 - b799caa: Block access to RPCs related to signing transactions 466 - b799caa: Add ExecutionManager return data & RLP encoding 467 - b799caa: Update gas related things in the RPC to allow transactions with high gas limits and prevent gas estimations from being too small 468 - 9b7dd4b: Update `scripts/start.sh` to parse the websocket port and pass to geth at runtime 469 - b799caa: Remove the OVMSigner 470 - b799caa: Prevent 0 value transactions with calldata via RPC 471 472 ## 0.2.6 473 474 ### Patch Changes 475 476 - a0a0052: Add value parsing to the rollup client 477 - 20df745: Protect a possible `nil` reference in `eth_call` when the blockchain is empty 478 - 9f1529c: Update the start script to be more configurable 479 - 925675d: Update `scripts/start.sh` to regenesis v0.2.0 480 481 ## 0.2.5 482 483 ### Patch Changes 484 485 - 79f66e9: Use constant execution price, which is set by the sequencer 486 - 5b9be2e: Correctly set the OVM context based on the L1 values during `eth_call`. This will also set it during `eth_estimateGas`. Add tests for this in the integration tests 487 488 ## 0.2.4 489 490 ### Patch Changes 491 492 - 7e9ca1e: Add batch API to rollup client 493 - 6e8fe1b: Removes mockOVM_ECDSAContractAccount and OVM_ProxySequencerEntrypoint, two unused contracts. 494 - 76c4ceb: Calculate data fees based on if a byte was zero or non-zero 495 496 ## 0.2.3 497 498 ### Patch Changes 499 500 - d6734f6: Change ROLLUP_BASE_TX_SIZE to camelcase for standard style 501 - 5e0d0fc: Commit go.sum after a `make test` 502 - 8a2c24a: Set default timestamp refresh threshold to 3 minutes 503 - ba2e043: Add `VerifiedIndex` to db and api 504 - ef40ed7: Allow gas estimation for replicas 505 506 ## 0.2.2 507 508 ### Patch Changes 509 510 - b290cfe: CPU Optimization by caching ABI methods 511 - c4266fa: Fix logger error 512 513 ## 0.2.1 514 515 ### Patch Changes 516 517 - 3b00b7c: bump private package versions to try triggering a tag 518 519 ## v0.1.3 520 521 - Integrate data transport layer 522 - Refactor `SyncService` 523 - New RPC Endpoint `eth_getBlockRange` 524 525 ## v0.1.2 526 527 Reduce header cache size to allow L2Geth to spin back up. 528 529 ## v0.1.1 530 531 Pre-minnet fixes. 532 533 - gaslimit: fix eth_call (#186) 534 - rollup: safer historical log syncing (#173) 535 - config: flag for max acceptable calldata size (#181) 536 - debug rpc: debug_setL1Head and better l1 timestamp management (#184) 537 - Fix for hasEmptyAccount (#182) 538 - gasLimit: error on gas limit too high for queue origin sequencer txs (#180) 539 - Fixes issue with broken gas limit (#183) 540 541 ## v0.1.0 542 543 Initial Release 544 545 - Feature complete for minnet 546 - OVM runtime implemented for deterministic transaction execution on L1 547 - Runs in either Sequencer mode or Verifier mode 548 - `rollup` package includes the `SyncService` for syncing the Canonical 549 Transaction Chain 550 - New configuration options for rollup related features 551 - No P2P networking 552 - Maintains RPC compatibility with geth