102 endpoints across 3 categories (chain RPC, wallet proxy, REST). Documents the banned import debt (encoding/json, net/http) and the migration plan to core/api. server.go is 2339 lines with 84 handlers — split plan documented but deferred to avoid conflicts with parallel agent work. Co-Authored-By: Charon <charon@lethean.io> |
||
|---|---|---|
| .. | ||
| coverage_test.go | ||
| README.md | ||
| server.go | ||
| server_integration_test.go | ||
| server_test.go | ||
| wallet_rpc.go | ||
| wallet_rpc_test.go | ||
daemon — Lethean Go Chain Daemon
JSON-RPC + REST API server backed by the Go chain.
File Structure
| File | Purpose | Methods |
|---|---|---|
| server.go | Core RPC router + all handlers (LEGACY — needs splitting) | 84 |
| wallet_rpc.go | Wallet RPC proxy to C++ wallet | 16 |
| server_test.go | Unit tests for RPC handlers | 22 |
| server_integration_test.go | Go-vs-C++ comparison tests | 6 |
| coverage_test.go | Tests ALL 48 RPC methods in one pass | 1 |
API Surface
- 69 chain JSON-RPC methods (native Go + CGo crypto)
- 16 wallet proxy methods (C++ wallet backend)
- 17 HTTP/REST endpoints (web-friendly JSON)
- Total: 102 endpoints
AX Debt
server.go uses banned imports (encoding/json, net/http). Migration to core/api is tracked. When core/api integration happens:
- JSON encoding → core.JSONMarshalString
- HTTP routing → core/api router
- SSE → core/api SSEBroker
- Metrics → core/api middleware
Categories (for future file split)
- Chain queries (getinfo, getheight, getblockheaderbyheight, etc.)
- Alias operations (get_all_alias_details, get_alias_by_address, etc.)
- Crypto utilities (validate_signature, generate_keys, fast_hash, etc.)
- Explorer/analytics (get_chain_stats, get_difficulty_history, etc.)
- Service discovery (get_gateways, get_vpn_gateways, get_network_topology)
- REST endpoints (/api/info, /api/block, /api/aliases, /health, /metrics)
- SSE (/events/blocks)
- Admin (pool, relay, reset stubs)