Oasis Engineering Updates: February & March 2022
Welcome to our roundup of what the Oasis Network team has been working on! Let’s take a moment to catch up with all the latest developments.
Notable improvements are:
- Support for using the Oasis Scan API (besides Oasis Monitor API) for querying account’s info (balances, delegations), account’s transaction history and validator list (#704).
- Fallback to gRPC when querying account’s info fails with Oasis Scan / Oasis Monitor API (#737).
- Sort validators in the validator list by their status (#757).
- Check for stale validators with gRPC (#776).
- Use a static validator list as a fallback when Oasis Scan / Oasis Monitor API is not available (#734).
- Improve Ledger hardware wallet UX by clearly explaining all steps users need to follow on their Ledger devices and making Ledger-related error messages concise and easy to understand (#618, #620).
- Improve performance by avoiding downloading the whole Genesis document on every wallet open and using more specific gRPC queries (#698).
- Add info on the exact Git SHA that was used to build the wallet as well as when the build was performed to apps’ footer (#691)
- Add info on the backend (Oasis Scan / Oasis Monitor API) being used to app’s footer (#756).
- Self-host fonts to avoid leaking privacy information to Google (#772)
- Replace react-scripts with Parcel for building the wallet’s code (#743).
- Support building a browser extension variant from the wallet’s code (#765).
Notable changes are:
- Fix an issue where we checked for the wrong fields when signing certain transactions when using the extension with a dApp. As a result, dApps can now request signatures for more kinds of transactions (#249).
- Make instructions for how to connect a Ledger hardware wallet more detailed.
- Become a little smarter about when to show a warning when depositing into the Cipher ParaTime.
- After the significant usage growth in January, the Emerald ParaTime continued its amazing growth in February and March. The number of transactions increased steadily and peaked at more than 3.7M transactions per day on Mar 7 and Mar 8. Later, it stabilized at between 600k — 700k translations per day.
- 59 nodes are running Emerald ParaTime on Mainnet as of Mar 31
- 40 nodes are running Cipher ParaTime on Mainnet as of Mar 31
Our ParaTime SDK has seen some improvements and additions.
- We’ve added support for confidential store (#639).
- We’ve added more tooling for preparing and handling ORC (Oasis Runtime Container) bundles, the new ParaTime binary distribution format (#818).
- We’ve improved the default ParaTime SDK transaction scheduler such that it omits certain invalid transactions from blocks (#828).
- Support has been added for more signature verification primitives in WebAssembly-based smart contracts (#793).
DEVELOPER PLATFORM UPDATES
Our Solidity-based smart contract development environment is available on the Emerald ParaTime on the Mainnet.
The Emerald Web3 Gateway allows legacy Ethereum applications to talk to Emerald without requiring modifications. In February and March, we’ve merged 45 pull requests that improve its usability and released versions 1.2.0, 1.2.1, 1.3.1, 1.4.0, 1.4.1, 1.5.0, 1.6.0 and 1.7.0.
Notable changes are:
- Add emerald-dev Docker image for local Ethereum development (#168).
- Implement EIP-1898 (#173).
- Report actual used gas of transactions (#185).
- Handle cases where an earlier sighting of a transaction failed and a later sighting succeeded (#207).
- Query max block gas limit (#191).
- Add support for configuring the gateway to start indexing at a specific height (#233).
- Also, Emerald Web3 Gateway development versions, 2.0.0-rc1 and 2.1.0-rc1, were released which support the upcoming Oasis Core 22.x releases.
Our WebAssembly-based smart contracts development environment is deployed on the Cipher ParaTime on the Testnet. Take a look at our Smart Contracts Guide to learn how to prepare your environment for Cipher smart contract development and how to deploy smart contracts using the new Oasis CLI.
To contribute to our docs, please browse to https://github.com/oasisprotocol/docs and make pull requests!
CORE PLATFORM UPDATES
Development of Oasis Core is forging ahead with full steam and we’ve released Oasis Core 22.0 on Mar 1 as well as Oasis Core 22.1 on Apr 1, two major releases towards the upcoming Damask Upgrade scheduled for Apr 11.
In February and March, we’ve merged 123 pull requests.
Notable improvements are:
- Runtime message results (implementation: #4443)
- Downtime-less runtime upgrades (ADR and implementation: #4449)
- Add limit on the minimum number of tokens one can transfer (#4456)
- Transition storage sync to P2P (#4459)
- Add limit on minimum general balance an account must have to be able to perform transactions (#4461)
- Use typed attributes in all services in go/consensus (#4465)
- Add support for node suspension due to runtime liveness failures (#4470)
- Switch to unified runtime bundle format (#4474)
- Transition key manager protocol to P2P (#4490)
- Transition public storage RPC to P2P (#4500)
- Improve runtime committee election fairness (#4263)
- Do not allow running Oasis Node as root (#4464)
- Allow querying historical account info (#4416)
- Add CLI command for inspecting runtime bundles (#4546)
- Add txsync, a protocol for syncing transactions (#4579)
- Add CLI command for querying historical runtime statistics (#4596)
- Add liveness and other useful executor Prometheus metrics (#4610)