1. 09 Jul, 2021 7 commits
    • Mark Tyneway's avatar
      Merge pull request #1241 from ethereum-optimism/feat/gpo-zero-fees · 08083333
      Mark Tyneway authored
      l2geth: allow 0 gasprice txs for `OVM_GasPriceOracle.owner`
      08083333
    • Mark Tyneway's avatar
      l2geth: allow 0 gasprice txs for `OVM_GasPriceOracle.owner` · 0404c964
      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.
      0404c964
    • Mark Tyneway's avatar
      Merge pull request #1239 from ethereum-optimism/fix/fee-buffer · 78bd4506
      Mark Tyneway authored
      l2geth: sequencer fee buffer
      78bd4506
    • Mark Tyneway's avatar
      l2geth: sequencer fee buffer · c612a903
      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.
      c612a903
    • Mark Tyneway's avatar
      b9584538
    • github-actions[bot]'s avatar
      Version Packages · 16502edb
      github-actions[bot] authored
      16502edb
    • Liam Horne's avatar
      Merge branch 'develop' · fa4c743f
      Liam Horne authored
      fa4c743f
  2. 08 Jul, 2021 11 commits
  3. 07 Jul, 2021 14 commits
  4. 06 Jul, 2021 8 commits