Skip to content

Releases: FuelLabs/fuel-core

v0.35.0

28 Aug 14:06
9f96573
Compare
Choose a tag to compare

Version v0.35.0

Added

  • 2122: Changed the relayer URI address to be a vector and use a quorum provider. The relayer argument now supports multiple URLs to fetch information from different sources.
  • 2119: GraphQL query fields for retrieving information about upgrades.

Changed

  • 2113: Modify the way the gas price service and shared algo is initialized to have some default value based on best guess instead of None, and initialize service before graphql.
  • 2112: Alter the way the sealed blocks are fetched with a given height.
  • 2120: Added submitAndAwaitStatus subscription endpoint which returns the SubmittedStatus after the transaction is submitted as well as the TransactionStatus subscription.
  • 2115: Add test for SignMode is_available method.
  • 2124: Generalize the way p2p req/res protocol handles requests.

Breaking

  • 2040: Added full no_std support state transition related crates. The crates now require the "alloc" feature to be enabled. Following crates are affected:
    • fuel-core-types
    • fuel-core-storage
    • fuel-core-executor
  • 2116: Replace H160 in config and cli options of relayer by Bytes20 of fuel-types

Fixed

  • 2134: Perform RecoveryID normalization for AWS KMS -generated signatures.

What's Changed

  • Change TODO clippy to wait for false positive correction by @AurelienFT in #2110
  • Remove option on shared algo, give default algo, reorder service startup by @MitchTurner in #2113
  • chore(sealed_blocks): optimize fetching of sealed block header at a given height by @rymnc in #2112
  • chore(p2p_service): remove unnecessary cast to usize by @rymnc in #2123
  • Added a benchmark for the predicate with ed19 verification by @xgreenx in #2127
  • Add test SignMode is_available by @AurelienFT in #2115
  • feat: Add graphql query fields for retreiving information about upgrades by @netrome in #2119
  • Small code optimizations by @MoneyBund in #2035
  • Change relayer URI address to be vector and use quorum provider by @AurelienFT in #2122
  • chore(p2p_service): clean up processing of p2p req/res protocol by @rymnc in #2124
  • feat: add submitAndAwaitStatus subscription endpoint by @maschad in #2120
  • Replace H160 in config and cli options of relayer by Bytes20 by @AurelienFT in #2116
  • Secp256k1 RecoveryID correction for KMS-genrated signatures by @Dentosal in #2134
  • Added no_std support state transition related crates by @xgreenx in #2040
  • Release v0.35.0 by @xgreenx in #2136

New Contributors

Full Changelog: v0.34.0...v0.35.0

v0.34.0

20 Aug 17:14
000646b
Compare
Choose a tag to compare

Version v0.34.0

Added

  • 2051: Add support for AWS KMS signing for the PoA consensus module. The new key can be specified with --consensus-aws-kms AWS_KEY_ARN.
  • 2092: Allow iterating by keys in rocksdb, and other storages.
  • 2096: GraphQL endpoint to fetch blob byte code by its blob ID.

Changed

  • 2106: Remove deadline clock in POA and replace with tokio time functions.

Breaking

  • 2051: Misdocumented CONSENSUS_KEY environ variable has been removed, use CONSENSUS_KEY_SECRET instead. Also raises MSRV to 1.79.0.

Fixed

  • 2106: Handle the case when nodes with overriding start on the fresh network.
  • 2105: Fixed the rollback functionality to work with empty gas price database.

What's Changed

  • doc: refine the transaction example in the README by @mmyyrroonn in #2072
  • AWS KMS block signing support and Rust 1.79 by @Dentosal in #2051
  • feat(iterators): allow key-only iteration by @rymnc in #2092
  • feat: graphql endpoint to fetch the blob byte code by its blob ID by @netrome in #2096
  • Small improvements for tests to make them more stable by @xgreenx in #2103
  • Fixed the rollback functionality to work with empty gas price database by @xgreenx in #2105
  • Bump wasmtime version by @Dentosal in #2089
  • Handle the case when nodes with overriding start on the fresh network by @xgreenx in #2106
  • Remove deadline clock in POA and replace with tokio time functions. by @AurelienFT in #2109
  • Release v0.34.0 by @xgreenx in #2117

New Contributors

Full Changelog: v0.33.0...v0.34.0

v0.33.0

18 Aug 14:39
c73431a
Compare
Choose a tag to compare

Version v0.33.0

Added

  • 2094: Added support for predefined blocks provided via the filesystem.
  • 2094: Added --predefined-blocks-path CLI argument to pass the path to the predefined blocks.
  • 2081: Enable producer to include predefined blocks.
  • 2079: Open unknown columns in the RocksDB for forward compatibility.

Changed

  • 2076: Replace usages of iter_all with iter_all_keys where necessary.

Breaking

  • 2080: Reject Upgrade txs with invalid wasm on txpool level.
  • 2082: Move TxPoolError from fuel-core-types to fuel-core-txpool.
  • 2086: Added support for PoA key rotation.
  • 2086: Support overriding of the non consensus parameters in the chan config.

Fixed

  • 2094: Fixed bug in rollback logic because of wrong ordering of modifications.

What's Changed

  • fix: Rename e2e-client test crate to fuel-core-e2e-client and rem… by @netrome in #2075
  • chore(github): clean up PR template by @rymnc in #2077
  • chore(iterators): replace iter_all with iter_all_keys where required by @rymnc in #2076
  • Open unknown columns in the RocksDB for forward compatibility by @xgreenx in #2079
  • Addressed comments in the unknown columns PR by @xgreenx in #2085
  • Remove RUSTSEC-2023-0052 from ignored errors as it's fixed now by @Dentosal in #2090
  • Validate WASM on txpool level before allowing upgrade tx by @Dentosal in #2080
  • feat: publish to public ECR repo by @mchristopher in #2066
  • Added support for PoA key rotation by @xgreenx in #2086
  • refactor: move TxPoolError from fuel-core-types to fuel-core-txpool by @netrome in #2088
  • Allow producer to produce predefined blocks by @MitchTurner in #2081
  • Pass predefined blocks via the CLI by @xgreenx in #2094
  • Release v0.33.0 by @xgreenx in #2099

New Contributors

Full Changelog: v0.32.1...v0.33.0

v0.32.1

10 Aug 06:55
a9e5e89
Compare
Choose a tag to compare

Version v0.32.1

Added

  • 2061: Allow querying filled transaction body from the status.

Changed

  • 2067: Return error from TxPool level if the BlobId is known.
  • 2064: Allow gas price metadata values to be overridden with config

Fixes

  • 2060: Use min-gas-price as a starting point if start-gas-price is zero.
  • 2059: Remove unwrap that is breaking backwards compatibility
  • 2063: Don't use historical view during dry run.

What's Changed

Full Changelog: v0.32.0...v0.32.1

Version 0.32.0

06 Aug 22:57
ecf5d23
Compare
Choose a tag to compare

Added

Added

  • 1983: Add adapters for gas price service for accessing database values

Breaking

  • 2048: Disable SMT for ContractsAssets and ContractsState for the production mode of the fuel-core. The SMT still is used in benchmarks and tests.
  • #1988: Updated fuel-vm to 0.56.0 (release notes). Adds Blob transaction support.
  • 2025: Add new V0 algorithm for gas price to services.
    This change includes new flags for the CLI:
    - "starting-gas-price" - the starting gas price for the gas price algorithm
    - "gas-price-change-percent" - the percent change for each gas price update
    - "gas-price-threshold-percent" - the threshold percent for determining if the gas price will be increase or decreased
    And the following CLI flags are serving a new purpose
    - "min-gas-price" - the minimum gas price that the gas price algorithm will return
  • 2045: Include withdrawal message only if transaction is executed successfully.
  • 2041: Add code for startup of the gas price algorithm updater so
    the gas price db on startup is always in sync with the on chain db

What's Changed

New Contributors

Full Changelog: v0.31.0...v0.32.0

v0.31.0

05 Jul 22:44
c5b425e
Compare
Choose a tag to compare

Version v0.31.0

Added

  • #2014: Added a separate thread for the block importer.
  • #2013: Added a separate thread to process P2P database lookups.
  • #2004: Added new CLI argument continue-services-on-error to control internal flow of services.
  • #2004: Added handling of incorrect shutdown of the off-chain GraphQL worker by using state rewind feature.
  • #2007: Improved metrics:
    • Added database metrics per column.
    • Added statistic about commit time of each database.
    • Refactored how metrics are registered: Now, we use only one register shared between all metrics. This global register is used to encode all metrics.
  • #1996: Added support for rollback command when state rewind feature is enabled. The command allows the rollback of the state of the blockchain several blocks behind until the end of the historical window. The default historical window it 7 days.
  • #1996: Added support for the state rewind feature. The feature allows the execution of the blocks in the past and the same execution results to be received. Together with forkless upgrades, execution of any block from the past is possible if historical data exist for the target block height.
  • #1994: Added the actual implementation for the AtomicView::latest_view.
  • #1972: Implement AlgorithmUpdater for GasPriceService
  • #1948: Add new AlgorithmV1 and AlgorithmUpdaterV1 for the gas price. Include tools for analysis
  • #1676: Added new CLI arguments:
    • graphql-max-depth
    • graphql-max-complexity
    • graphql-max-recursive-depth

Changed

  • #2015: Small fixes for the database:
    • Fixed the name for historical columns - Metrics was working incorrectly for historical columns.
    • Added recommended setting for the RocksDB - The source of recommendation is official documentation https://github.com/facebook/rocksdb/wiki/Setup-Options-and-Basic-Tuning#other-general-options.
    • Removed repairing since it could corrupt the database if fails - Several users reported about the corrupted state of the database after having a "Too many descriptors" error where in logs, repairing of the database also failed with this error creating a lost folder.
  • #2010: Updated the block importer to allow more blocks to be in the queue. It improves synchronization speed and mitigate the impact of other services on synchronization speed.
  • #2006: Process block importer events first under P2P pressure.
  • #2002: Adapted the block producer to react to checked transactions that were using another version of consensus parameters during validation in the TxPool. After an upgrade of the consensus parameters of the network, TxPool could store invalid Checked transactions. This change fixes that by tracking the version that was used to validate the transactions.
  • #1999: Minimize the number of panics in the codebase.
  • #1990: Use latest view for mutate GraphQL queries after modification of the node.
  • #1992: Parse multiple relayer contracts, RELAYER-V2-LISTENING-CONTRACTS env variable using a , delimiter.
  • #1980: Add Transaction to relayer 's event filter

Breaking

  • #2012: Bumped the fuel-vm to 0.55.0 release. More about the change here.
  • #2001: Prevent GraphQL query body to be huge and cause OOM. The default body size is 1MB. The limit can be changed by the graphql-request-body-bytes-limit CLI argument.
  • #1991: Prepare the database to use different types than Database for atomic view.
  • #1989: Extract HistoricalView trait from the AtomicView.
  • #1676: New fuel-core-client is incompatible with the old fuel-core because of two requested new fields.
  • #1676: Changed default value for api-request-timeout to be 30s.
  • #1676: Now, GraphQL API has complexity and depth limitations on the queries. The default complexity limit is 20000. It is ~50 blocks per request with transaction IDs and ~2-5 full blocks.

Fixed

  • #2000: Use correct query name in metrics for aliased queries.

What's Changed

  • Generate and publish code coverage reports in the CI by @Dentosal in #1947
  • Gas Price Algorithm by @MitchTurner in #1948
  • Use companies fork of the publish-crates action by @xgreenx in #1986
  • Weekly cargo update by @github-actions in #1985
  • Implement gas price updater for service by @MitchTurner in #1972
  • Extract HistoricalView trait from the AtomicView by @xgreenx in #1989
  • Use fresh ReadView for mutate queries by @xgreenx in #1990
  • Prevent api spam with GQL complexity limits by @Voxelot in #1676
  • Enable parsing multiple relayer listening contract addresses from environment variables by @Jurshsmith in #1992
  • Prepare the database to use different types than Database for atomic view by @xgreenx in #1991
  • Added the actual implementation for the AtomicView::latest_view by @xgreenx in #1994
  • Weekly cargo update by @github-actions in #1998
  • Minimize the number of panics in the codebase by @xgreenx in #1999
  • feat: include Transaction events in topic0 filter for download_logs by @DefiCake in #1980
  • Use correct query name for metrics by @xgreenx in #2000
  • Prevent GraphQL query body to be huge and cause OOM by @xgreenx in #2001
  • Adapted the block producer to react on the outdated transactions from the TxPool by @xgreenx in #2002
  • Process block importer events first under P2P pressure by @xgreenx in #2006
  • Implementation of the state rewind feature for the RocksDB by @xgreenx in #1996
  • Upgraded fuel-vm to 0.55.0 by @xgreenx in #2012
  • Improved metrics for the database by @xgreenx in #2007
  • Updated block importer to allow more blocks to be queue by @xgreenx in #2010
  • Added handling of incorrect shutdown of the off-chain GraphQL worker by @xgreenx in #2004
  • Moved P2P database lookups into a separate thread by @xgreenx in #2013
  • Use dedicated thread for the block importer by @xgreenx in #2014
  • Small fixes for the database by @xgreenx in #2015
  • Release v0.31.0 by @xgreenx in #2016
  • Fix the publishing of the fuel-gas-price-algorithm crate by @xgreenx in #2024

New Contributors

Full Changelog: v0.30.0...v0.31.0

v0.30.0

16 Jun 18:56
8b1bf02
Compare
Choose a tag to compare

Version v0.30.0

Added

  • #1975: Added DependentCost benchmarks for the cfe and cfei opcodes.
  • #1975: Added DependentCost for the cfe opcode to the GasCosts endpoint.
  • #1974: Optimized the work of InMemoryTransaction for lookups and empty insertion.

Changed

  • #1973: Updated VM initialization benchmark to include many inputs and outputs.

Breaking

  • #1975: Updated gas prices according to new release.
  • #1975: Changed GasCosts endpoint to return DependentCost for the cfei opcode via cfeiDependentCost.
  • #1975: Use fuel-vm 0.54.0. More information in the release.

What's Changed

  • Add creation_instant as second sort key in tx pool. by @AurelienFT in #1964
  • Updated VM initialization benchmark to include many inputs and outputs by @xgreenx in #1973
  • Fixes the error message for incorrect keypair's path by @xgreenx in #1962
  • Optimized the work of InMemoryTransaction for lookups and empty insertion by @xgreenx in #1974
  • Weekly cargo update by @github-actions in #1976
  • Use fuel-vm 0.54.0 by @xgreenx in #1975
  • Release v0.30.0 by @xgreenx in #1977

Full Changelog: v0.29.0...v0.30.0

v0.29.0

14 Jun 20:22
e3730f8
Compare
Choose a tag to compare

Version v0.29.0

Added

  • #1889: Add new FuelGasPriceProvider that receives the gas price algorithm from a GasPriceService

Changed

  • #1942: Sequential relayer's commits.
  • #1952: Change tip sorting to ratio between tip and max gas sorting in txpool
  • #1960: Update fuel-vm to v0.53.0.

Fixed

  • #1950: Fix cursor BlockHeight encoding in SortedTXCursor

What's Changed

New Contributors

Full Changelog: v0.28.0...v0.29.0

v0.28.0

07 Jun 06:28
d5b99e1
Compare
Choose a tag to compare

Version v0.28.0

Changed

  • #1934: Updated benchmark for the aloc opcode to be DependentCost. Updated vm_initialization benchmark to exclude growing of memory(It is handled by VM reuse).
  • #1916: Speed up synchronisation of the blocks for the fuel-core-sync service.
  • #1888: optimization: Reuse VM memory across executions.

Breaking

  • #1934: Changed GasCosts endpoint to return DependentCost for the aloc opcode via alocDependentCost.
  • #1934: Updated default gas costs for the local testnet configuration. All opcodes became cheaper.
  • #1924: dry_run_opt has new gas_price: Option<u64> argument
  • #1888: Upgraded fuel-vm to 0.51.0. See release for more information.

Added

  • #1939: Added API functions to open a RocksDB in different modes.
  • #1929: Added support of customization of the state transition version in the ChainConfig.

Removed

  • #1913: Removed dead code from the project.

Fixed

  • #1921: Fixed unstable gossipsub_broadcast_tx_with_accept test.
  • #1915: Fixed reconnection issue in the dev cluster with AWS cluster.
  • #1914: Fixed halting of the node during synchronization in PoA service.

What's Changed

  • Removed dead code by @xgreenx in #1913
  • Added backward and forward compatibility integration tests for forkless upgrades by @xgreenx in #1895
  • Fixed halting of the node in rare conditions by @xgreenx in #1914
  • Weekly cargo update by @github-actions in #1928
  • Fixed logging of the WASM executor by @xgreenx in #1930
  • Added support of customization of the state transition version in the ChainConfig by @xgreenx in #1929
  • Document wasm toolchain installation, add rust-toolchain.toml by @Dentosal in #1932
  • Add optional gas_price argument to dry_run_opt by @hal3e in #1924
  • Reuse VM memory across executions by @Dentosal in #1888
  • Fixed reconnection issue in the dev cluster with AWS cluster by @xgreenx in #1915
  • Speeds up synchronisation of the blocks for the fuel-core-sync service by @xgreenx in #1916
  • Fixed unstable gossipsub_broadcast_tx_with_accept test by @xgreenx in #1921
  • Added API functions to open a RocksDB in different modes by @xgreenx in #1939
  • Use DependentCost for aloc opcode by @xgreenx in #1934
  • Release v0.28.0 by @xgreenx in #1945

New Contributors

Full Changelog: v0.27.0...v0.28.0

v0.27.0

29 May 20:49
4d680c4
Compare
Choose a tag to compare

Version v0.27.0

Added

  • #1898: Enforce increasing of the Executor::VERSION on each release.

Changed

  • #1906: Makes cli::snapshot::Command members public such that clients can create and execute snapshot commands programmatically. This enables snapshot execution in external programs, such as the regenesis test suite.
  • #1891: Regenesis now preserves FuelBlockMerkleData and FuelBlockMerkleMetadata in the off-chain table. These tables are checked when querying message proofs.
  • #1886: Use ref to Block in validation code
  • #1876: Updated benchmark to include the worst scenario for CROO opcode. Also include consensus parameters in bench output.
  • #1879: Return the old behaviour for the discovery_works test.
  • #1848: Added version field to the Block and BlockHeader GraphQL entities. Added corresponding version field to the Block and BlockHeader client types in fuel-core-client.
  • #1873: Separate dry runs from block production in executor code, remove ExecutionKind and ExecutionType, remove thread_block_transaction concept, remove PartialBlockComponent type, refactor away inner functions.
  • #1900: Update the root README as fuel-core run no longer has --chain as an option. It has been replaced by --snapshot.

Breaking

  • #1894: Use testnet configuration for local testnet.
  • #1894: Removed support for helm chart.
  • #1910: fuel-vm upgraded to 0.50.0. More information in the changelog.

What's Changed

  • feat: Support block and header versions gql by @bvrooman in #1848
  • Updated croo opcode benchmark to depend on the contract size by @xgreenx in #1876
  • Return the old behaviour for the discovery_works test by @xgreenx in #1879
  • Weekly cargo update by @github-actions in #1880
  • Separate production from dry runs in executor & Cleanup all execution paths :) by @MitchTurner in #1873
  • Use ref instead of owned Block in validation by @MitchTurner in #1886
  • Weekly cargo update by @github-actions in #1893
  • ci: fix typos programmatically by @sdankel in #1890
  • feat: Preserve message proofs post-regenesis by @bvrooman in #1891
  • chore: update README fuel-core run options by @K1-R1 in #1900
  • Weekly cargo update by @github-actions in #1903
  • chore: Make snapshot command members pub accessible by @bvrooman in #1906
  • Use testnet configuration for local testnet by @xgreenx in #1894
  • Enforce increasing of the Executor::VERSION on each release by @xgreenx in #1898
  • Bumped the version of the fuel-vm to 0.50.0 by @xgreenx in #1910
  • Release v0.27.0 by @xgreenx in #1912

New Contributors

Full Changelog: v0.26.0...v0.27.0