mirror of
https://github.com/luxfi/node.git
synced 2026-07-27 03:39:39 +00:00
rpcdb: decomplect into Layer A/B/C topology
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).
This commit is contained in:
@@ -284,11 +284,22 @@ go build -tags=grpc # gRPC support (for testing/compatibility)
|
||||
```
|
||||
|
||||
**Key Packages:**
|
||||
- `github.com/luxfi/api/zap` - Core wire protocol and message types
|
||||
- `github.com/luxfi/api/zap` - Core wire protocol and message types (Layer A)
|
||||
- `github.com/luxfi/proto/rpcdb` - rpcdb service spec / data carriers (Layer B)
|
||||
- `github.com/luxfi/node/db/rpcdb` - rpcdb Service + ZAP/gRPC transport adapters (Layer C)
|
||||
- `github.com/luxfi/vm/rpc/sender` - p2p.Sender over ZAP/gRPC
|
||||
- `vms/rpcchainvm/sender/` - Node-side sender implementation
|
||||
- `vms/platformvm/warp/zwarp/` - ZAP-based warp signing client/server
|
||||
|
||||
**rpcdb Layered Topology (post-2026-05 reorg):**
|
||||
- Layer A — wire framing: `github.com/luxfi/api/zap` (independent module)
|
||||
- Layer B — rpcdb service spec: `github.com/luxfi/proto/rpcdb` (transport-agnostic data carriers)
|
||||
- Layer C — rpcdb impl: `node/db/rpcdb/{service.go, grpc_server.go, zap_server.go}`
|
||||
- `service.go` — transport-neutral `Service` wrapping `database.Database`
|
||||
- `zap_server.go` (default) — ZAP transport adapter (used by cevm)
|
||||
- `grpc_server.go` (`-tags=grpc`) — gRPC transport adapter
|
||||
- One Service, many transport adapters. Adding a transport = new file wrapping `*Service`.
|
||||
|
||||
**Wire Protocol Format:**
|
||||
```
|
||||
[4 bytes: length][1 byte: message type][payload...]
|
||||
|
||||
Reference in New Issue
Block a user