My name is Alexander (Sasha) Gryaznov (@agryaznov). I am a Rank II (Proficient) member of the Polkadot Technical Fellowship.
As a core engineer at Parity Technologies, I’ve been working on Polkadot SDK, its pallet-contracts module, and ink! smart contracts language and other related stuff for some time.
As a largest user-facing module in FRAME, pallet-contracts depends and relies on many things in Substrate and beyond.
I was improving those things widely:
- from frame_support utilities for dealing with crypto primitives, to re-writing the major macro defining sanboxed secure code execution environment;
- from adding new wasm instrumentation facilities, to porting pallet to 2D weights, finding severe benchmarking-cli bugs along the way;
- from introducing new primitives for working with storage, to enriching pallet’s public interface to meet production-running parachains needs.
New features introduced into the pallet require end-to-end implementation through the whole smart contracts stack. Those are basically FRAME -> pallet_contracts -> ink! -> polkadotjs | cargo-contract
kind of changes, which I was pleased to implement across all the layers involved.
Pull Requests
You can find my commits to polkadot-sdk here, and to ink! here.
Among my pull requests, I’d like to highlight the following ones:
- Add frame_support::crypto::ecdsa::Public.to_eth_address() (k256-based) and use it in pallets,
- Implement transparent hashing for contract storage,
- define_env! re-write as a proc macro,
- [wasm-instrument] Add new gas metering method: mutable global + local gas function #34,
- Add per local weight for function call #12806,
- make debug_message execution outcome invariant to node debug logging setting #13197,
- Forbid calling back to contracts after switching to runtime #13443,
- Port host functions to Weight V2 and storage deposit limit #13565,
- contracts: switch to wasmi gas metering #14084,
You can read more on the context of this change in this blogpost; - contracts: switch from parity-wasm-based to wasmi-based module validation #14449.
I fixed a good number of vulnerability issues found in the pallet during thorough security audit. (Albeit those ones can’t be explicitly listed here for security reasons).
Network Involvement
Aside from coding contributions, I’m running a couple of validators (you can find their addresses here) for more than a year so far, with no slashes, no chill. Recently I started making fun with launching Yerba experimental smart-contracts parachain, which is a network for YOLO-testing cutting-edge pallet-contracts & ink! features.
Blog
Time to time I publish articles concerning Polkadot-related tech to my blog. (The first such post was made in May 2019).