May was an exciting month for Oasis Engineering! The entire team accomplished significant progress on multiple projects that span the entire Oasis technology stack. Keep reading for a long-form engineering update on Oasis!
This engineering brief summarizes the following updates:
- Wallet and CLI Updates
- Network Updates (Mainnet and Testnet)
- Indexer and Explorer Updates
- Developer Platform and ParaTime Updates
- Oasis Core Updates
Wallet and CLI Updates
In May, the Oasis Wallet - Web saw a handful of new features and fixes.
- Transak, a 3rd party service which enables users to seamlessly buy ROSE and fund their account in the wallet, has been polished (#1431, #1437, #1461, #1469). Early adopters can try it out on wallet.stg.oasis.io!
- A long-awaited fix to the account selector popup was merged, which now shows the account balance including your staked assets (#1468, #1454). Since the gRPC endpoint to the Oasis node does not include this information, the Oasis Wallet connects to the external OASIS SCAN service to obtain it.
- A number of smaller user interface fixes to alert boxes landed this month such as z-index fix for grommet badges (#1448), text color and spacing of popups (#1451) and automated detection of staging or production builds in the banner (#1447).
Other fixes included bumping dependencies and translation updates. In total, 41 pull requests were merged.
Significant changes were made to the Oasis CLI.
- It now supports generating unsigned transactions by passing the –unsigned and then saving them to a file with the -o flag (#67).
- A new transaction sign subcommand for signing such unsigned transactions was also added. The dApp developers can now use the new paratime show <block-number> [tx] command for inspecting a specific block, a specific transaction inside it and emitted events (#72). This is particularly useful for Cipher developers so they can easily explore activity done on Cipher.
- On the path towards the first stable release of Oasis CLI, a major overhaul of the commands was made removing top-level registry and inspect commands and moving them under user-centric account, network and paratime commands (#75, #79).
- We were working towards a dedicated Oasis CLI section in our Oasis Docs that will cover token management, node operator operations and dApp development (#41). The PR also includes a number of illustrative examples. We plan to publish the new section in June.
- Finally, 3 crashes were discovered and fixed (#64, #65, #81), fix for duplicate address book and wallet entries was merged (#68) and 5 more fixes to usability and UI landed (#70, #74, #80, #82, #83).
In total, 18 pull requests were merged into the Oasis CLI repository.
In May, Sapphire, Emerald and Cipher ParaTimes were running stable on the Mainnet and the Testnet. The Oasis Web3 gateway had no downtime while the Oasis Rosetta gateway saw an unexpected 2-minute downtime on May 31 due to a networking issue.
On May 15, the non-breaking Oasis Core release 22.2.8 was proposed on Testnet. The Core release was already done in April but has undergone exhaustive testing during the Consensus conference before general availability on Testnet.
On May 16, Sapphire 0.5.2-testnet was proposed on the Testnet and on May 24 the 0.5.2 version on the Mainnet. To learn more about the fixes included in the ParaTime release, read the Developer and Platform section below.
The average number of daily transactions on Sapphire remained stable in May (1,165 transactions compared to 1,164 in April). Figures were higher at the beginning of the month, possibly as an echo to the Consensus conference at the end of April. The peak of 1,234 transactions on May 4 was slightly lower compared to the previous month – 1,240 transactions on April 13.
The average number of daily transactions on Emerald has seen a 16% increase in May (16,777 transactions compared to 14,383 in April). The peak of 25,797 transactions on May 24 was also much higher to the one from the previous month – 20,856 on April 28.
Active Oasis Mainnnet nodes as of May 31, 2023:
- 120 validator nodes
- 6 key manager nodes
- 34 Cipher ParaTime compute nodes
- 55 Emerald ParaTime compute nodes
- 21 Sapphire ParaTime compute nodes
The number of daily transactions on Sapphire saw a 12% increase from April (11,369 transactions compared to 10,084). The peak of 12,592 transactions was reached on May 19 and was also higher from the previous month (12,218 transactions on April 23). The highest figures were encountered May 17-26 and were not related to any Oasis foundation events.
The average number of daily transactions on Emerald was similar to April’s figures (1,228 transactions compared to 1,256). The peak of 1,995 transactions on May 18 was higher from the previous month (compared to 1,755 on April 17). This was an outlier though compared to other days of May where that number was between 1,100 and 1,300 daily transactions.
Active Oasis Testnet nodes as of May 31, 2023:
- 43 validator nodes
- 5 key manager nodes
- 15 Cipher ParaTime compute nodes
- 30 Emerald ParaTime compute nodes
- 19 Sapphire ParaTime compute nodes
Oasis Indexer and Explorer Updates
The biggest impact this month by the Oasis Indexer team was performance optimizations of the database and cache usage, new end-to-end tests and some other, minor improvements:
- The Oasis indexer now fetches blocks from the Oasis Node in parallel, stores them locally and processes them in a cache-efficient way achieving order of 100x indexing speedup (#360, #389, #392, #401, #409).
- A complete suite of end-to-end tests was merged and integrated into CI (#410), including the migrations test (#411).
- For encrypted transactions, the indexer now stores detailed transaction information such as the encrypted data itself, call format, public key, nonce and the encrypted result (#407).
In total, 32 pull requests were merged including smaller bug fixes and dependency bumps.
The Oasis Explorer team made a step forward in blockchain explorer interfaces and decided to combine both the Mainnet and Testnet networks under the same umbrella.
- Consequently, a seamless search across multiple networks was integrated (#408).
- A new network picker component was developed (#394, #399, #412, #447, #439) where each network contains the corresponding ParaTimes (#395, #411, #426).
Other pull requests brought numerous bug fixes and dependency bumps in preparation for the first official release in June! A total of 94 pull requests were merged.
Developer Platform and ParaTime Updates
A new version of the Oasis Runtime SDK 0.6.0 was released followed by a minor release of the Oasis Sapphire, 0.5.2 on May 15 and proposed on the Testnet. Testing has shown that the confidential gas estimation introduced last month and enabled globally led to bad estimates even for methods where regular estimation should work just fine. The new version makes the extra gas estimates per-method.
In May, two maintenance releases of the Oasis Client SDK for Go. On May 8 the 0.5.0 release was made which included dependency and Go language bumps and a fix for handling Ethereum accounts internally which accidentally showed warnings in the Oasis CLI for some transactions (#1352). A followup 0.5.1 release was made on May 15 fixing a crash when comparing public keys of Ethereum accounts (#1366).
The Oasis Client SDK for Typescript used by the Oasis Wallet saw a refreshment of the end-to-end tests which now support Node v18 (#1364, #1363). Overall, 11 pull requests were merged into the Oasis SDK monorepo.
All dApp developers will be happy to know that the first version of the Oasis fork of OpenGSN has been released for early adopters. GSN (gas station network) enables better on-chain anonymity and makes it possible for the users to broadcast transactions without paying a fee (the fee is covered by the “paymaster”). What makes the Oasis GSN special is that the transaction is encrypted on the client side similar to how the transactions on Sapphire are transmitted while the on-chain relaying can still happen thanks to the on-chain encryption primitives in Sapphire.
Core Platform Updates
The development of the Oasis Core focused on the new 23.x release. In addition to regular dependency bumps and smaller fixes, a handful of exciting new features were merged:
- Runtime commitment pool processing saw significant optimizations which result in block confirmation speedups, especially in case of discrepancy where immediate discrepancy detection and resolution is now done (#5274, #5271, #5261, #5264, #5260).
- The Oasis Tendermint fork which runs the consensus layer was migrated from the Tendermint to the new CometBFT (#5268).
- Existing node operators and newcomers will notice better node registration status reports when running the oasis-node control status command or the Oasis CLI’s oasis net status command. The report now also contains the exact error message if the registration failed in the last registration attempt (#5256).
- Additionally, a status message that shows the current state of the storage worker was added to the node's storage worker's status output. This enables the node operator to quickly check if the storage worker is still initializing, syncing checkpoints, or syncing rounds (#5262).
- The testing client for ParaTimes saw a major revamp and new network upgrades end-to-end scenarios were added. Since the tests are pretty comprehensive, some of them will be run on every push to the PR branch while others will be executed on regular basis (#5265).
A total of 15 pull requests were merged in May.
That’s it for May!
June is nearly halfway over, and there's so much to update the community on in a couple weeks.