Releases: FuelLabs/fuel-core
Releases · FuelLabs/fuel-core
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
Version 0.32.0
Added
Added
- 1983: Add adapters for gas price service for accessing database values
Breaking
- 2048: Disable SMT for
ContractsAssets
andContractsState
for the production mode of thefuel-core
. The SMT still is used in benchmarks and tests. - #1988: Updated
fuel-vm
to0.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
- L2 Block Source & Metadata Storage implementations by @MitchTurner in #1983
- Weekly
cargo update
by @github-actions in #2029 - Add V0 algorithm to actual services by @MitchTurner in #2025
- Weekly
cargo update
by @github-actions in #2039 - Add syncronization for Gas Price Database and On Chain Database on startup by @MitchTurner in #2041
- Ignore the message receipt if transaction is reverted by @xgreenx in #2045
- feat: add chain config to Docker images by @mchristopher in #2052
- Blob tx support and fuel-vm 0.56.0 by @Dentosal in #1988
- Disable SMT for
ContractsAssets
andContractsState
by @xgreenx in #2048 - Bug/fix gas price metadata sync by @MitchTurner in #2056
- Release v0.32.0 by @MitchTurner in #2053
New Contributors
- @mchristopher made their first contribution in #2052
Full Changelog: v0.31.0...v0.32.0
v0.31.0
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
forGasPriceService
- #1948: Add new
AlgorithmV1
andAlgorithmUpdaterV1
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
to0.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 thegraphql-request-body-bytes-limit
CLI argument. - #1991: Prepare the database to use different types than
Database
for atomic view. - #1989: Extract
HistoricalView
trait from theAtomicView
. - #1676: New
fuel-core-client
is incompatible with the oldfuel-core
because of two requested new fields. - #1676: Changed default value for
api-request-timeout
to be30s
. - #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 theAtomicView
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
to0.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
- @Jurshsmith made their first contribution in #1992
- @DefiCake made their first contribution in #1980
Full Changelog: v0.30.0...v0.31.0
v0.30.0
Version v0.30.0
Added
- #1975: Added
DependentCost
benchmarks for thecfe
andcfei
opcodes. - #1975: Added
DependentCost
for thecfe
opcode to theGasCosts
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 returnDependentCost
for thecfei
opcode viacfeiDependentCost
. - #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
Version v0.29.0
Added
- #1889: Add new
FuelGasPriceProvider
that receives the gas price algorithm from aGasPriceService
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 inSortedTXCursor
What's Changed
- Fix code coverage compilation and tests by @Dentosal in #1943
- Weekly
cargo update
by @github-actions in #1949 - Fix cursor block height decoding in SortedTXCursor by @AurelienFT in #1950
- Sequential relayer's commits by @xgreenx in #1942
- Add Gas Price Updater Service by @MitchTurner in #1938
- Change tip sorting to ratio between tip and max gas sorting in txpool by @AurelienFT in #1952
- deps(client): update eventsource-client to fix CVE(s) by @Br1ght0ne in #1954
- Update fuel-vm to v0.53.0 by @Dentosal in #1960
- Release v0.29.0 by @xgreenx in #1963
New Contributors
- @AurelienFT made their first contribution in #1950
Full Changelog: v0.28.0...v0.29.0
v0.28.0
Version v0.28.0
Changed
- #1934: Updated benchmark for the
aloc
opcode to beDependentCost
. Updatedvm_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 returnDependentCost
for thealoc
opcode viaalocDependentCost
. - #1934: Updated default gas costs for the local testnet configuration. All opcodes became cheaper.
- #1924:
dry_run_opt
has newgas_price: Option<u64>
argument - #1888: Upgraded
fuel-vm
to0.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 todry_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
foraloc
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
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
andFuelBlockMerkleMetadata
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 theBlock
andBlockHeader
GraphQL entities. Added correspondingversion
field to theBlock
andBlockHeader
client types infuel-core-client
. - #1873: Separate dry runs from block production in executor code, remove
ExecutionKind
andExecutionType
, removethread_block_transaction
concept, removePartialBlockComponent
type, refactor awayinner
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 to0.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
to0.50.0
by @xgreenx in #1910 - Release v0.27.0 by @xgreenx in #1912
New Contributors
Full Changelog: v0.26.0...v0.27.0
v0.26.0
Version v0.26.0
Fixed
Breaking
- #1868: Include the
event_inbox_root
in the header hash. Changed types of thetransactions_count
tou16
andmessage_receipt_count
tou32
instead ofu64
. Updated the application hash root calculation to not pad numbers. - #1866: Fixed a runtime panic that occurred when restarting a node. The panic happens when the relayer database is already populated, and the relayer attempts an empty commit during start up. This invalid commit is removed in this PR.
- #1871: Fixed
block
endpoint to return fetch the blocks from both databases after regenesis. - #1856: Replaced instances of
Union
withEnum
for GraphQL definitions ofConsensusParametersVersion
and related types. This is needed becauseUnion
does not support multipleVersion
s inside discriminants or empty variants. - #1870: Fixed benchmarks for the
0.25.3
. - #1870: Improves the performance of getting the size of the contract from the
InMemoryTransaction
. - #1851: Provided migration capabilities (enabled addition of new column families) to RocksDB instance.
Added
- #1853: Added a test case to verify the database's behavior when new columns are added to the RocksDB database.
- #1860: Regenesis now preserves
FuelBlockIdsToHeights
off-chain table.
Changed
- #1847: Simplify the validation interface to use
Block
. RemoveValidation
variant ofExecutionKind
. - #1832: Snapshot generation can be cancelled. Progress is also reported.
- #1837: Refactor the executor and separate validation from the other use cases
What's Changed
- Weekly
cargo update
by @github-actions in #1850 - Refactor/separate validation from other executions by @MitchTurner in #1837
- fix: Use
Enum
forConsensusParametersVersion
and related types by @bvrooman in #1856 - feat: snapshot generation graceful shutdown by @segfault-magnet in #1832
- regenesis: migrate FuelBlockIdsToHeights by @Dentosal in #1860
- Weekly
cargo update
by @github-actions in #1869 - Refactor/Simplify validation logic by @MitchTurner in #1847
- Fixed
block
endpoint to return fetch the blocks from both databases after regenesis by @xgreenx in #1871 - Add Eq and Partial Eq to tx response and status by @MujkicA in #1872
- test: restart with relayer data by @bvrooman in #1866
- Fix
BlockHeader
hash by @MitchTurner in #1868 - Added a test for the case of adding new columns into the existing RocksDB database by @xgreenx in #1853
- Fixed benchmarks for the
0.25.3
by @xgreenx in #1870 - Release v0.26.0 by @xgreenx in #1874
Full Changelog: v0.25.3...v0.26.0