0Chain Weekly Debrief — October 12, 2022

Tiago Souza
Zus Network

--

Happy Wednesday! Yesterday, we released a teaser video, check it out on our website. With all that is about to come, the team and our beloved community is feeling very excited.

Blockchain Team

Now let’s dive into our weekly update! Last week, the blockchain team mainly focused on fixing a newly detected state hash mismatch error that caused the network to be stuck, and made a fix to prevent the potential state hash mismatch error when computing a block state. In addition, the team closed several PRs and issues on 0chain, blobber and gosdk repos. Also, the team continued working on the unit test/system for batch-update PR, which is expected to close in the next few days, leaving the focus on the blobber upload issue. More details about the fixes bellow:

State hash mismatch error fix: this error was mainly caused by the concurrent MPT reading. The responses were handled in random order, therefore leading to different states to get compounded among miners/sharders. To avoid similar potential errors in the future, the team implemented a safe way to get items from MPT concurrently. Also, they detected new places that did not return the invalid state error of ‘node not found’ upward hence; miners that have full state will have different computed states from miners that do not have the state fully synced. Since this type of error is recurring, in this PR, the team implemented a state context errors variable to record all possible ‘node not found’ errors when accessing the MPT, so the errors are recorded automatically. The team will check the errors immediately after computing the state; in this way the invalid state errors can be caught automatically, and save time.

Optimized how sharders are rewarded, so only the sharders who are online and provided service are rewarded. Fixed a bug in the saving state pool when committing read markers because the stake pool was being saved to the wrong ID when moving tokens.

Implemented an unconfirmed txn pool review diagnostic page.

Fixed unit test errors, lint errors, and updated with the latest staging code.

Fixed API tests in system tests, and a bug on removing blobber from allocation.

Separated validators’ keys from blobbers. Previously, validator and blobber pairs shared the same wallet key, which would cause the transactions to fail due to past transaction nonce error.

Added API in blobber to serve challenge timings history, which will be used for chart visualization during load tests and potentially on the blobbers’ page as a table.

Fixed part of the blobber upload issue along with a bunch of code refactoring.

Fixed errors in gosdk request consensus code.

Hope you all enjoyed the update! Stay tuned for the next and very exciting days ahead!

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

--

--