github gear-tech/gear v1.3.0

latest releases: build, v1.6.2, v1.6.1...
7 months ago

Release v1.3.0 changes

  • Crates versions bumped to "v1.3.0", runtime spec version bumped to 1300 (#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 gstds "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

Don't miss a new gear release

NewReleases is sending notifications on new releases.