0Chain Weekly Debrief — October 27, 2021
Recap
Another exciting week for 0Chain as we participate in Huawei Cloud x Morpheus Labs conference on Thursday. In addition, we dive into CRUD operations, website redesign progress, and our weekly dev team updates. Read on to learn more!
Sculptex’s Use Case of The Week: CRUD Operations
“This week I'm gonna take a look at CRUD operations on the 0Chain platform
CRUD stands for Create, Read, Update and Delete, the fundamentals of any file storage platform. I’ll briefly discuss how 0chain handles each of these plus highlight some 0Chain specific features.
Each of these operations also include a commit option. This adds a commit to the blockchain to have permanent reference to this file. Useful for evidence in auditing, NFTs etc. (However committing each transaction does slow down operations a little).
What they all have in common is that they will require authorisation by a wallet, (and in turn an active allocation already attached to that wallet, with sufficient tokens locked in a pool for the appropriate read or write task in hand).
Create (Writes)
So this is an upload operation, and on the client (user) device, the file is split into appropriate chunks to serve to each of the Blobbers already defined for that particular allocation. These can be done in parallel, so if the client machine has good bandwidth, this can result in a significant performance increase over uploading a single large file to a single server or cloud provider, as each connection is often throttled at a maximum rate.
Some of the 0Chain specific upload features include:
- streaming upload option (incrementally upload chunks at a time), this is good for live streaming data or perhaps transactional data.
- encrypt if you want to keep your files private (but still be able to share with specific people via PRE if required).
- thumbnail if you want to have a thumbnail image representation of your file that can be downloaded without downloading the whole file.
(There are a few other options e.g. relating to video streaming but I'll save them for another time)
Reads
So reads are basically download operations. The client requests chunks from a majority of the blobbers and is able to reconstruct the file as soon as requisite number of data chunks are received. Again, as per upload, this can perform many times faster than downloading from a single server of cloud provider. Some of the 0Chain specific features include:
- partial download for if you have a large file that only a subset is required for. A good example of this is video streaming and in fact this was the key feature I utilized when creating the first video streaming demo.
- thumbnail as per upload, you can just download a thumbnail, useful for larger media files.
- authtickets, as mentioned previously, you can download from an authticket which is a share of a file or folder.
Update & Delete
Update basically translates into a write operation, overwriting previous content while delete is just as you’d expect. Each of these also has the commit option if required.
One of the underlying features of the storage platform is the verification of files using merkel trees plus an sha1 file hash of each file. This can be used to check if a file has changed since first uploaded by comparing with the hash of a local copy instead of having to download the file and compare. This can be the basis of a backup procedure etc.
Most of these features can be tried out on our explorer if you want to get a feel for how the platform works.”
Non-Dev Updates
0Chain at Huawei Cloud x Morpheus Labs Conference
0Chain is set to present at Huawei Cloud x Morpheus Labs conference on Thursday October 28 which starts at 10am SGT. To learn more and register to watch, click here.
Content
The biggest developments this week are related to app development and website design. Our UI/UX design team has officially begun working on the 0Box app and will have the first wireframe delivery by next week. The Website design team has delivered first iterations of animation and will soon issue the first delivery wireframes.
The wireframes are important for both the website and the app development because it enables coding to begin on the backend. It also provides a solid bird’s eye view of the new refresh — in other words, having progress on both in parallel allows us to ensure continuity in the messaging and rebrand.
Development Team Updates
General Overview
This week we launched the automated system testing pipeline for our developers to quickly test the new code. The test suite is being expanded on a daily basis by a dedicated team who maintain a bug tracker with any arising issues. So far the bug tracker contains only minor issues implying great stability of the base product.
In parallel to this effort was the usual laundry list of blockchain improvements and optimizations that is really starting to pay off when it comes to CPU, RAM and IO efficiencies. Internal load testing is also underway to ensure that both our functional and nonfunctional requirements are properly met.
Furthermore, we simultaneously enhanced and expanded core application feature, alerting improvements and manual testing in preparation for the Huawei summit
0Box
This upcoming week, the team will conduct a review on UI regression tests for 0Box Android, which contains full test coverage for all screen types. At this time, successful testing has resulted in no current pending issues for 0box Android, indicating the app is functioning as intended. 0Box iOS has a few pending issues currently being worked on. Moreover, we continue to conduct system tests for our PRE process for the NFT marketplace scenarios, expanding to 70% test coverage. Testing has resulted in improvements to blobber repo as well, proving the success of the test suites. Also, we are currently exploring further payment protocol options such as via USDC.
0Wallet
This upcoming week the team will conduct regression tests on the 0Wallet Android UI. 0Wallet iOS retains its pre-release status at this time.
Blockchain
The blockchain team continues to improve performance. These result in reduction of CPU and RAM resources, which subsequently making miners more stable. For example, notable improvement was made on the broadcasting messages performance by preventing unnecessary requests being sent, improving RRS updates for each round and API endpoints. These code improvements resulted in the decreased demand on CPU and RAM.
Further improvements were made to block notarization. These optimizations enhance the miners’ ability to communicate block info and maintain consensus on the latest block. Through this, chain stability improves by decreasing the chance of the chain becoming stuck. In addition, improvements were made to help prevent miner and sharder panic issues.
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.