Releases: FuelLabs/fuel-core
Releases · FuelLabs/fuel-core
v0.20.1
Release v0.20.1
The release brings a couple of new breaking changes from the fuel-vm 0.35.0
with bugfixes. Check the description of the VM release for more details.
The fuel-core
release mostly improved the internal codebase but also brought some breaking changes:
- Removed
Trigger::Hybrid
PoA block trigger mode. OnlyTrigger::Instante
andTrigger::Interval
are available for block production now. The main mode for testnets and mainnet will beInterval
. - Removed support for
OpaqueReceipt
and theReceipt
type doesn't have theraw_payload
field anymore. - A
Receipt
type got two new variants:Mint
andBurn
. The corresponding opcodes emit these new events. - The
AssetId
is derived fromContractId
and additional nonce. So theContractId
andAssetId
can't be the same anymore.
What's Changed
- bump rocksdb to enable compiling with GCC 13 by @segfault-magnet in #1219
- setting peer reputation params by @leviathanbeak in #1202
- Take into account the actually used gas by the transactions and fetch more transaction by @xgreenx in #1223
- Use production configuration for
fuel-core
during benches by @xgreenx in #1227 - Speedup and stabilize unit and integration tests by @xgreenx in #1231
- test: State benchmarks by @bvrooman in #1226
- Remove hybrid PoA block trigger mode by @Dentosal in #1232
- test: Benchmark contract state insertions with DB vs. DB transactions by @bvrooman in #1230
- multiplatform docker builds by @Voxelot in #1233
- Fix typo in architecture.md by @eltociear in #1241
- Expose gas cost in chain info by @MitchTurner in #1244
- Reuse calculated tx id in executor by @MitchTurner in #1248
- Fix multi-platform images by @Voxelot in #1251
- Add logging of the long GraphQL queries for future debug by @MitchTurner in #1250
- Reused
CheckedTransaction
from transaction pool in the executor by @xgreenx in #1249 - Bump
fuel-vm
to0.35.0
version by @xgreenx in #1256 - Release
0.20.0
by @xgreenx in #1257 - Treat warnings like an error by @xgreenx in #1258
- Bump version to
0.20.1
by @xgreenx in #1259
New Contributors
- @segfault-magnet made their first contribution in #1219
- @eltociear made their first contribution in #1241
- @MitchTurner made their first contribution in #1244
Full Changelog: v0.19.1...v0.20.1
v0.17.13
v0.19.1
v0.19.0
Overview
The release uses fuel-vm 0.34
that contains many breaking changes from v0.32, v0.33 and v0.34. Please check these releases to have a better understanding of all new features.
This release:
- Supports a wide arithmetic operation that can be used by the sway to significantly optimize the size of the contracts.
- Requires predicates to be estimated before submission to the blockchain. The
fuel_tx::Transaction
has aestiamte_predicates
method that allows estimating transactions without any queries, andfuel_core_client
provides and additional API endpoint,esitamte_predicates
to the same thing. - The
fuel_core_client
now uses rust-based types instead ofcynic
GraphQL types. It should simplify the use of the client and remove work with raw strings. - SMT works much faster now and it improves the performance of the
Create
transaction with storage slots. - The
fuel_core_client
provides a newsubmit_and_await
endpoint that submits the transaction and awaits its status. It removes the chance of missing notifications about the transaction. - The block producer node checks that it has the last network block height before producing blocks.
What's Changed
- version compatibility cleanup by @Voxelot in #1171
- Added example with custom query around the
fuel-core-client
by @xgreenx in #1175 - Update to fuel-vm 0.32 (including wideint gas profiling) by @Dentosal in #1173
- feat: Client primitives by @bvrooman in #1144
- Improve executor config by @Voxelot in #1185
- Added
contract_id
to theContractConfig
by @xgreenx in #1184 - fix windows file name error by @firedpeanut in #1176
- Make transaction status stream work by @freesig in #1108
- Added
submit_and_await
endpoint to not miss the notifications by @xgreenx in #1192 - feat: Use ID types in client api by @bvrooman in #1191
- Use
fuel-vm 0.33
with predicate estimation by @xgreenx in #1195 - Add transaction lifecycle diagram to the docs by @digorithm in #1201
- sync with peers before producing blocks by @leviathanbeak in #1169
- SMT storage key hashing by @xgreenx in #1207
- Actualize documentation with the latest changes by @xgreenx in #1210
- Add more poa unit and integration tests by @leviathanbeak in #1208
- Release
0.19.0
by @xgreenx in #1211
New Contributors
- @firedpeanut made their first contribution in #1176
Full Changelog: v0.18.3...v0.19.0
v0.18.3
v0.18.2
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