Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v0.41.0 #2565

Merged
merged 4 commits into from
Jan 15, 2025
Merged

Release v0.41.0 #2565

merged 4 commits into from
Jan 15, 2025

Conversation

xgreenx
Copy link
Collaborator

@xgreenx xgreenx commented Jan 15, 2025

Version v0.41.0

Added

  • 2547: Replace the old Graphql gas price provider adapter with the ArcGasPriceEstimate.
  • 2445: Added GQL endpoint for querying asset details.
  • 2442: Add uninitialized task for V1 gas price service
  • 2154: Added Unknown variant to ConsensusParameters graphql queries
  • 2154: Added Unknown variant to Block graphql queries
  • 2154: Added TransactionType type in fuel-client
  • 2321: New metrics for the TxPool:
    • The size of transactions in the txpool (txpool_tx_size)
    • The time spent by a transaction in the txpool in seconds (txpool_tx_time_in_txpool_seconds)
    • The number of transactions in the txpool (txpool_number_of_transactions)
    • The number of transactions pending verification before entering the txpool (txpool_number_of_transactions_pending_verification)
    • The number of executable transactions in the txpool (txpool_number_of_executable_transactions)
    • The time it took to select transactions for inclusion in a block in microseconds (txpool_select_transactions_time_microseconds)
    • The time it took to insert a transaction in the txpool in microseconds (transaction_insertion_time_in_thread_pool_microseconds)
  • 2385: Added new histogram buckets for some of the TxPool metrics, optimize the way they are collected.
  • 2347: Add activity concept in order to protect against infinitely increasing DA gas price scenarios
  • 2362: Added a new request_response protocol version /fuel/req_res/0.0.2. In comparison with /fuel/req/0.0.1, which returns an empty response when a request cannot be fulfilled, this version returns more meaningful error codes. Nodes still support the version 0.0.1 of the protocol to guarantee backward compatibility with fuel-core nodes. Empty responses received from nodes using the old protocol /fuel/req/0.0.1 are automatically converted into an error ProtocolV1EmptyResponse with error code 0, which is also the only error code implemented. More specific error codes will be added in the future.
  • 2386: Add a flag to define the maximum number of file descriptors that RocksDB can use. By default it's half of the OS limit.
  • 2376: Add a way to fetch transactions in P2P without specifying a peer.
  • 2361: Add caches to the sync service to not reask for data it already fetched from the network.
  • 2327: Add more services tests and more checks of the pool. Also add an high level documentation for users of the pool and contributors.
  • 2416: Define the GasPriceServiceV1 task.
  • 2447: Use new expiration policy in the transaction pool. Add a mechanism to prune the transactions when they expired.
  • 1922: Added support for posting blocks to the shared sequencer.
  • 2033: Remove Option<BlockHeight> in favor of BlockHeightQuery where applicable.
  • 2490: Added pagination support for the balances GraphQL query, available only when 'balances indexation' is enabled.
  • 2439: Add gas costs for the two new zk opcodes ecop and eadd and the benches that allow to calibrate them.
  • 2472: Added the amountU128 field to the Balance GraphQL schema, providing the total balance as a U128. The existing amount field clamps any balance exceeding U64 to u64::MAX.
  • 2526: Add possibility to not have any cache set for RocksDB. Add an option to either load the RocksDB columns families on creation of the database or when the column is used.
  • 2532: Getters for inner rocksdb database handles.
  • 2524: Adds a new lock type which is optimized for certain workloads to the txpool and p2p services.
  • 2535: Expose backup and restore APIs on the CombinedDatabase struct to create portable backups and restore from them.
  • 2550: Add statistics and more limits infos about txpool on the node_info endpoint

Fixed

  • 2560: Fix flaky test by increasing timeout
  • 2558: Rename cost and reward to remove excess wording
  • 2469: Improved the logic for syncing the gas price database with on_chain database
  • 2365: Fixed the error during dry run in the case of race condition.
  • 2366: The importer_gas_price_for_block metric is properly collected.
  • 2369: The transaction_insertion_time_in_thread_pool_milliseconds metric is properly collected.
  • 2413: block production immediately errors if unable to lock the mutex.
  • 2389: Fix construction of reverse iterator in RocksDB.
  • 2479: Fix an error on the last iteration of the read and write sequential opcodes on contract storage.
  • 2478: Fix proof created by message_receipts_proof function by ignoring the receipts from failed transactions to match message_outbox_root.
  • 2485: Hardcode the timestamp of the genesis block and version of tai64 to avoid breaking changes for us.
  • 2511: Fix backward compatibility of V0Metadata in gas price db.

Changed

  • 2469: Updated adapter for querying costs from DA Block committer API
  • 2469: Use the gas price from the latest block to estimate future gas prices
  • 2501: Use gas price from block for estimating future gas prices
  • 2468: Abstract unrecorded blocks concept for V1 algorithm, create new storage impl. Introduce TransactionableStorage trait to allow atomic changes to the storage.
  • 2295: CombinedDb::from_config now respects state_rewind_policy with tmp RocksDB.
  • 2378: Use cached hash of the topic instead of calculating it on each publishing gossip message.
  • 2438: Refactored service to use new implementation of StorageRead::read that takes an offset in input.
  • 2429: Introduce custom enum for representing result of running service tasks
  • 2377: Add more errors that can be returned as responses when using protocol /fuel/req_res/0.0.2. The errors supported are ProtocolV1EmptyResponse (status code 0) for converting empty responses sent via protocol /fuel/req_res/0.0.1, RequestedRangeTooLarge(status code 1) if the client requests a range of objects such as sealed block headers or transactions too large, Timeout (status code 2) if the remote peer takes too long to fulfill a request, or SyncProcessorOutOfCapacity if the remote peer is fulfilling too many requests concurrently.
  • 2233: Introduce a new column modification_history_v2 for storing the modification history in the historical rocksDB. Keys in this column are stored in big endian order. Changed the behaviour of the historical rocksDB to write changes for new block heights to the new column, and to perform lookup of values from the modification_history_v2 table first, and then from the modification_history table, performing a migration upon access if necessary.
  • 2383: The balance and balances GraphQL query handlers now use index to provide the response in a more performant way. As the index is not created retroactively, the client must be initialized with an empty database and synced from the genesis block to utilize it. Otherwise, the legacy way of retrieving data will be used.
  • 2463: The coinsToSpend GraphQL query handler now uses index to provide the response in a more performant way. As the index is not created retroactively, the client must be initialized with an empty database and synced from the genesis block to utilize it. Otherwise, the legacy way of retrieving data will be used.
  • 2556: Ensure that the last_recorded_height is set for the DA gas price source.

Breaking

  • 2469: Move from GasPriceServicev0 to GasPriceServiceV1. Include new config values.
  • 2438: The fuel-core-client can only work with new version of the fuel-core. The 0.40 and all older versions are not supported.
  • 2438: Updated fuel-vm to 0.59.1 release. Check release notes for more details.
  • 2389: Updated the messageProof GraphQL schema to return a non-nullable MessageProof.
  • 2154: Transaction graphql endpoints use TransactionType instead of fuel_tx::Transaction.
  • 2446: Use graphiql instead of graphql-playground due to known vulnerability and stale development.
  • 2379: Change kv_store::Value to be Arc<[u8]> instead of Arc<Vec<u8>>.
  • 2490: Updated GraphQL complexity calculation for balances query to account for pagination (first/last) and nested field complexity (child_complexity). Queries with large pagination values or deeply nested fields may have higher complexity costs.
  • 2463: 'CoinsQueryError::MaxCoinsReachedvariant has been removed. TheInsufficientCoinsvariant has been renamed toInsufficientCoinsForTheMaxand it now contains the additionalmax` field
  • 2463: The number of excluded ids in the coinsToSpend GraphQL query is now limited to the maximum number of inputs allowed in transaction.
  • 2463: The coinsToSpend GraphQL query may now return different coins, depending whether the indexation is enabled or not. However, regardless of the differences, the returned coins will accurately reflect the current state of the database within the context of the query.
  • 2526: By default the cache of RocksDB is now disabled instead of being 1024 * 1024 * 1024.

What's Changed

New Contributors

Full Changelog: v0.40.0...v0.41.0

@xgreenx xgreenx self-assigned this Jan 15, 2025
@xgreenx xgreenx requested review from mchristopher, Voxelot and a team January 15, 2025 02:48
AurelienFT
AurelienFT previously approved these changes Jan 15, 2025
MitchTurner
MitchTurner previously approved these changes Jan 15, 2025
Copy link
Member

@MitchTurner MitchTurner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lfg

…features are enabled and causes flakyness of CI.
@xgreenx xgreenx dismissed stale reviews from MitchTurner and AurelienFT via c2f0077 January 15, 2025 04:34
@xgreenx xgreenx merged commit 2287292 into master Jan 15, 2025
31 checks passed
@xgreenx xgreenx deleted the release/v0.41.0 branch January 15, 2025 05:00
@xgreenx xgreenx restored the release/v0.41.0 branch January 15, 2025 22:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants