-
Notifications
You must be signed in to change notification settings - Fork 5.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update EIP-7840: Add BaseFeeUpdateFraction #9240
base: master
Are you sure you want to change the base?
Conversation
File
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm from ethjs
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM from Besu
(From the current EIP). This "talks" about "both", maybe for clarification mention that then the fraction is undefined (cannot divide by 0). I also think for completeness it would be great if in the Rationale there is an addition that this new param also allows to tweak the gas adjustments. |
LGTM |
@jochem-brouwer Thanks! Regarding defaults without configuration, I think the correct behavior for clients should be to throw an exception. In this way, we will notice quickly misconfigured tests/tooling etc. So, if 4844 is enabled and there's no blob configuration, let's throw an exception. I believe the EIP shouldn't force clients to handle defaults in a specific way, and we have soft consensus on either throwing an exception or using zeroes/undefined values. Another option could be falling back to the Cancun blob parameters. |
the way I see it is this: that these are overrides, so if cancun isn't specified than cancun 4844 default eip , if overridden in a lower hardfork, that carries to a higher hardfork unless an eip there in changes these same params or the schedule is specified for that hardfork which overrides both the lower hardfork values and any hardfork eip params of that hardfork. |
(Everything striked through here is outdated, see my new comment)
"blobSchedule": {
"cancun": {
"target": 3,
"max": 6,
"baseFeeUpdateFraction": 3338477
},
"prague": {
"target": 6,
"max": 9,
"baseFeeUpdateFraction": 5007716
}
} (i.e. this is as-defined currently in this EIP). A small note: we now define Configuration behavior
|
Yes, I agree. Clients should explicitly provide a blob schedule. If Cancun / 4844 is active but there is no field in the config, then throw. If Prague / 7691 is active but there is no field in the config, then also throw. For me this would also hold for future forks to explicitly define the schedule in the config. I would not fall back on Cancun blob parameters by if the config is not there, it might simply be forgotten but with an active new fork (Prague) it is not clear what schedule should be used (so throw). |
This is an informational EIP and thus I don't think we should specify default/error behaviour here. If we do, then clients are not required to follow it so it doesn't achieve the goal of aligning behaviour. I think the preferred approach is to leave it up the clients. If a particular client sees UX value in throwing then that's fine, but what is the value in cross-client alignment on this? Current Besu behaviour is to not throw, but instead default to the appropriate fork's hardcoded values (as specified in EIP-4844 and EIP-7691). Using the blobSchedule then becomes a way to override mainnet values with something non-standard, mainly for testing purposes. |
The commit e3a893d (as a parent of 355e7db) contains errors. |
Markdown fix
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Two comments to clarify the text
EIPS/eip-7840.md
Outdated
When there is no explicit configuration for the current fork, use the last | ||
specified fork value. If no last value is specified, set both to zero. | ||
Clients **MUST** explicitly configure blob parameters in the configuration for Ethereum mainnet. | ||
If there is no explicit configuration for the current fork, the client should use the last specified fork value. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would add here that the "explicit configuration" means: being explicit means that for every fork where we do change the configuration, we must configure it—including Cancun.
EIPS/eip-7840.md
Outdated
} | ||
} | ||
``` | ||
|
||
When there is no explicit configuration for the current fork, use the last | ||
specified fork value. If no last value is specified, set both to zero. | ||
Clients **MUST** explicitly configure blob parameters in the configuration for Ethereum mainnet. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Using "explicitly configure" and "explicit configuration" might lead to confusion, I think we are talking about slightly different things here. The point here is that the blobSchedule
should be present in config (?) and it should be valid (at minimal the cancun
entry should be there in the blobSchedule
)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 👍 😄
ATTENTION: ERC-RELATED PULL REQUESTS NOW OCCUR IN ETHEREUM/ERCS
--
When opening a pull request to submit a new EIP, please use the suggested template: /~https://github.com/ethereum/EIPs/blob/master/eip-template.md
We have a GitHub bot that automatically merges some PRs. It will merge yours immediately if certain criteria are met: