Skip to content

v0.48.1

Choose a tag to compare

@xgreenx xgreenx released this 30 Apr 02:28
· 8 commits to master since this release
4d51a53

Version v0.48.1

Changed

  • 3243: Migrating from standard Debian slim base Docker images to GCR Distroless images.
  • 3255: Adds client & server support for the existing protobuf HTTP-based remote RPC block accessor.
  • 3259: Bump wasmtime to 0.43.1

Fixed

  • 3258: Fix backward-compatiblity of GraphQL queries for pre-0.48.0 versions
  • 3261: Fix PoA leader deadlock after reconciliation import where ensure_synced() blocked forever because execute_and_commit marked reconciliation blocks as Source::Network, causing the SyncTask to transition to NotSynced.
  • 3264: Rollback stale preconfirmations in the mempool when the canonical block at that height omits the preconfirmed transactions, restoring spent inputs and removing dependent transactions.
  • 3269: Fix PoA reconciliation deadlock when the same block exists on all Redis nodes but with different epochs. unreconciled_blocks now groups votes by block_id only (tracking max epoch as tiebreaker), so identical blocks written during re-promotion storms count toward quorum.
  • 3272: Improve performance of redis block publish by making more parallel and optimizing the lua code
  • 3278: Fix mainnet block-production hang when a single ElastiCache leader-lock node enters a half-alive state. Bumps redis to 1.2 (the older 0.27 client did not apply the connect timeout to the post-connect handshake pipeline) and short-circuits publish_block_on_all_nodes on quorum so a stuck per-node thread can no longer wedge the publish path.
  • 3281: Add forward-compatibility for old clients and new fuel-core

[Version 0.48.0]

Breaking

  • 3105: Only the first RPC Url is now used to create a provider in relayer server; others are ignored.
  • 3141: Fix the index of the transaction inside the pre-confirmation during native block production.
  • 3217: Bump dependencies and the rust version to 1.93.0

Added

  • 3100: Add protobuf api for querying the block aggregator
  • 3101: Integrate new block aggregation RPC into Fuel Core
  • 3106: Add adapter for storing blocks on AWS S3 bucket
  • 3115: Add quorum provider.
  • 3116: Complete coverage of proto block types to cover all cases
  • 3127: - Introduced FailoverTransport, a resilient transport layer that retries GraphQL queries across multiple endpoints.
  • 3131: Integrated the backup tool into fuel-core as a archive subcommand.
  • 3155: Add integration tests for preconfirmation transaction indices to verify correct indexing for single and multiple transactions in a block.
  • 3156: Add comprehensive integration tests for FuelClient failover functionality covering both GraphQL queries and subscriptions.

Changed

  • 3105: Migrated relayer service and related tests from ethers-rs to alloy-rs.
  • 3133: Include tx_id into SqueezedOut reason to simplify debugging.
  • 3134: stage and data fields made public in DataSource struct.
  • 3138: Migrate CI from BuildJet to WarpBuild runners, update GitHub Actions to latest versions, and use pre-built binaries for cargo-nextest and cargo-audit.
  • 3182: Updated fuel-vm to 0.66 and added benchmark for the new instructions
  • 3203: Add lease port for PoA adapter to allow multiple producers to be live but only one leader.
  • 3225: PoA quorum and HA failover fixes: Redis leader lease adapter improvements, write_block.lua HEIGHT_EXISTS check, sub-quorum block repair, Prometheus metrics, and chaos test harness.

Fixed

  • 3112: Use Protobuf types in serialization rather than opaque bytes
  • 3124: Using Debian Bookworm as the runtime base image for Docker builds. This is the same base image as the Rust builder images. Keeping the images in-sync will help prevent runtime dependency mismatch issues.
  • 3128: Better signal handling (SIGABRT, SIGQUIT, SIGHUP).
  • 3148: Add aloc to ignored words, to fix typo errors in CI.
  • 3150: Ignore rustsec advisories RUSTSEC-2025-0118
  • 3159: Fix FuelClient::with_urls to normalize URLs with /v1/graphql path, matching the behavior of FuelClient::new.
  • 3172: Validate TxPool transactions against next block height instead of current block height.
  • 3174: Fix dry_run to get the consensus parameter version of the old block instead of current version
  • 3193: Add new error type, fix error text
  • 3195: Upgrade Wasmtime to fix RUSTSEC

What's Changed

  • Bump wasmtime version by @Dentosal in #3259
  • Ignore RUSTSEC-2026-{0098, 0099} for now by @Dentosal in #3266
  • Rollback unsuccessful preconfs in the mempool by @Dentosal in #3264
  • Disable limited-tx-count feature when running benchmarks by @Dentosal in #3263
  • fix: prevent PoA leader deadlock after reconciliation import by @Voxelot in #3261
  • Fix backward-compatiblity of GraphQL queries for pre-0.48.0 versions by @Dentosal in #3258
  • fix: group reconciliation votes by block_id to resolve same-block deadlock by @Voxelot in #3269
  • Improve redis publish performance by @MitchTurner in #3272
  • fix(poa): prevent block-production hang when one Redis node goes half-alive by @Voxelot in #3278
  • Add forward-compatibilty test and fix for using old client on new node by @MitchTurner in #3281
  • feat: add support for http endpoints and dynamic decompression by @mchristopher in #3255
  • Release v0.48.1 by @xgreenx in #3286

Full Changelog: v0.47.4...v0.48.1