0Chain Weekly Debrief — July 27, 2022
Happy Wednesday everyone! For the next few weeks I will be taking over for Chad on the weekly updates. Chad is really busy with his new job and deserves some free time. Big shout-out to him and all his effort and support throughout all these years!
As some of you might know, my name is Tiago and I’ve been around since the start of the community, a true OG! I am excited to work as a bridge between the team and the community, so feel free to reach out to me on telegram if you have questions regarding the project. That said, let’s dive into this week’s update.
Last week, the dev team focused on supporting the new demos for our much anticipated apps. As we approach the premainnet events, demos are being finalized for you to experience the UI and new functionalities that you’ve all been patiently waiting for. This week’s update is rather technical, and mainly focused on frontend APIs.
Development Team Updates
The blockchain team closed 17 PRs, which were mainly focused on frontend APIs to support the upcoming demos.
New APIs were created and updated. APIs were updated 1) to support getting block by round number and to list the latest transactions with pagination, 2) to update the allocation stats on event db, 3) to return total blobber reward, and 4) to return rank of a blobber. By implementing support for these APIs, the team ensures that data streams that communicate information to our block explorer will provide accurate information in a timely fashion.
Further updates enabled cors and set allowed origin to all (set on nginx ingress) to allow more feature interaction via wasm. The team updated blobber validation processes which refactors the naming of code to make it easier to understand while implementing a min_write_price to ensure that allocation data, staking capacity, etc are accurate.
Furthermore, the team changed how blobbers are selected when creating allocations, and its allocation size to be divided by DataShard, instead of DataShards + ParityShards, which is consistent with the blobber implementation. This will ensure the allocations are consistent with the current blobbers implementation. This also will trigger an update when staking to the pool is modified.
While conducting our series of intensive Byzantine tests, the team was able to discover a fault tolerance test issue which would prevent miners and sharders from syncing the transaction nonce after restarting. This results in the miners and sharders inability to create new transactions, generate blocks, etc and subsequently fail the fault tolerant tests.
Moreover, they implemented the minimal lock period restriction to avoid clients lock and unlock tokens too frequently. With the 0Chain ecosystem enabling the ability for users to delegate tokens to service providers, read pools, or storage allocations, the team implemented a minimal period of time to prevent abuse of stake pools and prevent spamming of the network. The team continued its work to implement nonce management between conversions ZCN <-> WZCN for the upcoming bridge.
Blobber & gosdk
While there were few changes on the blobber side, some PRs were closed on the gosdk, and others are currently being reviewed, which will be merged following final rounds of testing.
The gosdk bridge smart contract was updated to decrease the gas consumption and the state size, effectively placing less strain on users and service providers. The team added a missing FactoryModuleERC721PackedAddress config to enable full functionality. Updates to gosdk were made in order to expose listAllocation on wasm and to expose other allocation-related APIs on wasm. They also added stake_at to support the min_lock_period feature implementation mentioned above.
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.