blockchain-certificates / cert-issuer

Issues Blockcerts using either the Bitcoin or Ethereum blockchain
MIT License
414 stars 208 forks source link

Enable EIP-1559 ETH txs and update deprecated web3 methods/packages #239

Closed amazanzan closed 1 year ago

amazanzan commented 2 years ago

Hi there, it's been about a year since the London hardfork (EIP-1559) changed how Ethereum gas fees are handled and it would be good for Blockcerts to use the updated transaction format. Two major reasons not to use the old transaction format anymore: 1) It's deprecated 2) It guarantees overpayment of gas fees. Miners will always receive the entire proposed gas fee, whereas with EIP-1559 txs, they will only receive the base fee plus the priority fee. For what it's worth, my gas fees have been about 75% less with this update.

Here's a good primer on EIP-1559 if more background info is desired.

To enable EIP-1559-compliant transactions, I had to update some of the old web3-related libraries that were being used. Fortunately I was able to maintain backwards-compatibility (you can still use the old gas fee args) while also updating web3.py and eliminating a number of redundant libraries. I've also added the option to pass an Ethereum nonce in, which is useful if you run your own transaction management system.

I think this update will greatly improve the usability of Ethereum Blockcerts and wanted to share it with the community. If you have any questions, please don't hesitate to ask.

lemoustachiste commented 2 years ago

I was able to issue a certificate in a "legacy" sort of way.

lemoustachiste commented 1 year ago

@amazanzan sorry I just realized this was never merged. Are we still good to merge?

amazanzan commented 1 year ago

Hey @lemoustachiste I was hoping you'd say that—please go right ahead!