v0.48.1
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 becauseexecute_and_commitmarked reconciliation blocks asSource::Network, causing the SyncTask to transition toNotSynced. - 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_blocksnow groups votes byblock_idonly (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
redisto 1.2 (the older 0.27 client did not apply the connect timeout to the post-connect handshake pipeline) and short-circuitspublish_block_on_all_nodeson 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
archivesubcommand. - 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_idintoSqueezedOutreason to simplify debugging. - 3134:
stageanddatafields made public inDataSourcestruct. - 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
alocto ignored words, to fix typo errors in CI. - 3150: Ignore rustsec advisories
RUSTSEC-2025-0118 - 3159: Fix
FuelClient::with_urlsto normalize URLs with/v1/graphqlpath, matching the behavior ofFuelClient::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