0Chain Weekly Debrief — May 11th, 2022

Chad Hanson
Zus Network

--

Happy Wednesday everyone! Hope you are all doing well. Despite the current trend in the crypto space, our team continues to build while releasing a few critical updates. This week, we saw some key PRs pushed through that have been worked on for long periods of time. As noted in the past, some of the key areas of focus prior to Active Set testing included PRs that addressed/optimized transaction nonce, allocation smart contracts, challenges, rewards, etc. One major milestone this week includes the merging of our transaction nonce PR. Let’s take a closer look at some of this week’s progress. Next week, you will see the return of some content from Sculptex as he discusses one of his Proof of Concepts.

Non-Dev Team Updates

As reported by multiple community members on Telegram and Twitter, an issue was discovered on our landing pages for our wallet and storage application. The team is currently working with the devs to look into the issue and implement a solution. Thank you for your patience while we are working on it and we appreciate your help in reporting the issue.

Development Team Updates

Over the past week, the blockchain team closed nearly 15 PRs, 12 issues and opened an additional 10 new PRs in the 0Chain repo. One of the main repos that was closed was the transaction nonce PR. One of the developers notes that the “transaction nonce PR took enormous time as we fixed several big issues together through it. It was a big multifunctional PR that will help the blockchain run smoothly and required collaboration with the front-end team for UI implementation.” While the team continues to address other key components prior to Active Set testing, this a major step forward and is the result of rigorous testing and debugging. Transaction nonce is like a version number, similar to nonce in ethereum, which allows users to create an ordering of transactions. For example, if a transaction were to get stuck for some reason, such as too low of gas fee, a user could submit another transaction with the same nonce and a higher gas. When the transaction with the higher gas fee goes through, the other transaction cannot be completed as a nonce cannot be reused.

Last week’s update discussed a few other PRs that were nearing completion, including the blobber selection randomness. As noted, this PR improves the manner in which miners challenge blobbers by increasing the likelihood that a blobber with higher used capacity will be challenged more often. In addition to the completion of the challenges PR, we also saw the implementation of TTL of open challenges, which prevents challenges from infinitely piling up in memory which can impact node performance.

TTL PR includes the above mentioned changes.

Other improvements on the blockchain end include the addition of the rewards table to the event db as well as fixing duplicate blobber block reward transactions. Through this, we ensure that historical reward information is available via API and that the network is rewarding service providers as per tokenomics outline. Some of the current dev updates include changes to the tokenomics, which promote blobber onboarding and network adoption, that will be released following the rebranding. The team also fixed a goroutine leak issue that occurred on fetching blobbers from the MPT, which improves node performance and prevents overutilization of node resources (everyone’s favorite update: an optimization). This PR fixed a serialization issue for zcnsc and an issue which caused the zcnsc configuration not to load properly. The team also merged a PR which removes unused fields from the MPT object.

While many of these updates are being implemented and merged to different branches, our rigorous testing helps us identify issues which leads to a few of the optimizations noted above. As we have added in a few major PRs, including transaction nonce, the team was required to update some testing processes to include these new features. They have currently added more unit test cases for changeBlobber function as well as fixed the benchmark tests code.

Asides from the aforementioned code merges, the team continues work on a few critical PRs which will boost network speeds and performance. Despite still undergoing some work, the allocation PR is nearing completion with only a few minor changes remaining. This PR, which removes the ALL_BLOBBERS_KEY from the MPT, will help with performance gain. This is a major PR as it is related to all smart contracts that interact with blobbers. Just yesterday, we also updated our gitactions which helps with conductor tests. Our miner reward PR was just approved after rounds of testing and review.

The Blobber team continues work alongside the blockchain team, closing 5 PRs and 4 issues on the blobber repo. These PRs/issues are not as much fixes, but rather continue to make progress on the ongoing disk utilization enhancement PR. This PR will address a variety of issues including one that tracks the amount of disk storage on the fly. As allocations are started or ended, and that space is occupied by data, we need accurate data streams tracking these metrics. Meanwhile, a script was added to monitor used capacity for blobbers. Other areas of completion and focus include limiting the number of files/directories in allocations, implementing a fix for blobber urls that would not update properly, and investigating the use of Request Body in the DELETE http header request. These updates work to improve performance of blobbers to ensure faster performance of the storage network and helps prevent performance bottle necking when the network scales.

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

--

--