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