-
-
Notifications
You must be signed in to change notification settings - Fork 386
feat: implement focil EIP-7805 #7342
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
base: unstable
Are you sure you want to change the base?
Conversation
Performance Report🚀🚀 Significant benchmark improvement detected
Full benchmark results
|
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.
reviewed to keep track and backup if required 👍
This reverts commit 7192180.
This reverts commit dffb1ac.
const secToNextSlot = this.config.SECONDS_PER_SLOT - this.chain.clock.secFromSlot(clockSlot); | ||
const secToCutOff = this.config.PROPOSER_INCLUSION_LIST_CUT_OFF - this.chain.clock.secFromSlot(clockSlot); | ||
const sleepTime = Math.min(secToNextSlot, secToCutOff) * 1000; | ||
await sleep(sleepTime, this.signal); |
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.
why can't we just do what I did previously? We either wait until we reach the cutoff or otherwise we just don't sleep at all if for some reason we are past the cut off already (which shouldn't happen)
const secToNextSlot = this.config.SECONDS_PER_SLOT - this.chain.clock.secFromSlot(clockSlot); | |
const secToCutOff = this.config.PROPOSER_INCLUSION_LIST_CUT_OFF - this.chain.clock.secFromSlot(clockSlot); | |
const sleepTime = Math.min(secToNextSlot, secToCutOff) * 1000; | |
await sleep(sleepTime, this.signal); | |
await sleep( | |
Math.max(0, (this.config.PROPOSER_INCLUSION_LIST_CUT_OFF - this.chain.clock.secFromSlot(clockSlot)) * 1000), | |
this.signal | |
); |
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.
why can't we just do what I did previously? We either wait until we reach the cutoff or otherwise we just don't sleep at all if for some reason we are past the cut off already (which shouldn't happen)
Because the kurtosis config we use when interopping/testing use mainnet preset with seconds_per_slot = 6
.
So prepareNextSlot
usually happens at 4s, and this.config.PROPOSER_INCLUSION_LIST_CUT_OFF - this.chain.clock.secFromSlot(clockSlot)
usually yield 11 - 2 = 9
seconds of wait time. This would delay this EL call to 2 slots after.
When we are done interopping, we can remove secToNextSlot
and do max(0, secToCutOff)
as you suggest
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.
we should probably change this already on the spec, PROPOSER_INCLUSION_LIST_CUT_OFF
and other timing parameters should not be part of config and always derived from SECONDS_PER_SLOT
similar to proposer boost reorg cutoff
const proposerReorgCutoff = this.config.SECONDS_PER_SLOT / INTERVALS_PER_SLOT / 2; |
**Motivation** FOCIL image failed in Kurtosis after switching to eip-7805 fork (slot 32): ``` [cl-1-lodestar-geth] Error: getBlobParameters is not available pre-fulu epoch=1 ``` The error was triggered by `getBlobParameters()` and `getMaxBlobsPerBlock()` functions. **Description** Added `ForkName.eip7805` into `getMaxBlobsPerBlock()`. Now switching the forks works well in kurtosis. **Steps to test or reproduce** Kurtosis config file: ``` participants: - el_type: geth el_image: jihoonsg/geth-focil:4a583f4 cl_type: lodestar cl_image: sibkatya/lodestar:focil-fork-fix count: 2 network_params: genesis_delay: 20 electra_fork_epoch: 0 eip7805_fork_epoch: 1 seconds_per_slot: 6 num_validator_keys_per_node: 256 snooper_enabled: true additional_services: - dora - tx_fuzz - spamoor - prometheus_grafana port_publisher: additional_services: enabled: true public_port_start: 65500 spamoor_params: spammers: - scenario: eoatx config: throughput: 100 - scenario: uniswap-swaps config: throughput: 100 - scenario: blob-combined config: throughput: 5 ```
Do not merge - PR for reference only
Relevant issue #7340