EOS EVM Miner v1.0.0
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
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
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
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