On July 30, network stakeholders, including DApp developers and core developers, came together for a final coordination meeting on Zoom. In the meeting, developers discussed long-term plans to solve the thorny problem of EIP1559 making it more difficult to debug DApps on Ethereum. The meeting discussed more about the definition of the problem and why there is no clear solution yet. To maintain backward compatibility with wallets and blockchain services, implementations of EIP1559 retain fields for these services to specify the gas price. Normally, Gas and ETH are just units that are used to incentivize miners on the network to include their transactions in blocks. With the implementation of EIP1559, a minimum Gas price, called the “base fee,” will be automatically determined by the network to help improve the efficiency and predictability of the Ethereum fee market. Instead of specifying a Gas price, users only need to specify the maximum willingness to pay for the transaction. Once specified, the network will deduct the base fee from the user's maximum willingness to pay and return the difference to the user's account balance. The current code specification of EIP1559 only returns the user's maximum willingness to pay Gas price before the transaction is included in the block. After being included in the block, the value of the Gas price field becomes the base fee. For DApp developers trying to debug the code, the changing value based on time and blockchain state is a new challenge. “Any time you’re debugging an issue and the behavior changes based on what you’re observing, that’s going to be a very, very hard bug to debug,” independent software developer Micah Zoltu said on the issue during a July 23 core developer meeting. “I suspect most developers, etc. probably don’t pay close attention to these things and they don’t realize that the gas price field and the behavior has changed.” Zoltu suggested abandoning the Gas Price field during the next incompatible upgrade (Shanghai) as a possible solution. However, others believe that deprecating the field during the upcoming Shanghai upgrade (tentatively scheduled for October) will break the functionality of several wallets and blockchain tool services. “I definitely wish we hadn’t solved this so early,” Richard Moore, creator of the ethereum codebase ether.js, said at Friday’s EIP1559 coordination meeting. “I looked the other day and I think 50% of users are still using an old version of ether.js.” Instead, Moore suggested a versioning system that would preserve the legacy fields from EIP1559, so that eventually, if a user tried to get information about a transaction’s GasPrice value, they would receive an error message that the command specifying this field is no longer supported by the current version of the software. Another possible alternative to Ethereum’s version control system would be to fix the return value of the gas price field to a static number, such as negative 1 or zero, which would prevent developers from using the field for any meaningful debugging. While developers work on how to deal with the issue, some Ethereum tool services, such as cryptocurrency wallet Argent and cryptocurrency exchange Coinbase, are delaying changes to their user interfaces to support EIP1559. Internally, all Ethereum-related services connected to the network will need to upgrade their software in a timely manner to activate EIP 1559. However, updating applications or user-facing elements of the platform to support many of the features enabled by EIP 1559, such as maximum willingness to pay instead of gas price, can be done later. “It wouldn’t be unreasonable to wait and see how EIP 1559 plays out before deciding how to present content and making changes in the UI,” said Trenton Van Epps of the Ethereum Foundation. |