Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
364 commits
Select commit Hold shift + click to select a range
498123d
fix: remove only connect flags (#8046)
twoeths Jul 9, 2025
223a48c
feat: ensure enough peers on all subnets (#8057)
twoeths Jul 15, 2025
eb543b6
feat: remove advertised custody (#8059)
matthewkeil Jul 16, 2025
67ca1e1
feat: broken status get peers (#8063)
matthewkeil Jul 16, 2025
adb6845
fix: increase MAX_BATCH_PROCESSING_ATTEMPTS (#8037)
twoeths Jul 17, 2025
5a2cffc
Merge branch 'unstable' into nflaig/merge-unstable-jul17
nflaig Jul 17, 2025
94b884a
feat: add PeerDAS Grafana dashboard (#7992)
KatyaRyazantseva Jul 17, 2025
e03bda5
Merge branch 'unstable' into peerDAS
nflaig Jul 23, 2025
19574f8
fix: don't send validator registrations pre-genesis (#8088)
nflaig Jul 28, 2025
dea6b94
feat: enable proposer boost reorg by default (#8080)
nflaig Jul 29, 2025
ea97e56
chore: update @chainsafe/bls dependency (#8083)
wemeetagain Jul 30, 2025
2d63696
feat: add getBlobs endpoint (#8087)
nflaig Jul 31, 2025
f124be0
fix: dont reduce cgc (#8096)
matthewkeil Jul 31, 2025
d73c2d1
feat: add cool down period for reconnection of peers (#8067)
matthewkeil Jul 31, 2025
7afce97
chore: bump package versions to 1.33.0
philknows Jul 31, 2025
5bc821a
fix: remove node custody requirement (#8099)
nflaig Aug 4, 2025
3626b6a
fix: use state slot instead of clock slot before gathering electra me…
nflaig Aug 4, 2025
570d06a
fix: log peer status error (#8106)
matthewkeil Aug 4, 2025
3859afe
feat: introduce finalProcessEpoch() (#8086)
twoeths Aug 5, 2025
5b15233
Merge branch 'unstable' into peerDAS
wemeetagain Aug 5, 2025
5f2cf3c
chore: v1.33.0 release (#8100)
philknows Aug 6, 2025
6fe1606
chore: merge v1.33.0 stable back to unstable (#8118)
philknows Aug 6, 2025
b6ddc39
fix: select status response container based on version (#8119)
nflaig Aug 6, 2025
00a7126
refactor: earliestSlotAvailable -> earliestAvailableSlot (#8120)
matthewkeil Aug 6, 2025
99ccd7b
fix: impl of BlockInputDataColumns type (#8122)
matthewkeil Aug 6, 2025
ba1397d
fix: update publish block/column order (#8121)
matthewkeil Aug 6, 2025
df121a1
fix: update PeerDAS log level (#8117)
KatyaRyazantseva Aug 6, 2025
6091ff9
chore: make NetworkConfig a simple object (#8124)
wemeetagain Aug 6, 2025
317e397
fix: remove stray event handler on network close (#8127)
wemeetagain Aug 6, 2025
b27b0ca
fix: restore chain.archiveBlobEpochs cli flag (#8129)
wemeetagain Aug 6, 2025
8cfc843
chore(deps): bump tmp from 0.2.1 to 0.2.4 (#8123)
dependabot[bot] Aug 6, 2025
4a51ebe
chore: use number for cell indices (#8131)
wemeetagain Aug 6, 2025
16e67f1
refactor: remove stale peerdas lines and simple renamings (#8128)
matthewkeil Aug 7, 2025
af1f74c
fix: handle case if engine or builder is pending with the other disab…
nflaig Aug 7, 2025
a60f61c
fix: update cgc during genesis and use finalized state (#8105)
nflaig Aug 7, 2025
3928be9
docs: update permalink and comment (#8134)
matthewkeil Aug 7, 2025
3e83390
fix: fulu fork guards (#8125)
matthewkeil Aug 7, 2025
a862fa1
chore: refactor custody config initialization (#8126)
wemeetagain Aug 7, 2025
c6f84ee
chore: restore `isForkBlobs` fork guard alias for `isForkPostDeneb` (…
nflaig Aug 7, 2025
27f4ad4
refactor: move proposer check of column sidecar before bls verification
matthewkeil Aug 7, 2025
e121330
chore: clean up fulu types (#8146)
matthewkeil Aug 8, 2025
d4175c7
chore: remove else condition and TODO from importBlock for metrics (#…
matthewkeil Aug 8, 2025
ae65362
test: peerdas fix interop config (#8145)
matthewkeil Aug 8, 2025
6b245e2
refactor: clean up ReqRespBeaconNode fulu changes (#8144)
matthewkeil Aug 8, 2025
68b6feb
fix: track rate limited errors (#8116)
twoeths Aug 8, 2025
b3f0b9d
refactor: update enr comment for cgc (#8141)
matthewkeil Aug 8, 2025
d5a4e7a
feat: run `lodestar` root binary from any directory (#8154)
nazarhussain Aug 8, 2025
70a9214
fix: log pre fulu archive (#8137)
matthewkeil Aug 8, 2025
d487465
fix: remove git from Dockerfile (#8160)
matthewkeil Aug 8, 2025
0ebfec4
chore: clean up block input types and comments (#8161)
matthewkeil Aug 8, 2025
960dee0
fix: use minimum custody in log (#8142)
matthewkeil Aug 9, 2025
60e0379
fix: peer id check in `initPrivateKeyAndEnr` (#8165)
ensi321 Aug 9, 2025
da24903
docs: add note to `--persistNetworkIdentity` for resetting ENR and cg…
matthewkeil Aug 10, 2025
f2a1ea0
chore: fulu nits (#8164)
matthewkeil Aug 10, 2025
7ef1b87
refactor: fulu hex helpers (#8163)
matthewkeil Aug 10, 2025
bf3740f
fix: skip custody groups computation if all groups are custodied (#8172)
nflaig Aug 11, 2025
22f8a09
refactor: clean up fulu fork guards (#8162)
matthewkeil Aug 11, 2025
98bc5e0
fix: revert blob metric changes (#8175)
matthewkeil Aug 11, 2025
a1c6aa6
feat: reduce peer score if they send mismatch DataColumnSidecars (#8167)
twoeths Aug 11, 2025
6aab6cb
feat: bump spec test to `v1.6.0-alpha.4`. Add data columns to fork-ch…
ensi321 Aug 11, 2025
4edf4c6
fix: fulu logs peer manager (#8158)
matthewkeil Aug 11, 2025
38889e2
feat: avoid rate limit syncing (#8166)
twoeths Aug 11, 2025
6a45c48
fix: only start sending StatusV2 requests after fulu (#8169)
nflaig Aug 11, 2025
1d608c5
fix: handle bad response of 0 block from peer (#8150)
twoeths Aug 11, 2025
9013053
feat: clean up fulu peer connected event (#8157)
matthewkeil Aug 11, 2025
ee2a431
test: unit tests and e2e tests of peerDAS branch (#8173)
twoeths Aug 11, 2025
aac4d9d
Merge branch 'peerDAS' into unstable
wemeetagain Aug 11, 2025
d5be46d
test: disable DEBUG logs by default when running sim tests (#8186)
nflaig Aug 12, 2025
b85c316
fix: misleading comment in MAX_BATCH_PROCESSING_ATTEMPTS (#8180)
twoeths Aug 12, 2025
25bf0b6
fix: split getBlobs into V1 and V2 implementations (#8140)
matthewkeil Aug 12, 2025
1244f93
chore: post-merge peerDAS branch review (#8187)
nflaig Aug 12, 2025
ee99d3f
chore: update the logs during identify (#8188)
nazarhussain Aug 12, 2025
7e739c1
fix: only subscribe to sampled subnets (#8181)
twoeths Aug 13, 2025
1091706
fix: return correct multiaddrs in getNetworkIdentity endpoint (#8189)
wemeetagain Aug 13, 2025
b42f83b
fix: support dual stack on same port (#8190)
wemeetagain Aug 13, 2025
7ec9170
feat: self rate limiter (#8185)
twoeths Aug 13, 2025
745ad69
feat: log when publishing to 0 data column peers (#8195)
wemeetagain Aug 13, 2025
27285cd
fix: make the runner script posix compliant (#8197)
nazarhussain Aug 13, 2025
0c7dfe2
fix: unbreak sim and e2e tests (#8199)
wemeetagain Aug 14, 2025
552110f
fix: do not pick out-of-date peer to retry head sync (#8201)
twoeths Aug 14, 2025
7d02789
feat: stricter builder circuit breaker (#8205)
nflaig Aug 14, 2025
eb034b5
fix: head sync failed due to retrying with a more up-to-date peer (#8…
twoeths Aug 14, 2025
ece3887
refactor: block proposal cleanup (#8155)
wemeetagain Aug 15, 2025
be4dc6b
fix: correct pending block status in unknownBlockParent event handler…
twoeths Aug 15, 2025
b17b511
chore: remove redundant unknownBlockParent event emit (#8213)
twoeths Aug 15, 2025
c018377
fix: correctly parse validator indices when querying state balances (…
bomanaps Aug 18, 2025
61783cf
fix: typo in serializeBlobsBundle() (#8218)
twoeths Aug 18, 2025
1968319
fix: move fulu constants to preset/config to be spec compliant (#8217)
nflaig Aug 18, 2025
8d743ff
feat: add gloas fork definition (#8222)
ensi321 Aug 19, 2025
e082a51
feat: add warning log if slots are skipped by validator client (#8224)
nflaig Aug 19, 2025
9a2216d
feat: implement PeerBalancer for UnknownBlockSync (#8219)
twoeths Aug 19, 2025
83d27bb
feat: improve the db storage for data column sidecar (#8206)
nazarhussain Aug 19, 2025
d4bbdc5
test: error from sim test is swallowed in `tableReporter` (#8223)
ensi321 Aug 19, 2025
91df665
fix: use correct self fate limited request error code (#8228)
wemeetagain Aug 20, 2025
9b7da42
fix: handle NullBlockInput full data columns in UnknownBlockPeerBalan…
twoeths Aug 20, 2025
f0e804e
fix: return subcommittee assignments from state sync committees endpo…
nflaig Aug 20, 2025
4b9dc6c
fix: use async variant of verifyCellKzgProofBatch (#8234)
nflaig Aug 20, 2025
c1c4594
chore: move peer id file error due to file not found to debug (#8230)
nflaig Aug 21, 2025
972d33c
feat: add Fulu zebra banner (#8235)
ClockworkYuzu Aug 21, 2025
55f161e
fix: use CheckpointBalancesCache to help update cgc (#8243)
wemeetagain Aug 22, 2025
5cbb0ad
fix: apply correct count limit in blob sidecars by range (#8248)
nflaig Aug 22, 2025
4641b56
fix: choose more profitable block only based on execution payload val…
nflaig Aug 22, 2025
9ed8317
chore: remove skipped fulu constants in config test (#8252)
nflaig Aug 22, 2025
2695c34
fix: select correct ssz type when persisting invalid attestations (#8…
nflaig Aug 25, 2025
58a8297
chore: track DataColumnSidecar errors on Grafana (#8259)
twoeths Aug 25, 2025
cc8c1ac
feat: print out blob parameters if BPO fork is activated (#8253)
nflaig Aug 25, 2025
b995059
refactor: remove cpu features direct dependency (#8261)
nazarhussain Aug 25, 2025
d9fc7bb
fix: move `MAX_REQUEST_BLOCKS` constants to config (#8262)
nflaig Aug 26, 2025
5a20065
feat: unknown block sync e2e post electra only (#8245)
twoeths Aug 26, 2025
923176c
chore(deps): bump cipher-base from 1.0.4 to 1.0.6 (#8241)
dependabot[bot] Aug 26, 2025
098ff42
chore: remove per committee attestation routine (#8266)
nflaig Aug 26, 2025
44611dc
feat: increase target peers by default to 200 (#8272)
philknows Aug 26, 2025
14a6f73
feat: track kzg proofs verification time (#8267)
twoeths Aug 27, 2025
afdf325
feat: fromHexInto() api (#8275)
twoeths Aug 27, 2025
dc288bc
feat: score attestations for block by profitability (#8016)
nflaig Aug 27, 2025
3f907a3
fix: do not create data column sidecars if block has no blobs (#8277)
nflaig Aug 27, 2025
137e6ee
fix: track execution engine getBlobs requests (#8274)
twoeths Aug 28, 2025
2ac5250
chore: track req/resp outgoing request error reason (#8283)
twoeths Aug 28, 2025
c9507c7
chore: fix broken types for `datastore-level` (#8287)
nazarhussain Aug 28, 2025
eb311a5
chore: remove error stacktrace from peer disconnected during identify…
nflaig Aug 28, 2025
d368818
refactor: rename variables / functions related to committee vs. valid…
nflaig Aug 29, 2025
74da098
feat: add panels to track consensus block value (#8286)
nflaig Aug 29, 2025
26ea9fa
refactor: optimize event listener count checks (#8293)
nflaig Aug 29, 2025
bfd8ee3
fix: self rate limiter to handle dead requests (#8295)
twoeths Aug 29, 2025
ac704f2
fix: defer common block body production until next event loop (#8285)
nflaig Sep 1, 2025
6398efa
refactor: move fork-choice metrics to fork-choice package (#8265)
KatyaRyazantseva Sep 1, 2025
9348949
feat: add type support for Bun (#8288)
nazarhussain Sep 1, 2025
453c87f
fix: add disconnectThreshold for e2e tests (#8301)
twoeths Sep 1, 2025
7b42620
fix: the data column sidecars behavior for unavailable sidecars (#8251)
nazarhussain Sep 2, 2025
684db9f
feat: serve data columns by root for finalized epochs (#8250)
nflaig Sep 2, 2025
7332b1a
chore: add script to launch up local kurtosis testnet (#8070)
kevaundray Sep 2, 2025
c9145b8
feat: update blobs endpoint to use versioned_hashes instead of indice…
nflaig Sep 2, 2025
22a04f4
chore: upgrade @biomejs/biome to newer type aware version (#7982)
nazarhussain Sep 2, 2025
4703d1c
feat: track libp2p streams (#8304)
twoeths Sep 2, 2025
ac245ef
chore: update `payload_attributes` event test data (#8308)
nflaig Sep 2, 2025
11ca515
test: upgrade sim tests to use post-electra images (#8303)
nazarhussain Sep 2, 2025
7f2271a
chore: update minimal_config to latest spec (#8232)
barnabasbusa Sep 2, 2025
7af2156
fix: deserialization of db repository keys (#8310)
nazarhussain Sep 3, 2025
07d2010
fix: invalid bucket id for finalized dataColumnSidecar (#8312)
nazarhussain Sep 3, 2025
e53169f
refactor: rename related to sync committee indices (#8313)
ensi321 Sep 4, 2025
9623b3e
fix: do not attempt to reconstruct builder blocks (#8317)
nflaig Sep 4, 2025
9c2e6e0
fix: do not throw error when archive 0-blob block (#8319)
twoeths Sep 4, 2025
3795e32
fix: add slot and epoch validation to epoch committees endpoint (#7941)
bomanaps Sep 4, 2025
0aff2f6
fix: use prettyPrintIndices for logging (#8298)
maishivamhoo123 Sep 4, 2025
97ad684
fix: log missing columns (#8315)
matthewkeil Sep 4, 2025
083b7cc
chore: fix lint (#8323)
matthewkeil Sep 4, 2025
1a17514
chore: bump package versions to 1.34.0
philknows Sep 5, 2025
8a8da6a
fix: add bucketId to abstract_prefixed_repo (#8346)
twoeths Sep 6, 2025
bb10d2b
fix: correct leveldb metrics (#8355)
nflaig Sep 8, 2025
bb15e8e
fix: add bucketId to all db operations (#8347)
nflaig Sep 8, 2025
2f71bae
test: finalized sync e2e post electra only (#8340)
nazarhussain Sep 9, 2025
09ef70b
fix: deduplicate slots to delete archived DatacolumnSidecars (#8357)
twoeths Sep 9, 2025
1817ab1
fix: min key for the archive data columns (#8345)
nazarhussain Sep 9, 2025
3268141
fix: update logs if block not found while handling unavailable data c…
nflaig Sep 9, 2025
4a37a4b
fix: properly handle fetching data columns from api if block has no b…
nflaig Sep 9, 2025
1ec12b4
chore: revise epoch transition metric bucket (#8361)
twoeths Sep 10, 2025
b8da556
chore: v1.34.0 release (#8344)
philknows Sep 10, 2025
f80d2d5
chore: merge v1.34.0 back to unstable (#8364)
philknows Sep 10, 2025
6dd6cec
fix: bump discv5 to 11.0.4 (#8365)
philknows Sep 10, 2025
8649096
chore: bump package versions to 1.34.1
philknows Sep 10, 2025
c4ab7f0
fix: bump discv5 to 11.0.4 (#8365)
philknows Sep 10, 2025
9a5065a
chore: release 1.34.1 patch (#8366)
philknows Sep 10, 2025
c85be4e
chore: merge v1.34.1 stable back to unstable (#8367)
philknows Sep 10, 2025
8644a83
deps: update the `elliptic` to fix a vulnerability (#8374)
nazarhussain Sep 11, 2025
658ac34
docs: clarify ipv6 details in networking page (#8368)
philknows Sep 11, 2025
6953c24
fix: don't log proposer boost reorg logs during sync (#8363)
nflaig Sep 11, 2025
8cacf06
fix: restore data column sidecars prune log (#8388)
nflaig Sep 12, 2025
e9dd48f
chore: move single attestation errors to `verbose` log level (#8393)
nflaig Sep 12, 2025
7931b71
fix: stop verifying `SECONDS_PER_ETH1_BLOCK` on validator startup (#8…
nflaig Sep 15, 2025
c88a6ed
deps: upgrade typescript to 5.9 (#8412)
nazarhussain Sep 16, 2025
811265f
fix: use proper check in computeColumnsForCustodyGroup (#8414)
wemeetagain Sep 17, 2025
56313c7
chore: remove `getMaxRequestBlobSidecars` helper from config object (…
nflaig Sep 17, 2025
a70bac5
feat: refactor block input (#8200)
matthewkeil Sep 18, 2025
955e9f8
feat: use dual-stack by default (#8407)
nflaig Sep 18, 2025
0c6f507
chore: use latest TS module resolution (#8419)
nazarhussain Sep 18, 2025
8ea34e5
chore: update gloas boilerplate code (#8427)
nflaig Sep 18, 2025
c253bcc
chore: bump @chainsafe/libp2p-gossipsub to v14.1.2 (#8425)
wemeetagain Sep 18, 2025
b7125d4
feat: publish blobs we retrieve from execution engine to gossip (#8324)
nflaig Sep 18, 2025
6e3c7ca
refactor: make commonBlockBodyPromise a required parameter (#8273)
nflaig Sep 18, 2025
5e2a800
chore: remove parent beacon block root from execution payload rpc typ…
nflaig Sep 18, 2025
365e071
chore: track BlockInputSync metrics (#8431)
twoeths Sep 19, 2025
200e244
fix: emit unknownParent event (#8429)
twoeths Sep 19, 2025
c201581
chore: add logs and metrics to GetBlobsTracker (#8432)
twoeths Sep 19, 2025
48a8bee
feat: schedule fulu and BPOs on holesky (#8435)
nflaig Sep 19, 2025
5c65fa3
fix: wait for block and all data (#8430)
twoeths Sep 19, 2025
af97dd9
fix: correctly count requested data column sidecars in rate limiter (…
nflaig Sep 19, 2025
36a31f3
fix: add log and metrics to ColumnReconstructionTracker (#8433)
twoeths Sep 19, 2025
7a3b3a9
feat: add pattern for runtime specific package dependencies (#8320)
nazarhussain Sep 19, 2025
83964b4
chore: update few type safety rules for linting (#8391)
nazarhussain Sep 19, 2025
3d8b04e
feat: schedule fulu and BPOs on sepolia and hoodi (#8437)
philknows Sep 19, 2025
feed916
chore: enable organize imports for linting (#8410)
nazarhussain Sep 19, 2025
092cc39
chore: sync PeerDAS dashboard (#8443)
twoeths Sep 22, 2025
c0078a1
fix: pass current time in seconds to `seenTimestampSec` of block inpu…
nflaig Sep 22, 2025
e18102e
feat: add presets and configs for ePBS (#8440)
ensi321 Sep 23, 2025
6494939
chore: add bun exports to packages (#8448)
wemeetagain Sep 23, 2025
cec9bef
chore: various bun tweaks (#8449)
wemeetagain Sep 23, 2025
b42a298
fix: emit data column sidecar event when receive them from execution …
nflaig Sep 23, 2025
4efea58
feat: track number of peers per data column subnet topic (#8442)
twoeths Sep 23, 2025
b8be78f
fix: use correct container and bump seq_number when updating syncnets…
nflaig Sep 23, 2025
8b45b1e
fix: emit blob/data column sidecar events when we receive them by roo…
nflaig Sep 23, 2025
47c570a
chore: remove eip7594 from skipped spec tests and rename mekle.test.t…
matthewkeil Sep 23, 2025
09716b4
chore: use typescript gc-stats import (#8455)
wemeetagain Sep 23, 2025
83de5b8
chore: move PR comments from #7947 that got closed (#8456)
matthewkeil Sep 23, 2025
643a113
fix: sort cell indices before calling `recoverCellsAndKzgProofs` (#8450)
ensi321 Sep 24, 2025
8689cc3
chore: add src to the package to have working source map (#8460)
nazarhussain Sep 25, 2025
98d359d
fix: untrusted slot in network processor (#8466)
twoeths Sep 25, 2025
ba92bd8
feat: add lodestar-bun and bun leveldb binding (#8462)
wemeetagain Sep 25, 2025
21ba277
chore: add git to Dockerfile (#8470)
nflaig Sep 25, 2025
39be8f0
feat: use bps instead of `INTERVALS_PER_SLOT` for deadlines (#8091)
ensi321 Sep 26, 2025
91dadf8
fix: hasAllData in createFromColumn() api (#8473)
twoeths Sep 26, 2025
549f58d
fix: not throw error in removeEagerlyPersistedBlockInputs (#8472)
twoeths Sep 26, 2025
c1880f6
chore: add gloas timings to slot time functions (#8474)
nflaig Sep 26, 2025
fcf8d02
feat: add gloas containers (#8464)
ensi321 Sep 26, 2025
47470aa
chore: remove remaining usage of `SECONDS_PER_SLOT` (#8476)
nflaig Sep 26, 2025
248b252
chore: update error response for validator publish endpoints (#8480)
nflaig Sep 29, 2025
901d719
chore: add gloas fork constants to unscheduled networks (#8484)
nflaig Sep 30, 2025
51e1ede
docs: add comprehensive usage documentation to docker-compose.local.y…
DeVikingMark Sep 30, 2025
fd1dac8
feat: use lodestar-bun hashtree (#8481)
wemeetagain Sep 30, 2025
792fcea
fix: update regen caller for data column (#8487)
wemeetagain Oct 1, 2025
287e637
feat: wire in gloas containers (#8485)
ensi321 Oct 2, 2025
8961b06
chore: ignore local tsbuildinfo files in docker builds (#8492)
nflaig Oct 2, 2025
c9deb9b
fix: use previous slot to get sync aggregate for block (#8494)
nflaig Oct 3, 2025
be3c522
refactor: replace * value with other more bash friendly value (#8491)
guha-rahul Oct 3, 2025
894daf8
fix: return spec constants starting with 0x as hex strings instead of…
nflaig Oct 6, 2025
f45a2be
fix: unsubscribe from `blob_sidecar` topics during fulu fork transiti…
nflaig Oct 6, 2025
f2a741b
docs: update contributing.md to include AI disclosure (#8498)
philknows Oct 6, 2025
29cdec0
fix: default port6 to ipv4 port if set explicitly (#8504)
nflaig Oct 6, 2025
497d67c
fix: use datastore-level by default (#8503)
wemeetagain Oct 6, 2025
7a240d3
feat: support serving blob sidecars post fulu (#8506)
nflaig Oct 7, 2025
643707e
fix: update gnosis slot duration ms to 5000 (#8512)
nflaig Oct 8, 2025
825a186
chore: bump package versions to 1.35.0
philknows Oct 8, 2025
a8e3089
chore: v1.35.0 release (#8513)
philknows Oct 8, 2025
f657221
chore: merge v1.35.0 back to unstable (#8514)
philknows Oct 8, 2025
793f92c
fix: improve heap size limit log (#8516)
twoeths Oct 9, 2025
a2a22d6
chore: remove listener of blob sidecars chain event on close (#8520)
nflaig Oct 13, 2025
4fe86ae
fix: avoid Set.has() in computeDeltas() (#8525)
twoeths Oct 13, 2025
6604fa5
fix: avoid emitting stale light client updates (#8522)
nflaig Oct 13, 2025
598c1ec
feat: update networking config to match CL spec (#8510)
nflaig Oct 13, 2025
d9cc6b9
feat: add more specific error codes to voluntary exit error (#8486)
phertyameen Oct 13, 2025
c7f3e8d
fix: do not create default cache entry for unknown proposers (#8532)
nflaig Oct 14, 2025
b739d2d
feat: track performance of processFinalizedCheckpoint() (#8530)
twoeths Oct 14, 2025
6d67a79
feat: track computeDeltas metrics (#8531)
twoeths Oct 14, 2025
f069a45
fix: ensure data column sidecars respect blob limit (#8534)
nflaig Oct 14, 2025
131ab2d
chore: simplify start epoch in head chain range sync (#8535)
nflaig Oct 14, 2025
0baa7fa
rough-out new BackfillSync class structure
vedant-asati Sep 7, 2025
7cb8d1d
wip: add peer management
vedant-asati Oct 27, 2025
7e0981b
wip: create, send and validate by_range requests
vedant-asati Oct 27, 2025
6155b4d
fix: blocks_by_range requests validation
vedant-asati Oct 28, 2025
fb04b44
remove debug comments from verify.ts
vedant-asati Oct 28, 2025
6c6fc60
add verifyBlockProposerSignature
vedant-asati Oct 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -67,5 +67,6 @@ docs/site
**/dist
*.log
**/*.log
**/*.tsbuildinfo
.idea
.tmp
4 changes: 2 additions & 2 deletions .env.test
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# We use these images during sim and e2e tests
# This is the last version which supports pre/post merge chains in the same network
# All newer versions only work with post merge chains
GETH_DOCKER_IMAGE=ethereum/client-go:v1.13.14
GETH_DOCKER_IMAGE=ethereum/client-go:v1.16.2
# Use either image or local binary for the testing
GETH_BINARY_DIR=
LIGHTHOUSE_DOCKER_IMAGE=sigp/lighthouse:v7.0.1
LIGHTHOUSE_DOCKER_IMAGE=ethpandaops/lighthouse:unstable-d235f2c

# We can't upgrade nethermind further due to genesis hash mismatch with the geth
# https://github.com/NethermindEth/nethermind/issues/6683
Expand Down
152 changes: 152 additions & 0 deletions .github/workflows/publish-nextfork.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
name: Publish nextfork release

# only one per github sha can be run
concurrency:
group: cd-publish-nextfork

on:
push:
branches:
- peerDAS # Nextfork branch

env:
NEXT_FORK: peerDAS

jobs:
npm:
name: Publish to NPM Registry
runs-on: buildjet-4vcpu-ubuntu-2204
steps:
# <common-build> - Uses YAML anchors in the future
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-node@v4
with:
node-version: 22
registry-url: "https://registry.npmjs.org"
check-latest: true
cache: yarn
- name: Node.js version
id: node
run: echo "v8CppApiVersion=$(node --print "process.versions.modules")" >> $GITHUB_OUTPUT
- name: Restore dependencies
uses: actions/cache@master
id: cache-deps
with:
path: |
node_modules
packages/*/node_modules
key: ${{ runner.os }}-${{ steps.node.outputs.v8CppApiVersion }}-${{ hashFiles('**/yarn.lock', '**/package.json') }}
- name: Install & build
if: steps.cache-deps.outputs.cache-hit != 'true'
run: yarn install --frozen-lockfile && yarn build
- name: Build
run: yarn build
if: steps.cache-deps.outputs.cache-hit == 'true'
# </common-build>
- name: Get version
id: version
run: |
PACKAGE_VERSION=$(node -p "require('./packages/cli/package.json').version")
NEXT_VERSION=$(npx --yes semver --increment minor $PACKAGE_VERSION)
export VERSION=${NEXT_VERSION}-${NEXT_FORK}.${GITHUB_SHA:0:10}
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo PACKAGE_VERSION $PACKAGE_VERSION GITHUB_SHA $GITHUB_SHA VERSION $VERSION

- name: Change and commit version
# Write version before publishing so it's picked up by `lerna publish from-package`.
# It must also be committed to ensure a clean git tree, otherwise `lerna publish` errors.
# This "temp" commit doesn't change the actually release commit which is captured above.
# git-data is also correct, since it's generated at build time, before `lerna version` run.
run: |
node_modules/.bin/lerna version ${{ steps.version.outputs.version }} \
--force-publish \
--exact \
--yes \
--no-git-tag-version

git config user.name 'temp'
git config user.email '[email protected]'
git commit -am "${{ steps.version.outputs.version }}"

- name: Publish to npm registry
# Note: before https://github.com/ChainSafe/lodestar/commit/28e2c74cf0f1bede8b09c8c9fec26f54b367e3fd
# We used `lerna publish --canary` option. However, since we now publish must version on branches,
# i.e. v0.35.x branch, lerna fails to detect the latest version and publishes canary versions as
# `0.34.0-dev.173+28e2c74cf0` instead of `0.36.0-dev.4+28e2c74cf0`, which creates confusion.
#
# --no-git-reset:
# Do not delete code version artifacts so the next step can pick the version
#
# --dist-tag next:
# Make this dev version installable with `@next`
#
# --preid dev:
# Tag version with `dev` instead of `alpha`
#
# --force-publish:
# lerna doesn't want to publish anything otherwise - "lerna success No changed packages
# to publish"
# --exact
# lerna will link the dependencies of monorepo packages without ^ operator as npm
# is apparently bad at resolving ^ dependencies of the canary versions. For e.g
# @chainsafe/lodestar@^0.34.0-dev.4 resolves to => 0.34.0
#
# NOTE: Using --preid dev.$(git rev-parse --short=7 HEAD) results in `0.24.3-dev.3ddb91d.0+3ddb91d`
run: |
node_modules/.bin/lerna publish from-package \
--yes \
--no-verify-access \
--dist-tag next \
--no-git-reset \
--force-publish \
--exact
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
outputs:
version: ${{ steps.version.outputs.version }}

docker:
name: Publish to Docker Hub
runs-on: buildjet-4vcpu-ubuntu-2204
needs: npm
steps:
- uses: actions/checkout@v4
# https://github.com/docker/setup-qemu-action
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
# https://github.com/docker/setup-buildx-action
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push lodestar
run: >
docker buildx build . --push
--tag chainsafe/lodestar:nextfork
--platform linux/amd64,linux/arm64
--build-arg COMMIT=$(git rev-parse HEAD)

- run: docker run chainsafe/lodestar:nextfork --help
# Display history to know byte size of each layer
# Image is available only because of the previous `docker run` command
- run: docker image history chainsafe/lodestar:nextfork

- name: Build and push custom Grafana
run: >
docker buildx build ./docker/grafana/ --push
--file ./docker/grafana/Dockerfile
--build-context dashboards=./dashboards
--tag chainsafe/lodestar-grafana:nextfork
--platform linux/amd64,linux/arm64

- name: Build and push custom Prometheus
run: >
docker buildx build ./docker/prometheus/ --push
--file ./docker/prometheus/Dockerfile
--tag chainsafe/lodestar-prometheus:nextfork
--platform linux/amd64,linux/arm64
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ jobs:
run: scripts/assert_no_yarn_warnings.sh

- name: Lint yarn lockfile
run: npx lockfile-lint --path yarn.lock --allowed-hosts npm yarn --validate-https
run: npx lockfile-lint --path yarn.lock --allowed-hosts npm yarn github.com --allowed-schemes "https:" "git+https:"

- name: Lint Code
run: yarn lint
Expand Down
90 changes: 55 additions & 35 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,57 @@

Thanks for your interest in contributing to Lodestar. It's people like you that push the Ethereum ecosystem forward.

## New Contributor?

Unsure where to begin contributing to Lodestar? Here are some ideas!

- :mag_right: Look through our [good first issues](https://github.com/ChainSafe/lodestar/issues?q=state%3Aopen%20label%3A%22good%20first%20issue%22).
- :speech_balloon: Join our [Discord chat](https://discord.gg/aMxzVcr)!
[![Discord](https://img.shields.io/discord/593655374469660673.svg?label=Discord&logo=discord)](https://discord.gg/aMxzVcr)

### AI Assistance Notice

> [!IMPORTANT]
>
> If you are using **any kind of AI assistance** to contribute to Lodestar, **this must be disclosed in the pull request** to maintainers
> along with the extent to which AI assistance was used (e.g. docs only vs. code generation).
> If PR responses are being generated by an AI, disclose that as well.
> As a small exception, trivial tab-completion doesn't need to be disclosed, so long as it is limited to single keywords or short phrases.

An example disclosure:

> This PR was written primarily by Claude Code.
> I consulted Claude Code to understand the codebase, but the solution was fully authored manually by myself.

Failure to disclose this is first and foremost, rude to the human maintainers on the other end of the pull request and it makes it difficult to determine how much scrutiny to apply to the contribution.

In a perfect world, AI assistance would produce equal or higher quality of work than any human. This is currently not the case and most of the time is generating AI slop which is noticeable in patterns and lack of context to solving the problem. We say this as heavy users of AI to help maintain this project (with careful supervision).

When using AI assistance, we expect contributors to understand the code that is produced and be able to answer critical questions about what was submitted. It isn't a maintainer's job to review a PR so broken that it requires significant rework to be acceptable.

Most of all, it is disrespectful to our time. Please be respectful to our maintainers and **disclose AI assistance.** Using AI without a thorough review and understanding of the output does not enhance your reputation as a valuable contributor or increase the likelihood of future opportunities on this project.

## Reporting A Bug?

- :spiral_notepad: [Create a new issue!](https://github.com/ChainSafe/lodestar/issues/new/choose) Select the type of issue that best fits, and please fill out as much of the information as you can.

## Contribution Process

1. Make sure you're familiar with our contribution guidelines _(this document)_!
2. Create your [own fork](https://github.com/ChainSafe/lodestar/fork) of this repository.
3. Make your changes in your local fork.
4. If you've made a code change, make sure to lint and test your changes (`yarn lint`, `yarn check-types` and `yarn test:unit`).
5. Make an open pull request when you're ready for it to be reviewed. We review PRs on a regular basis. See Pull request etiquette for more information.

> [!IMPORTANT]
> Please note that trivial, non-code contributions such as spelling, grammar, typos, corrections, comments and link fixes are not acceptable pull requests.
> Although we appreciate the effort to fix these valid concerns, it is not practical for us to run our CI systems to accommodate minor external contributions which generate minimal value for the purpose of contribution/airdrop farming.
> It would be appreciated for you to open up an issue instead for our team to aggregate these types of contributions into a batch commit.

## Lodestar Monorepo

We currently host the majority of lodestar packages and support packages in [this repository](https://github.com/ChainSafe/lodestar) as a [monorepo](https://en.wikipedia.org/wiki/Monorepo). We're using [Lerna](https://lerna.js.org/) to manage the packages. See [packages/](https://github.com/ChainSafe/lodestar/tree/unstable/packages) for a list of packages hosted in this repository.

## Prerequisites

- :gear: [NodeJS](https://nodejs.org/) (LTS)
Expand Down Expand Up @@ -114,29 +165,6 @@ Run a local beacon with `--metrics` enabled. Then start Prometheus + Grafana wit
./docker/docker-compose.local_dev.sh
```

## First Time Contributor?

Unsure where to begin contributing to Lodestar? Here are some ideas!

- :pencil2: See any typos? See any verbiage that should be changed or updated? Go for it! Github makes it easy to make contributions right from the browser.
- :mag_right: Look through our [outstanding unassigned issues](https://github.com/ChainSafe/lodestar/issues?q=is%3Aopen+is%3Aissue+no%3Aassignee). (Hint: look for issues labeled `good first issue` or `help-wanted`!)
- :speech_balloon: Join our [Discord chat](https://discord.gg/aMxzVcr)!
[![Discord](https://img.shields.io/discord/593655374469660673.svg?label=Discord&logo=discord)](https://discord.gg/aMxzVcr)

## Reporting A Bug?

- :spiral_notepad: [Create a new issue!](https://github.com/ChainSafe/lodestar/issues/new/choose) Select the type of issue that best fits, and please fill out as much of the information as you can.

## Contribution Process

1. Make sure you're familiar with our contribution guidelines _(this document)_!
2. Create your [own fork](https://github.com/ChainSafe/lodestar/fork) of this repository.
3. Make your changes in your local fork.
4. If you've made a code change, make sure to lint and test your changes (`yarn lint` and `yarn test:unit`).
5. Make an open pull request when you're ready for it to be reviewed. We review PRs on a regular basis. See Pull request etiquette for more information.

Please note that trivial, non-code contributions such as spelling, grammar, typos, corrections, comments and link fixes are not acceptable pull requests. Although we appreciate the effort to fix these valid concerns, it is not practical for us to run our CI systems to accommodate minor external contributions which generate minimal value for the purpose of contribution/airdrop farming. It would be appreciated for you to open up an issue instead for our team to aggregate these types of contributions into a batch commit.

## Github Style Guide

**Branch Naming**
Expand Down Expand Up @@ -165,11 +193,7 @@ For example:
- If your pull request is fixable and needs additional changes or commits within a short period of time, switch your pull request into a draft until it's ready.
- Otherwise, close your pull request and [create a new issue instead.](https://github.com/ChainSafe/lodestar/issues/new/choose)

## Lodestar Monorepo

We're currently experimenting with hosting the majority of lodestar packages and support packages in this repository as a [monorepo](https://en.wikipedia.org/wiki/Monorepo). We're using [Lerna](https://lerna.js.org/) to manage the packages. See [packages/](https://github.com/ChainSafe/lodestar/tree/unstable/packages) for a list of packages hosted in this repository.

## Style Guide
## Lodestar Code Style Guide

- Lodestar has migrated to using ES modules.
- Many module class constructors have the following signature: `(options, dependencies)`
Expand Down Expand Up @@ -202,7 +226,7 @@ We're currently experimenting with hosting the majority of lodestar packages and
- Metric code variables on the other hand should not be suffixed, i.e. `Sec`-suffix should be omitted
- Time-based metrics must use seconds as the unit

## Tests style guide
## Tests Style Guide

Test must not depend on external live resources, such that running tests for a commit must be deterministic:

Expand Down Expand Up @@ -266,7 +290,7 @@ If the PR introduces large-scale changes, affecting multiple areas of the codeba
- Some corner cases can be observed while testing on feature group. If any such issue is identified which was not brainstormed earlier must be bring to attention of the team.
- If and when possible try to release big features under opt-in feature flags.

## Logging policy
## Logging Policy

### Logging Levels

Expand All @@ -277,7 +301,7 @@ Contributors must choose the log level carefully to ensure a consistent experien
- `info`: General sporadic informational about the node's state. Examples include initialization messages, infrequent periodic status updates, or high-level progress reports.
- `debug`: Detailed diagnostic information that can help developers or users troubleshoot specific issues. Examples include individual request logs for every REST API, networking interactions, or internal components status changes. Alias to `verbose`.

### Logging guidelines
### Logging Guidelines

- Avoid excessive logging. Log messages should be clear and concise, providing enough information to understand the context and severity of the issue.
- Do not log sensitive data, such as private keys, user credentials, or personal information.
Expand Down Expand Up @@ -345,7 +369,3 @@ A simple indicator of issue prioritization. It mainly applies to issues.
###### `spec.*` Ethereum Consensus Spec Version Target

Issues that target a specific version of the Ethereum consensus spec, shall be tagged accordingly.

## Community

Come chat with us on [Discord](https://discord.gg/aMxzVcr) and join our public weekly planning meetings!
4 changes: 2 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
FROM --platform=${BUILDPLATFORM:-amd64} node:22-slim AS build_src
ARG COMMIT
WORKDIR /usr/app
RUN apt-get update && apt-get install -y g++ make python3 python3-setuptools && apt-get clean && rm -rf /var/lib/apt/lists/*
RUN apt-get update && apt-get install -y git g++ make python3 python3-setuptools && apt-get clean && rm -rf /var/lib/apt/lists/*

COPY . .

Expand All @@ -23,7 +23,7 @@ RUN cd packages/cli && GIT_COMMIT=${COMMIT} yarn write-git-data
# Note: This step is redundant for the host arch
FROM node:22-slim AS build_deps
WORKDIR /usr/app
RUN apt-get update && apt-get install -y g++ make python3 python3-setuptools && apt-get clean && rm -rf /var/lib/apt/lists/*
RUN apt-get update && apt-get install -y git g++ make python3 python3-setuptools && apt-get clean && rm -rf /var/lib/apt/lists/*

COPY --from=build_src /usr/app .

Expand Down
Loading
Loading