heroImg

Decentralized S3 Storage | Züs Weekly Debrief (November 3, 2021)

Chad Hanson
November 3, 2021
News & Updates

As we swing into November, we look back at the progress made at the end of October. While the development team continues to progress with its testing, work also has begun for collaboration with our new UI team. In addition, Sculptex takes a look inside the 0S3 repo, a critical feature in our push for enterprise adoption. 0S3 is Decentralized S3 Storage. The development team also shares a glimpse into progress with Magma. Hope you are all having a great week, enjoy!

Sculptex’s Use Case of The Week: 0S3 Repo (Decentralized S3 Storage)

“Following our discussion on CRUD operations last week, this week I will discuss our 0s3 repo.

I expect most will already understand how huge AWS is. Paving the way for Enterprise Cloud services, this offshoot of Amazon has dominated the cloud scene for many years. One of the advantages of being a trailblazer is that you get to create your own standards. In this case, AWS has created a comprehensive set of tools and methods for interacting with their cloud services.

S3 stands for Simple Storage Service but ‘S3’ has become a recognized standard all of its own. Such is AWS S3 dominance, relative latecomers such as Google Cloud Services have had little choice but to align their offerings to be S3 compatible!

It’s great that we have 0Box, explorer, API, and CLI tools to interact with our storage. However, Enterprise Customers will already be heavily invested in using S3-compatible tools and methods. (Even if they aren’t actually using AWS!). In order for Züs to launch with an enterprise-grade platform, S3 compatibility is a must to simplify onboarding and minimize barriers to enterprise adoption.

Our S3 Solution

Our 0S3 repo offers a compatibility layer to the S3 command line tools. This allows Züs to simply replace existing enterprises by literally just replacing the existing S3 command. Instead, use the 0S3 Decentralized S3 Storage commands and you are using Züs storage instead!

All standard CRUD operations are supported, although the commands are structured more like operating system commands, and the source/destination determines if a file is being uploaded, downloaded, moved, etc.

For example, <0s3 cp s3://bucket1/file1.dat docs/file1.dat> would copy the file from the storage layer to a folder called docs on the local machine, so this would act as a download command. If the local path parameter had been before the S3 bucket parameter, it would have been interpreted as an upload command.

However the feature I found most cool is the replication of the recursive, include, and exclude parameters. The recursive option, as (you might expect) will recurse through all subfolders, while the include and exclude parameters allow for a list of file types or wildcard matches to be included or excluded respectively.

This is very powerful, and a single command could copy all your image files (*.jpg,*.png,*.gif), etc. in one go!

Of course, this is only part of the picture, there are also other compatibility tools in the works that align with other S3-related functionality. As I write, the 0s3 repo is still private with further testing being performed before being made public. But if you are (or know) a keen sysadmin who wants early access, just pop me a message in the Service Providers Telegram channel.”


Non-Dev Updates

The biggest developments this week are related to app development. Our UI/UX design team provided preliminary wireframes for the storage app. The wireframes are starting out with a general layout for the overall app and home page. The primary focus at the outset here is to facilitate general navigation that is simple, and intuitive, and guides our users toward taking advantage of our strongest features.

This is important because we must get the navigation right if we want to build an outstanding application. The general layout of the app will act as the foundation for our UI/UX. This is the first step towards our goal of deploying a blockchain-based storage application that is unlike anything else out there today, enabling us to both bring in new users and retain them.

Development Team Updates

This week, we completed the live streaming feature for our 0Proxy service with the view to bringing this to 0Box in the coming weeks. We continue to progress in multiple backend feature enhancements for blockchain and storage layers. These will then be integrated with the frontend/explorer. Recent blockchain testing has resulted in resiliency and scalability fixes that were merged with the code base for continued testing. Our system test suite has been updated to include new areas and has resulted in many improvements that will ease the use and resiliency of the end user. Overall a very productive week for feature development, bug fixes, and testing.

0Box

Over the past week, we completed the 0Box Android UI tests which were further reviewed and tested by the team. We resolved another iOS bug which could result in allocation selection issues or duplicate folders appearing in the UI, meaning that the 0Box users will experience fewer issues when using the app. As blobber repo testing persists and updates follow, we continue to ensure 0Box’s compatibility with the storage layer’s code base. Most notably to our community, we have started the discussion with the UI team regarding the implementation of an updated interface for 0Box and 0Wallet.

0Wallet

Similarly to 0Box, the 0Wallet team continues to collaborate with the UI team to ensure an optimal user experience for our wallet application. In addition, the team completed the majority of our UI tests for 0Wallet Android at this time, resulting in some small updates to code with the team currently going through the new pull request prior to committing to the main branch. We also continue to work on our USDC-ZCN conversion so that users have easy onboarding.

Blockchain

Recent blockchain testing allowed the development team to identify a few potential problem areas and implement updates. Upon reviewing the results of the recent tests, the team implemented fixes/optimizations for finalizing block gaps, the notarization process, and block state status. By improving the notarization block process, we ensure that miners and sharders compute block after block which prevents high CPU. This helps prevent the miner/sharder’s performance from being impacted. In addition, block state updates prevent MPT corruption and errors when syncing new nodes to the network.

Magma

The development team is excited to share some insight this week into Magma. Over the past several weeks, progress continues to accelerate rapidly. Current progress has resulted in the resolution of the majority of issues found in previous rounds of testing. There has been great progress on the code base, resulting in improved performance. The team is also working on sponsorship transactions, billing mechanisms, and system tests. Many updates to the code are what we call “refactoring” of the current code, meaning that we are improving the internal aspects of the code without changing functional behavior, for example, we can optimize how a set of data is sorted so a function returns orders of magnitude faster, but the behavior of that function doesn’t change — it still returns sorted data.


About Züs

Züs is a high-performance storage platform that powers limitless applications. It’s a new way to earn passive income from storage.

Latest Articles
Lori Bowers
March 29, 2024

Enterprises are constantly seeking ways to enhance the performance of our AI applications while keeping costs low. With the rise of data lakes as a key component of modern enterprises, finding a solution that offers high performance for faster AI processing at minimal cost is crucial. This is where Züs comes in, offering not only […]