Skip to content

Releases: grandinetech/grandine

2.0.4

31 Mar 06:23

Choose a tag to compare

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/blocks to 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/bid by @hangleang in #517
  • GET /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 bincode with wincode & 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 cc to clang in Cross.toml by @Tumas in #641
  • Use tokio::time::Instant in 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

10 Mar 07:37

Choose a tag to compare

Grandine 2.0.3 is a high-priority release for mainnet users, as it contains security fixes and performance optimisations.

What's Changed

Full Changelog: 2.0.2...2.0.3

2.0.2

28 Feb 06:59

Choose a tag to compare

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 /features endpoints 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 Mutator instead of locking within Store by @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 dashmap with scc by @Tumas in #529
  • Return PhaseError on 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_gossip SSE 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_sidecars by @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 --supernode and --semi-supernode command 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 DataColumnSidecar combined 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_payload for 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-db command line option (#585) by @Tumas in #588
  • Handle ExecutionPayloadBid via 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_cache when 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 #597
  • GET /eth/v2/node/version by @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_libp2p by @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

03 Dec 15:17

Choose a tag to compare

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 slots message in liveness tracking by @povi in #473
  • Fix ssz maximum length issue in zkvms by @ArtiomTr in #470
  • Fix Mutator performance 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 BeaconBlockBody to feature based traits by @hangleang in #489
  • Various performance fixes by @povi in #496
  • Remove unmaintainted conv dependency (#435) by @Tumas in #498
  • Add --disable-http-api CLI argument by @Tumas in #497
  • Update eth2_libp2p by @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

Full Changelog: 2.0.0...2.0.1

2.0.0

05 Nov 09:19

Choose a tag to compare

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_block condition 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_div when calculating max_slot_head by @Tumas in #356
  • Log inbound_request_id when 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_ahead by @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::blocking by @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 BlobsByRange requests 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_backfilled metric by @hangleang in #306
  • Data column backfill termination fix by @povi in #396
  • Request new data from the network in p2p::block_sync_service via queue by @Tumas in #398
  • Support the /eth/v2/builder/blinded_blocks post-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_slot when build sync batches by @Tumas in #411
  • Make calls to eip_7594 functions in blocking tasks by @povi in #421
  • Validate subcommittee_index in 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-tests to v1.6.0-beta.0 by @povi in #427
  • Misc: reorder chain_config as 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_LOG when 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.1 by @hangleang in #441
  • Enforce stricter verify_kzg_proofs result 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.log in 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-stats command 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_libp2p by @Tumas in #458
  • Bumped Grandine version to 2.0.0 by @sauliusgrigaitis in #464
  • Update consensus-spec-tests to v1.6.0 by @Tumas in #463

New Contributors

Full Changelog: 1.1.5...2.0.0

2.0.0.rc1

29 Oct 13:15

Choose a tag to compare

2.0.0.rc1 Pre-release
Pre-release

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_backfilled metric by @hangleang in #306
  • Data column backfill termination fix by @povi in #396
  • Request new data from the network in p2p::block_sync_service via queue by @Tumas in #398
  • Support the /eth/v2/builder/blinded_blocks post-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_slot when build sync batches by @Tumas in #411
  • Make calls to eip_7594 functions in blocking tasks by @povi in #421
  • Validate subcommittee_index in 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-tests to v1.6.0-beta.0 by @povi in #427
  • Misc: reorder chain_config as 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_LOG when 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.1 by @hangleang in #441
  • Enforce stricter verify_kzg_proofs result 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

26 Sep 13:42

Choose a tag to compare

2.0.0.rc0 Pre-release
Pre-release

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_block condition 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_div when calculating max_slot_head by @Tumas in #356
  • Log inbound_request_id when 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_ahead by @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::blocking by @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 BlobsByRange requests 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

03 Sep 13:17

Choose a tag to compare

Grandine 1.1.5 is a medium-priority release containing multiple optimisations and fixes.

What's Changed

  • Add beacon_clock_slot metric (#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

20 Aug 09:30

Choose a tag to compare

Grandine 1.1.4 is a medium-priority release containing multiple optimisations and fixes.

What's Changed

  • Update Tokio to 1.47.1 by @Tumas in #296
  • Avoid using initial_forward_sync flag in Store::is_forward_synced by @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::BlindedBeaconBlock with 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

20 Aug 09:25

Choose a tag to compare

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_more to 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