v1.6.0
Release v1.6.0 changes
- Crates versions bumped to "v1.6.0", runtime spec version bumped to 1600 (#4249);
- Weights of extrinsic and WASM calls WERE updated (#4245), schedule version bumped to 1600 (#4249).
Important
📖 With this release requirement to minimal stable rust version to compile gear crates (such as gstd
) was bumped from v1.80 to v1.81 in order to fix panic info message parsing (#4098).
Tip
To update your stable compiler, run rustup update stable
.
Update requirements
Name | Character |
---|---|
JS clients | 🟡 Recommended (calculate_reply call) |
Programs | 🟡 Recommended (gtest code) |
Node bin | 🟡 Recommended (modules serialisation) |
Userspace
📚 gsdk
and gclient
now support voucher operations (#4129);
Tip
Usage example:
#[tokio::test]
async fn sample() -> Result<()> {
// Creating gear api.
let api = GearApi::dev().await?;
// Issue voucher
let (voucher_id, ..) = api.issue_voucher(/* voucher params */).await?;
// Upload code with voucher
let (code_id, _) = api
.upload_code_with_voucher(voucher_id, WASM_BINARY)
.await?;
}
📚 subxt
dependency bumped to v0.37.0
(#4151);
📚 gear-wasm-builder
now can check reentrancy of different versions of the same dependency gstd
while building (#4159);
Tip
You can banned list with __GEAR_WASM_BUILDER_DENIED_DUPLICATE_CRATES
env variable.
📚 gear-wasm-builder::build()
now returns paths to artefacts (#4209);
📚 gsdk
now based on builder
pattern (#4225);
Tip
- Api::new_with_timeout(endpoint.as_deref(), timeout)
+ Api::builder()
+ .timeout(self.timeout())
+ .build(endpoint.as_deref())
📚gear-wasm-builder
now builds WASMs with -Ctarget-cpu=mvp
to match actual changes in executors, parsers and upcoming rust releases, solving problem of compiling with beta (#4247).
Runtime
📚 Added governance-ruled option to split gas fees between block producers and treasury (#3652);
📚 Modules serialisation on node side has been optimised (#4055);
Tip
This update will make computations easier for your machine.
📚 Now reservations that were just created and unreserved free locked gas back to execution (#4165);
📚 Previous pallet_gear_voucher::call_deprecated
was totally removed from the runtime (#4168);
📚Syscalls that send input bytes now have more internal assertions and return error on out of bounds (#4186);
📚 Serialisation of payload bytes of ReplyInfo
type, returned from gear_calculateReplyForHandle
rpc call, replaced with hex (#4238).
Important
This may broke your clients, make sure to support hex parsing.
Key feature
🔥📖 gtest
has received a significant update, matching it much closer to actual runtime:
- It now uses real weights from runtime (#4148);
- Block execution model refined with similar from runtime (#4119);
Tip
It's no longer execute message in place of its sending. You need to manually rotate blocks.
- let res = prog.send_bytes(from, b"Let's go!");
- assert!(!res.main_failed());
+ let mid = prog.send_bytes(from, b"Let's go!"); // send message
+ let res = system.run_next_block(); // run blocks to get run results
+ assert!(res.succeed.contains(&mid)); // success assert
- Value and existential deposit management improved to match runtime (#4111);
- Delayed sendings (dispatch stash), mailbox, waitlist, rent charging and message queue processing are also adjusted (#4157, #4193, #4194, #4200, #4207);
- Reservations management now matches runtime (#4196);
- Mocks bugs are fixed (#4220);
- Usage panics are more user friendly (#4223).
Full Changelog: v1.5.0...v1.6.0