mirror of
https://github.com/luxfi/zapdb.git
synced 2026-07-27 06:54:45 +00:00
66 lines
1.6 KiB
Markdown
66 lines
1.6 KiB
Markdown
# Hanzo Zapdb
|
|
|
|
## Overview
|
|
Go module: github.com/luxfi/zapdb/v4
|
|
|
|
## Tech Stack
|
|
- **Language**: Go
|
|
|
|
## Build & Run
|
|
```bash
|
|
go build ./...
|
|
go test ./...
|
|
```
|
|
|
|
## Replicate sidecar (`cmd/replicate/`)
|
|
|
|
Streams ZapDB chain state to S3 (or any `hanzoai/vfs`-backed store) via
|
|
ZapDB's native `Backup(w, lastVersion)` + `Load(r)` API. Per-block age
|
|
encryption. One binary, three subcommands:
|
|
|
|
- `zapdb-replicate replicate` — daemon, runs as a sidecar next to lqd. Ticks
|
|
every `--interval`, publishes a manifest per tick, advances `HEAD.json`.
|
|
- `zapdb-replicate restore` — one-shot, runs as an init-container. Reads
|
|
HEAD, applies full + increments into an empty `--path`.
|
|
- `zapdb-replicate prune` — GC manifests + blocks older than the Nth-most-
|
|
recent full snapshot.
|
|
|
|
Build:
|
|
```bash
|
|
go build ./cmd/replicate
|
|
docker build -t zapdb-replicate -f deploy/replicate/Dockerfile .
|
|
```
|
|
|
|
K8s wiring lives in `deploy/replicate/`: `sidecar.yaml`, `init-container.yaml`,
|
|
plus a helm chart under `deploy/replicate/chart/`. Operator wires these
|
|
patches onto the lqd StatefulSet — no separate Deployment.
|
|
|
|
Folded in from the standalone `luxfi/zapdb-replicate` repo (2026-06-07):
|
|
that repo was duplicate scaffolding around ZapDB's native streaming-
|
|
replication API. Canonical home is here.
|
|
|
|
## Structure
|
|
```
|
|
zapdb/
|
|
CHANGELOG.md
|
|
CODE_OF_CONDUCT.md
|
|
CONTRIBUTING.md
|
|
LICENSE
|
|
Makefile
|
|
README.md
|
|
SECURITY.md
|
|
VERSIONING.md
|
|
backup.go
|
|
backup_test.go
|
|
badger/
|
|
batch.go
|
|
batch_test.go
|
|
changes.sh
|
|
compaction.go
|
|
```
|
|
|
|
## Key Files
|
|
- `README.md` -- Project documentation
|
|
- `go.mod` -- Go module definition
|
|
- `Makefile` -- Build automation
|