- 13 Jul, 2021 4 commits
-
-
github-actions[bot] authored
-
Mark Tyneway authored
Develop -> Master PR
-
Mark Tyneway authored
l2geth: fix bad flag parsing
-
Mark Tyneway authored
The parsing of the `ROLLUP_FEE_THRESHOLD_UP` and `ROLLUP_FEE_THRESHOLD_DOWN` config options were set to be boolean flags instead of float64 flags. The config flags wouldn't parse if a float64 was used as a bool flag.
-
- 12 Jul, 2021 3 commits
-
-
Liam Horne authored
l2geth: only accept txs with exact nonce
-
Liam Horne authored
Dynamically generate predeploy contracts markdown
-
Reggie Gomez authored
-
- 10 Jul, 2021 15 commits
-
-
Mark Tyneway authored
This PR makes it so that the sequencer will only accept transactions if the nonce exactly matches what is in the state. This is because the mempool in upstream geth has different rules than what l2geth needs. This prevents issues with local nonce managers that send transactions with a too large of nonce and end up having all of the transactions revert since the transaction is still accepted but reverts in the OVM
-
Mark Tyneway authored
gas-oracle: improve logging
-
Mark Tyneway authored
maintance[smock]: add test and docs for returning multiple arrays
-
Mark Tyneway authored
This PR improves the logging in the `gas-oracle`
-
Mark Tyneway authored
Merge develop into master
-
Mark Tyneway authored
Version Packages
-
github-actions[bot] authored
-
Mark Tyneway authored
Develop -> Master
-
Mark Tyneway authored
contracts: lint the tasks directory
-
Mark Tyneway authored
ci: handle gas-oracle latest image, skip builder
-
Mark Tyneway authored
This PR lints the tasks directory
-
Mark Tyneway authored
This PR updates the `ops/scripts/ci-versions.js` file to skip building the builder image for when there are changes to the `gas-oracle`. The `builder` contains all of the JS code required for the various typescript based services. This PR also publishes `ethereumoptimism/gas-oracle:latest`. It is faster to `docker pull` than `docker build`. This will speed up the workflow for developers building locally against the `docker compose` setup as well as the CI if it is refactored to pull the `latest` images for the unchanged images instead of building them from scratch.
-
Mark Tyneway authored
Version Packages
-
github-actions[bot] authored
-
Mark Tyneway authored
Develop -> Master Merge
-
- 09 Jul, 2021 9 commits
-
-
Mark Tyneway authored
l2geth: allow 0 gasprice txs for `OVM_GasPriceOracle.owner`
-
Mark Tyneway authored
This PR allows the owner of the `OVM_GasPriceOracle` to send transactions with 0 gas price when the enforce fees config option is turned on. The L2 gas price is currently updated by sending transactions to the chain to a special contract. In the future it should be updated as a side effect of transaction execution. Having the gas price on chain is important so that it can be replicated accross the network to ensure that users can send transactions with a high enough fee. Having the `OVM_GasPriceOracle.owner` key not need to maintain ETH on L2 is an operational simplification as well prevents a terrible scenario where a bug causes the L2 gas price to go so high that it is impossible for the owner to update it.
-
Mark Tyneway authored
l2geth: sequencer fee buffer
-
Kelvin Fichter authored
-
Kelvin Fichter authored
-
Mark Tyneway authored
The fees are currently calculated as a sum of the L1 fee and the L2 fee where the L1 fee is the approximate cost of the batch submission of the transaction (L1 gas price * L1 gas used) and the L2 fee is the approximate cost of the execution on L2 taking into account congestion (L2 gas price * L2 gas limit). When either the L1 or L2 gas price is volatile, it can result in the quote that the user receives from `eth_estimateGas` to be rejected as the fee that the Sequencer is expecting has gone up. This PR adds logic to set a buffer in either direction of the current price that will allow the sequencer to still accept transactions within. Two new config options are added: - `--rollup.feethresholddown` or `ROLLUP_FEE_THRESHOLD_DOWN` - `--rollup.feethresholdup` or `ROLLUP_FEE_THRESHOLD_UP` Note that these config options are only useful for when running in Sequencer mode, they are not useful for replicas/verifiers. This is because the Sequencer is the only write node in the network. These config options are interpreted as floating point numbers and are multiplied against the current fee that the sequencer is expecting. To allow for a downward buffer of 10% and an upward buffer of 100%, use the options: - `ROLLUP_FEE_THRESHOLD_DOWN=0.9` - `ROLLUP_FEE_THRESHOLD_UP=2` This will allow for slight fee volatility downwards and prevent users from excessively overpaying on fees accidentally. This is a UX and profit tradeoff for the sequencer and can be exploited by bots. If bots are consistently taking advantage of this, the max threshold down will have to be calibrated to what the normal fee is today. Both config options are sanity checked in the `SyncService` constructor and will result in errors if they are bad. The threshold down must be less than 1 and the threshold up must be greater than 1.
-
Mark Tyneway authored
Version Packages
-
github-actions[bot] authored
-
Liam Horne authored
-
- 08 Jul, 2021 9 commits
-
-
smartcontracts authored
feat[integration-tests]: add basic stress tests
-
Kelvin Fichter authored
-
Kelvin Fichter authored
-
Liam Horne authored
ci: release latest image tags on release
-
Liam Horne authored
Develop To Master PR
-
Mark Tyneway authored
feat[geth]: add gas pricer for congestion fees
-
Mark Tyneway authored
contracts: add set-l2-gasprice task
-
Mark Tyneway authored
Adds a dockerfile for the `gas-oracle` as well as adding it as a service in the `docker-compose.yaml`. It is not enabled by default due to memory issues in CI already happening occasionally where the integration tests are oom killed. The `gas-oracle` is configured with a key that owns the `OVM_GasPriceOracle`. This PR adds the `gas-oracle` to the Github Actions workflow that is responsible for publishing the docker images.
-
Mark Tyneway authored
This commit adds the `gas-oracle` which is an offchain entity that sends transactions to L2 to update the gas price. It must be configured with a private key as the `OVM_GasPriceOracle` is owned. The `gas-oracle` is added to the changesets setup. Tests are included as well as CI. Dockerizing will happen in a follow up PR.
-