Oasis August 2023 Engineering Update
Browse the full Oasis engineering report for August 2023 with updates on wallets, explorer, runtimes, and more!
August was an exciting month for Oasis Engineering.
Amid multiple partnerships, new integrations, and in-person conference events, the entire engineering team achieved enormous progress. Updates were pushed throughout the entire Oasis stack, including the full list of updates included below:
- Wallet and CLI Updates
- Network Updates (Mainnet and Testnet)
- Oasis Nexus and Explorer Updates
- Developer Platform and ParaTime Updates
- Oasis Core Updates
Keep reading to dive into Oasis Engineering’s work from August!
Wallet and CLI Updates
- The Oasis Wallet - Web now officially supports Transak integration which allows novice users to purchase ROSE with a SEPA Instant Transfer, a credit card, Apple and Google Pay services (#1570, #1579, #1580, #1585).
- A number of new—also security-related—tests were added (#1587, #1596, #1595, #1599).
- While still preserving shuffled order of validators, those who are inactive are always put at the end of the list now (#1608).
- A new check was added when using a Ledger device. The wallet will now complain, if you add Ledger accounts and then try to open them with a Ledger device initialized with different mnemonic (#1614).
- Early beta testers will be glad that a new wallet.dev.oasis.io now contains a compiled version of the latest Oasis Wallet master branch (#1609).
The remaining pull requests were dependency bumps. In total, 51 pull requests were merged in August.
A new 1.11.0 RC of the Oasis Wallet - Extension was made on August 23. Apart from dependency bumps the only new feature is the shuffled list of validators which was already merged back in June (#309), but never got included in the actual release.
The Oasis CLI received a handful of new exciting features.
- The biggest addition was a complete user’s guide over all the CLI commands including their example usages (#41, #110, #116, #117). These example snippets are regularly tested so that they are in sync with the actual CLI binary.
- Support for Sr25519 signature scheme for accounts on the Ledger hardware wallet was added (#109). The new account type is called “sr25519-adr8”. A file-based account derivation using the same scheme is still in the works.
- Finally, support for delegation and undelegation of tokens directly from the ParaTime was added (#118). This enables a user to bookkeep the tokens as theirs in Sapphire, Emerald or Cipher dApps, but can still earn staking rewards. The new ParaTime delegation feature is also required for the liquid staking directly from the smart contract (read the Developer Platform and ParaTime Updates section below).
11 pull requests were merged in total.
A new development release of the Oasis Ledger Nano app 2.5.3 was made on August 10 which added experimental support for Sr25519 accounts (#198, #199, #200, #201). Interested audiences can already try it out by installing it on their Ledger devices and using it with the latest version of the Oasis CLI. Expect the signature scheme to change in the future, so the Sr25519 accounts derived on the Ledger may not be derivable with the newer versions.
Network Updates
In August, Mainnet and Testnet networks were running stable.
- Emerald, Sapphire and Cipher ParaTimes were up 100% on the Mainnet and the Testnet.
- Oasis-provided services (gRPC and Web3 endpoints, the Explorer) had short outages.
On August 9 a new non-breaking release of the Oasis Core 22.2.11 was made, tested in a small subset of nodes and then proposed to the whole Testnet community on August 13. No major issues were found so the release was proposed on the Mainnet on August 31. Read the Core Platform Updates section below for more.
Two new releases of the Sapphire ParaTime were proposed on Testnet in August. On August 16, the 0.6.0-testnet and on August 22, the 0.6.1-testnet release. Read the Developer platform and ParaTime updates below to learn about the new features.
Mainnet Highlights
The average number of daily transactions on Sapphire in August was comparable to the figure from the previous month (1,158 transactions versus 1,169 in July). The peak of 1,196 transactions was reached on August 7 (June’s peak was 1,301 transactions on July 29).
The average number of daily transactions on Emerald has seen a small 4% drop in August (12,189 transactions compared to 12,692 in July). The peak of 13,534 transactions on August 17 was also lower compared to the last month’s peak – 14.459 on July 13.
The number of active Oasis Mainnnet nodes is similar to the ones from July. As of August 31, 2023, the figures are as follows:
- 120 validator nodes
- 6 key manager nodes
- 43 Cipher ParaTime compute nodes
- 62 Emerald ParaTime compute nodes
- 33 Sapphire ParaTime compute nodes
On the Mainnet services level, Oasis Sapphire Web3 gateway saw a 1-hour downtime on August 11 due to migration of the Azure instance. The Oasis Nexus service saw a 3-hour downtime on August 16 due to a bug in the SQL proxy tooling. Other services had no downtimes.
Testnet Highlights
The average number of daily transactions on Sapphire was again slightly higher compared to the previous month (11,313 transactions compared to 11,180). The peak of 12,893 transactions on August 24 was 10% higher compared to the one in the last month (11,736 transactions on July 5).
The average number of daily transactions on Emerald was similar to July’s (1,226 transactions compared to 1,241). The peak of 1,308 transactions on August 23 was comparable to the previous month’s high of 1,337 transactions on July 14.
Active Oasis Testnet nodes as of August 31, 2023:
- 46 validator nodes
- 5 key manager nodes
- 17 Cipher ParaTime compute nodes
- 31 Emerald ParaTime compute nodes
- 19 Sapphire ParaTime compute nodes
Some of the Oasis Testnet services encountered outages. On August 21, a planned upgrade of the Sapphire ParaTime to 0.6.0-testnet and on August 25 an upgrade to 0.6.1-testnet were performed resulting in a 2-hour downtime of the gRPC service. In the meantime, the Web3 gateway, the Faucet and the Explorers were temporarily disabled. Other Oasis Testnet services were running with no downtimes in August.
Oasis Nexus and Explorer Updates
Five new releases of the Oasis Nexus, an indexer for the Oasis network, were made in August!
- 0.1.8 released on August 1 primarily brought updates that make it possible for the Explorer web UI to fetch all data in fewer requests (O(1) for all pages, as opposed to O(rows) for some pages).
- 0.1.9 released on August 8 was a bugfix release—Emerald’s block 854327 on the Mainnet caused the analyzer to panic (#497).
- 0.1.10 released on August 16 improved window-computation of ParaTime statistics. A small breaking API change was needed for this (#477)
- 0.1.11 released on August 29 brought further steps towards cache-efficient fast-sync indexing (#456). Also, a status info call was added to the API which returns the indexer status, latest block etc. (#496)
- 0.1.12 released on August 30 added full compatibility with Sapphire 0.6.0 API.
The Oasis Nexus repository had 18 pull requests merged in August.
The team behind the Oasis Explorer, a frontend for the Oasis indexer, made a 1.1.0 bugfix release on August 30. The release brings more accurate large number manipulation (#773, #770), better performance and robustness (#812, #760, #761), a number of UI fixes (#754, #759, #752, #758, #753, #756) and updated dependencies. Users are encouraged to visit and test both the official production version of the Oasis Explorer and the latest development version!
Altogether, 65 pull requests were merged in August.
Developer Platform and ParaTime Updates
Two Oasis Runtime SDK releases were made in August. A major 0.7.0 release was done on August 15 followed by the 0.7.1 bugfix release on August 22 which brought two important features:
- Subcalls enable smart contracts running in ParaTimes executing arbitrary ParaTime-related transactions such as transfers, withdrawals and deposits, and more importantly delegation and undelegation of assets to a validator (#1411, #1412). This opens the door to liquid staking dApps where contracts can now delegate assets completely on-chain.
- Zero-knowledge proof (ZKP) primitives for Ethereum compatible zkSNARK circuits (#1416). This involved the implementation of EIP-196 and EIP-197 and adding ECADD, ECMUL and ECPAIRING opcodes.
Similarly, two new Oasis Sapphire releases (0.6.0-testnet on August 15 and 0.6.1-testnet on August 22) were made which brought the subcalls and the ZKP primitives to Solidity dApp developers (#166). In addition, an important behavior change was made to the Random Number Generator (RNG) for the view queries and simulated transactions via “eth_call”. In Sapphire versions prior to 0.6.0 dApps received the same entropy in-between blocks if they passed the same “num_bytes” and “pers” parameters. So, if your contract required confidentiality you needed to generate a secret in the constructor to be used with view calls. Starting with 0.6.0 this is not the case anymore and you will always receive a different, non-deterministic entropy for view calls. Read more in the Sapphire Precompile docs.
On August 2, we released a new bugfix version of @oasisprotocol/sapphire-contracts 0.2.4 which finally brought the Oasis Privacy Layer and the Celer bridge to the Mainnet (#157).
A bugfix release of the @oasisprotocol/sapphire-paratime 1.1.1 was made on August 2 which contains an important fix for dApp developers who use local sapphire-dev Docker image for testing the Oasis-specific confidentiality features (#153).
The Oasis documentation is richer for the following content:
- New Oasis CLI user’s guide chapters
- The OPL landing page contains a new diagram and a list of all supported networks
- The Sapphire guide contains a new Contract Verification section which describes how to use Sourcify service with Sapphire to verify your confidential smart contracts
Core Platform Updates
On August 9, a new non-breaking release of the Oasis Core 22.2.11 was done which includes a fix to RPC for migration to the upcoming 23.x (#5335) and a fix of potential vulnerability in the go’s network library (#5337) and libp2p (#5338, #5339). The upgrade is recommended for all users.
Work on the core mostly focused on cleaning, testing, robustness and security fixes in the preparation for the 23.0 release (#5318, #5342, #5351). Two new exciting features landed in the 23.x branch though:
- Runtime proposer liveness: If the runtime proposer fails to propose, nobody submits anything, the round fails and no one is punished. Now, we track how many node’s proposals were accepted and how many of them failed or timed out. A node is penalized if the percentage of missed proposals is larger than a pre-configurable amount (#5334).
- The staking rewards can now be changed in the staking consensus parameters through a governance vote. Previously, the rewards could only be hardcoded in the genesis file (#5352).
In total, 18 pull requests were merged into the Oasis Core codebase.
What’s next?
That’s it for August!
With one month left in Q3, our engineering team is excited to complete some remaining goals and keep shipping. We’ll have more exciting updates at the end of September. Until then, chat more with the Oasis team by joining the Oasis Discord or on the Oasis Forum!
If you’re in Berlin this month, chat with the Oasis team at Dappcon 2023! Learn more about it here.