Oasis Engineering started 2023 with a steady stream of important core protocol upgrades and feature updates. In January, the bulk of items shipped covered runtime features, Core optimizations, validator updates, and more. On top of all that, another month of consistent Mainnet and Testnet stability amidst numerous upgrades, while average daily transactions on Emerald saw a 20% boost!
Keep reading for a full synopsis of Oasis Engineering’s progress during January!
Support for Oasis Sapphire running on Mainnet has been officially added into the Oasis Wallet - Browser Extension! This feature was incorporated inside the 1.9.0 release and is available on the Chrome Web Store.
In January, the Oasis Wallet - Web saw several external dependencies bumps and improved tests. In total, 40 pull requests were merged.
A new release process was set up for Oasis CLI, starting with the 0.1.0 release. Currently, amd64 binaries are provided for Linux and we are planning on adding MacOS builds in the near future.
A new notable feature for users is a safety check for target addresses which will prevent users from sending funds to reserved addresses such as native ParaTime addresses, rewards and common pools, fee accumulators and similar (#123). Users can override this check by passing the new --force flag.
The new versions (2.5.0+) of the Oasis nano app for Ledger include support for signing ParaTime transactions using the Ledger hardware wallet. Integration into Oasis CLI and other wallets is in progress.
Emerald, Sapphire and Cipher ParaTimes were all stable on both Mainnet and Testnet in January. No downtimes or incidents have been reported despite a number of upgrades.
Here’s a rundown of what changed with Mainnet and Testnet last month.
The Oasis Core 22.2.x branch was thoroughly tested in December, so, on January 4, the non-breaking update from Oasis Core 22.1.x to Oasis Core 22.2.x branch was proposed on Mainnet. The first 22.2.x version used was 22.2.3 and later two additional maintenance updates were proposed - version 22.2.4 on January 11 and version 22.2.5 on January 23.
On January 26, Sapphire 0.3.1 and Cipher 2.6.2 non-breaking ParaTime upgrades were proposed on Mainnet.
The average number of daily transactions on Emerald has seen a 20% boost in January (15,300 transactions compared to 12,700 in December 2022). The peak of 21,442 transactions on January 14 was also higher from the previous month – 15,929 on December 16, 2022.
In the middle of January, Oasis engineering set up monitoring for Sapphire transactions. The average count was 1,125 transactions per day with a peak of 1,160 transactions on January 18.
Active Oasis Mainnnet nodes as of January 31, 2023:
- 120 validator nodes
- 6 key manager nodes
- 28 Cipher ParaTime compute nodes
- 52 Emerald ParaTime compute nodes
- 22 Sapphire ParaTime compute nodes
On January 10, Emerald 10.0.0-testnet upgrade was proposed. And on January 25, Sapphire 0.3.1-testnet and Cipher 2.6.2-testnet upgrades were proposed.
From January onward, Oasis engineering will also report statistics for Emerald running on Testnet for consistency. The average number of daily transactions was 2,953 with the peak of 3,282 transactions on January 16.
On January 11, Sapphire running on Testnet had a peak of 3,069 daily transactions, a 46% increase from 2,096 transactions in December 2022. Similarly, the average number of transactions increased to 2,880, up from 1,067 in December 2022.
Active Oasis Testnet nodes as of January 31, 2023:
- 44 validator nodes
- 5 key manager nodes
- 14 Cipher ParaTime compute nodes
- 32 Emerald ParaTime compute nodes
- 18 Sapphire ParaTime compute nodes
Developer Platform and ParaTime Updates
In January, the Oasis SDK repository mostly saw version bumps and polishes regarding EVM and migrated Oasis CLI. 27 pull requests were merged in total.
On the Sapphire front, solidity precompiles for generating a keypair and signing a message using native ed25519, secp256k1 and sr25519 schemes have been added (#80). The @oasisprotocol/sapphire-paratime and @oasisprotocol/sapphire-hardhat wrappers got a fix for intermittent errors when doing smart contract calls (#95, #101).
Sapphire Mainnet’s endpoint is also now officially supported (#103). The Metamask wrapper can now also cache signed queries for the 1st time until the browser session expires (#100). This gets rid of the annoying popups each time the confidential query needs to be submitted. A total of 8 pull requests were merged into the Sapphire repository.
All three official Oasis ParaTimes saw new maintenance releases in January. They are built on top of the new Oasis SDK version and the Oasis Core 22.2.x branch:
- Sapphire 0.3.1-testnet and 0.3.1,
- Emerald 10.0.0-testnet,
- Cipher 2.6.2-testnet and 2.6.2.
The Oasis Web3 Gateway saw a number of version bumps, but no releases have been made. The dApp developers will be happy to know that a new oasisprotocol/sapphire-dev Docker image is in the final development phase which will enable localnet development and testing of Sapphire dApps. Stay tuned for the deployment in February!
Work on Oasis Indexer and Oasis Explorer continued at a rapid pace. The indexer saw three new releases in January (0.0.6, 0.0.7, 0.0.8). It now supports account-related queries, which makes it suitable for typical wallet apps queries (#277). CORS support (#290) and transactions statistics have been added (#294). Adding full OpenAPI specs for the Indexer in December enabled Explorer to have a complete Golang code for endpoints now generated from the OpenAPI specs. In January, 27 pull requests were merged into Oasis Indexer and 54 pull requests were merged into the Oasis Explorer codebase.
Minor updates were performed on the Oasis Docs. Node operators who did not previously configure a trusted execution environment will be happy to see a new table showing exact BIOS settings required to configure SGX on Intel CPUs. Helper buttons to add Sapphire and Emerald Web3 endpoints to your Metamask wallet now warn you if Metamask is not detected (#346) - previously, it just failed silently. Other updates were related to the new Oasis Core and ParaTime releases. A total of 10 pull requests have been merged.
Oasis Core Updates
Two non-breaking maintenance updates for Oasis Core have been released in January: 22.2.4 and 22.2.5.
- The first one introduced a fix to intermittent errors in confidential queries (#5123), more strictness in runtime-host protocol message passing (#5094) and wrong key-manager policy interpretation on restarts (#5092).
- The second maintenance update brought better memory management when there is a larger number of validators, compatibility fixes with the new light client which will be introduced in 23.0 (#5151) and the new Runtime Encryption Key registry field (#5137).
The new versions are already deployed on Testnet. Users are encouraged to update their nodes. The upgrade proposal on Mainnet will follow if no major issues are found in the upcoming weeks.
Besides the maintenance fixes mentioned above, a number of notable new features and bug fixes were merged into the master branch that will land in the 23.0 release:
- Support for Provisioning Certification Service v4 and a subset of Intel Trusted Domain Extension was merged (#5108).
- Minimum commission rate for validators can now be defined to avoid potentially unhealthy competition (#5102). Currently it will remain 0 on the Mainnet but this allows for changing it in the future.
- Public ParaTime keys can now be fetched using an insecure RPC channel (#5101). This makes public keys cacheable and reduces denial of service attack surface on key managers.
- Oasis node now keeps a blacklist of specific EPID GIDs in case of a compromise (#5113).
- The entity which owns and stakes a ParaTime can now be changed after it has already been registered (#5114).
- The public part of the new Runtime Encryption Key is now stored in the registry and can be used by the enclave directly to store and access encrypted data on-chain (#5125, #5140).
- A fix for broken block verification between two trusted heights was contributed to the upstream tendermint-rs repository. Oasis Core was updated to use the fixed version (#5134).
Check out all 31 pull requests merged in January, to see a complete list of changes.
And that’s a wrap on January!
Oasis Engineering is already excited to share more updates at the end of February. Until then, chat more with the Oasis team by joining us on Discord or on our Forum! And be sure to check out the newly released Oasis 2023 roadmap here.