Drop the Avalanche-heritage /ext prefix; /v1 is the single canonical route
surface (one way, no backward compat). The node's baseURL is the source of
truth; clients, SDKs, CLI, indexer, maker, genesis, netrunner, and the
k8s/compose/gateway/explorer configs are updated to match.
Co-authored-by: Hanzo Dev <dev@hanzo.ai>
engines/k8s/engine.go: //go:build k8s. k8s.io/client-go transitively
pulls google.golang.org/protobuf via k8s.io/kube-openapi → gnostic-models.
Opt-in build: go build -tags k8s ./... to enable Kubernetes deploy
support. Default builds skip the file entirely.
scripts/check-no-grpc.sh: extend the CI gate to fail on any of:
- google.golang.org/grpc
- grpc-ecosystem/grpc-gateway
- google.golang.org/protobuf
- go.opentelemetry.io/proto/otlp/*
- k8s.io/client-go
Each has a documented -tags escape hatch. The default-tag dep graph
must be clean of all five.
Results:
bash scripts/check-no-grpc.sh → ok
binary size: 37.9 MB → 26.7 MB (-11.2 MB)
strings grep protobuf|grpc → 0 hits
Per the project rule: ZAP internal, ZIP edge. ZAP is now the only
wire protocol the default netrunner binary contains.
Per the project rule: ZAP internal, no google.golang.org/protobuf on the
wire OR in the netrunner rpcpb package by default.
rpcpb/rpc.pb.go: //go:build grpc — protoc-gen-go output stays available
behind the legacy tag for external integrations that still want the
proto Go types.
rpcpb/types.go: //go:build !grpc — hand-written plain Go structs for
every Request/Response/spec/info type. Same names, same field types,
same json: tags so JSON wire compat with rpc.pb.go is preserved. Plus
the proto-style GetX() helpers callers expect.
Default-build dep graph for rpcpb is now SINGLE-FILE: rpcpb/types.go,
zero google.golang.org/protobuf, zero google.golang.org/grpc.
scripts/check-no-grpc.sh: CI gate. Walks the default-tag dep graph
and fails non-zero if google.golang.org/grpc or grpc-ecosystem/grpc-gateway
reappears. Wire this into CI to make the rule stick.
- Update golangci-lint from v1.49 to v2.1.6 in lint.sh
- Add GOWORK=off to workflow env for workspace isolation
- Add CGO_ENABLED=0 to unit tests (avoids luxfi/accel C headers)
- Update GitHub Actions: checkout v4, setup-go v5, upload-artifact v4
- Update OS matrix: ubuntu-22.04, macos-14
- Run go mod tidy for updated checksums
- Update VERSION file from 1.14.33 to 1.15.0
- Add Commit and BuildDate to ldflags in build script
- Version now shows: 1.15.0 (commit: xxx, built: timestamp)
- Fix genesis cChainGenesis format: convert object to JSON string
* Resolves unmarshal error when starting luxd nodes
* Genesis field must be JSON string, not object
- Add script to start local 5-node network
* Uses pre-configured staking certificates from local/default/
* Properly configures bootstrap IPs and node IDs
* Includes peer connection verification