- 09 Jul, 2021 7 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
-
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 11 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.
-
Mark Tyneway authored
The `gasprices` package implements the logic that updates L2 gasprices on the Optimistic Ethereum Network. Co-authored-by:
Karl Floersch <karl@karlfloersch.com>
-
smartcontracts authored
feat: add workflow for running SNX test suite
-
- 07 Jul, 2021 14 commits
-
-
Kelvin Fichter authored
-
Liam Horne authored
chore(ci): Skip check files job on push events
-
Maurelian authored
-
Liam Horne authored
Version Packages
-
github-actions[bot] authored
-
smartcontracts authored
Merge develop to master
-
Maurelian authored
ci(contracts): only run codecov if contracts package is modified
-
Maurelian authored
In order to skip running the CodeCov job when it isn't relevant, a new job was added to the ts-packges workflow. For a PR, this job identifies all the files modified between the base branch and the tip of the PR branch, and writes to a variable which can be used to decide if subsequent jobs should run. Github Actions provides an easy method for achieving this at the level of a workflow, but not for specific jobs within a workflow.
-
Liam Horne authored
Add op_exporter for sequencer metrics and health endpoint
-
Kevin Ho authored
l2geth: use `hexutil.Big` to prevent overflows
-
Mark Tyneway authored
The `RollupClient` decodes the JSON from the DTL as a uint64, this updates it to be a `big.Int` Includes a test for the value field that ensures it does not overflow
-
Ben Wilson authored
Increase client_body_buffer_size for rpc-proxy
-
Ben Wilson authored
Added client_max_body_size to rpc-proxy config
-
smartcontracts authored
feat[integration-tests]: make integration tests work against production networks
-
- 06 Jul, 2021 8 commits
-
-
Kelvin Fichter authored
-
Kelvin Fichter authored
-
Liam Horne authored
Version Packages
-
smartcontracts authored
feat: update README to include info about rebasing
-
Ben Wilson authored
Added metric for sequencer health Added Dockerfile for op_exporter; Fixed Dockerfile path
-
Kelvin Fichter authored
-
smartcontracts authored
fix: update CI to avoid running out of memory
-
Liam Horne authored
-