Layer A — wire framing: github.com/luxfi/api/zap (unchanged) Layer B — service spec: github.com/luxfi/proto/rpcdb (transport-agnostic data carriers, was node/proto/zap/rpcdb) Layer C — service impl + transports: node/db/rpcdb/ - service.go transport-neutral Service wrapping database.Database - zap_server.go ZAP transport adapter (default; used by cevm) - grpc_server.go gRPC transport adapter (-tags=grpc) One Service. Many transport adapters. Adding a transport is a new adapter file wrapping *Service; storage logic stays in service.go. Removed (-1390 LOC of duplicate/dead code): - node/proto/zap/rpcdb/rpcdb.go (moved to luxfi/proto/rpcdb) - node/proto/rpcdb/rpcdb_zap.go (dead HandlerRegistry path, no callers) - node/proto/rpcdb/rpcdb_grpc.go (duplicated gRPC server, replaced by node/db/rpcdb/grpc_server.go) - node/db/rpcdb/db.go (re-export shim, replaced by Service) Consumers updated to import the canonical adapter at node/db/rpcdb: - vms/rpcchainvm/zap/client.go - vms/rpcchainvm/zap/client_dbserver_test.go - vms/rpcchainvm/zap/cevm_e2e_test.go go.mod: add `replace github.com/luxfi/proto => ../proto` for in-tree development of the central wire-types module. Tests: db/rpcdb (3/3) + rpcchainvm/zap (4/4 incl. cevm cross-process e2e — KP_META written via ZAP db channel, no fallback to local zapdb).
Lux gRPC
Now Serving: Protocol Version 42
Protobuf files are hosted at https://buf.build/luxfi/lux and can be used as dependencies in other projects.
Protobuf linting and generation for this project is managed by buf.
Please find installation instructions on https://docs.buf.build/installation/.
Any changes made to proto definition can be updated by running
protobuf_codegen.sh located in the scripts/ directory of Lux Node.
buf Quickstart
https://buf.build/docs/cli/quickstart
Protocol Version Compatibility
The protobuf definitions and generated code are versioned based on the RPCChainVMProtocol defined for the RPCChainVM. Many versions of a Lux client can use the same RPCChainVMProtocol. But each Lux client and chain VM must use the same protocol version to be compatible.
Publishing to Buf Schema Registry
- Checkout appropriate tag in Lux Node
git checkout v1.10.1 - Change to proto/ directory
cd proto. - Publish new tag to buf registry.
buf push -t v26
Note: Publishing requires auth to the luxfi org in buf https://buf.build/luxfi/repositories