Releases: FuelLabs/fuel-core
Releases · FuelLabs/fuel-core
v0.17.12
v0.18.1
v0.18.0
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 thefuel-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 unsafe functions were replaced with safe analog in the
fuel-crypto
- FuelLabs/fuel-vm#346 $hp
holds the address of the last available byte in a heap, while previously it was$hp - 1
- FuelLabs/fuel-vm#377- Each variant in the
fuel_tx::Input
enum now has its own type - FuelLabs/fuel-vm#364 - Message nonce is unified and now
Bytes32
everywhere - FuelLabs/fuel-vm#394 - Removed the
message_id
field from all places - FuelLabs/fuel-vm#397, FuelLabs/fuel-vm#373, - Unified the block height in all places with the introduction of a new
BlockHeigh
- FuelLabs/fuel-vm#410 - Make SMO instruction take data ptr as an argument - FuelLabs/fuel-vm#404
- Now the chain id affects the signature and predicate's owner and should be passed into the
sign
function - FuelLabs/fuel-vm#406 - Updated the
produce_blocks
endpoint to accept the start time and the number of blocks. All new blocks will use the previous timestamp as a base - #1059 - The
fuel-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 #1055 - The message proof API has been changed to be compatible with a new version - #1071
- The
fuel-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. - #1067
All changes
- adding fuel-core service monitor to helm chart by @rfuelsh in #1037
- Adding specific app selector by @rfuelsh in #1039
- use sticky sessions for GQL requests to sentries by @Voxelot in #1042
- Add ingress service name to helm chart by @rfuelsh in #1043
- Added test to verify the iteration over owned transactions by @xgreenx in #1041
- Change sentry lb to use clusterIP by @Voxelot in #1045
- Fixed Tempfile dependency by @ControlCplusControlV in #1048
- Write contract code in raw by @freesig in #994
- attempt to use buildjet runners by @Voxelot in #1017
- Set tx pointer during block production by @Voxelot in #1054
- Used
BASE_AMOUNT
for test with bob to pay for fee by @xgreenx in #1057 - Prepare GraphQL Crate for extraction by @ControlCplusControlV in #1012
- Support large contract deployments over p2p by @Voxelot in #1062
- fix yaml and add linting job by @Voxelot in #1063
- Actualized the ABI for message to be compatible with last version of the Solidity contracts. by @xgreenx in #1060
- feat: Contract state and assets merkle data storage by @bvrooman in #1008
- Take into account the previous block timestamp during block production by @xgreenx in #1059
- Prune owned coin idx when inputs are spent by @Voxelot in #1055
- Retrayable messages fuel-core part by @xgreenx in #1067
- chore: Additional Tests for Contract States and Balances by @bvrooman in #1073
- Rust 1.68.1 & Sparse Registry by @Voxelot in #1077
- Nginx tuneup by @Voxelot in #1080
- chore: Update balance and state Merkleization by @bvrooman in #1084
- Support sticky session in the client by @xgreenx in #1079
- Added e2e test to run 1000
dry_run
by @xgreenx in #1091 - Use docker.io auth credentials to overcome rate limiting by @Voxelot in #1092
- honeycomb tracing subscription by @Voxelot in #1083
- Update withdrawal proof API to support proving from a block header committed to L1 by @xgreenx in #1071
- Upstream v0.17.8 by @Voxelot in #1102
- use chainid for transactions and predicates by @Voxelot in #1107
- fix the dry-run e2e test to actually perform dry runs by @Voxelot in #1111
- peer reputation with separate app & gossipsub score by @leviathanbeak in #1028
- Adding sentry data synchronization by @rfuelsh in #1115
- Capture metrics for graphql api by @Voxelot in #1113
- Update cargo audit and add to commit by @freesig in #1152
- add task params by @leviathanbeak in #1159
- Took into account that block creation could take some time by @xgreenx in #1162
- Applying optimizations from
0.17.11
release by @xgreenx in #1158
Full Changelog: v0.17.3...v0.18.0
v0.17.11
What's Changed
- 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.
- Optimized the deserialization of the contracts via the
OptimizedContract
wrapper type. Instead of 53% now it takes only 10% of the time. - Replaced all values
Vec<u8>
withArc<Vec<u8>>
to avoid cloning because we use it only for deserialization, and we can't consume the actualVec<u8>
. It is helpful forMemoryStore
andMemoryTransactionView
. - Updated the
MemoryStore
to useBTreeMap
instead ofHashMap
. It significantly improved the performance of theiter_all
withoutRocksDB
. Without this optimization, a new e2e failed for--no-default-features
build with a timeout(but worked withRocksDB
). - Simplified the
PrometheusExtension
to work without the lock. - Use a new
fuel-vm 0.26.3
with disabled logging forinstruction
function. - Use
tokio_rayon::spawn_fifo
to run dry runs instead of manual semaphore andtokio::spawn_blocking
. - Removed 5 second delay for dry runs caused by the relayer.
For more information check the #1157.
Full Changelog: v0.17.10...v0.17.11
v0.17.10
v0.17.9
v0.17.8
What's Changed
- Disable
dap
debugger endpoints in the production docker image since we don't have any automated debug session cleanup yet - Switch to using jemalloc as the global allocator in fuel-core-bin / docker
- Fixed a panic on startup when using the docker image without p2p configured
Full Changelog: v0.17.7...v0.17.8
v0.17.7
What's changed
- Added honeycomb tracing subscription to gather data regarding GraphQL queries.
Full Changelog: v0.17.6...v0.17.7