Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 36 additions & 26 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ zs3server provides a no-code s3-compatible decentralized storage server on Züs

## Züs Overview

[Züs](https://zus.network/) is a leading privacy and secure AI data platform that provides users full ownership and control of their data, with powerful AI chat and agents on Vult.network to accelerate productivity. It is also ideal for on-prem, high speed S3 storage as well as backup and disaster recovery to prevent outage, breach, and ransomware issues.
[Züs](https://zus.network/) is a leading privacy and secure AI data platform that provides users full ownership and control of their data, with powerful AI chat and agents on Vult.network to accelerate productivity. It is also ideal for on-prem, high speed S3 storage as well as backup and disaster recovery to prevent outage, breach, and ransomware issues.

It has an unparalleled data integrity layer on the blockchain and a zero knowledge network, with data and key distributed so that its almost impossible to breach. Another standout feature is that it allows users to share encrypted data easily, even on a public link.

Expand All @@ -26,31 +26,31 @@ Züs has ecosystem apps to encourage traditional storage consumption such as [Bl
Other apps are [Bolt](https://bolt.holdings/), a wallet that is very secure with air-gapped 2FA split-key protocol to prevent hacks from compromising your digital assets, and it enables you to stake and earn from the storage providers; [Atlus](https://atlus.cloud/), a blockchain explorer and [Chimney](https://demo.chimney.software/), which allows anyone to join the network and earn using their server or by just renting one, with no prior knowledge required.

We’ve built the first **S3-compatible storage platform** that is both **ACID-compliant** and runs on a **zero-knowledge network** — eliminating the need for additional services like AWS Athena or GuardDuty to secure or query your data.
- **5x better performance** – Real-world tests (see benchmark from s3compare.io) showed up to 5x gains versus AWS.
- **2x lower costs** – Thanks to zero egress and zero API fees, you save more as your usage scales.
- **2x lower carbon footprint** – Our erasure-coded architecture minimizes redundancy-related overhead (see below for architectural breakdown).
- **Bulletproof security** – Split-key security, zero-knowledge design, and erasure coding ensure unmatched internal breach resistance.
- **No vendor lock-in** – Easily add, remove, or swap providers with no disruption or central dependency.

One of our enterprise customers benchmarked Züs against AWS using [s3compare.io](https://s3compare.io) and saw **5x performance improvements** across common S3 operations — validating our edge in real-time workloads and data transfer scenarios.

We also fill security and vendor neutrality gaps that MinIO and AWS have in their solution. Check the table below for comparison.

Beyond backup and datalake storage, our platform is ideal for storing AI data, where integrity and verifiability matter such as for MCP workflows.

### Core Features – Züs vs AWS S3 vs MinIO

| **Feature** | **AWS S3** | **MinIO** | **Züs** |
|----------------------------------------|---------------------------------------------------------------------------|------------------------------------------------------------------------|-------------------------------------------------------------------------------------------|
| **Managed Infrastructure** | Fully managed with strong global uptime | Self-hosted; requires manual setup and scaling | Fully managed decentralized infrastructure with flexible scaling |
| **Split-key Internal Breach Security** | Not available; single-party access control | Not available | Built-in split-key security prevents internal breaches by decentralizing key control |
| **Zero Egress Fees** | Charges apply for all outbound data | No egress fees | No egress fees on outbound traffic across providers |
| **Zero API Fees** | Charges per API call | Free API access | Free unlimited API requests; ideal for high-frequency apps |
| **Encrypted Data Sharing** | Requires external tools or complex configuration | Not supported natively | Native proxy re-encryption enables secure, private sharing of encrypted files |
| **Zero Knowledge Network** | Not supported | Not supported | Zero-knowledge architecture ensures providers can't access file contents or user identity |
| **ACID Compliant (Data Integrity)** | Eventual consistency; not ACID compliant | No built-in ACID guarantees | Fully ACID compliant to ensure consistent reads/writes and verifiable storage behavior |
| **Add/Swap Infrastructure (No Lock-in)**| Vendor lock-in with no real-time provider switching | Tied to fixed infrastructure | Add, remove, or swap storage providers dynamically with no lock-in |

- **5x better performance** – Real-world tests (see benchmark from s3compare.io) showed up to 5x gains versus AWS.
- **2x lower costs** – Thanks to zero egress and zero API fees, you save more as your usage scales.
- **2x lower carbon footprint** – Our erasure-coded architecture minimizes redundancy-related overhead (see below for architectural breakdown).
- **Bulletproof security** – Split-key security, zero-knowledge design, and erasure coding ensure unmatched internal breach resistance.
- **No vendor lock-in** – Easily add, remove, or swap providers with no disruption or central dependency.

One of our enterprise customers benchmarked Züs against AWS using [s3compare.io](https://s3compare.io) and saw **5x performance improvements** across common S3 operations — validating our edge in real-time workloads and data transfer scenarios.

We also fill security and vendor neutrality gaps that MinIO and AWS have in their solution. Check the table below for comparison.

Beyond backup and datalake storage, our platform is ideal for storing AI data, where integrity and verifiability matter such as for MCP workflows.

### Core Features – Züs vs AWS S3 vs MinIO

| **Feature** | **AWS S3** | **MinIO** | **Züs** |
| ---------------------------------------- | --------------------------------------------------- | ---------------------------------------------- | ----------------------------------------------------------------------------------------- |
| **Managed Infrastructure** | Fully managed with strong global uptime | Self-hosted; requires manual setup and scaling | Fully managed decentralized infrastructure with flexible scaling |
| **Split-key Internal Breach Security** | Not available; single-party access control | Not available | Built-in split-key security prevents internal breaches by decentralizing key control |
| **Zero Egress Fees** | Charges apply for all outbound data | No egress fees | No egress fees on outbound traffic across providers |
| **Zero API Fees** | Charges per API call | Free API access | Free unlimited API requests; ideal for high-frequency apps |
| **Encrypted Data Sharing** | Requires external tools or complex configuration | Not supported natively | Native proxy re-encryption enables secure, private sharing of encrypted files |
| **Zero Knowledge Network** | Not supported | Not supported | Zero-knowledge architecture ensures providers can't access file contents or user identity |
| **ACID Compliant (Data Integrity)** | Eventual consistency; not ACID compliant | No built-in ACID guarantees | Fully ACID compliant to ensure consistent reads/writes and verifiable storage behavior |
| **Add/Swap Infrastructure (No Lock-in)** | Vendor lock-in with no real-time provider switching | Tied to fixed infrastructure | Add, remove, or swap storage providers dynamically with no lock-in |

## Architecture

Expand Down Expand Up @@ -243,7 +243,7 @@ Check `mc --help` for the exhaustive list of cmds available.
## Test using Postman Using REST APIs

- Add the following authorization settings
![](./assets/postman-auth.png 'Authorization settings')
![](./assets/postman-auth.png "Authorization settings")
- The `AccessKey` would be the MINIO_ROOT_USER which you set earlier during zs3server deployment and `SecretKey` would be the MINIO_ROOT_PASSWORD.
- If you do not want to share the MINIO_ROOT_USER and MINIO_ROOT_PASSWORD, you can also create a user from minio console and share their access key and secret instead.
- Use the REST APIs to interact with the server.
Expand Down Expand Up @@ -311,6 +311,16 @@ The server will upload and download objects concurrently based on the number of
}
```

## Consensus Threshold

The server will use the consensus threshold set in the configuration file to determine the number of blobbers to be used for uploading objects. The consensus threshold can be set in the zs3server.json file under .zcn folder, by default it is set to data+1. For example:

```
{
"consensus_threshold": 5
}
```

## FUSE-based file system

The server can be mounted as a file system using [s3fuse](https://github.com/s3fs-fuse/s3fs-fuse). The server can be mounted using the following commands:
Expand Down
1 change: 0 additions & 1 deletion cmd/disk-cache-backend.go
Original file line number Diff line number Diff line change
Expand Up @@ -408,7 +408,6 @@ func (c *diskCache) purge(ctx context.Context) {
// cache writeback commit setting is enabled.
status, ok := objInfo.UserDefined[writeBackStatusHeader]
if ok && status != CommitComplete.String() {
log.Println("Skipping cache entry", objInfo.Name, "as it is not committed yet")
return nil
}
cc := cacheControlOpts(objInfo)
Expand Down
4 changes: 4 additions & 0 deletions cmd/gateway/zcn/gateway-zcn.go
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,10 @@ func (z *ZCN) NewGatewayLayer(creds madmin.Credentials) (minio.ObjectLayer, erro
if err != nil {
return nil, err
}
if serverConfig.ConsensusThreshold <= allocation.DataShards {
serverConfig.ConsensusThreshold = allocation.DataShards + 1
}
allocation.SetConsensusThreshold(serverConfig.ConsensusThreshold)
contentMap = make(map[string]*semaphore.Weighted)
ctx, cancel := context.WithCancel(context.Background())
zob.ctxCancel = cancel
Expand Down
1 change: 1 addition & 0 deletions cmd/gateway/zcn/initSDK.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ type serverOptions struct {
UploadWorkers int `json:"upload_workers"`
DownloadWorkers int `json:"download_workers"`
MaxConcurrentRequests int `json:"max_concurrent_requests"`
ConsensusThreshold int `json:"consensus_threshold"`
}

func initializeSDK(configDir, allocid string, nonce int64, walletDetails string) error {
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ toolchain go1.22.5
require (
cloud.google.com/go/storage v1.28.1
github.com/0chain/errors v1.0.3
github.com/0chain/gosdk v1.20.2-0.20250328102140-4c947d24304c
github.com/0chain/gosdk v1.20.7-0.20250508093340-359c56f79cc1
github.com/Azure/azure-pipeline-go v0.2.2
github.com/Azure/azure-storage-blob-go v0.10.0
github.com/Shopify/sarama v1.28.0
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,8 @@ github.com/0chain/common v1.18.3 h1:42dYOv2KyMTSanuS67iDtfv+ErbSRqR8NJ3MG72MwaI=
github.com/0chain/common v1.18.3/go.mod h1:Lapu2Tj7z5Sm4r+X141e7vsz4NDODTEypeElYAP3iSw=
github.com/0chain/errors v1.0.3 h1:QQZPFxTfnMcRdt32DXbzRQIfGWmBsKoEdszKQDb0rRM=
github.com/0chain/errors v1.0.3/go.mod h1:xymD6nVgrbgttWwkpSCfLLEJbFO6iHGQwk/yeSuYkIc=
github.com/0chain/gosdk v1.20.2-0.20250328102140-4c947d24304c h1:hQEih+iqfNVXlthPsiZqxCanddbijwKrywZTB4YDYqE=
github.com/0chain/gosdk v1.20.2-0.20250328102140-4c947d24304c/go.mod h1:dwDhPmkbmcTqbOcTpFZqcuKPZBa7Eq79vz5bNLRtxxo=
github.com/0chain/gosdk v1.20.7-0.20250508093340-359c56f79cc1 h1:L8OFfcMyV+M3IH91WY5B6X4sbcORnnGDzqP/mJSS9cY=
github.com/0chain/gosdk v1.20.7-0.20250508093340-359c56f79cc1/go.mod h1:dwDhPmkbmcTqbOcTpFZqcuKPZBa7Eq79vz5bNLRtxxo=
github.com/Azure/azure-amqp-common-go/v2 v2.1.0/go.mod h1:R8rea+gJRuJR6QxTir/XuEd+YuKoUiazDC/N96FiDEU=
github.com/Azure/azure-pipeline-go v0.2.1/go.mod h1:UGSo8XybXnIGZ3epmeBw7Jdz+HiUVpqIlpz/HKHylF4=
github.com/Azure/azure-pipeline-go v0.2.2 h1:6oiIS9yaG6XCCzhgAgKFfIWyo4LLCiDhZot6ltoThhY=
Expand Down