Conversation
4fb8c1f to
c948fd5
Compare
c948fd5 to
17eb854
Compare
|
@hangleang please rebase this on develop |
17eb854 to
b0cf339
Compare
done! |
28a1746 to
f80a754
Compare
|
Could you open a PR to |
created a PR grandinetech/eth2_libp2p#23, also include 2 Povilas commits which didn't merge on |
That's for payload attestations — we'll need those too, but they're out of scope for this PR. What we need here is a PR to eth2_libp2p that adds support for payload envelopes specifically. |
here it is: grandinetech/eth2_libp2p#24 |
| // unless they choose to self-build, as favor or no active builders | ||
| let mut payload_with_data = None; | ||
| if self.beacon_state.post_gloas().is_none_or(|state| { | ||
| self.options.enable_local_payload_building |
There was a problem hiding this comment.
Note: It looks like that using --enable-local-payload-building flag not only enables but forces self-build. If this is the feature that we want, it should probably named --force-local-payload-building or --force-self-build
There was a problem hiding this comment.
We can figure out the naming later
- Locally build payload envelope by proposer - Request `engine_getBlobsV2` once envelope receive if data is not available - Reconstruct data column sidecars with payload envelope - Request payload envelopes from peers while syncing
c4f9fce to
bc95350
Compare
b195693 to
332014f
Compare
p2p/src/sync_manager.rs
Outdated
| // Note: Unlike blobs/columns which use serve_range checks, envelopes are needed | ||
| // for all Gloas slots (similar to blocks) for state transition | ||
| //TODO: confirm this from hangleang | ||
| if sync_mode.is_default() && config.phase_at_slot::<P>(start_slot) >= Phase::Gloas { |
There was a problem hiding this comment.
It should adjust start_slot based on Gloas start slot and not skip the whole batch. Example: if start_slot is gloas_start_slot - 1, it should back sync ExecutionPayloadEnvelopes from gloas_start_slot. Otherwise, it skips the whole batch potentially not back syncing payload envelopes from some of the first slots in Gloas.
Similar start_slot adjustment is performed in lines 381–387 for blobs.
p2p/src/sync_manager.rs
Outdated
| // Request execution payload envelopes for Gloas-activated slots | ||
| // Note: Similar to blocks, envelopes are needed for all Gloas slots (not just serve range) | ||
| // This must be checked before serve range checks to ensure envelopes are always requested | ||
| if config.phase_at_slot::<P>(start_slot) >= Phase::Gloas { |
There was a problem hiding this comment.
similar issue here: batch should not be skipped if start_slot < Phase::Gloas, it should only be skipped if start_slot + count < Phase::Gloas, otherwise start_slot and count should be adjusted
This PR include changes as follows:
engine_getBlobsV2once envelope receive if data is notavailable
Reconstruct data column sidecars with payload envelopeplease note that these changes is inalpha.1version, will update according toalpha.2in this separate PR #589