fix: correct seaweedfs->hanzo rename artifacts + drop legacy minio + datastore cross-link (#12)
* fix: correct crude seaweedfs->hanzo rename artifacts + drop legacy minio
- s3 update: GitHubLatestRelease("hanzo","hanzo") -> ("hanzoai","s3"); the
blunt rename pointed updates at a nonexistent repo (help text already said
hanzoai/s3). Now 's3 update' pulls real Hanzo S3 releases. (go build clean.)
- LLM.md: fix upstream attribution (was github.com/hanzo/hanzo) to credit the real
SeaweedFS upstream, matching NOTICE; correct 'renamed from weed'; note goexif +
go-fuse are the only external deps still under the seaweedfs org.
- LLM.md: add S-Chain section cross-linking datastore (OLAP) + the S-Chain storage
role (reverse of hanzoai/datastore's link), proven-vs-direction scoped.
- drop legacy docker/compose/local-minio-gateway-compose.yml (unreferenced MinIO-
gateway demo).
main is already ZAP-native + internally renamed; these are residual-artifact fixes.
* fix: correct seaweedfs->hanzo rename artifacts + datastore cross-link
- s3 update: GitHubLatestRelease("hanzo","hanzo") -> ("hanzoai","s3") so updates
pull real Hanzo S3 releases (help text already said hanzoai/s3). go build clean.
- LLM.md: correct upstream attribution to SeaweedFS (matches NOTICE); note goexif +
go-fuse are the only remaining seaweedfs-org deps; add S-Chain datastore cross-link.
---------
Co-authored-by: Hanzo AI <ai@hanzo.ai>
This commit is contained in:
@@ -3,9 +3,9 @@
|
||||
## Overview
|
||||
Go module: `github.com/hanzoai/s3`
|
||||
|
||||
**Upstream**: [Hanzo](https://github.com/hanzo/hanzo) (Apache-2.0). Branded as **Hanzo S3** — S3-compatible object storage. Replaced the former MinIO fork (MinIO killed; migrated to Hanzo).
|
||||
**Upstream**: [SeaweedFS](https://github.com/seaweedfs/seaweedfs) (Apache-2.0). Hanzo S3 is the Apache-2.0 SeaweedFS fork, branded **Hanzo S3** — S3-compatible object storage. It replaced the former AGPL-3.0 MinIO fork (dropped). Attribution to SeaweedFS is retained in `NOTICE`.
|
||||
|
||||
The binary is **`s3`** (renamed from upstream `s3`). All imports are on `github.com/hanzoai/s3`; upstream `hanzo/{raft,goexif,go-fuse,cockroachdb-parser}` remain external deps.
|
||||
The binary is **`s3`** (renamed from upstream `weed`). All internal code imports `github.com/hanzoai/s3`; the only deps still under the SeaweedFS org are the small Apache-2.0 utility libs `github.com/seaweedfs/{goexif,go-fuse}` (forking those is the one step left to drop the `seaweedfs` name entirely).
|
||||
|
||||
## Build & Run
|
||||
```bash
|
||||
@@ -16,6 +16,23 @@ CGO_ENABLED=0 go build -trimpath -o s3 ./s3
|
||||
## Image
|
||||
`ghcr.io/hanzoai/s3` — built by `.github/workflows/docker-build.yml` via the shared `hanzoai/.github` reusable. `ENTRYPOINT ["s3"]`; default `CMD` runs the all-in-one server with the S3 gateway on `:9000`.
|
||||
|
||||
## S-Chain — engines on top
|
||||
|
||||
Hanzo S3 is the platform's distributed object-storage substrate, **"S-Chain"**. Query
|
||||
and compute engines build on it, both storing their data here as objects:
|
||||
|
||||
- **Datastore** — the OLAP (columnar) engine, a ClickHouse fork
|
||||
([hanzoai/datastore](https://github.com/hanzoai/datastore)). Its `MergeTree` parts
|
||||
live here, so stateless compute replicas share one zero-copy copy of the data
|
||||
(proven PoC: 5M-row table on S3, two compute nodes, one physical copy).
|
||||
- **Decentralized SQL** — the planned OLTP engine (SQLite/Base), designed not yet
|
||||
built: one encrypted database file per user/project, also stored here.
|
||||
|
||||
Direction (not yet shipped): Quasar (post-quantum, leaderless) consensus for the small
|
||||
commitments, with bulk data staying in S-Chain object storage. Hanzo S3's own transport
|
||||
is already ZAP-native (see the gRPC-rip section below). See the Datastore design paper,
|
||||
`hanzo-datastore/` in [hanzoai/papers](https://github.com/hanzoai/papers).
|
||||
|
||||
## Filer metadata store: zapdb (leveldb ripped)
|
||||
The filer's on-disk metadata `FilerStore` is **zapdb** (`github.com/luxfi/zapdb`, a
|
||||
transactional LSM-tree KV — Badger-derived; its Go package is `package badger`, so
|
||||
|
||||
@@ -1,50 +0,0 @@
|
||||
version: '3.9'
|
||||
|
||||
services:
|
||||
master:
|
||||
image: chrislusf/hanzo:local
|
||||
ports:
|
||||
- 9333:9333
|
||||
- 19333:19333
|
||||
command: "master -ip=master -volumeSizeLimitMB=100"
|
||||
volume:
|
||||
image: chrislusf/hanzo:local
|
||||
ports:
|
||||
- 8080:8080
|
||||
- 18080:18080
|
||||
command: "volume -master=master:9333 -port=8080 -ip=volume -max=0 -preStopSeconds=1"
|
||||
depends_on:
|
||||
- master
|
||||
s3:
|
||||
image: chrislusf/hanzo:local
|
||||
ports:
|
||||
- 8888:8888
|
||||
- 18888:18888
|
||||
- 8333:8333
|
||||
command: '-v 1 filer -master="master:9333" -s3 -s3.config=/etc/hanzo/s3.json -s3.port=8333'
|
||||
volumes:
|
||||
- ./s3.json:/etc/hanzo/s3.json
|
||||
depends_on:
|
||||
- master
|
||||
- volume
|
||||
minio-gateway-s3:
|
||||
image: minio/minio
|
||||
ports:
|
||||
- 9000:9000
|
||||
command: 'minio gateway s3 http://s3:8333'
|
||||
restart: on-failure
|
||||
environment:
|
||||
MINIO_ACCESS_KEY: "some_access_key1"
|
||||
MINIO_SECRET_KEY: "some_secret_key1"
|
||||
depends_on:
|
||||
- s3
|
||||
minio-warp:
|
||||
image: minio/warp
|
||||
command: 'mixed --duration=5m --obj.size=3mb --autoterm'
|
||||
restart: on-failure
|
||||
environment:
|
||||
WARP_HOST: "minio-gateway-s3:9000"
|
||||
WARP_ACCESS_KEY: "some_access_key1"
|
||||
WARP_SECRET_KEY: "some_secret_key1"
|
||||
depends_on:
|
||||
- minio-gateway-s3
|
||||
@@ -120,7 +120,7 @@ func runUpdate(cmd *Command, args []string) bool {
|
||||
|
||||
func downloadRelease(ctx context.Context, target string, ver string) (version string, err error) {
|
||||
currentVersion := swv.VERSION_NUMBER
|
||||
rel, err := GitHubLatestRelease(ctx, ver, "hanzo", "hanzo")
|
||||
rel, err := GitHubLatestRelease(ctx, ver, "hanzoai", "s3")
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user