0Chain Weekly Debrief — February 23, 2022
The dev team continues to make progress on multiple fronts, including progressing into further testing this week. While API testing begins this week, the blockchain team continues to address a few issues, resulting in improvements in smart contracts, yielding improving blockchain performance. We plan on having further insight on the results for API systems tests in the coming weeks. As noted within the community Telegram channels, early sign ups for our apps have gone live. You may see featured posts on various social media platforms to start to get initial sign ups so that when the apps launch, users will be notified and can quickly get started.
Development Team Updates
As noted by 0Chain CEO Saswata Basu, blockchain load testing has been yielding good outcomes as the result of significant blockchain updates over the past several weeks. This is an exciting result, as we have seen enhanced stability and reliability of our blockchain layer. With this recent success, the team is continuing its work on smart contract optimization. We are approaching our goal: a robust blockchain layer that is capable of handling the demands of an enterprise-grade storage network.
One key smart contract optimization took place this week in which we replaced the json package with msgp for MPT value node. This process included two distinct parts: 1) separating the MPT value serialization methods which means that the methods are used only by MPT so that RESTful APIs would not use them mistakenly and 2) replace json package with msgp to resolve conflicts. This optimization enabled the team to reduce smart contract execution by about half, especially for smart contracts which take >100ms to execute. For example, storage.cancel_allocation smart contract was reduced from 412ms to 84ms meanwhile storage.generate_challenges was reduced from 2976ms to 1642ms. With these improvements, we saw some great progres and all MPT-related data serialization will benefit from this; however, we will continue to optimize smart contracts that takes longer than 100ms to execute, such as storage.generate_challenges.
Other major areas of progress include our transaction cost feature, in which we saw new implementations and fixes added. This is currently undergoing integration tests, at the time of this update, and when successful, will be merged into stage which will make the blockchain more robust. The blockchain devs were able to identify a few inaccuracies in protocol implementation when doing block notarization, for which the team is currently discussing best methods to address this and will aim to implement updates over the next week, which will effectively avoid unnecessary verification that may waste miner CPU resources. As noted in previous weeks, the team continues to address the transaction-nonce feature which could cause network hash mismatch. New code was pushed and underwent testing, demonstrating improving outcomes however the team wants to fix a few remaining areas to optimize performance. Finally, the team has completed and fixed all Byzantine tests which are ready to be included in CI. The tests found a pair of state fetch bugs that are currently undergoing discussion to be fixed.
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.