Releases: FuelLabs/fuel-core
Releases · FuelLabs/fuel-core
v0.40.0
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 is2
,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 withdisable-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 tomax_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 ofIterator
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
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
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
- Updates to price algorithm by @rafal-ch in #2292
- Removed hack from the code by @xgreenx in #2306
- fix(p2p): useless dials to reserved nodes which dont have a location multiaddress by @rymnc in #2308
- Txpool v2 features for futures connections with other modules by @AurelienFT in #2216
- Limit number of concurrent queries to the graphql service by @netrome in #2309
- Linking TxPoolV2 in place of V1 by @AurelienFT in #2263
- Release v0.38.0 by @xgreenx in #2315
Full Changelog: v0.37.1...v0.38.0
v0.37.1
v0.37.0
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 is10
. - 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
to0.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 is10
. - 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
toabs()
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
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 theConsensusParameters
which contains the newblock_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 newpeek_next_txs_size
method, that acceptstx_number_limit
andsize_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 movesTooManyOutputs
error to the top. It shows thatJSONError
works as expected.
- Get the module to execute WASM byte code from the storage first, an fallback to the built-in version in the case of the
- 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
to0.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
- @acerone85 made their first contribution in #2158
Full Changelog: v0.35.0...v0.36.0
v0.35.0
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 theSubmittedStatus
after the transaction is submitted as well as theTransactionStatus
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 byBytes20
offuel-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
- @MoneyBund made their first contribution in #2035
- @maschad made their first contribution in #2120
Full Changelog: v0.34.0...v0.35.0
v0.34.0
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, useCONSENSUS_KEY_SECRET
instead. Also raises MSRV to1.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
- @mmyyrroonn made their first contribution in #2072
Full Changelog: v0.33.0...v0.34.0
v0.33.0
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
withiter_all_keys
where necessary.
Breaking
- 2080: Reject Upgrade txs with invalid wasm on txpool level.
- 2082: Move
TxPoolError
fromfuel-core-types
tofuel-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 tofuel-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
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 ifstart-gas-price
is zero. - 2059: Remove unwrap that is breaking backwards compatibility
- 2063: Don't use historical view during dry run.
What's Changed
- Bugfix: Remove unwrap in Consensus Param conversion by @MitchTurner in #2059
- Don't use historical view during dry run by @xgreenx in #2063
- Weekly
cargo update
by @github-actions in #2050 - Allow gas price metadata values to be overridden with config by @MitchTurner in #2064
- Use
min-gas-price
as a starting point ifstart-gas-price
is zero by @xgreenx in #2060 - Allow querying transaction from the status by @xgreenx in #2061
- Return error from TxPool level if the
BlobId
is known by @xgreenx in #2067 - Version 0.32.1 by @MitchTurner in #2069
Full Changelog: v0.32.0...v0.32.1