Oasis April 2023 Engineering Update
Read the latest monthly engineering memo from Oasis Engineering with updates on wallets, testnet, mainnet, explorer, runtimes, and more!
April was far from a slow month for Oasis Engineering. Last month, the team achieved enormous progress and pushed updates throughout the entire Oasis stack. Oasis user activity saw slight increases and network reliability remained steady throughout their work, as added bonuses.
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
Let’s dive into a complete update from Oasis Engineering’s work in April!
Wallet and CLI Updates
In April, the Oasis Wallet - Web saw the addition of a few exciting new features, many optimizations and some bug fixes.
- The home of the Oasis Wallet - Web has moved from wallet.oasisprotocol.org to wallet.oasis.io (#1415).
- The Oasis Wallet - Web team integrated Transak. This is a 3rd party service which enables users to seamlessly buy ROSE and fund their account in the wallet. They can do so using their credit card, Google Wallet, Apple Pay or through their bank account using a SEPA payment. This is currently disabled on our production deploy, but those who are eager can try it out on wallet.stg.oasis.io (#1357).
- The build process of the web wallet bundle was optimized. Now, it compiles 25% faster and the size was reduced by 30% to roughly 4 MB (#1399).
- A bug when using Google Translate to translate the web wallet page was fixed (#1382).
- A series of minor UI glitches were fixed (#1426, #1425, #1427, #1429, #1417, #1401, #1370).
In total, 53 pull requests were merged.
The Oasis CLI was also refreshed.
- All commands and subcommands are now in singular form for consistency, e.g. oasis account vs oasis accounts (#54).
- Aliases for plural commands were added for backwards compatibility. An important bug was fixed for users with multiple wallet config profiles (#53).
- In some cases, the default profile was assumed instead of the one passed along --config parameter which could result in managing a wrong wallet. A crash when the Oasis Node prematurely closes the connection was fixed (#58).
- On some Linux distributions the Oasis CLI couldn’t access Ledger because the required libraries were not linked. All required libraries are now correctly linked (#56).
A new 0.3.0 release was made on April 12.
In total, 6 pull requests were merged into the CLI repository.
Network Updates
In April, Emerald, Sapphire and Cipher ParaTimes were running stable on the Mainnet and the Testnet. No downtimes or incidents have been reported on the network. The Web3 gateway for both Sapphire Testnet and Mainnet had a scheduled downtime on April 30 due to the upgrade of the Kubernetes cluster.
On April 17, Sapphire 0.5.1-testnet was proposed for the Testnet. To learn more about Oasis Core fixes and the new ParaTime features, read the following sections.
Mainnet Highlights
The average number of daily transactions on Emerald has seen a slight increase in April (14,383 transactions compared to 13,525 in March). The peak of 20,856 transactions on April 28 was comparable to the one from the previous month – 20,362 on March 18.
The average number of daily transactions on Sapphire has also seen a slight increase in April (1,164 transactions compared to 1,123 in March). The peak of 1,240 transactions on April 13 was also higher from the previous month – 1,193 transactions on March 14.
Active Oasis Mainnnet nodes as of April 30, 2023:
- 120 validator nodes
- 6 key manager nodes
- 33 Cipher ParaTime compute nodes
- 54 Emerald ParaTime compute nodes
- 26 Sapphire ParaTime compute nodes
Testnet Highlights
The wild fluctuation of daily transactions on Emerald disappeared in April and settled around 1,200 transactions per day. The April high was 1,755 transactions on April 17 and was lower from March (all-time record 5.552 daily transactions). The daily April average was also lower compared to March (1,256 transactions versus 1,813)
The number of daily transactions on Sapphire saw a steady increase in April (10,084 transactions compared to 9,622 in March). The peak of 11,218 transactions was reached on 23 April and was also higher from March (10,489 transactions). A steady increase of transactions was observed through April, especially at the end of the month during the Consensus 2023 conference.
Active Oasis Testnet nodes as of April 30, 2023:
- 43 validator nodes
- 5 key manager nodes
- 16 Cipher ParaTime compute nodes
- 29 Emerald ParaTime compute nodes
- 19 Sapphire ParaTime compute nodes
Oasis Indexer and Explorer Updates
The Oasis Indexer team pushed forward some notable features this month.
- An abstract layer over the chain analyzer was introduced in March so the analyzer can talk to different (archive) versions of Oasis Node executable to index blocks. Now, the support for arbitrary Oasis Core and SDK versions was added for indexing ParaTime transactions (#383, #352).
- Similar to ParaTime transactions, events may also have different types. If the event is not recognized, it is stored for potential processing in the future (#378).
- The work has started on indexing encrypted Sapphire transactions (#374).
- Support for the mid-life parameter upgrade in the Cobalt network was added (#370).
In total, 19 pull requests were merged including smaller bug fixes and dependency bumps.
The Oasis Explorer team focused on bug fixing, improving the interface, mostly the mobile view, and making testing easier to do by deploying an own instance of the explorer for each opened PR.
- A new ParaTime picker was implemented (#256, #265) and a new vertical view for showing transactions and blocks was added (#205).
- CI saw two important additions: Explorer builds are now automatically deployed to a CloudFlare instance which uses a snapshot of the indexed data from the Mainnet (#289, #291); Git commits are now required to be in a preconfigured gitlint format (#313).
- Storybook’s end-to-end tests were migrated to version 7 of the framework (#260).
- A number of smaller UI additions and regressions were also fixed (#279, #261, #335, #338).
A total of 62 pull requests were merged this month.
Developer Platform and ParaTime Updates
An important bugfix for Oasis Web3 gateway that fixed eth_getLogs RPC call for particular combination of filters was incorporated (#382). A new 3.3.0 release was made on April 13 containing this fix.
A new minor release of the Oasis Sapphire, 0.5.1, was released on April 17 and proposed on the Testnet. Support was added for confidential gas estimation using the all-zero address as caller. As this may result in underestimation, a constant extra gas fee parameter was added in the gas estimation code for failed transactions. This also fixes occasional empty transaction status code in the Explorer, because the gas amount was not sufficient even for reporting it.
A new Oasis Playground repository has been launched. This repository contains complete dApps running on the Oasis platform. All code is licensed under FOSS terms and is aimed for demonstration and educational purposes. We warmly welcome any external contributors!
The Oasis Network was present at the Consensus 2023 conference. For this occasion, we developed three dApps that use Sapphire-exclusive features and were presented at the Oasis dev breakfast which was held a day before the conference:
- The Oasis Riddle exposes the fact that the smart contract state is fully encrypted and inaccessible by anyone else rather than from inside the contract. It is a simple quiz-like dApp for Consensus attendants with a coupon code. The dApp is running from a command line where you will be asked a question and, if a correct answer is given, a private key of the ROSE-funded wallet on the Mainnet will be shown to you as a reward. There are still some coupons left from the conference and you are invited to participate in the Oasis Riddle by reaching out to us in the #sapphire-dev Discord channel!
- The Oasis Swag exposes the on-chain random number generator. With an appealing web interface, user connects his Metamask, spins the wheel and - based on his account and the uniquely generated random number when the contract was created - computes which swag (a hat, a fan, a T-shirt or a tote bag) you earned at our Oasis booth. While the conference is over and there is no swag left, you can still spin the wheel, obtain some Oasis Swag as NFT and add it to your collection! Or, you can just spin the wheel and see what the dApp looks like ;-)
- The third dApp is an implementation of a Secret Ballot on Oasis Sapphire demonstrating the Oasis Privacy Layer. In addition to hiding the actual voter and the number of votes until the end of the poll, it also features relaying votes cross-chain and using the gas station network for paying the fees! In the codebase above, only communication between the Binance Smart Chain and the Oasis Sapphire Testnet is supported, but you are free to implement it on other chains as well. To learn more about the Oasis Privacy Layer, check out a new tutorial that was recently proposed and will reside inside our documentation (#423).
All three dApps reside in the Oasis Playground repository and users are free to see how they work “under the hood” and test them out!
Finally, the Celer cBridge will be the first bridge that will integrate the gas station network on Oasis Sapphire inside their application. Oasis already partnered with Celer in the past for bridging the Oasis Emerald with other chains. Celer are now testing a centralized service running on the Oasis Sapphire Testnet. In the upcoming weeks, Celer will set up a proper distributed service running on the Oasis Sapphire Mainnet.
Core Platform Updates
Version 22.2.8 of the Oasis Core was released on April 20 and tested on Oasis nodes running the Testnet. The new minor version fixed intermittent block not found errors occurred in ParaTimes, because some Web3 clients (e.g. Metamask) reinterpreted the “latest” block literal as a block number that couldn’t be verified yet by the consensus light client (#5248).
A new oasis-node config migrate command was added, which migrates old configs to the latest version. This was pushed inside the master branch and it will support the migration from the Oasis Core 22.x to the upcoming 23.0 release (#5237, #5244).
Node operators now have a new set of metrics for monitoring the number of attestations made by their node and the number of successful and failed ones (#5254).
A total of 11 pull requests were merged in April.
A new ADR 22 was proposed for forward secrecy of a keymanager’s master secret. The network needs forward-secret master secrets that are generated periodically and distributed amongst enclave executors. This will mitigate the risk, if there will be a successful attack on the Intel SGX in the future. In case of breaching the older version of the master secret, the key will not be useful anymore to decrypt more recent states. The implementation of the ADR is already taking place and will land in Oasis Core 23.x.
That’s it for April!
May is already an exciting month, and we’ll have more updates to share in a few weeks.
In the meantime, chat more with the Oasis team by joining us on Discord or on the Oasis Forum! Also, learn more about the Oasis Privacy Layer here and register for the Oasis Privacy4Web3 Hackathon.