Conversation
…nc backfill GetBlockHeader can return nil for the new head during rapid cascade processing after checkpoint sync. Guard against nil dereference before accessing header fields.
…ompilation Add logger.Quiet mode to prevent log output from interleaving with test framework output. Fix forkchoice_test.go compilation after package refactor (qualify ConsensusStore with node. prefix, remove .node from fc.OnBlock calls).
test-spec now runs only spectests/ (0.1s). Use test-all for everything including xmss FFI crypto tests (~6 min).
Packages moved from pkg/ to top level during refactor. Exclude xmss, spectests, and cmd packages from make test (run separately).
Replace slot-based retention windows with canonicality analysis. On finalization: walk the proto-array to identify canonical vs non-canonical blocks, prune non-canonical states/blocks immediately, prune old finalized ancestors (keep only latest finalized root), and clean up stale attestation data. Periodic fallback every 7200 slots when finalization stalls. Storage stays bounded instead of growing to 3000 states before any cleanup.
Prevent stuck-forever scenarios when blocks are permanently unfetchable: - Depth tracking per pending block (MaxBlockFetchDepth=512): discard blocks whose ancestor chain exceeds this depth - Pending block cache limit (MaxPendingBlocks=1024): reject new pending blocks when cache is full - Finalization-triggered cleanup: discard pending blocks at/below finalized slot with entire subtrees - Depth cleared on cascade processing Includes 4 new tests: pending count, depth tracking, subtree discard, and cascade depth cleanup.
Eliminate N FFI calls per aggregation cycle by caching parsed pubkey handles. Previously ParsePublicKey (CGo→Rust FFI) was called once per validator per aggregation (~100ms each). Now parsed once and reused. Also pool the 1 MiB proof serialization buffer via sync.Pool to reduce GC pressure from heap allocations every 4 seconds. With 5 validators: FFI calls reduced from 13 to 3 per aggregation. Expected aggregation time reduction from ~1000ms to ~300-400ms.
Cyberking99
approved these changes
Apr 8, 2026
Skills are meant to be invoked by Claude reading SKILL.md, not by humans running make targets. Remove the top-level .claude/skills/README.md and the seven devnet-* Makefile targets that framed the skills as a CLI. The per-skill SKILL.md files (already modeled on ethlambda) remain the sole entry points.
Under set -euo pipefail, a grep with no matches returns 1 and aborts the script. This caused check-consensus-progress.sh to silently die mid-listing whenever a node had zero proposed blocks (e.g. lantern_0 in the current devnet logs), skipping every node alphabetically after it. Found while testing the devnet-log-review skill on real logs.
Without --cleanData, spin-node.sh leaves each node's data dir intact between runs. Clients then boot from on-disk state from the previous run instead of the fresh genesis we just generated. This caused lantern to come up at slot 22 with the previous run's fork-choice history, which then never produced votes for the new chain and stalled finalization across all peers.
dimka90
approved these changes
Apr 8, 2026
Patches two RustSec advisories that were blocking cargo audit in CI: - bytes 1.11.0 → 1.11.1 fixes RUSTSEC-2026-0007 (BytesMut::reserve overflow) - ruint 1.17.0 → 1.17.2 fixes RUSTSEC-2025-0137 (reciprocal_mg10 unsoundness) Both are transitive dependencies through the alloy-primitives / ethereum_ssz / leansig crypto stack — no Cargo.toml changes needed, patch-level updates only. Cargo dedups windows-sys 0.59.0 and 0.61.2 to a single version as a side effect. Recovers the lockfile portion of commit 9f41a10 'fix(ci): bump Go to 1.25.9 and patch Rust CVEs in security audit', which passed CI but was destroyed by a force-push to db9fc97 that only kept the Go bump.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Devnet-3 lean consensus client implementation targeting leanSpec commit
be85318.What's included
Test plan
go build ./...Closes #190 #197