Skip to content

feat: bootstrap cmd + Docker ZK support + ICT framework + Nix #261

Open
hard-nett wants to merge 7 commits into
mainfrom
feat/bootstrap
Open

feat: bootstrap cmd + Docker ZK support + ICT framework + Nix #261
hard-nett wants to merge 7 commits into
mainfrom
feat/bootstrap

Conversation

@hard-nett
Copy link
Copy Markdown
Collaborator

@hard-nett hard-nett commented Apr 16, 2026

Summary

  • Bootstrap command improvements: Fix genesis URL to terpnetwork/networks repo, remove dead RPC endpoint (rpc.terp.network), add --setup-only flag for headless node setup without starting
  • Docker ZK support: WASMVM_SOURCE build arg (github/local) enables building ZK-flavored terpd images from local zk-wasmvm fork alongside standard upstream builds
  • docker.mk overhaul: Multi-target builds (runtime, oline, localterp), ZK dep staging (make docker-stage-zk), WASMVM_SOURCE-aware go.mod rewriting for reproducible builds
  • ICT test framework: New ict-E2E.yml workflow (replaces old interchaintest-E2E), ict.mk makefile, and bootstrap_ict_test.go with production RPC connectivity tests
  • Proto bump: buf.yaml cosmos-sdk dep updated to v0.53.0

Test plan

  • go build ./cmd/terpd — vanilla build succeeds
  • terpd bootstrap --network morocco-1 --setup-only — headless bootstrap completes
  • make docker-build — standard Docker image builds
  • make docker-build WASMVM_SOURCE=local — ZK Docker image builds (requires staged zk-deps)
  • go test -tags ict ./cmd/terpd/cmd/ -run TestProductionRPC — RPC connectivity test passes

hard-nett and others added 3 commits April 15, 2026 19:53
…, and thin Python installer

- Add `terpd bootstrap` with --network (morocco-1/90u-4), --cosmovisor, --service, --pruning flags
- Multi-RPC failover uses distinct endpoints instead of duplicating one
- Add `terpd statesync` debug/test subcommands (list, info, query, test, fetch)
- Create thin Python installer that delegates node setup to `terpd bootstrap`
- Register StatesyncCmd and BootstrapCmd in root, add Bootstrap config to app.toml

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The Python installer belongs on the terp.network website, not in terp-core.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- bootstrap: fix genesis URL to terpnetwork/networks repo, remove dead
  RPC endpoint, add --setup-only flag for headless setup
- Dockerfile: add WASMVM_SOURCE arg (github/local) for ZK-flavored builds
- docker.mk: overhaul with multi-target builds (runtime, oline, localterp),
  ZK dep staging, and WASMVM_SOURCE-aware go.mod rewriting
- Add ict-E2E workflow (replaces old interchaintest-E2E)
- Add ict.mk makefile for interchain test runner
- Add bootstrap_ict_test.go with production RPC connectivity tests
- Bump buf.yaml cosmos-sdk proto dep to v0.53.0
@hard-nett hard-nett changed the title feat/bootstrap feat: bootstrap command + Docker ZK support + ICT framework Apr 16, 2026
Three devShells for unified developer experience:
- nix develop .#vanilla — Go-only, downloads prebuilt wasmvm
- nix develop .#zk — Go + Rust nightly, compiles zk-wasmvm locally
- nix develop (default) — full env with dep tooling (cargo-sort, python)

Includes: Go 1.26, golangci-lint, gofumpt, buf, make, gcc, Docker,
cargo-sort, and direnv integration via .envrc.

WASMVM_SOURCE and TERP_FLAVOR env vars set per shell to match the
Docker build arg convention from docker.mk.
@hard-nett hard-nett changed the title feat: bootstrap command + Docker ZK support + ICT framework feat: bootstrap cmd + Docker ZK support + ICT framework + Nix Apr 16, 2026
hard-nett and others added 3 commits April 17, 2026 19:41
Adds terpd snapshot -o <file> --home <dir> that:
- Freezes a running terpd process (SIGSTOP/SIGCONT), never SIGTERM
  (safe for PID 1 in containers)
- Extracts data/ + wasm/ only (never config/ — preserves node identity)
- Supports lz4/zstd/gzip compression
- Reads pruning config and measures actual data size for context
- Includes --split flag for chunking large archives
- Fully network-agnostic: no chain-id, denom, or network assumptions

Includes ICT test (snapshot_ict_test.go) that validates the full cycle:
local chain → extract snapshot → verify resume → restore to new node →
verify peer sync → chunk and reassemble.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant