Oasis October 2024 Engineering Update
Read the latest report from the Oasis engineering team with all the latest releases and network updates from October 2024!
October was another busy, focused month for the Oasis engineering team. Below is a summary of the key project updates, technical fixes, and general enhancements introduced last month. Each section below provides a full recap of the following engineering updates.
- Wallet and CLI Updates
- Network Updates
- Oasis Nexus and Explorer Updates
- Developer Platform and ParaTime Updates
- Oasis Core Update
Wallet and CLI Updates
The Wallet team merged four pull requests this month. Two user-facing UX improvements were also made. First, the wallet fetches current epoch information when the validator’s commission bounds are needed and not earlier (#2064). This reduces the burden on public endpoints and speeds up the opening of the wallet. Second, if a user provides an Ethereum private key into the consensus wallet private key field, a warning message now leads the user to use the “Withdraw from ParaTime” screen instead of simply reporting that the key format is unknown (#2069).
The Oasis CLI team merged 11 pull requests in October aimed at improving the convenience of the command line tool:
- A new “oasis network show parameters” command now prints the current network parameters, such as the maximum size of the validator set (#308). Output to JSON is also supported for automation.
- When building in ROFL, a user needs to compile a number of dependencies before compiling the ROFL binary. A bug was fixed that hid errors that occurred during the dependency compilation phase (#306).
- The “oasis wallet import,” “oasis wallet export,” and “oasis wallet show” commands now support non-interactive mode for automation (#288, #304).
- Users are now able to add the Localnet docker image network to their Oasis CLI (#302).
- The order of ParaTimes in the “oasis network status” command is now deterministic (#313).
- Documentation for the “oasis rofl” commands was added (#300).
A new Oasis CLI 0.10.2 release was made on October 27, featuring the improvements described above.
Network Updates
The following upgrades were proposed on the network:
- On October 16, the Oasis Core 24.3 was proposed on Testnet.
- On October 25 Sapphire 0.9.0-testnet and Cipher 3.2.0-testnet were proposed on Testnet.
Read the developer platform and core platform updates sections below to learn more.
Mainnet Highlights
The number of daily transactions on Sapphire Mainnet started in the 26k range, dropped to 16k range in the middle of the month and increased back to 23k. The monthly average in October was 23,060 transactions per day and was lower by a third compared to September (32,792 transactions). In the middle of the month, the Ocean Predictoor service underwent a substantial upgrade, and their AI services were offline between Oct 17 and 22. This accounts for the majority of the monthly drop. The daily maximum was 28,931 transactions on 2 October and was also lower compared to the last month (46,097 transactions on 17 September).
The number of daily transactions on Emerald Mainnet was in two ranges, either around 3,600 transactions or in the 4,200 range. The monthly average in October was 3,929 daily transactions, which was slightly higher than the last month (3,777 transactions). The daily maximum was 4,781 transactions on October 2 (compared to 4,305 at the end of the last month on September 30).
As of October 31, 2024, the number of the Mainnet nodes are as follows (September figures in parenthesis):
- 114 (118) validator nodes
- 6 (6) key manager nodes
- 42 (44) Cipher ParaTime compute nodes
- 56 (57) Emerald ParaTime compute nodes
- 38 (40) Sapphire ParaTime compute nodes
There were no outages of the Oasis-provided services in October. The Oasis Rosetta gateway, maintained by one of the Oasis partners, had a few minutes of downtime on October 3 and 23. Similarly, the Oasis Scan indexer was down on October 6, 10, and 18 due to software upgrades. Downtime details on the Mainnet status page.
Testnet Highlights
The number of daily transactions on Sapphire Testnet gradually decreased from the 11k to 8k range throughout the month. The most likely cause is that there were no bigger Oasis hackathon events in October, which usually caused the transaction frequency to spike. The average in October was 9,910 transactions per day, which was 22% lower than last month (12,739 transactions). The daily maximum of 13,025 transactions on October 9 was also slightly lower than September’s maximum (14,698 on September 11).
The Emerald Testnet was mostly dormant, with health check monitors generating between 2,896 and 3,409 daily transactions. The monthly average in October was 3,247 transactions per day and was comparable to the last month (3,316 transactions). The daily maximum was 3,409 transactions on October 27 (compared to 3,498 the last month on September 14).
As of October 31, 2024, the Testnet figures were as follows (September figures in parenthesis):
- 45 (47) validator nodes
- 7 (7) key manager nodes
- 19 (19) Cipher ParaTime compute nodes
- 29 (30) Emerald ParaTime compute nodes
- 19 (19) Sapphire ParaTime compute nodes
- 6 (6) Pontus-X ParaTime compute node
On October 2 and 3, the Oasis team upgraded the Nexus indexer. Due to a misconfiguration, the compute-intensive reindexing procedure connected to the public Testnet endpoint, which resulted in degraded performance of the endpoint. Similarly to their Mainnet counterparts, the Rosetta gateway and the Oasis Scan services saw a short downtime on October 23 and October 10, respectively—further details on the Testnet status page.
Nexus and Explorer
The Nexus team (currently building the indexer on top of the Oasis consensus and compute layers) merged 11 pull requests in October, mostly maintenance PRs:
- The Sourcify API used for contract verification was updated to the latest standard (#768).
- Migrations used when running the indexer on empty database were consolidated from 32 to 5 to speed up the database initialization (#728, #761).
- The chain_name field is now consistently named in the config (#766).
- The information on the last 100 blocks is now stored per-validator so you can directly check their performance (#760).
- Experimental and deprecated marks are now correctly used in the openapi specs (#762).
- EVM tokens can now be sorted by total value (#755).
The team made two releases containing the fixes above: 0.4.0 on October 1 and 0.4.1 on October 30.
The Explorer team merged a series of bug fixes and polishes, resulting in 31 merged pull requests. The most notable ones:
- A bugfix where the EVM address was not shown even though it was part of the transaction was merged (#1564, #1582).
- The ETH/oasis1 address toggle was removed from the UI to prevent accidental withdrawals to non-consensus accounts (#1571).
- The validator name is now preferred on the consensus layer instead of their address (#1576).
- A new component was prepared that renders the validator uptime, their proposed and signed blocks (#1558, #1568, #1569).
- A new proposer column was added to the list of consensus blocks (#1573).
- Consensus transaction details were synced with the ParaTime API (#1530).
- On the EVM front, the function name of the verified contract call is now displayed in the list of transactions already (#1565).
- Lists that include pagination (e.g., blocks, transactions) are now stable based on their timestamp property (#1534).
- The consensus/ParaTime layer status labels and icons are now unified and consistent (#1561).
On October 17, a new 1.14.0 version of the Explorer was released and is already deployed on explorer.oasis.io!
Developer Platform and Paratime Updates
Activity in the Oasis SDK repository was all about ROFL, the Oasis solution to blockchain scalability and more efficient yet secure and provable computation:
- The Oasis SDK Runtime and Go client were bumped to Oasis Core 24.3 (#2010).
- We wrote about Intel's TDX (Trusted Domain Execution) support landing on the Oasis Core last month to be available in the 24.3 release. This month, TDX was integrated into the Runtime SDK for ParaTimes and ROFLs to use (#2034).
- A new rofl.StakeThresholds query was added to the Runtime API, which returns the currently configured stake needed to create a ROFL app (#2040).
- The ROFL utils Rust crate is now documented and integrated into the Oasis API reference site (#2011).
- Unencrypted GRPC connections to the Oasis node running on your local machine are now allowed (#2013). This is used, among others, by the Oasis CLI to connect to the Oasis node running locally inside a container such as the Sapphire Localnet docker image.
The new Runtime SDK 0.10.0 was released, featuring the improvements above, on October 24. A day later, a new Sapphire ParaTime 0.9.0-testnet and Cipher 3.2.0-testnet were released, which are based on the new Runtime SDK version.
The Sapphire team also merged a number of other intriguing features:
- Onchain CBOR parser is now a separate Solidity module (#440).
- Onchain HMAC SHA512-256 Solidity helper was added (#439).
- The Sapphire Python client received support for the signed queries (#396, #387).
- The Sapphire Wagmi integration now speaks to the Brave wallet out of the box (#411)
- A new test was added to ensure that code snippets across the documentation in all components can be imported (#419).
- The API reference documentation is now compiled for all Typescript components and accessible through the Oasis API reference site (#424, #437).
The Sapphire and Emerald Localnet docker images received important updates, including:
- The Nexus indexer and the Oasis Explorer are now shipped in the Localnet images (#637). This enables developers to easily debug their smart contracts and test indexer-related tasks locally.
- The Envoy proxy is now shipped in the Localnet images (#626). This allows developers to configure a Localnet GRPC endpoint in their Oasis CLI tool without hassle.
- A fix to the key manager bootstrapping in the Localnet image was merged, which occasionally got stuck for this on startup (#635). This was especially noticeable in the CI environments where storage is often slower than that of the local computer.
- Sapphire 0.9.0-testnet is now shipped in the Localnet image (#638).
The docs.oasis.io site saw a number of additions: The Oasis Privacy Layer (OPL) chapter was revamped and now also covers the Router and Celer IM bridges (#982, #1013, #974). A new chapter devoted to running a Localnet Docker image was added (#429), and the Oasis API reference subpage got a refreshed look.
The Playground now contains the five winning Oasis projects from the EthGlobal Singapore 2024 hackathon (#84). Also, searching through projects now also considers tags, ParaTimes, and programming languages (#79).
The Oasis Blockvote dApp received a substantial pack of improvements:
- When the poll is closed, the GasWithdrawTx events are emitted (#86).
- Support for short URLs was added (#86).
- The frontend code was greatly revamped and simplified, including the form components, individual votes, and removing hardcoded ParaTime references (#67, #68, #84, #87, #60, #85, #98).
- Support for the Pontus X chain was added (#63, #106).
- Poll ownership was revamped, and the access control is now properly handled (#79).
- The MetaData size of the polls was greatly reduced, saving ~90k gas (#75).
- rc-tooltip is now used instead of the native "title" attribute (#65).
- Support for publishing the voters, but not the votes, was added (#59).
- Use markdown for poll descriptions instead of serialized HTMLs (#80).
- Added Mobile support (#109, #103, #110).
In total, 50 pull requests were merged into the Blockvote dApp in October!
Core Platform Updates
The Oasis Core team was focused on further improvements around Intel TDX and CHURP:
- A QEMU-based Intel TDX provisioner was added along with other TDX bug fixes (#5861, #5909).
- Concurrent sessions are now supported in the enclave RPC client to speed up key share retrievals (#5879, #5917)
- Two fixes were applied as suggested in the internal CHURP audit. Bivariate polynomials and the combined bivariate polynomials are now verified to ensure they have non-zero leading terms (#5897). And secondly, the loop for polynomial generation is now limited to avoid potential freeze if the random number generator is broken (#5914)
- Proactivization was fixed in the Shamir secret sharing implementation (#5885)
- After a year of testing, the new PathBadger DB is now the default (#5876). This change only affects the Oasis nodes, which sync the consensus and ParaTimes states from scratch. The behavior of the existing nodes is not changed.
- State proofs are now exposed via GRPC (#5888). This enables dApps to verify the Oasis blockchain state without running the Oasis node.
- Insecure GRPC connections are allowed to loopback devices (#5878). This is useful, for example, when trying to connect to the Oasis node running locally in a docker image.
- An accessor for the runtime state was added, allowing runtimes to read more data about their operation from the consensus layer (e.g., detailed liveness statistics). (#5915).
Finally, the team released a new Oasis Core 24.3 on October 15. In total, 24 pull requests were merged in October, including a series of dependency bumps and smaller fixes.
What’s Next?!
That rounds out October — check back for further updates at the end of the month, plus a year end recap coming soon. Meanwhile, chat more with the Oasis team by joining the Oasis Discord or the Oasis Forum. Also, check out ELI5: The Runtime Offchain Logic Framework to learn more about Oasis’ latest offering.