mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2024-12-22 03:30:35 +00:00
b6ce6c2eba
When a late block arrives and the beacon is proposing the next block, we perform several checks to allow for the next block to reorg the incoming late block. Among those checks, we check that the parent block has been heavily attested (currently 160% of the committee size). We perform this check in these circumstances: - When the late block arrives - At 10 seconds into the slot - At 0 seconds into the next slot (at proposing time) The problem is that for blocks that arrive between 4 seconds and 10 seconds, the parent block will not have yet this expected weight since attestations from the current committee were not imported yet, and thus Prysm will send an FCU with payload attributes anyway at this time. What happens is that Prysm keeps the EL building different blocks based on different parents at the same time, when later in the next slot it calls to propose, it will reorg the late block anyway and the EL would have been computing a second payload uselessly. This PR enables this check only when calling `ShouldOverrideFCU` after 10 seconds into the slot which we do only after having imported the current attestations. We may want to actually remove this check entirely from `ShouldOverrideFCU` and only keep it in `ProposerHead`. Shout out to Anthithesis for reporting an issue that led to this discoverly. |
||
---|---|---|
.. | ||
doubly-linked-tree | ||
types | ||
BUILD.bazel | ||
doc.go | ||
error.go | ||
interfaces.go | ||
ro_test.go | ||
ro.go |