EIPs
EIPs copied to clipboard
Update EIP-4844: Fee Market Update
Update to the EIP-4844 fee market design. List of changes:
- [x] introduce data gas
- [x] add
max_fee_per_data_gas
tx field - [x] change fake exponential function to taylor expansion
- [x] add min data gasprice of 10,000 Gwei
- [x] remove max blobs per tx restriction
- [x] align tx field naming with EIP-1559
Potential remaining todos:
- [ ] ~~make excess blobs calculation slot-based instead of block-based~~ will be a separate PR
- [ ] mention option for mempool to enforce a max blobs per tx restriction
- [ ] ~~change data gas name to something more unique (oil? mana?)~~ data gas it is
- [x] change
DATA_GAS_PER_BLOB
to make it easier to add calldata pricing later - [ ] move data gas from static to dynamic tracking
- [ ] update EIP structure and rationale to better explain data gas
- [ ] specify that data gas fees are burned
A critical exception has occurred: Message: pr 5707 is already merged; quitting (cc @alita-moore, @mryalamanchi)
I would ideally want to add slot-based excess blob accounting to this PR, but that would mean that calc_excess_blobs
would have to include some argument like slots_since_parent
, which would introduce the notion of slots to the EL. Alternatively I could use time_since_parent
or target_timestamp
and calculate the number of slots internally, but then the EL would have to know to use fixed slot-based timestamp for those.
oh, and I think "data gas" is sufficient and self explanatory as a name. Coming up with something clever will lead to endless bikeshedding
FYI I'm starting to implement this to be part of our next EIP-4844 devnet, hopefully going out by end of week. I'll work around the open discussions best I can, though if some can be closed out in the short term please do so!
@roberto-bayardo I made some more data gas related changes:
- updated
DATA_GASPRICE_UPDATE_FRACTION
- updated
DATA_GAS_PER_BLOB
andMIN_DATA_GASPRICE
- changed
excess_blobs
header field toexcess_data_gas
and adjusted update rules - changed
TARGET_BLOBS_PER_BLOCK
toTARGET_DATA_GAS_PER_BLOCK
- changed
MAX_BLOBS_PER_BLOCK
toMAX_DATA_GAS_PER_BLOCK
With the exception of the header field, these should be relatively minor changes. Let me know whether you think it is realistic to include these into the next devnet release.
The only remaining planned update to this PR is optional from an implementation pov, it will move blob gas from static tracking (calculate blob gas usage before tx execution) to dynamic (track blob gas during tx execution). Those behaviors are fully equivalent for 4844 though, so any static tracking implementation should remain spec-compliant.
We'll work on getting those in @adietrichs I think we can manage.
@adietrichs don't see it in the spec, but I assume fees due to data gas are burned rather than go to validator?
@adietrichs don't see it in the spec, but I assume fees due to data gas are burned rather than go to validator?
Ah, yes they are supposed to be burned. That's a good point though, that should of course be explicitly specified.
@Pandapip1 friendly ping :-) If we could get this merged before tomorrow it would be great, as we have a 4844 implementers' call where we want to discuss the spec https://github.com/ethereum/pm/issues/647
Micah's comments should be addressed.
Can I join with faith
@Jiggnubs what do you mean by "join with faith?"
Set MIN_DATA_GASPRICE
back to 1
as discussed on https://github.com/ethereum/pm/issues/647 (discussion about final value will be a separate PR).
The PR is ready for merge from my side.
I also removed most of the old mempool issues section as proposed by @Inphi and replaced it with a short updated version.
Amazing work @adietrichs - thank you!