Skip to content

Commit 19070f9

Browse files
authored
Merge branch 'develop' into header-consts
2 parents 608fa30 + 0aa248e commit 19070f9

File tree

258 files changed

+318
-773
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

258 files changed

+318
-773
lines changed

CHANGELOG.md

Lines changed: 301 additions & 0 deletions

beacon-chain/blockchain/error.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ var (
3030
// errWSBlockNotFoundInEpoch is returned when a block is not found in the WS cache or DB within epoch.
3131
errWSBlockNotFoundInEpoch = errors.New("weak subjectivity root not found in db within epoch")
3232
// ErrNotDescendantOfFinalized is returned when a block is not a descendant of the finalized checkpoint
33-
ErrNotDescendantOfFinalized = invalidBlock{error: errors.New("not descendant of finalized checkpoint")}
33+
ErrNotDescendantOfFinalized = errors.New("not descendant of finalized checkpoint")
3434
// ErrNotCheckpoint is returned when a given checkpoint is not a
3535
// checkpoint in any chain known to forkchoice
3636
ErrNotCheckpoint = errors.New("not a checkpoint in forkchoice")

beacon-chain/blockchain/receive_block.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,9 @@ func (s *Service) validateExecutionAndConsensus(
219219
eg.Go(func() error {
220220
var err error
221221
postState, err = s.validateStateTransition(ctx, preState, block)
222+
if errors.Is(err, ErrNotDescendantOfFinalized) {
223+
return invalidBlock{error: err, root: block.Root()}
224+
}
222225
if err != nil {
223226
return errors.Wrap(err, "failed to validate consensus state transition function")
224227
}

beacon-chain/sync/validate_beacon_attestation.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,12 @@ func (s *Service) validateCommitteeIndexBeaconAttestation(
112112
// Verify the block being voted and the processed state is in beaconDB and the block has passed validation if it's in the beaconDB.
113113
blockRoot := bytesutil.ToBytes32(data.BeaconBlockRoot)
114114
if !s.hasBlockAndState(ctx, blockRoot) {
115+
// Block not yet available - save attestation to pending queue for later processing
116+
// when the block arrives. Return ValidationIgnore so gossip doesn't potentially penalize the peer.
115117
s.savePendingAtt(att)
118+
return pubsub.ValidationIgnore, nil
116119
}
120+
// Block exists - verify it's in forkchoice (i.e., it's a descendant of the finalized checkpoint)
117121
if !s.cfg.chain.InForkchoice(blockRoot) {
118122
tracing.AnnotateError(span, blockchain.ErrNotDescendantOfFinalized)
119123
return pubsub.ValidationIgnore, blockchain.ErrNotDescendantOfFinalized

changelog/2025-08-25-docs-links.md

Lines changed: 0 additions & 2 deletions
This file was deleted.

changelog/Alleysira-fix-meta-in-getPeers-resp.md

Lines changed: 0 additions & 3 deletions
This file was deleted.

changelog/DeVikingMark_fix-web3signer-test-error-handling.md

Lines changed: 0 additions & 3 deletions
This file was deleted.

changelog/Galoretka_fix-leakybucket-test-duplicate.md

Lines changed: 0 additions & 2 deletions
This file was deleted.

changelog/James-prysm_parallel-goodbyes.md

Lines changed: 0 additions & 3 deletions
This file was deleted.

changelog/James-prysm_persistent-seq-number.md

Lines changed: 0 additions & 3 deletions
This file was deleted.

0 commit comments

Comments
 (0)