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 0.18.0 #1165

Merged
merged 11 commits into from
Apr 27, 2023
Merged

Release 0.18.0 #1165

merged 11 commits into from
Apr 27, 2023

Conversation

xgreenx
Copy link
Collaborator

@xgreenx xgreenx commented Apr 27, 2023

The change bumps the version to 0.18.0 and exposes sync_max_get_header and sync_max_get_txns in the helm chart.

Release 0.18.0

Overview

A new release brings:

  • Optimization for the execution based on the performance from beta 3 and on internal benchmarks. Improved metrics gathering.
  • Stabilization and better test coverage of the fuel-vm. We removed almost all unsafe code and added test cases for each opcode. Fixed some edge cases with memory in the fuel-vm.
  • Fully integrated Merkle trees and filled all malleable fields in the transactions.
  • Added retryable messages, removed redundant fields from it, and updated the API to support a new commitment schema.

What's Changed

Breaking

All changes

Full Changelog: v0.17.3...v0.18.0

xgreenx added 7 commits April 25, 2023 12:22
- Replaced combined `column_key` with an array of hash maps.
- Added RocksDB LRU cache for uncompressed rows. It speeds up the
loading of objects from the database two times.
<img width="1190" alt="image"
src="https://user-images.githubusercontent.com/18346821/233048562-428ee4e5-39fa-4e97-8918-b764824814ba.png">
<img width="1190" alt="image"
src="https://user-images.githubusercontent.com/18346821/233048615-4f4adb88-7736-471d-b5a9-048e24fcd81a.png">

- Optimized the deserialization of the contracts via the
`OptimizedContract` wrapper type. Instead of 53% now it takes only 10%
of the time.
<img width="1195" alt="image"
src="https://user-images.githubusercontent.com/18346821/233048817-85ae413f-888a-4522-9dde-287814514d5a.png">

- Replaced all values `Vec<u8>` with `Arc<Vec<u8>>` to avoid cloning
because we use it only for deserialization, and we can't consume the
actual `Vec<u8>`. It is helpful for `MemoryStore` and
`MemoryTransactionView`.
- Added a new e2e test for the contract with a large state.
- Updated the `snapshot`command to do a snapshot only of the contract's
state.
- Updated the `MemoryStore` to use `BTreeMap` instead of `HashMap`. It
significantly improved the performance of the `iter_all` without
`RocksDB`. Without this optimization, a new e2e failed for
`--no-default-features` build with a timeout(but worked with `RocksDB`).
- Added a new e2e test that allows dry run any hex-encoded transaction.
- Simplified the `PrometheusExtension`.
- Use a new `fuel-vm 0.26.3` with disabled logging for `instruction` function.
- Use `tokio_rayon::spawn_fifo` to run dry runs instead of manual semaphore and `tokio::spawn_blocking`.
- Removed 5 second delay for dry runs caused by the relayer.
# Conflicts:
#	Cargo.lock
#	bin/fuel-core/src/cli/snapshot.rs
#	crates/fuel-core/src/graphql_api/service.rs
Expose `sync_max_get_header` and `sync_max_get_txns` in the helm chart.
@xgreenx xgreenx self-assigned this Apr 27, 2023
Base automatically changed from feature/optimizations-from-testnet to master April 27, 2023 10:44
# Conflicts:
#	Cargo.lock
#	Cargo.toml
#	bin/e2e-test-client/src/tests/test_data/large_state/tx.json
#	deployment/charts/Chart.yaml
@xgreenx xgreenx marked this pull request as ready for review April 27, 2023 17:13
@xgreenx xgreenx requested a review from a team April 27, 2023 17:13
@Voxelot
Copy link
Member

Voxelot commented Apr 27, 2023

Thanks for summarizing all the changes!

@xgreenx xgreenx merged commit 19f12ea into master Apr 27, 2023
@xgreenx xgreenx deleted the release/0.18.0 branch April 27, 2023 19:26
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.

2 participants