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