Releases: FuelLabs/fuel-core
v0.42.0
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, movedtx_id_commitment
to the application header ofBlockHeaderV2
. - 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 from1s
to100ms
. 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
- To disable
- 2840: CLI argument
vm-backtrace
is deprecated and does nothing. It will be removed in a future version offuel-core
.
Theextra_tx_checks
field was renamed intoforbid_fake_coins
that affects JSON based serialization/deserialization.
Renamedextra_tx_checks_default
field intoforbid_fake_coins_default
.
Added
-
2150: Upgraded
libp2p
to0.54.1
and introducedConnectionLimiter
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
orDestroy
outputs for all assets from the inputsVariable
outputs in the case they are required during the executionContract
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
- Input coins to cover
-
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). TheChange
output from the transaction
also count as aChangePolicy
. - 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 toOpen
. TheOpen
mode starts the production of the next block immediately after the previous block. The block is open until theperiod
passed. The period is a duration represented by100ms
,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 theTaskNextAction
-
2840: Added a new CLI arguments:
assemble-tx-dry-run-limit
- The max number how many times script can be executed duringassemble_tx
GraphQL request. Default value is3
times.assemble-tx-estimate-predicates-limit
- The max number how many times predicates can be estimated duringassemble_tx
GraphQL request. Default values is10
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
andstrum_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_size
for the postcard codec used inRequestResponse
protocols has been changed fromusize
tou64
. - 2473: Graphql requests and responses make use of a new
extensions
object to specify request/response metadata. A requestextensions
object can contain an integer-valuedrequired_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 therequired_fuel_block_height
field. All graphql responses now contain an integer-valuedcurrent_fuel_block_height
field in theextensions
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...
v0.41.9
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
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
Version 0.41.7
Fixed
- 2710: Update Fuel-VM to fix compressed transaction backward compatibility.
What's Changed
- Update fuel-vm 0.59.2 by @AurelienFT in #2710
- Bump versions to 0.41.7 by @AurelienFT in #2711
Full Changelog: v0.41.6...v0.41.7
v0.41.6
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 theInMemoryTransaction
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
v0.41.5
Version 0.41.5
Warning
This release has a bug while executing the LDC and CCP opcodes. It has been patched in v0.41.6, please use that version.
Changed
- 2387: Update description
tx-max-depth
flag. - 2630: Removed some noisy
tracing::info!
logs - 2643: Before this fix when tip is zero, transactions that use 30M have the same priority as transactions with 1M gas. Now they are correctly ordered.
Added
- 2617: Add integration skeleton of parallel-executor.
- 2553: Scaffold global merkle root storage crate.
- 2598: Add initial test suite for global merkle root storage updates.
- 2635: Add metrics to gas price service
Fixed
- 2632: Improved performance of certain async trait impls in the gas price service.
- 2662: Fix balances query endpoint cost without indexation and behavior coins to spend with one parameter at zero.
What's Changed
- Remove noisy logging by @MitchTurner in #2630
- chore(gas_price_service): refactor usage of async_trait impls to improve performance by @rymnc in #2632
- Change description flag depth in TxPool by @AurelienFT in #2387
- Add generation of docker images on release/master push by @AurelienFT in #2631
- chore(async_trait): reduce usage of async_trait for small types again by @rymnc in #2634
- chore(gas_price_service): minor refactors to make the code more readable by @rymnc in #2636
- Remove netlink proto fix by @AurelienFT in #2637
- fault_proving(global_roots): scaffold global merkle root storage crate by @netrome in #2553
- Add metrics to gas price service by @MitchTurner in #2635
- chore: Add code owners for fraud proofs by @netrome in #2649
- Patch transaction pool ordering zero tip by @AurelienFT in #2643
- chore: Add entire team as code owners for the changelog and
Cargo.lock
by @netrome in #2655 - fault_proving(global_roots): Initial test suite for merklized storage updates by @netrome in #2598
- Add integration skeleton of parallel-executor by @AurelienFT in #2617
- Fix balances query endpoint cost without indexation and behavior coins to spend with one parameter at zero by @AurelienFT in #2662
- Add print of collision reason in TxPool by @AurelienFT in #2664
- Release/v0.41.5 by @AurelienFT in #2663
Full Changelog: v0.41.4...v0.41.5
v0.40.4
Version 0.40.4
Changed
- 2639: Refactor fetching
latest_height
fromOnChainIterableKeyValueView
to instead use height at the time of its creation.
Fixed
- 2638: Optimize the
cumulative_percent_change
function used in estimation of gas price, convert multiple async functions to sync. - 2641: Remove
txPoolStats
requirement from fuel core client - 2642: Before this fix when tip is zero, transactions that use 30M have the same priority as transactions with 1M gas. Now they are correctly ordered.
What's Changed
- backport(gas_price_service): performance improvements to estimate_gas_price by @rymnc in #2638
- chore(storage): use the cached block height from the database at the time of creation of the view by @rymnc in #2639
- Bump to 0.40.4 versions by @AurelienFT in #2640
- Remove txpool request client by @AurelienFT in #2641
- Backport: patch transaction pool ordering zero tip by @AurelienFT in #2642
Full Changelog: v0.40.3...v0.40.4
v0.41.4
What's Changed
Warning
This release has a bug while executing the LDC and CCP opcodes. It has been patched in v0.41.6, please use that version.
- Release 0.41.4 by @AurelienFT in #2629
Full Changelog: v0.41.3...v0.41.4
v0.41.3
What's Changed
Warning
This release has a bug while executing the LDC and CCP opcodes. It has been patched in v0.41.6, please use that version.
- fix(rocksdb): import when rocksdb is enabled within local_node_with_reader fn by @rymnc in #2626
- Release 0.41.3 by @AurelienFT in #2628
Full Changelog: v0.41.2...v0.41.3