0Chain Weekly Debrief — November 16, 2022

Tiago Souza
Zus Network

--

Happy Wednesday! Our most anticipated AMA is coming on YouTube Live tomorrow at 10 AM PST Nov, the 17th. Make sure to attend as it will be very exciting and full of revelations! With all that is to come, we invite you all to participate in our vision to bring high performance to Web3. The future of our personal storage should be of privacy, ownership, and decentralization. Not your keys, not your data! Come and join the discussion on our new Discord channel.

With all that said, let’s dive into this week’s update!

Last week the blockchain team mainly focused on tuning the load test results in scale with 90 miners and 15 sharders. With the chaos test enabled, which showed great results. There were only a few issues, which were located and fixed. Meanwhile, the team continued working on the snapshot events tables on the 0Chain repo. These are mostly done and reviewed. However, all the related PRs still need to be closed once the remaining system test errors are fixed. In addition, more conductor test cases were added, and most of the issues mentioned in the last update were finally merged. Before pre-mainnet, some smart contracts still need to be addressed as they are running slow. This problem was possibly due to the load test code, which already has some fixes addressed. So far with chaos testing enabled, the network demonstrated great stability and performance!

Load Test Fixes

Fixed miner and sharder stake lock and unlock issue on loadTest repo. This is mainly caused by the incorrect context timeout duration setting. It could work without a problem when all nodes were alive, but once the chaos testing was enabled, nodes would go down randomly, and the transaction checking HTTP request would get stuck on those offline nodes if the request timeout was not set properly.

Fixed an issue where the load test was slow when verifying transactions. Previously, they would send requests to randomly selected N sharders, one by one, sequentially. The problem with that implementation is that if all of the sharders were to be offline, then the total wait time would be N * timeout, which is not necessary if coded properly to send requests concurrently.

Fixed an issue where the load test was slow when sending transactions. Although the code to send transactions to miners concurrently was already implemented. The whole process could still be slow due to two main reasons. First, the inappropriate setting of the context could lead to longer waiting times before the function returns. Second, it is not necessary to wait for all the requests to get through before returning — it is an async process. Only if all miners could not give a response they should return the error for the user indicating the situation, otherwise, it can be returned when any of the miners give a response.

Other fixes

Furthermore, the team merged the MPT node synching OR optimization, a miner and sharders staking fix PR, and a setup rate limiting for smart contract transaction APIs.

They also added a check to avoid including stack trace error info to API callers and more byzantine tests on responding block notarization with invalid tickets and valid tickets but for old rounds.

Moreover, the blockchain team fixed panic on invalid provider types and a miner startup issue in development mode. Integrated authorizers in conductor tests, optimized download and made the download process more readable for blobbers, and exposed SdkSplitKeys for mobile SDK.

Beyond these fixes, the team is also working on other PRs, such as the reward fix PR on the 0Chain repo, and transactions fee PRs on gosdk and clients repos. These are planned to be merged by this week.

Developer Resources

  • Interested in learning more about building on 0Chain or becoming a service provider? Check out our GitHub for access to repositories. Community ambassador Sculptex has created numerous tutorials to help get you started.
  • Try our BetaNet here! Users can create wallets and allocations, store files, send transactions, and share files.
  • Need help navigating creating wallets, allocations, or joining as a blobber? Check out our documentation page.
  • 0Chain’s API endpoints use simple and intuitive HTTP requests to interact with the blockchain in order to send/retrieve information to and from miners, sharders or blobbers in the active network.

About 0Chain

0Chain is a high-performance decentralized storage network designed to eliminate business threats such as censorship, privacy liability and data breaches. 0Chain helps entities achieve GDPR compliance, localization and tokenization, and monetizes private data sharing.

API| Docs | Telegram | Reddit | Twitter | Forum | GitHub

--

--