Releases: grandinetech/grandine
2.0.4
Grandine 2.0.4 is a high-priority release for mainnet users - it contains security fixes and performance optimisations.
What's Changed
- Send full signed execution payload bid to event stream by @hangleang in #601
- Use nethermind reference assemblies from github by @ArtiomTr in #635
- Update
POST /eth/v2/beacon/blocksto publish only signed beacon block for post-Gloas by @hangleang in #600 - Check pubkey in pending deposits before register builder by @hangleang in #602
- Pin specific version of ZISK in tests by @Tumas in #636
- Deduplicate CI build runs for internal PRs by @hangleang in #634
- Disable macos & windows builds in CI by @ArtiomTr in #638
POST /eth/v1/beacon/execution_payload/bidby @hangleang in #517GET /eth/v1/validator/execution_payload_bid/{slot}/{builder_index}by @hangleang in #518- Add payload attestation tick by @hangleang in #603
- Fix check builder balance edge case when bid_amount = 0 by @hangleang in #640
- Extract prune_delayed_after_finalization and call it on slot finalization by @Tumas in #637
- Upgrade crates and replace
bincodewithwincode& bump Rust version by @Tumas in #630 - Update consensus spec tests to v1.7.0-alpha3 by @Tumas in #639
- Remove validator public keys from persisted state by @ArtiomTr in #611
- Link
cctoclangin Cross.toml by @Tumas in #641 - Use
tokio::time::Instantin ticks() to fix flaky clock tests by @Tumas in #642 - Fix finalized validator loading from database for old databases. by @Tumas in #643
- Updated dependencies by @sauliusgrigaitis in #644
- Fixed nethermind reference assemblies installation by @ArtiomTr in #645
- Store finalized validators to disk only when state is stored by @Tumas in #647
- Avoid initiating DB transactions for empty batches by @povi in #648
- Update libmdbx bindings by @Tumas in #649
- Limit data column pruning per transaction by @Tumas in #650
- Return removed constant in spec response for backwards-compatibility by @Tumas in #651
- Bumped version to 2.0.4 by @sauliusgrigaitis in #652
- Fix snapshot tests by @Tumas in #653
Full Changelog: 2.0.3...2.0.4
2.0.3
Grandine 2.0.3 is a high-priority release for mainnet users, as it contains security fixes and performance optimisations.
What's Changed
- Bumped Grandine version to 2.0.2 by @sauliusgrigaitis in #616
- Upgrade
libmdbxto 0.13.7 by @Tumas in #286 - Add
--data-availability-windowCLI argument by @Tumas in #628 - Update dependencies by @Tumas in #632
- Limit concurrent
PersistDataColumnSidecarsTaskto one at a time by @Tumas in #631
Full Changelog: 2.0.2...2.0.3
2.0.2
Grandine 2.0.2 is a high-priority release for mainnet users, as it contains security fixes and performance optimisations.
What's Changed
- Fix ClientCode for Besu by @eth2353 in #511
- Use cached target state if possible when converting attestations for aggregation in attestation pool by @povi in #510
- Tracing fixes by @Tumas in #501
- Improve CPU usage accuracy during system stats collection by @Tumas in #512
- Add
/featuresendpoints by @povi in #520 - Only trigger blob reconstruction if any of the sampling columns is missing instead of any column at all by @povi in #521
- Spawn state cache pruning task from
Mutatorinstead of locking withinStoreby @Tumas in #522 - Implement grandine-nethermind integration by @ArtiomTr in #476
- Fix test script in makefile by @ArtiomTr in #525
- Fixed build scripts by @ArtiomTr in #528
- Fixed grandine docker image build process by @ArtiomTr in #527
- Delay blob reconstructions for a few seconds by @povi in #526
- Reduce block root computations by @Tumas in #492
- Add ziren zkvm by @Dyslex7c in #385
- Exclude ziren guest code when compiling grandine by @ArtiomTr in #530
- Add token for github api when packaging nethermind by @ArtiomTr in #531
- Retry download spec tests by @hangleang in #490
- Update Rust to 1.91.1 by @Tumas in #532
- Add missing values to
Config(#534) by @Tumas in #535 - Replace
dashmapwithsccby @Tumas in #529 - Return
PhaseErroron block/state phase mismatch when processing blocks by @Tumas in #533 - Update Rust edition to 2024 by @Tumas in #471
- Provide GITHUB_TOKEN during risc0 installation by @ArtiomTr in #536
- Change docker image tag push order by @ArtiomTr in #539
- Add
block_gossipSSE stream by @hangleang in #543 - zkVM Zisk Integration by @jimmychu0807 in #475
- Ignore RUSTSEC-2025-0137 by @ArtiomTr in #549
- Use non blocking methods for
received_data_column_sidecarsby @Tumas in #552 - Clean up: remove data column debug flags by @hangleang in #546
- Set fixed cross version by @ArtiomTr in #554
- Update zkvms by @ArtiomTr in #548
- Short tags for nethermind-grandine docker images by @ArtiomTr in #556
- Add time parameters config by @hangleang in #558
- Disable check for --eth1-rpc-urls in embedded mode by @ArtiomTr in #555
- Implement automatic csharp config generator by @ArtiomTr in #553
- Update CI workflow to trigger on pull requests by @ArtiomTr in #563
- Remove duplicate convert_case crate from lockfile by @ArtiomTr in #564
- Update C# dependencies and bump .NET version to 10 by @ArtiomTr in #562
- Update peerdas metrics by @Tumas in #565
- Offload back sync batch validation to a low-priority dedicated executor by @Tumas in #542
- Import blocks if 50% columns accepted by @Tumas in #424
- Fix Nethermind plugin with pinned reference assemblies by @ArtiomTr in #571
- Add
--supernodeand--semi-supernodecommand line options by @Tumas in #573 - Add Gloas containers and functions by @hangleang in #572
- Fix some operation pools metrics timers by @povi in #577
- Update risc0 prove code to use boundless network by @ArtiomTr in #578
- Improve own committee members calculation by @Tumas in #576
- Add
DataColumnSidecarcombined type for Fulu and post-Gloas by @hangleang in #574 - Speed-up process justification and finalization for checkpoint update during block import by @povi in #584
- Add Grandine version to metrics by @Tumas in #586
- Update
prepare_execution_payloadfor Gloas by @hangleang in #583 - Use client versions in builder blocks by @Tumas in #580
- Updated zkvm assets for fulu epoch. by @ArtiomTr in #587
- Add
--force-reset-beacon-dbcommand line option (#585) by @Tumas in #588 - Handle
ExecutionPayloadBidvia gossip by @hangleang in #582 - Feature/update bytes crate by @povi in #590
- Update rust toolchain to 1.92.0 by @ArtiomTr in #557
- Update consensus-spec-tests to v1.7.0-alpha.2 by @hangleang in #589
- Preload first and the last block of previous epoch into
state_at_slot_cachewhen archiving finalized blocks by @Tumas in #593 - Implemented EL client version in nethermind plugin by @ArtiomTr in #592
- Added missing metrics to embedded engine api by @ArtiomTr in #594
GET /eth/v2/validator/duties/proposer/{epoch}by @hangleang in #597GET /eth/v2/node/versionby @hangleang in #599- Moved column (re)construction to dedicated executor by @ArtiomTr in #596
- Update eth2_libp2p by @Tumas in #595
- Add tracing instrumentation to Beacon API by @Tumas in #598
- Delay after finalization archive tasks to be performed later in slot by @povi in #605
- Don't store checkpoint state during sync by @Tumas in #607
- Wait for late blocks that are being processed at the start of attest duty before attesting by @povi in #606
- Disable nethermind build & publish for stable releases by @ArtiomTr in #604
- If late block becomes the chain head, use it for attesting and sync committee duties by @povi in #608
- Store checkpoint state during syncing every archival epoch interval by @Tumas in #609
- Fix sync start issue when head is considered 'forward_synced' by @Tumas in #610
- Fix system dependency installation on CI by @ArtiomTr in #612
- Fix dependency installation in release pipeline by @ArtiomTr in #614
- Update
eth2_libp2pby @povi in #613 - Update rust-kzg to latest version by @ArtiomTr in #615
New Contributors
Full Changelog: 2.0.1...2.0.2
2.0.1
Grandine 2.0.1 is a medium-priority release for mainnet users, as it contains performance optimisations and fixes for the upcoming Fusaka hard-fork.
What's Changed
- Increase
engine_getBlobsV*request timeout to 2s by @povi in #465 - rotate exception.log when it exceeds 1GB by @sntntn in #456
- Optimize HTTP API validator registrations endpoint by @povi in #467
- Upgrade crates by @sauliusgrigaitis in #466
- Add cooldown to
too many empty slotsmessage in liveness tracking by @povi in #473 - Fix ssz maximum length issue in zkvms by @ArtiomTr in #470
- Fix
Mutatorperformance issues related to data column reconstruction by @povi in #474 - Fix HTTP API publish block response when data columns are accepted by @povi in #479
- Service health checks by @povi in #469
- Fix last_sync_range update by @hangleang in #491
- Migrate
BeaconBlockBodyto feature based traits by @hangleang in #489 - Various performance fixes by @povi in #496
- Remove unmaintainted
convdependency (#435) by @Tumas in #498 - Add
--disable-http-apiCLI argument by @Tumas in #497 - Update
eth2_libp2pby @Tumas in #495 - Export telemetry metrics to the specified gRPC collector by @Tumas in #487
- Use all known registered validators in CGC requirement update by @povi in #499
- Feature/attester not in committee error info by @povi in #500
- Implemented zkvm-pico host and guest programs by @jimmychu0807 in #386
- Check accepted sidecars against block root by @hangleang in #505
- Back sync patches by @povi in #507
- Bumped Grandine version to '2.0.1' by @sauliusgrigaitis in #509
New Contributors
- @jimmychu0807 made their first contribution in #386
Full Changelog: 2.0.0...2.0.1
2.0.0
Grandine 2.0.0 is a high-priority release for mainnet users, as it contains the upcoming Fusaka hard-fork schedule. Apart from the Fusaka support this release contains numerious new features such as zkVM support.
What's Changed
- Peerdas fulu by @Tumas in #297
- Refine
should_retry_blockcondition after accepting data column by @Tumas in #353 - Add R0 and SP1 zkvm guest programs by @ArtiomTr in #304
- Update README build instructions by @povi in #354
- Do not batch request missing data columns before PeerDAS by @povi in #355
- Optimize SSZ decoding by @weekday-grandine-io in #167
- Use
u64::checked_divwhen calculatingmax_slot_headby @Tumas in #356 - Log
inbound_request_idwhen logging received requests by @Tumas in #359 - Sync with data column sidecar reconstruction enabled by default by @povi in #361
- For debug purposes extend
GET /eth/v1/debug/beacon/data_column_sidecars/{block_id}endpoint by @povi in #363 - Add more info to logs by @Tumas in #368
- Increase
max_slot_aheadby @hangleang in #370 - Fix incorrect fork exists check in fork context by @hangleang in #365
- Retry block to rebuild pruned beacon state from state cache if blob or data sidecar gets delayed due to missing state by @povi in #372
- Move EL & beacon API reconstruction code into
tokio::spawn::blockingby @Tumas in #364 - Load cgc from metadata in network initialization by @hangleang in #373
- Use separate dedicated executor for data column reconstruction by @Tumas in #362
- Fx data columns by root rpc request limit by @hangleang in #371
- Deserialize blob schedule in desc, reverse at serialize by @hangleang in #375
- Fix issue with requesting current epoch proposer duties by @povi in #378
- Ignore non-sampling data column sidecars by @hangleang in #376
- Backfill custody group columns by @povi in #274
- Review what should be included in fork choice debug log level by @povi in #383
- Fix expected max responses for
BlobsByRangerequests by @Tumas in #381 - Fix columns back sync validation by @hangleang in #384
- Change blinded block reveal timeout message log level by @povi in #388
- Fix for blob schedule sort in config by @povi in #393
- Fix blob schedule sort by @hangleang in #394
- Add
beacon_custody_groups_backfilledmetric by @hangleang in #306 - Data column backfill termination fix by @povi in #396
- Request new data from the network in
p2p::block_sync_servicevia queue by @Tumas in #398 - Support the
/eth/v2/builder/blinded_blockspost-fulu by @hangleang in #403 - Debug P2p message handling performance by @povi in #409
- Local validators now publish single attestations instead of electra ones by @povi in #410
- Compute blob poofs post fulu for
/eth/v1/beacon/blob_sidecars/{block_id}by @hangleang in #406 - Ensure peer connected only after other sync checks to avoid unnecessary peer collection locking by @povi in #412
- Fix typos by @Tumas in #414
- Check data availability ranges in range requests by @Tumas in #413
- Take into account
earliest_available_slotwhen build sync batches by @Tumas in #411 - Make calls to
eip_7594functions in blocking tasks by @povi in #421 - Validate
subcommittee_indexin Beacon API (#389) by @Tumas in #423 - Ensure data column sidecars respect the blob limit by @hangleang in #425
- Add feature to disable finalized root check by @hangleang in #418
- Update
consensus-spec-teststo v1.6.0-beta.0 by @povi in #427 - Misc: reorder
chain_configas first argument by @hangleang in #426 - Update rust-kzg to latest version by @ArtiomTr in #428
- Added comment recarding 'bls' backends by @sauliusgrigaitis in #138
- Don't send whole head state to P2p on head change by @povi in #431
- Reuse electra epoch processing operations in fulu by @hangleang in #429
- Added 'make release' by @sauliusgrigaitis in #436
- Run metrics service system stats refresh in tokio blocking task by @povi in #438
- Don't use
RUST_LOGwhen setting up logging filters by @Tumas in #440 - Handle cgc count increase after restart (#377) by @Tumas in #433
- Update consensus-spec-tests to
v1.6.0-beta.1by @hangleang in #441 - Enforce stricter
verify_kzg_proofsresult checks by @Tumas in #445 - Don't error on ignore result when publishing via beacon API by @Tumas in #442
- Two-Layer Tracing Subscriber Design with Dedicated Exception Log File and Local Timezone Support + Developer Controls + Tests by @sntntn in #432
- Build block sync batch even if all columns for that batch are received by @Tumas in #450
- Add support for BSD platforms by @Tumas in #446
- Update Rust to 1.90.0 by @Tumas in #448
- Update rust-kzg by @ArtiomTr in #452
- Persist
exception.login data directory by @povi in #453 - Schedule Fulu on Mainnet by @povi in #457
- Increase preferred execution gas limit to 60M by @povi in #459
- Update
db-statscommand to account for data column sidecars by @Tumas in #460 - Log error if exception.log file cannot be created by @povi in #461
- Update
eth2_libp2pby @Tumas in #458 - Bumped Grandine version to 2.0.0 by @sauliusgrigaitis in #464
- Update consensus-spec-tests to
v1.6.0by @Tumas in #463
New Contributors
Full Changelog: 1.1.5...2.0.0
2.0.0.rc1
Grandine 2.0.0.rc0 is a high-priority release for Holesky, Sepolia, Hoodi testnet users only. It's not recommended to upgrade mainnet nodes to this version.
What's Changed
- Change blinded block reveal timeout message log level by @povi in #388
- Fix for blob schedule sort in config by @povi in #393
- Fix blob schedule sort by @hangleang in #394
- Add
beacon_custody_groups_backfilledmetric by @hangleang in #306 - Data column backfill termination fix by @povi in #396
- Request new data from the network in
p2p::block_sync_servicevia queue by @Tumas in #398 - Support the
/eth/v2/builder/blinded_blockspost-fulu by @hangleang in #403 - Debug P2p message handling performance by @povi in #409
- Local validators now publish single attestations instead of electra ones by @povi in #410
- Compute blob poofs post fulu for
/eth/v1/beacon/blob_sidecars/{block_id}by @hangleang in #406 - Ensure peer connected only after other sync checks to avoid unnecessary peer collection locking by @povi in #412
- Fix typos by @Tumas in #414
- Check data availability ranges in range requests by @Tumas in #413
- Take into account
earliest_available_slotwhen build sync batches by @Tumas in #411 - Make calls to
eip_7594functions in blocking tasks by @povi in #421 - Validate
subcommittee_indexin Beacon API (#389) by @Tumas in #423 - Ensure data column sidecars respect the blob limit by @hangleang in #425
- Add feature to disable finalized root check by @hangleang in #418
- Update
consensus-spec-teststo v1.6.0-beta.0 by @povi in #427 - Misc: reorder
chain_configas first argument by @hangleang in #426 - Update rust-kzg to latest version by @ArtiomTr in #428
- Added comment recarding 'bls' backends by @sauliusgrigaitis in #138
- Don't send whole head state to P2p on head change by @povi in #431
- Reuse electra epoch processing operations in fulu by @hangleang in #429
- Added 'make release' by @sauliusgrigaitis in #436
- Run metrics service system stats refresh in tokio blocking task by @povi in #438
- Don't use
RUST_LOGwhen setting up logging filters by @Tumas in #440 - Handle cgc count increase after restart (#377) by @Tumas in #433
- Update consensus-spec-tests to
v1.6.0-beta.1by @hangleang in #441 - Enforce stricter
verify_kzg_proofsresult checks by @Tumas in #445 - Don't error on ignore result when publishing via beacon API by @Tumas in #442
Full Changelog: 2.0.0.rc0...2.0.0.rc1
2.0.0.rc0
Grandine 2.0.0.rc0 is a high-priority release for Holesky, Sepolia, Hoodi testnet users only. It's not recommended to upgrade mainnet nodes to this version.
What's Changed
- Peerdas fulu by @Tumas in #297
- Refine
should_retry_blockcondition after accepting data column by @Tumas in #353 - Add R0 and SP1 zkvm guest programs by @ArtiomTr in #304
- Update README build instructions by @povi in #354
- Do not batch request missing data columns before PeerDAS by @povi in #355
- Optimize SSZ decoding by @weekday-grandine-io in #167
- Use
u64::checked_divwhen calculatingmax_slot_headby @Tumas in #356 - Log
inbound_request_idwhen logging received requests by @Tumas in #359 - Sync with data column sidecar reconstruction enabled by default by @povi in #361
- For debug purposes extend
GET /eth/v1/debug/beacon/data_column_sidecars/{block_id}endpoint by @povi in #363 - Add more info to logs by @Tumas in #368
- Increase
max_slot_aheadby @hangleang in #370 - Fix incorrect fork exists check in fork context by @hangleang in #365
- Retry block to rebuild pruned beacon state from state cache if blob or data sidecar gets delayed due to missing state by @povi in #372
- Move EL & beacon API reconstruction code into
tokio::spawn::blockingby @Tumas in #364 - Load cgc from metadata in network initialization by @hangleang in #373
- Use separate dedicated executor for data column reconstruction by @Tumas in #362
- Fx data columns by root rpc request limit by @hangleang in #371
- Deserialize blob schedule in desc, reverse at serialize by @hangleang in #375
- Fix issue with requesting current epoch proposer duties by @povi in #378
- Ignore non-sampling data column sidecars by @hangleang in #376
- Backfill custody group columns by @povi in #274
- Review what should be included in fork choice debug log level by @povi in #383
- Fix expected max responses for
BlobsByRangerequests by @Tumas in #381 - Fix columns back sync validation by @hangleang in #384
Full Changelog: 1.1.5...2.0.0.rc0
1.1.5
Grandine 1.1.5 is a medium-priority release containing multiple optimisations and fixes.
What's Changed
- Add
beacon_clock_slotmetric (#317) by @Tumas in #318 - Fix head event sending issues by @povi in #321
- Allow to processing long empty slot distances when preparing beacon state for block production by @povi in #326
- HTTP API: allow to produce beacon blocks when beacon node is out of sync by @povi in #328
- Temporary ignore RUSTSEC-2025-0055 by @sauliusgrigaitis in #345
- Bumped version to 1.1.5 by @sauliusgrigaitis in #346
Full Changelog: 1.1.4...1.1.5
1.1.4
Grandine 1.1.4 is a medium-priority release containing multiple optimisations and fixes.
What's Changed
- Update Tokio to
1.47.1by @Tumas in #296 - Avoid using
initial_forward_syncflag inStore::is_forward_syncedby @Tumas in #298 - Fix block event send after delayed payload is applied to block during block import by @povi in #305
- Don't combine
ValidatorBlindedBlock::BlindedBeaconBlockwith local payload by @Tumas in #299 - Bumped Grandine to 1.1.4 by @sauliusgrigaitis in #309
Full Changelog: 1.1.3...1.1.4
1.1.3
Grandine 1.1.3 is a medium-priority release containing multiple optimisations and fixes.
What's Changed
- Fix graffiti in builder blocks by @Tumas in #277
- Feature/bump rust and crates by @Tumas in #276
- Upgrade
derive_moreto 2.0.1 by @Tumas in #279 - HTTP API: state relative epoch fix by @povi in #280
- HTTP API waiting for block events by @povi in #289
- Wait for head to become fully verified before starting local validator attest duty by @povi in #291
- Bumped Grandine version to 1.1.3 by @sauliusgrigaitis in #292
- Fix wait for fully verified head for sync committee duties in local validator by @povi in #293
Full Changelog: 1.1.2...1.1.3