Skip to content

EOS EVM Miner v1.0.0

Compare
Choose a tag to compare
@stephenpdeos stephenpdeos released this 21 Aug 02:18
· 12 commits to main since this release
59458bb

Introduction

The latest release of EOS EVM Miner introduces changes to support London Hard Fork, integration with Wharfkit, and some additional minor performance enhancements.

Read on for more details.

New features

London Fork Compatibility

EIP-1559: Transaction Fee Reform

PRs

  • (48) Changes to work with the coming London fork


A critical component of the London Hard Fork is EIP-1559, which introduces a new transaction fee mechanism. This update changes how gas fees are handled on the EOS EVM network with new components including a base fee and priority fee combined to calculate the overall cost of a transaction based on units of gas used.

Base fee

The base fee, implemented as the base_fee_per_gas, is the minimum fee required for a transaction to be included in a block. This fee is burned in the Ethereum implementation, but is instead credited to the contract for EOS EVM. The base_fee_per_gas is now part of the block header information and is returned in both eth_getBlockByNumber and eth_getBlockByHash API calls.

Priority fee

The priority fee, implemented as the inclusion_price, is a fee historically designed so that users can pay to miners to incentivize them to prioritize their transactions over others. In EOS EVM, the priority fee does not prioritize transactions. Instead, it is a fee set by the miner to cover their costs for processing the transaction and pushing it into the network. This fee goes directly to the miner and is not burned.

The priority fee or inclusion_price can be calculated as min(max_priority_fee_per_gas, max_fee_per_gas - base_fee_per_gas).

Max fee

Users may now specify a maximum fee they are willing to pay for the sum of base and priority fees. If the max fee is higher than the sum of the base fee and the priority fee, the difference is refunded to the user. This ensures users don't overpay beyond what is necessary to get their transactions processed.

Overall transaction fee

The overall cost of a transaction fee utilizes a price per gas unit implemented as the effective_gas_price, which can be calculated as
inclusion_price + base_fee_per_gas. The overall cost of any given transaction is then calculated as the product ofeffective_gas_price * gas_used.

Fee distribution

The fees associated with transactions are now distributed to where the contract receives base_fee_per_gas*gas_used and the miner receives inclusion_price*gas_used.

Feature activation for wallet users

The flag for the EIP-1559 network support is cached, so users will have to refresh their network selection by changing the active network to another network and go back to eos-evm in order for many common wallets like Metamask to start sending EIP-1559 transactions.

Other changes

Wharfkit integration

PRs

  • (45) Use wharfkit, use send_transaction2 but do not retry


The EOS EVM miner has been updated to utilize Wharfkit in place of eosjs for future proofing and some minor performance enhancements.

Support for requiredKeys parameter in the Transaction API

PRs

  • (38) add required_keys param


The requiredKeys parameter is now supported in the Transaction API to save an RPC to Leap call for performance enhancements.

Further details on changes since last release

Contributors

Special thanks to the contributors that submitted patches for this release:

Full list of changes since last release

PRs

  • (35) [main] <- [release/0.1]
  • (37) [0.1 -> main] bump version
  • (38) add required_keys param
  • (44) [Release/0.1 -> main] add required_keys param
  • (45) Use wharfkit, use send_transaction2 but do not retry
  • (26) Update README.md to fix 404 link
  • (48) Changes to work with the coming London fork
  • (51)Update README and bump version


Full Changelog: v0.1.1...v1.0.0