4070 Commits

Author SHA1 Message Date
Etan Kissling
4034ad43a0
Merge branch 'dev/etan/df-safeiter' into feat/splitview 2024-04-03 11:31:07 +02:00
Etan Kissling
381375be4d
avoid modifying blobless collection during iteration in edge case
The fallback when blobless quarantine contains a block with all blobs
modifies collection while iterating, potentially asserting if reachable.
Using a second loop to process this situation resolves that.
2024-04-03 11:29:17 +02:00
Etan Kissling
5eeadad05f
Merge branch 'dev/etan/ex-fincp' into feat/splitview 2024-04-02 18:22:33 +02:00
Etan Kissling
6726baf911
allow frontfilling finalized CP block from era file
Add support for using era file for the initial checkpoint block.
This should also avoid an error when the beacon node is restarted
before the backfill process has made any progress (#6059).
2024-04-02 18:21:37 +02:00
Etan Kissling
2ffe49fa10
Merge branch 'dev/etan/ex-emptyera' into feat/splitview 2024-04-02 17:51:31 +02:00
Etan Kissling
f8f704501b
Merge branch 'unstable' into feat/splitview 2024-04-02 17:51:08 +02:00
Etan Kissling
6cfcd873fd
avoid rejecting empty era file in verification
`batchVerify`'s precondition is a non-empty signature list:

```nim
  if input.len == 0:
    # Spec precondition
    return false
```

This means that in eras without any blocks (as has happened on Goerli),
calling it leads to era files being reported as invalid.
2024-04-02 17:49:46 +02:00
tersec
109007dc93
avoid quadratic behavior exiting validators (#6161)
* avoid quadratic behavior exiting validators

* fix libnfuzz callers
2024-04-02 12:18:40 +00:00
Etan Kissling
3c7ac28359
Merge branch 'dev/etan/af-cacheinit' into feat/splitview 2024-04-01 01:00:52 +02:00
Etan Kissling
d5efbdae1d
Merge branch 'unstable' into feat/splitview 2024-04-01 01:00:21 +02:00
Etan Kissling
171d889878
fix initialization of sync committee cache after loading non-epoch state
When initializing from a state that's not aligned to an epoch boundary,
an earlier state is loaded that's epoch aligned, and subsequently topped
up with the missing blocks. `dag.headSyncCommittee` is initialized prior
to topping up the missing blocks, though. If the sync committee changes
while applying the blocks (e.g., a sync committee period boundary hits),
the cached information becomes unlinked from `dag.head`, leading to
valid blocks based on that chain being rejected. To fix this, move cache
initialization after the top up with blocks. This has been observed on
Goerli by initializing from 7919502 and attempting to top up 7920111.
The block gets rejected with an invalid state root on nodes that have
restarted after setting 7920111 as head, while it gets accepted by all
other nodes. Error message is `block: state root verification failed`.
The incorrect initialization behaviour was introduced in #4592, before
which the sync committee cache was initialized after applying blocks.
2024-04-01 00:59:28 +02:00
tersec
4457334dd0
Add support for Pectra ExecutionPayload representations (#6158) 2024-03-29 13:37:27 +01:00
tersec
3ceb26ba23
Merge remote-tracking branch 'origin/stable' into unstable 2024-03-28 06:19:26 +00:00
tersec
b21bc1d478
Version v24.3.0 2024-03-28 05:23:23 +00:00
tersec
17279f261b
detect invalid REST blocks (#6152) 2024-03-28 03:34:06 +00:00
tersec
df9112d663
detect invalid REST blocks (#6152) 2024-03-28 03:32:33 +00:00
Etan Kissling
2f91bc3be7
peers can no longer be nil (#6151) 2024-03-28 01:42:20 +01:00
Etan Kissling
e4c4d11480
Merge branch 'dev/etan/nw-nilpeer' into feat/splitview 2024-03-28 01:40:00 +01:00
Etan Kissling
95aed2b220
filter out nil values when iterating peers
Iterating peers should only yield peers present in registry, otherwise
`nil` pointers are returned and depending on comparison function it will
break, see #6149.
2024-03-28 01:38:49 +01:00
Etan Kissling
ee80daba2a
Merge branch 'dev/etan/nw-ranking' into feat/splitview 2024-03-27 23:32:22 +01:00
Etan Kissling
5fb293c595
explain the < usage 2024-03-27 23:31:02 +01:00
Etan Kissling
0f679d9463
Merge branch 'unstable' into feat/splitview 2024-03-27 23:13:58 +01:00
Etan Kissling
40242ac277
rank peers by their score instead of their memory address
The `<` function to compare peers was not exported, leading to the same
peer be acquired over and over again until kick. `mixin` doesn't pull it
into `peerCmp` without `*` export, and with the export no mixin needed.
2024-03-27 23:10:42 +01:00
diegomrsantos
885989f3df
bump libp2p (#6148) 2024-03-27 15:53:02 +00:00
Etan Kissling
55a5ffaf8c
Merge branch 'dev/etan/zf-branchpull' into feat/splitview 2024-03-27 16:40:29 +01:00
Etan Kissling
b37ad4dccb
fix 2024-03-27 16:39:42 +01:00
Etan Kissling
3ab0767b35
Merge branch 'dev/etan/zf-branchpull' into feat/splitview 2024-03-27 16:25:07 +01:00
Etan Kissling
986c548b00
fix 2024-03-27 16:24:26 +01:00
Etan Kissling
b869546524
Merge branch 'dev/etan/zf-branchpull' into feat/splitview 2024-03-27 16:14:38 +01:00
Etan Kissling
ce19875583
Merge branch 'unstable' into feat/splitview 2024-03-27 16:14:13 +01:00
Etan Kissling
3376887ba7
add research notes 2024-03-27 16:00:51 +01:00
Etan Kissling
02a69be4e2
generic branch discovery version that supports mocking peers 2024-03-27 16:00:36 +01:00
Etan Kissling
f8be7c326e
be careful not to disconnect syncing peers in fragmented network 2024-03-27 16:00:21 +01:00
Etan Kissling
9f37ffdc62
suspend light client sync while branch discovery is in progress 2024-03-27 16:00:02 +01:00
diegomrsantos
edad7c8a4c
bump libp2p (#6132) 2024-03-27 11:16:57 +01:00
tersec
7a3edb6961
more initialize_validator_exit optimization (#6146) 2024-03-27 09:18:50 +01:00
tersec
f9e5294802
dump EL-INVALID blocks if requested the same way as CL-INVALID blocks; optimize epoch transition validator exit (#6144) 2024-03-27 04:34:56 +01:00
tersec
605bf99344
remove macOS/aarch64 workaround from proposeBlockAux (#6138) 2024-03-26 23:05:49 +00:00
tersec
21daaad754
support special characters in network metadata paths (#6141) 2024-03-26 22:47:42 +01:00
Etan Kissling
be5ad82f33
Merge branch 'dev/etan/zf-branchpull' into feat/splitview 2024-03-26 11:17:38 +01:00
Etan Kissling
1c04697e1d
tweak rate limiting 2024-03-26 11:17:07 +01:00
Etan Kissling
1744d68af8
Merge branch 'dev/etan/vd-incprop' into feat/splitview 2024-03-26 05:14:15 +01:00
Etan Kissling
2b169efa23
keep proposal state around in clearance to reapply block lagfree 2024-03-26 05:13:35 +01:00
Etan Kissling
bc58c3249f
Merge branch 'dev/etan/zf-branchpull' into feat/splitview 2024-03-26 03:55:52 +01:00
Etan Kissling
7f26fb1670
filter out useless peers earlier 2024-03-26 03:55:22 +01:00
Etan Kissling
ea2cf8e69b
Merge branch 'dev/etan/zf-branchpull' into feat/splitview 2024-03-25 23:44:50 +01:00
Etan Kissling
74606c6e1b
handoff useless peers from sync manager directly into branch discovery 2024-03-25 23:44:05 +01:00
Etan Kissling
58383d1ca0
Merge branch 'dev/etan/vd-incprop' into feat/splitview 2024-03-25 22:29:03 +01:00
Etan Kissling
97ec45e939
after a deep reorg, both newPayload and forkchoiceUpdated are needed 2024-03-25 22:25:46 +01:00
Etan Kissling
db5b8b0bc2
enable --debug-split-views-merge on this research branch 2024-03-25 22:05:24 +01:00