Release v1.3.0 changes
- Crates versions bumped to
"v1.3.0"
, runtime spec version bumped to1300
(#3869); - Weights of extrinsic and WASM calls WERE updated (#3876), schedule version bumped to
1300
in order to re-instrument codes with CHEAPER costs;
Update requirements
Name | Character |
---|---|
JS clients | ⚪ Insubstantial |
Programs | 🟡 Recommended |
Node bin | 🔴 Required |
User-space
📚 gtest
now uses real instruction costs for its executions, so charging has became more like on-chain (#3808);
📚 Fixed gtest
bug caused panic in tests on zero balance call of gr_exit()
(#3848);
📚 Fixed gear-wasm-builder
bug caused compile problems when following gear-wiki steps (#3864);
📚 Added new function to gtest
that allows to query already submitted within the system code by it's code id (#3878);
Tip
It's interface looks like following code snippet:
let mut sys = gtest::System::new();
// ...
// Uploading some code here, and storing code_id
// ...
let _code: Vec<u8> = sys.submitted_code(code_id).unwrap();
📚 Error type of gstd
containing reply error code was extended (#3808);
Note
Async futures of gstd
s "for_reply" sendings now in case of error return not only error reply code, but the payload as well, so even general case of unwrapping communication result become more informative.
Runtime
📚 Node client was highly optimised in terms of executing programs and initialising WASM modules on-chain (#3801);
Note
Now it uses in-memory LRU caching instead of legacy variant of always touching disk space. This significantly decreases execution costs, but increases load on hardware RAM, which is totally safe since it limited in a conservative way. Previous approach still valid and will be dynamically turned on in case of any problems with RAM caching.
📚 Instrumented on-chain codes now always contain stack end
parameter that optimises its handling and increases pallets simplicity and safety (#3811);
Key-features of the release
📚 Gear repo migrated to a new fork (polkadot-sdk
) and updated used substrate version to v1.1.0
(#3814);
Important
Please make sure everything you use as standard substrate interface is properly migrated in your JS applications.
🔥📖 First builtin actor implemented 🥳 (#3771);
Note
Basing on #3624 (look up release v1.2.0 for details), the first actor will be available on-chain by its unique account id that could be queried in a decentralised and trusted way by RPC call of pallet-gear-builtin
. This actor implements logic of bls12-381
interfaces that are executed outside of WASM runtime, so they're cheap and fits in a block a lot of times, which wasn't previously possible. Any actor (especially programs) may send request for calculations to the actor and wait for reply with results if enough gas was applied, so be care there!
Tip
Having such basic and useful cryptography makes real a lot of scenarios of web2 to be implemented on-chain!
Important
Calculations of this builtin are implemented with runtime interface of the node, so upgrade of your node client is MUST TO UPDATE in order to be able import blocks or keep online. Nodes replacement must be preformed before upgrades of the network.
Full Changelog: v1.2.1...v1.3.0