Skip to content

Releases: FuelLabs/fuel-core

v0.44.0

26 May 19:23
85b2356
Compare
Choose a tag to compare

What's Changed

  • Update network versions on README by @github-actions in #2942
  • Try to fix flakiness in p2p tests by @xgreenx in #2945
  • fix(decompression): registry root calculation by @rymnc in #2943
  • chore: Bump rust version to 1.85.0 by @netrome in #2887
  • chore(compression): make registry mod public by @rymnc in #2954
  • chore!: change balance endpoint return type to u128 by @hal3e in #2958
  • Remove unnecessary lifetime constraints on fuel-core-client by @AurelienFT in #2955
  • chore(deps): bump crossbeam-channel from 0.5.14 to 0.5.15 by @dependabot in #2962
  • Add benches for all opcodes by @AurelienFT in #2936
  • fix: clean up Docker chain config by @mchristopher in #2946
  • Update network versions on README by @github-actions in #2968
  • chore(port): bump version to 0.43.1, bump stf, etc by @rymnc in #2969
  • chore: bump to the 2024 rust edition by @netrome in #2947
  • Update network versions on README by @github-actions in #2971
  • chore: Enable fault-proving feature on upgradable executor by @netrome in #2974
  • Update network versions on README by @github-actions in #2977
  • fix(tests): flakiness across a few different tests by @rymnc in #2982
  • chore(backup): allow backups on a live database by @rymnc in #2986
  • Make txpool pre-conf broadcast conditional on there being some txs in the list by @MitchTurner in #2987
  • Assemble Tx requires spendable inputs by @MitchTurner in #2992
  • chore: Update fuel-vm to 0.61.1 by @netrome in #3002
  • Update network versions on README by @github-actions in #2981
  • Update network versions on README by @github-actions in #3005
  • chore: Additional error logs for eth provider failures by @netrome in #3004
  • chore: Add simple makefile to help people use the right build command by @netrome in #2994
  • fix(graphql): pin the version of assets in the graphql playground by @rymnc in #2993
  • fix(port|compression_service): prevent syncing from genesis if compression db is empty by @rymnc in #2989
  • Fix client coins endpoint to return all asset types by @Guocork in #2984
  • Add excluded_contract filter to extract of transaction from TxPool by @AurelienFT in #2956
  • Apply all suggestions from closed PRs by @xgreenx in #3018
  • fuel-vm v0.62.0 by @Dentosal in #3021
  • Update to cargo-sort v2 by @Dentosal in #3026
  • Prepare for 0.44.0 release by @Dentosal in #3025
  • Fix homepage key of Cargo.toml by @Dentosal in #3028

New Contributors

Full Changelog: v0.43.0...v0.44.0

v0.43.2

28 Apr 20:53
9827d21
Compare
Choose a tag to compare

What's Changed

  • fix(compression_service): prevent syncing from genesis if compression db is empty by @rymnc in #2978
  • chore(v0.43.2): bump versions by @rymnc in #2980

Full Changelog: v0.43.1...v0.43.2

v0.43.1

22 Apr 18:00
6dc7e90
Compare
Choose a tag to compare

Version 0.43.1

  • 2964: Ensure that vm heap memory is zeroed out on rellocation after reset. Adds support for GM::GetGasPrice Bumps fuel-vm to 0.60.2.

What's Changed

  • chore(tx|gas_price): add test to ensure heap memory is cleared, add gm opcode integ test by @rymnc in #2964
  • chore(v0.43.1): bump versions, release changelog by @rymnc in #2966

Full Changelog: v0.43.0...v0.43.1

v0.41.10

22 Apr 16:33
321bad6
Compare
Choose a tag to compare

Version 0.41.10

Fixed

  • 2963: Ensure that vm heap memory is zeroed out on rellocation after reset. Bumps fuel-vm to 0.59.3.

What's Changed

  • chore(tx): add test to ensure heap memory is cleared between predicate executions by @rymnc in #2963
  • chore(v0.41.10): bump versions, release changelog by @rymnc in #2965

Full Changelog: v0.41.9...v0.41.10

v0.43.0

10 Apr 00:29
87c263c
Compare
Choose a tag to compare

Version 0.43.0

Breaking

  • 2882: Changed the type of the resolved_outputs for pre-confirmations. Now it also includes Utxoid. resolved_outputs field contains only Change and Variable outputs, so the UtxoId for them could be hard to derive, if transaction has known inputs. This information should help to create dependent transactions more easily.
  • 2900: Get rid of Deref impl on ImportResult by introducing wrapper type.
  • 2909: Compressed block headers now include a merkle root of the temporal registry after compression was performed.
  • 2931: In fuel-core-compression, the compress function now takes a reference to Config instead of the value.

Added

  • 2848: Link all components of preconfirmations and add E2E tests.
  • 2882: Listen to tx status update from TxStatusManager in TxPool. Added logic to clean up transactions from the pool if received squeezed out pre confirmations. Added logic to promote transactions on sentry nodes when receive pre-confirmation.
  • 2885: Notify P2P from TxStatusManager in case of bad preconfirmation message.
  • 2901: New query dryRunRecordStorageReads which works like dryRun but also returns storage reads, allowing use of execution tracer or local debugger
  • 2912: Add the allow_partial parameter to the coinsToSpend query. The default value of this parameters is false to preserve the old behavior. If set to true, the query returns available coins instead of failing when the requested amount is unavailable.
  • 2914: Tests ensuring the proof generation and validation of tables with sparse and merklized blueprints work.

Changed

  • 2859: Swap out off-chain worker compression for dedicated compression service in fuel-core-bin.
  • 2914: Break out test logic to trait methods for root_storage_tests and basic_merkleized_storage_tests test macros.
  • 2925: Make preconfirmation optional on API endpoints.

Fixed

  • 2918: Only cancel background work if primary RocksDB instance is dropped
  • 2935: The change rejects transactions immediately, if they use spent coins. TxPool has a SpentInputs LRU cache, storing all spent coins.

Removed

  • 2859: Removed DA compression from off-chain worker in favor of dedicated compression service in fuel-core-bin.

What's Changed

  • Rework TxStatusManager tests by @rafal-ch in #2871
  • fix(storage): custom impl of EnumCount for MerkleizedColumn by @rymnc in #2875
  • Update network versions on README by @github-actions in #2889
  • fix(version-compatibility): pin async-graphql to 7.0.15 by @rymnc in #2891
  • Fix proptest for tx status manager by @rafal-ch in #2893
  • fault_proving(compression): glue code for integ into fuel-core by @rymnc in #2859
  • Link and activate preconfirmations and add integrations tests by @AurelienFT in #2848
  • refactor: Get rid of Deref impl on ImportResult by introducing wrapper type. by @netrome in #2900
  • fix(compression_service): post merge reviews by @rymnc in #2895
  • Listen status updates from in TxStatusManager in TxPool by @AurelienFT in #2882
  • chore(compression): include registry root in compressed block header by @rymnc in #2909
  • Improve TxStatusManager tests coverage by @AurelienFT in #2911
  • ci(benchmarks): run nightly benchmark and create PR by @rymnc in #2915
  • fix: Only cancel background work if primary RocksDB instance is dropped by @netrome in #2918
  • fix(ci): nightly benchmark by @rymnc in #2922
  • fix(ci): explicitly push before creating PR by @rymnc in #2926
  • Add allow_partial parameter to the "coins to spend" query by @AurelienFT in #2912
  • fix(compression): improve robustness on startup and shutdown by @rymnc in #2923
  • chore(compression): metrics for compression service by @rymnc in #2920
  • chore(compression): pass compression config by reference by @rymnc in #2931
  • Dry run execution tracing by @Dentosal in #2901
  • Make preconfirmation optional on API endpoints by @AurelienFT in #2925
  • Notify P2P in case of bad preconfirmation message by @AurelienFT in #2885
  • chore(1.85): 1.85.0 readiness by @rymnc in #2937
  • Reject transactions for already spent coins by @xgreenx in #2935
  • feat: add tests for sparse and merkleized blueprint proof generation by @netrome in #2914
  • Release v0.43.0 by @netrome in #2939
  • Fix publishing by using async-graphql 7.0.15 by @xgreenx in #2941

Full Changelog: v0.42.0...v0.43.0

v0.42.0

18 Mar 19:41
e34a398
Compare
Choose a tag to compare

Version 0.42.0

Breaking

  • 2648: Add feature-flagged field to block header fault_proving_header that contains a commitment to all transaction ids.
  • 2678: Removed public accessors for BlockHeader fields and replaced with methods instead, moved tx_id_commitment to the application header of BlockHeaderV2.
  • 2746: Breaking changes to the CLI arguments:
    • To disable random-walk just don't specify it. Before it required to use --random-walk 0.
    • Next CLI arguments were renamed:
      • relayer-min-duration-s -> relayer-min-duration
      • relayer-eth-sync-call-freq-s -> relayer-eth-sync-call-freq
      • relayer-eth-sync-log-freq-s -> relayer-eth-sync-log-freq
    • Default value for the heartbeat-idle-duration was changed from 1s to 100ms. So information about new block will be propagated faster by default.
    • All CLI arguments below use time(like 100ms, 1s, 1d, etc.) use as a flag argument instead of number of seconds:
      • random-walk
      • connection-idle-timeout
      • info-interval
      • identify-interval
      • request-timeout
      • connection-keep-alive
      • heartbeat-send-duration
      • heartbeat-idle-duration
      • heartbeat-check-interval
      • heartbeat-max-avg-interval
      • heartbeat-max-time-since-last
      • relayer-min-duration
      • relayer-eth-sync-call-freq
      • relayer-eth-sync-log-freq
  • 2840: CLI argument vm-backtrace is deprecated and does nothing. It will be removed in a future version of fuel-core.
    The extra_tx_checks field was renamed into forbid_fake_coins that affects JSON based serialization/deserialization.
    Renamed extra_tx_checks_default field into forbid_fake_coins_default.

Added

  • 2150: Upgraded libp2p to 0.54.1 and introduced ConnectionLimiter to limit pending incoming/outgoing connections.

  • 2491: Storage read replays of historical blocks for execution tracing. Only available behind --historical-execution flag.

  • 2619: Add possibility to submit list of changes to rocksdb.

  • 2666: Added two new CLI arguments to control the GraphQL queries consistency: --graphql-block-height-tolerance (default: 10) and --graphql-block-height-min-timeout (default: 30s). If a request requires a specific block height and the node is slightly behind, it will wait instead of failing.

  • 2682: Added GraphQL APIs to get contract storage and balances for current and past blocks.

  • 2719: Merklized DA compression temporal registry tables.

  • 2722: Service definition for state root service.

  • 2724: Explicit error type for merkleized storage.

  • 2726: Add a new gossip-sub message for transaction preconfirmations

  • 2731: Include TemporalRegistry trait implementations for v2 tables.

  • 2733: Add a pending pool transaction that allow transaction to wait a bit of time if an input is missing instead of direct delete.

  • 2742: Added API crate for merkle root service.

  • 2756: Add new service for managing pre-confirmations

  • 2769: Added a new assembleTx GraphQL endpoint. The endpoint can be used to assemble the transaction based on the provided requirements.

    • The returned transaction contains:

      • Input coins to cover required_balances
      • Input coins to cover the fee of the transaction based on the gas price from block_horizon
      • Change or Destroy outputs for all assets from the inputs
      • Variable outputs in the case they are required during the execution
      • Contract inputs and outputs in the case they are required during the execution
      • Reserved witness slots for signed coins filled with 64 zeroes
      • Set script gas limit(unless script is empty)
      • Estimated predicates, if estimate_predicates == true
    • Returns an error if:

      • The number of required balances exceeds the maximum number of inputs allowed.
      • The fee address index is out of bounds.
      • The same asset has multiple change policies(either the receiver of
        the change is different, or one of the policies states about the destruction
        of the token while the other does not). The Change output from the transaction
        also count as a ChangePolicy.
      • The number of excluded coin IDs exceeds the maximum number of inputs allowed.
      • Required assets have multiple entries.
      • If accounts don't have sufficient amounts to cover the transaction requirements in assets.
      • If a constructed transaction breaks the rules defined by consensus parameters.
  • 2780: Add implementations for the pre-confirmation signing task

  • 2784: Integrate the pre conf signature task into the main consensus task

  • 2788: Scaffold dedicated compression service.

  • 2799: Add a transaction waiter to the executor to wait for potential new transactions inside the block production window.
    Add a channel to send preconfirmation created by executor to the other modules
    Added a new CLI arguments:

    • --production-timeout to control the block production timeout in the case if block producer stuck.
    • --poa-open-period set the block production mode to Open. The Open mode starts the production of the next block immediately after the previous block. The block is open until the period passed. The period is a duration represented by 100ms, 1s, 1m, etc. The manual block production is disabled if this production mode is used.
  • 2802: Add a new cache with outputs extracted from the pool for the duration of the block.

  • 2824: Introduce new Try-like methods for the TaskNextAction

  • 2840: Added a new CLI arguments:

    • assemble-tx-dry-run-limit - The max number how many times script can be executed during assemble_tx GraphQL request. Default value is 3 times.
    • assemble-tx-estimate-predicates-limit - The max number how many times predicates can be estimated during assemble_tx GraphQL request. Default values is 10 times.
  • 2841: Following endpoints allow estimation of predicates on submission of the transaction via new estimatePredicates argument:

    • submit
    • submit_and_await
    • submit_and_await_status

    The change is backward compatible with all SDKs. The change is not forward-compatible with Rust SDK in the case of the estiamte_predicates flag set.

  • 2844: Implement DA compression in fuel-core-compression-service.

  • 2845: New status to manage the pre confirmation status send in TxUpdateSender.

  • 2855: Add an expiration interval check for pending pool and refactor extracted_outputs to not rely on block creation/process sequence.

  • 2856: Add generic logic for managing the signatures and delegate keys for pre-confirmations signatures

  • 2862: Derive enum_iterator::Sequence and strum_macros::{EnumCount, IntoStaticStr} for MerkleizedColumn.

Changed

  • 2388: Rework the P2P service codecs to avoid unnecessary coupling between components. The refactoring makes it explicit that the Gossipsub and RequestResponse codecs only share encoding/decoding functionalities from the Postcard codec. It also makes handling Gossipsub and RequestResponse messages completely independent of each other.
  • 2460: The type of the max_response_sizefor the postcard codec used in RequestResponse protocols has been changed from usize to u64.
  • 2473: Graphql requests and responses make use of a new extensions object to specify request/response metadata. A request extensions object can contain an integer-valued required_fuel_block_height field. When specified, the request will return an error unless the node's current fuel block height is at least the value specified in the required_fuel_block_height field. All graphql responses now contain an integer-valued current_fuel_block_height field in the extensions object, which contains the block height of the last block processed by the node.
  • 2618: Parallelize block/transaction changes creation in Importer
  • 2653: Added cleaner error for wasm-executor upon failed deserialization.
  • 2656: Migrate test helper function create_contract to `fuel_core_types::test_helpers::create...
Read more

v0.41.9

09 Mar 16:55
ccff696
Compare
Choose a tag to compare

What's Changed

  • fix(relayer): ensure local state is updated after logs downloaded by @rymnc and @xgreenx in #2829
  • fix(sub_services): enable block production only after all other services have been started by @rymnc in #2830
  • chore(v0.41.9): bump versions, release changelog by @rymnc in #2831

Full Changelog: v0.41.8...v0.41.9

v0.41.8

06 Mar 17:00
Compare
Choose a tag to compare

What's Changed

  • fix(modifications_history): Reworked the migration logic for historical tables by @rymnc in #2809
  • Bump versions 0.41.8 by @AurelienFT in #2810

Full Changelog: v0.41.7...v0.41.8

v0.41.7

13 Feb 10:42
ff8a775
Compare
Choose a tag to compare

Version 0.41.7

Fixed

  • 2710: Update Fuel-VM to fix compressed transaction backward compatibility.

What's Changed

Full Changelog: v0.41.6...v0.41.7

v0.41.6

05 Feb 22:32
4ff324b
Compare
Choose a tag to compare

Version 0.41.6

Added

  • 2668: Expose gas price service test helpers
  • 2621: Global merkle root storage updates process upgrade transactions.
  • 2650: Populate ProcessedTransactions table in global merkle root storage.
  • 2667: Populate Blobs table in global merkle root storage.
  • 2652: Global Merkle Root storage crate: Add Raw contract bytecode to global merkle root storage when processing Create transactions.

Fixed

  • 2673: Change read behavior on the InMemoryTransaction to use offset and allow not equal buf size (fix CCP and LDC broken from FuelLabs/fuel-vm#847)

What's Changed

  • chore(runnable_task): remove async_trait usage by @rymnc in #2660
  • Expose gas price service test helpers by @MitchTurner in #2668
  • Handle new state transition bytecode and new consensus parameter version by @acerone85 in #2621
  • fault_proving(global_roots): populate ProcessedTransactions table by @netrome in #2650
  • fault_proving(global_roots): Populate Blobs table by @netrome in #2667
  • Fault proving: Populate ContractsRawCode when processing Create Transaction in global merkle root crate by @acerone85 in #2652
  • Change read behavior on the InMemoryTransaction to use offset and allow not equal buf size by @AurelienFT in #2673
  • Release 0.41.6 by @AurelienFT in #2674

Full Changelog: v0.41.5...v0.41.6