Skip to content

Releases: FuelLabs/fuel-core

v0.40.0

14 Oct 23:29
eea8c60
Compare
Choose a tag to compare

Version v0.40.0

Added

  • 2347: Add GraphQL complexity histogram to metrics.
  • 2350: Added a new CLI flag graphql-number-of-threads to limit the number of threads used by the GraphQL service. The default value is 2, 0 enables the old behavior.
  • 2335: Added CLI arguments for configuring GraphQL query costs.

Fixed

  • 2345: In PoA increase priority of block creation timer trigger compare to txpool event management

Changed

  • 2334: Prepare the GraphQL service for the switching to async methods.
  • 2310: New metrics: "The gas prices used in a block" (importer_gas_price_for_block), "The total gas used in a block" (importer_gas_per_block), "The total fee (gwei) paid by transactions in a block" (importer_fee_per_block_gwei), "The total number of transactions in a block" (importer_transactions_per_block), P2P metrics for swarm and protocol.
  • 2340: Avoid long heavy tasks in the GraphQL service by splitting work into batches.
  • 2341: Updated all pagination queries to work with the async stream instead of the sync iterator.
  • 2350: Limited the number of threads used by the GraphQL service.

Breaking

  • 2310: The metrics command-line parameter has been replaced with disable-metrics. Metrics are now enabled by default, with the option to disable them entirely or on a per-module basis.
  • 2341: The maximum number of processed coins from the coins_to_spend query is limited to max_inputs.

What's Changed

  • fix(gas_price_service): service name and unused trait impl by @rymnc in #2317
  • Do not require build of docker images to pass CI by @xgreenx in #2342
  • Prepare the GraphQL service for the switching to async methods by @xgreenx in #2334
  • Limited the number of threads used by the GraphQL service by @xgreenx in #2350
  • Increase priority of timer over txpool event by @xgreenx in #2345
  • Disable flaky test_poa_multiple_producers test by @rafal-ch in #2353
  • feat: CLI arguments for configuring GraphQL query costs. by @netrome in #2335
  • Add graphql query complexity histogram metric by @AurelienFT in #2349
  • Updated all pagination queries to work with the Stream instead of Iterator by @xgreenx in #2341
  • Avoid long heavy tasks in the GraphQL service by @xgreenx in #2340
  • Add more metrics by @rafal-ch in #2310
  • Release v0.40.0 by @xgreenx in #2356

Full Changelog: v0.39.0...v0.40.0

v0.39.0

11 Oct 17:10
5e272eb
Compare
Choose a tag to compare

Version v0.39.0

Added

  • 2324: Added metrics for sync, async processor and for all GraphQL queries.
  • 2320: Added new CLI flag graphql-max-resolver-recursive-depth to limit recursion within resolver. The default value it "1".

Fixed

  • 2320: Prevent /health and /v1/health from being throttled by the concurrency limiter.
  • 2322: Set the salt of genesis contracts to zero on execution.
  • 2324: Ignore peer if we already are syncing transactions from it.

Breaking

  • 2320: Reject queries that are recursive during the resolution of the query.

Changed

Breaking

  • 2311: Changed the text of the error returned by the executor if gas overflows.

What's Changed

  • chore(executor): instrument errors to be more meaningful by @rymnc in #2311
  • fix(dummy_da_block_costs): remove dependency on polling_interval and use channel instead by @rymnc in #2314
  • fix(txpool): Error in GossipsubMessageAcceptance variant docstrings by @netrome in #2316
  • refactor: Eager returns in txpool_v2::service::Task::run by @netrome in #2325
  • fix(api_service): exclude health checks from throttling with ConcurrencyLimitLayer by @rymnc in #2320
  • Remove the normalize_rewards_and_costs() function by @rafal-ch in #2293
  • fix(genesis): set salt of contract on execution of genesis state configuration by @rymnc in #2322
  • Fixing the issue with duplicate transaction synchronization processes by @xgreenx in #2324
  • Reject queries that are recursive during the resolution by @xgreenx in #2330
  • Release v0.39.0 by @rafal-ch in #2333

Full Changelog: v0.38.0...v0.39.0

v0.38.0

08 Oct 04:16
94fe64e
Compare
Choose a tag to compare

Version v0.38.0

Added

  • 2309: Limit number of concurrent queries to the graphql service.
  • 2216: Add more function to the state and task of TxPoolV2 to handle the future interactions with others modules (PoA, BlockProducer, BlockImporter and P2P).
  • 2263: Use the Txpool v2 in the whole codebase.

Removed

  • 2306: Removed hack for genesis asset contract from the code.

What's Changed

Full Changelog: v0.37.1...v0.38.0

v0.37.1

07 Oct 02:04
8c92d37
Compare
Choose a tag to compare

Version v0.37.1

Fixed

  • 2304: Add initialization for the genesis base asset contract.

What's Changed

Full Changelog: v0.37.0...v0.37.1

v0.37.0

05 Oct 23:32
d4ffb2e
Compare
Choose a tag to compare

Version v0.37.0

Added

  • 1609: Add DA compression support. Compressed blocks are stored in the offchain database when blocks are produced, and can be fetched using the GraphQL API.
  • 2290: Added a new CLI argument --graphql-max-directives. The default value is 10.
  • 2195: Added enforcement of the limit on the size of the L2 transactions per block according to the block_transaction_size_limit parameter.
  • 2131: Add flow in TxPool in order to ask to newly connected peers to share their transaction pool
  • 2182: Limit number of transactions that can be fetched via TxSource::next
  • 2189: Select next DA height to never include more than u16::MAX -1 transactions from L1.
  • 2162: Pool structure with dependencies, etc.. for the next transaction pool module. Also adds insertion/verification process in PoolV2 and tests refactoring
  • 2265: Integrate Block Committer API for DA Block Costs.
  • 2280: Allow comma separated relayer addresses in cli
  • 2299: Support blobs in the predicates.
  • 2300: Added new function to fuel-core-client for checking whether a blob exists.

Changed

Breaking

  • 2299: Anyone who wants to participate in the transaction broadcasting via p2p must upgrade to support new predicates on the TxPool level.
  • 2299: Upgraded fuel-vm to 0.58.0. More information in the release.
  • 2276: Changed how complexity for blocks is calculated. The default complexity now is 80_000. All queries that somehow touch the block header now are more expensive.
  • 2290: Added a new GraphQL limit on number of directives. The default value is 10.
  • 2206: Use timestamp of last block when dry running transactions.
  • 2153: Updated default gas costs for the local testnet configuration to match fuel-core 0.35.0.

What's Changed

  • fix: use core-test.fuellabs.net for dnsaddr resolution by @rymnc in #2214
  • Removed state transition bytecode from the local testnet by @xgreenx in #2215
  • Send whole transaction pool upon subscription to gossip by @AurelienFT in #2131
  • Update default gas costs based on 0.35.0 benchmarks by @xgreenx in #2153
  • feat: Use timestamp of last block when dry running transactions by @netrome in #2206
  • fix(dnsaddr_resolution): use fqdn separator to prevent suffixing by dns resolvers by @rymnc in #2222
  • TransactionSource: specify maximum number of transactions to be fetched by @acerone85 in #2182
  • Implement worst case scenario for price algorithm v1 by @rafal-ch in #2219
  • chore(gas_price_service): define port for L2 data by @rymnc in #2224
  • Block producer selects da height to never exceed u64::MAX - 1 transactions from L1 by @acerone85 in #2189
  • Weekly cargo update by @github-actions in #2236
  • Use fees to calculate DA reward and avoid issues with Gwei/Wei conversions by @MitchTurner in #2229
  • Protect against passing i128::MIN to abs() which causes overflow by @rafal-ch in #2241
  • Acquire da_finalization_period from the command line by @rafal-ch in #2240
  • Executor: test Tx_count limit with incorrect tx source by @acerone85 in #2242
  • Minor updates to docs + a few typos fixed by @rafal-ch in #2250
  • chore(gas_price_service): move algorithm_updater to fuel-core-gas-price-service by @rymnc in #2246
  • Use single heavy input in the transaction_throughput.rs benchmarks by @xgreenx in #2205
  • Enforce the block size limit by @rafal-ch in #2195
  • feat: build ARM and AMD in parallel by @mchristopher in #2130
  • Weekly cargo update by @github-actions in #2268
  • chore(gas_price_service): split into v0 and v1 and squash FuelGasPriceUpdater type into GasPriceService by @rymnc in #2256
  • feat(gas_price_service): update block committer da source with established contract by @rymnc in #2265
  • Use bytes from unrecorded_blocks rather from the block from DA by @MitchTurner in #2252
  • TxPool v2 General architecture by @AurelienFT in #2162
  • Add value delimiter and tests args by @AurelienFT in #2280
  • fix(da_block_costs): remove Arc<Mutex<>> on shared_state and expose channel by @rymnc in #2278
  • fix(combined_database): syncing auxiliary databases on startup with custom behaviour by @rymnc in #2272
  • fix: Manually encode Authorization header for eventsource_client by @Br1ght0ne in #2284
  • Address async-graphql vulnerability by @MitchTurner in #2290
  • Update the WASM compatibility tests for 0.36 release by @rafal-ch in #2271
  • DA compression by @Dentosal in #1609
  • Use different port for every version compatibility test by @rafal-ch in #2301
  • Fix block query complexity by @xgreenx in #2297
  • Support blobs in predicates by @Voxelot in #2299
  • Release v0.37.0 by @xgreenx in #2302

Full Changelog: v0.36.0...v0.37.0

v0.36.0

18 Sep 07:11
b00bd0d
Compare
Choose a tag to compare

Version v0.36.0

Added

  • 2135: Added metrics logging for number of blocks served over the p2p req/res protocol.
  • 2151: Added limitations on gas used during dry_run in API.
  • 2188: Added the new variant V2 for the ConsensusParameters which contains the new block_transaction_size_limit parameter.
  • 2163: Added runnable task for fetching block committer data.
  • 2204: Added dnsaddr resolution for TLD without suffixes.

Changed

Breaking

  • 2199: Applying several breaking changes to the WASM interface from backlog:
    • Get the module to execute WASM byte code from the storage first, an fallback to the built-in version in the case of the FUEL_ALWAYS_USE_WASM.
    • Added host_v1 with a new peek_next_txs_size method, that accepts tx_number_limit and size_limit.
    • Added new variant of the return type to pass the validation result. It removes block serialization and deserialization and should improve performance.
    • Added a V1 execution result type that uses JSONError instead of postcard serialized error. It adds flexibility of how variants of the error can be managed. More information about it in FuelLabs/fuel-vm#797. The change also moves TooManyOutputs error to the top. It shows that JSONError works as expected.
  • 2145: feat: Introduce time port in PoA service.
  • 2155: Added trait declaration for block committer data
  • 2142: Added benchmarks for varied forms of db lookups to assist in optimizations.
  • 2158: Log the public address of the signing key, if it is specified
  • 2188: Upgraded the fuel-vm to 0.57.0. More information in the release.

What's Changed

  • chore(p2p_service): add metrics for number of blocks requested over p2p req/res protocol by @rymnc in #2135
  • Weekly cargo update by @github-actions in #2149
  • Debug V1 algorightm and use more realistic values in gas price analysis by @MitchTurner in #2129
  • feat(gas_price_service): include trait declaration for block committer data by @rymnc in #2155
  • Convert gas price analysis tool to CLI by @MitchTurner in #2156
  • chore: add benchmarks for varied forms of lookups by @rymnc in #2142
  • Add label nochangelog on weekly cargo update by @AurelienFT in #2152
  • Log consensus-key signer address if specified by @acerone85 in #2158
  • chore(rocks_db): move ShallowTempDir to benches crate by @rymnc in #2168
  • chore(benches): conditional dropping of databases in benchmarks by @rymnc in #2170
  • feat: Introduce time port in PoA service by @netrome in #2145
  • Get DA costs from predefined data by @MitchTurner in #2157
  • chore(shallow_temp_dir): panic if not panicking by @rymnc in #2172
  • chore: Add initial CODEOWNERS file by @netrome in #2179
  • Weekly cargo update by @github-actions in #2177
  • fix(db_lookup_times): rework core logic of benchmark by @rymnc in #2159
  • Add verification on transaction dry_run that they don't spend more than block gas limit by @AurelienFT in #2151
  • bug: fix algorithm overflow issues by @MitchTurner in #2173
  • feat(gas_price_service): create runnable task for expensive background polling for da metadata by @rymnc in #2163
  • Weekly cargo update by @github-actions in #2197
  • Fix bug with gas price factor in V1 algorithm by @MitchTurner in #2201
  • Applying several breaking changes to the WASM interface from backlog by @xgreenx in #2199
  • chore(p2p): dnsaddr recursive resolution by @rymnc in #2204
  • Release v0.36.0 by @xgreenx in #2213

New Contributors

Full Changelog: v0.35.0...v0.36.0

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