0Chain Weekly Debrief — September 28, 2022
Happy Wednesday everyone! Did you hear about the recent data breaches? Companies including Uber, Optus, Revoult, and American Airlines, all had data breaches in the past days. There has never been such an alarming need for a secure and decentralized storage solution. That is why the 0Chain team is working hard towards a disruptive product that not only prevents data breaches, but can remain highly performant, flexible and customizable to attend to the most demanding needs.
Blockchain Team
As previously mentioned, there are two important issues to be solved before starting the Active Set: the network finality variation issue, and the DDOS on uploading file issue. The network finality variation has been improved with the batch-update branch and will be merged soon. Meanwhile, a fix for the DDOS issue is being reviewed.
Last week, the development team mainly focused on fixing errors on the batch-update branch after merging the latest staging code. This is also a preparation for merging the batch-update into staging later. Beyond this major issue, the following PRs and issues were closed on both 0chain, and gosdk.
First, the team fixed a bug in the events merging process. When the []AllocationBloberTerms slice of data was introduced, it caused the chain to work peculiarly. This is because some events were missed randomly, such as the blobber adding events leading to the blobber updating events to fail. The problem itself was not difficult to fix, but it was time consuming to locate the bug. This was due to the previous code not checking the error of the event adding process, hence the error of invalid event data was ignored. Check the details of the commit here: 1 and 2.
Furthermore, the team found and fixed another place that could lead to state hash mismatch. Fixed unique index missing error of read marker. Found and fixed the panic on /v1/block/get on sharders. This was mainly caused by concurrently block.Events writing when encoding it to json data. And, discovered that the process of adding.write marker event is slow. This is because there are hooks associated with it, so each time when a write marker is added to the database, the allocation and blobber tables will be updated to the related stats. Because of that, hooks were changed back to the allocation and blobber stat updates into separate events so that events in the same block could be merged and gain some performance.
In addition, the dev team merged UpdateAllocBlobberTerms and DeleteAllocBlobberTerms events. Fixed an int64 overflow issue, which was caused by assigning a negative value to currency.Coin variable, which is type of uint64, so the value was so large that the database could not process without an error. Fixed a concurrent issue on the unit test helper struct. Added default cost for transfer type transaction Fixed panic in gocql cluster. Removed unused fields in storagesc config. Moved the http://github.com/0chain/zboxmobile to gosdk/mobilesdk to facilitate keeping mobile sdk code up to date. And finally, corrected the order of arguments for creating allocation in gosdk.
Hope you all enjoyed the update. With pieces coming together, we cannot wait to share all that we have in store for you. Let’s support our hard working team with positivity!
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.