-
Notifications
You must be signed in to change notification settings - Fork 2.8k
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
Release 0.18.0 #1165
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- 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.
# Conflicts: # Cargo.lock # Cargo.toml # bin/e2e-test-client/src/tests/test_data/large_state/tx.json # deployment/charts/Chart.yaml
Voxelot
approved these changes
Apr 27, 2023
Thanks for summarizing all the changes! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The change bumps the version to
0.18.0
and exposessync_max_get_header
andsync_max_get_txns
in the helm chart.Release 0.18.0
Overview
A new release brings:
fuel-vm
. We removed almost all unsafe code and added test cases for each opcode. Fixed some edge cases with memory in thefuel-vm
.What's Changed
Breaking
fuel-crypto
- Refactor offuel-crypto
for clarity around safety fuel-vm#346$hp
holds the address of the last available byte in a heap, while previously it was$hp - 1
- Make $hp point to the first available byte, instead of the one before it fuel-vm#377fuel_tx::Input
enum now has its own type - Refactoring inputs to be named types fuel-vm#364Bytes32
everywhere - Use 32-byte array instead ofWord
for the message nonce fuel-vm#394message_id
field from all places - Removemessage_id
field from the receipt fuel-vm#397, Retryable messagesfuel-vm
part fuel-vm#373,BlockHeigh
- AddedBlockHeight
type and unified the code to use it everywhere fuel-vm#410sign
function - Chain ID included in transaction ID's and predicate owners fuel-vm#406produce_blocks
endpoint to accept the start time and the number of blocks. All new blocks will use the previous timestamp as a base - Take into account the previous block timestamp during block production #1059fuel-core
stores only unspent coins and messages, so all API that previously returned spent coins is affected - Prune owned coin idx when inputs are spent by @Voxelot in Prune owned coin idx when inputs are spent #1055fuel-core
now has retryable messages and coin messages. Retryable messages can only be consumed during successful transaction execution. The coin message acts as common coins.resouces_to_spend
API was replaced withcoins_to_spend
that returns a newCoinType
type. - Retrayable messages fuel-core part #1067All changes
BASE_AMOUNT
for test with bob to pay for fee by @xgreenx in UsedBASE_AMOUNT
for test with bob to pay for fee #1057dry_run
by @xgreenx in Added e2e test to run 1000dry_run
#10910.17.11
release by @xgreenx in Applying optimizations from0.17.11
release #1158Full Changelog: v0.17.3...v0.18.0