Commit Graph
38 Commits
Author SHA1 Message Date
zeekay ab1fec5d1f neutral: drop 'Lux'/'Hanzo' brand prefixes in user-facing strings
MPC and KMS are protocols, not products. The Go module path
github.com/luxfi/mpc remains canonical (location), but user-facing
strings (--help, README, comments, banners) are brand-neutral.
'Lux MPC' → 'MPC', 'Lux KMS' → 'KMS', 'Hanzo MPC' → 'MPC'.
2025-12-28 15:34:18 -08:00
zeekay ada63785ac feat: ZAP=9999 across remaining mpc deployments + Dockerfiles
Sweeps the files missed in the earlier commit:
- top-level Dockerfile (EXPOSE)
- minio/lux-mpc-builds/Dockerfile-iam (EXPOSE)
- deployments/bridge/compose.yml (peer addresses + listen)
2025-12-28 15:14:26 -08:00
zeekay dce21bb311 fix: remove GOPRIVATE — luxfi/hanzoai repos are public
No GITHUB_TOKEN needed. No git config override. No GOPRIVATE.
Proxy downloads everything. GONOSUMDB skips sum DB for our repos.
go.sum checksums match proxy (not direct).
2025-12-28 09:36:43 -08:00
zeekay 7d93a6833a fix: update go.sum with proxy-matching lattice checksum, clean Dockerfile 2025-12-28 09:23:28 -08:00
zeekay 04768169da fix: vendor in Docker — resolves replace directives + checksum issues 2025-12-28 09:16:51 -08:00
zeekay 7de67054ae fix: scoped -mod=mod on build only, precise lattice h1: strip 2025-12-28 09:10:14 -08:00
zeekay 281b971384 fix: strip lattice checksum AFTER COPY . . (overrides sed) 2025-12-28 09:03:36 -08:00
zeekay 39db0e0f7f fix: strip stale lattice checksum, keep go.sum for replace directives 2025-12-28 08:56:59 -08:00
zeekay ae650cfe2b fix: dockerignore go.sum, fresh download without stale checksums 2025-12-28 08:50:22 -08:00
zeekay c99a41710c fix: -mod=mod auto-updates go.sum, scoped GONOSUMCHECK for private repos only 2025-12-28 08:43:44 -08:00
zeekay c87301cab0 fix: GOPROXY=direct bypasses stale module proxy cache 2025-12-28 08:37:07 -08:00
zeekay dd6f1b985f fix: go mod tidy regenerates go.sum with fresh checksums 2025-12-28 08:30:30 -08:00
zeekay 5464446b37 fix: rm go.sum before build, GONOSUMCHECK on all go commands 2025-12-28 08:23:52 -08:00
zeekay 26ac2de056 fix: download deps without go.sum to skip checksum verification 2025-12-28 08:17:15 -08:00
zeekay 5bd6bf403c fix: GOFLAGS=-mod=mod in Dockerfile to handle checksum mismatches 2025-12-28 08:10:38 -08:00
zeekay 2ee2b08945 fix: GONOSUMCHECK in Dockerfile (hanzoai/base checksum mismatch) 2025-12-28 08:04:00 -08:00
zeekay f4106e6b56 fix: Dockerfile adds UI build stage — embedded dashboard at /_/mpc/ 2025-12-28 06:57:47 -08:00
zeekay 32eb3c70ee Dockerfile: restore GITHUB_TOKEN + GOPRIVATE for private luxfi/hanzoai modules 2025-12-28 06:37:55 -08:00
zeekay adaa38b7d9 cmd: rename mpc-cli → mpc (pairs with mpcd daemon)
Matches the sshd/ssh, httpd/http unix pattern. Single Docker image
now ships both binaries: ENTRYPOINT is mpcd (the daemon); override
with 'mpc <subcommand>' for CLI ops (peers, identity, recover, etc).

Also aligns with lux/kms (single binary with subcommands) — operators
get the same shape across all Base-family daemons.
2025-12-28 06:31:18 -08:00
zeekay 41c7566348 feat: enable Go 1.26 runtime/secret for forward secrecy of key shares
Add GOEXPERIMENT=runtimesecret to Makefile, CI, and Dockerfile builds.
Wrap key share loading in all 5 signing session types with
withSecretErasure() so stack/register state containing raw share bytes
is zeroed after parsing. Build-tagged stub ensures everything compiles
without the experiment flag.
2025-12-27 23:20:52 -08:00
zeekay ff4b1dce84 fix: multi-stage Dockerfile, remove prebuilt — Go 1.26, alpine 3.21, GOPRIVATE for private deps 2025-12-27 21:34:54 -08:00
zeekay 9ff655c588 build: use pre-built binary in Dockerfile
GoReleaser copies the compiled binary into the Docker context.
Dockerfile should COPY the binary, not rebuild from source.
2025-12-27 17:43:08 -08:00
zeekay 7fd512051e feat: replace BadgerDB with ZapDB, remove local replace directives, vendor mode CI/CD
- Replace github.com/dgraph-io/badger/v4 with github.com/luxfi/zapdb/v4 v4.9.2
  throughout pkg/kvstore/, pkg/transport/, cmd/mpcd/, e2e/, scripts/
- Rename BadgerPath/BadgerPassword → ZapDBPath/ZapDBPassword in FactoryConfig
- Remove local replace directives from go.mod:
  - hanzoai/orm: now uses published v0.3.2 (tagged on GitHub)
  - hanzoai/kv-go/v9: now uses published v9.17.2-hanzo.1
  - Only remaining replace: agl/ed25519 → luxfi/edwards25519
- Add vendor/ directory (GOWORK=off go mod vendor) for reproducible builds
- Update Dockerfile to golang:1.26-alpine + -mod=vendor build flag
- Update CI/CD to use self-hosted linux/amd64 runners (no cross-compilation)
- Add k8s/valkey.yaml for session KV store
- Update k8s manifests: api-kv support, ZapDB password env, fresh secrets
- Dashboard API and MPC nodes all tested running on cluster (3/3 nodes healthy)
2025-12-27 15:30:42 -08:00
zeekay 75a30ce8ca fix: go.mod deps, white-label branding, cleanup stale workflows
- Fix go.mod: move chi, cors, jwt, pgx from indirect to direct deps
- Add jackc/puddle/v2 and golang.org/x/sync as indirect deps
- Add Dockerfile ARG TARGETARCH for multi-arch builds
- Add white-label hostname branding (mpc.lux.network vs cloud.lux.network)
- Add imagePullSecrets to K8s deployments
- Remove stale docker-publish.yml and docker.yml workflows
- Remove Dockerfile.go123 placeholder
- Fix release.yml Go version to 1.25.5
2025-12-27 13:24:52 -08:00
zeekay 34b0b1fc29 fix: Dockerfile Go version, public health endpoint, K8s probes
- Update Dockerfile from golang:1.23-alpine to golang:1.25-alpine
  matching go.mod requirement (go 1.25.5)
- Add public /healthz endpoint for K8s liveness/readiness probes
- Update api-deployment.yaml probes to use /healthz instead of
  JWT-protected /api/v1/status
- Run go mod tidy to fix missing go.sum entries
2025-12-27 13:18:15 -08:00
zeekay 6b38df60a4 feat: MPC wallet dashboard - full-stack implementation
Complete MPC wallet management platform rivaling Fireblocks/Utila/Fordefi:

Backend (Go):
- REST API with 60+ endpoints on chi router (pkg/api/)
- PostgreSQL schema with 13 tables (pkg/db/)
- JWT + MFA auth, bcrypt passwords, API key management
- Policy engine (deny/approve/require_approval)
- Transaction signing flow with approval workflow
- Subscription scheduler for recurring payments
- Payment requests with public pay pages
- Safe + ERC-4337 smart wallet integration (pkg/smart/)
- Rate limiting, webhook delivery (HMAC-SHA256), audit logging
- 27 passing tests (auth, policy engine, middleware)

Frontend (Next.js 14):
- 27 routes with monochrome dark theme (Tailwind + Geist fonts)
- Full API client with JWT auto-refresh
- React Query hooks for all resources
- Pages: dashboard, vaults, wallets, transactions, policies,
  whitelist, team, settings, API keys, webhooks, audit,
  subscriptions, payments, smart wallets

Infrastructure:
- Dockerfiles for API (Go) and dashboard (Next.js standalone)
- compose.yml for local development (PostgreSQL + API + dashboard)
- K8s manifests for mpc.lux.network + cloud.lux.network
- GitHub Actions deploy workflow (build → push GHCR → kubectl apply)
- TLS via cert-manager, Traefik IngressRoute for both domains
2025-12-27 13:11:38 -08:00
zeekay 97516cdc18 feat: add S3 backup integration, keepalive pings, and connection stability
- Add S3 backup manager (pkg/backup/s3.go) for periodic encrypted BadgerDB
  backups with upload to S3-compatible storage (MinIO)
- Add 30s keepalive pings in transport layer to prevent idle read timeouts
- Increase read timeout from 30s to 5 minutes
- Add connection tie-breaking for simultaneous peer connections (lower node
  ID keeps outbound) to prevent connection storms
- Add pointer-specific peer removal (removePeerConn) to prevent orphaned
  goroutines from removing replacement connections
- Export BadgerBackupExecutor type for use by backup package
- Add /backup HTTP endpoint for on-demand backup triggers
- Bump version to 0.3.2
2025-12-27 12:45:09 -08:00
zeekay a7d8fcd41a fix: add backward-compat symlink in Dockerfile and add prebuilt Dockerfile
Explicit COPY destinations and symlink from lux-mpc to mpcd so
StatefulSet commands expecting /usr/local/bin/lux-mpc still work.
Dockerfile.prebuilt allows packaging pre-compiled binaries without
a Go build step.
2025-12-27 11:12:26 -08:00
zeekay 93170c0765 fix: update Dockerfile for Go 1.25 and correct binary paths
- Upgrade base image from golang:1.24.5-alpine to golang:1.25-alpine
  to match go.mod requirement (go 1.25.5)
- Fix binary build paths: use ./cmd/mpcd instead of non-existent ./cmd/lux-mpc
- Remove non-existent lux-mpc-bridge binary
- Update CMD to use mpcd binary
2025-12-27 09:33:06 -08:00
zeekay 9e0fc3cefc fix: remove shell syntax from Dockerfile COPY command
- Remove '2>/dev/null || true' from COPY command
- Docker COPY doesn't support shell redirection
2025-08-17 17:14:02 -05:00
zeekay 6ebfb35db9 fix: remove all Go 1.24.5 workarounds
- Remove GOTOOLCHAIN=local from CI
- Fix cache keys to remove github.sha suffix
- Update Dockerfile to use golang:1.24.5-alpine
- Remove all sed workarounds and vendor mode attempts
- Use main Dockerfile instead of compatibility version
- Go 1.24.5 is now released, full native support
2025-08-17 17:11:25 -05:00
zeekay 8899c083ec fix: implement Docker build workaround for Go 1.24.5 requirement
- Add Dockerfile.go123 for compatibility with Go 1.23
- Create placeholder binaries to maintain container structure
- Update Docker workflow to use compatibility Dockerfile
- Add comprehensive Docker build documentation
- This is a temporary solution until Go 1.24.5 is released

The compatibility image maintains the correct structure but requires
mounting actual binaries built with Go 1.24.5 for functionality.
2025-08-17 10:38:19 -05:00
zeekay 5ecd6439b6 fix: use replace directives in Docker build for Go 1.24.5 deps
- Add replace directives for luxfi/log and luxfi/threshold
- Use older versions that don't require Go 1.24.5
- Set GOTOOLCHAIN=local for builds
- This allows Docker builds to succeed with Go 1.23
2025-08-17 10:34:44 -05:00
zeekay 6067684394 fix: completely rebuild go.mod for Docker compatibility
- Create new go.mod with Go 1.23 requirement
- Use go mod tidy to resolve dependencies
- This bypasses all Go 1.24.5 version requirements
- Add docker-build.sh helper script for local builds
2025-08-17 10:33:03 -05:00
zeekay bd5c9df2ab fix: temporarily modify go.mod version in Docker build
- Use sed to change go 1.24.5 to go 1.23 during Docker build
- This allows Docker builds to work until Go 1.24.5 is available
- Only affects the Docker build process, not the actual source
2025-08-17 10:30:45 -05:00
zeekay c619d295f3 fix: use GOTOOLCHAIN=local in Dockerfile to bypass version check
- Change from GOTOOLCHAIN=go1.23 to GOTOOLCHAIN=local
- This properly bypasses the Go 1.24.5 version requirement
- Allows Docker builds to succeed with Go 1.23
2025-08-17 10:29:23 -05:00
zeekay e655ae8544 fix: update Dockerfile to handle Go 1.24.5 requirement
- Add GOTOOLCHAIN=go1.23 environment variable
- Use GOTOOLCHAIN for all go commands in Docker build
- This allows Docker builds to work with go.mod requiring Go 1.24.5
2025-08-17 10:28:08 -05:00
zeekay ad3fe8a963 Update scripts, kms integration 2025-08-04 02:21:17 -05:00