Skip to content

feat: jsonrpc architecture for non-EVM (HAProxy) upstreams - #21

Open
snowkide wants to merge 1 commit into
feat/forwarded-client-id-metricsfrom
feat/jsonrpc-architecture
Open

feat: jsonrpc architecture for non-EVM (HAProxy) upstreams#21
snowkide wants to merge 1 commit into
feat/forwarded-client-id-metricsfrom
feat/jsonrpc-architecture

Conversation

@snowkide

Copy link
Copy Markdown

Summary

Stacked on #20 (forwardedClientId + WS metrics) — does not modify #20.

Adds architecture: jsonrpc / type: jsonrpc so non-EVM chains can sit on erpc with upstreams pointed at HAProxy (or direct node Services), getting:

Example (Solana via HAProxy)

networks:
  - architecture: jsonrpc
    alias: solana-mainnet
    hostname: solana-mainnet.cll.linkpool.com
    jsonRpc:
      id: solana-mainnet   # -> network id jsonrpc:solana-mainnet
upstreams:
  - id: solana-mainnet-proxy
    type: jsonrpc
    endpoint: http://solana-mainnet-proxy.solana-mainnet-proxy.svc.cluster.local:80
    jsonRpc:
      networkId: solana-mainnet
  - id: solana-mainnet-proxy-ws
    type: jsonrpc
    endpoint: ws://solana-mainnet-proxy.solana-mainnet-proxy.svc.cluster.local:81
    jsonRpc:
      networkId: solana-mainnet

Same pattern for starknet/tron/aptos/ton/sui/btc/polkadot (direct ports as needed).

Out of scope

Test plan

Made with Cursor

Passthrough JSON-RPC networks (jsonrpc:<slug>) skip EVM chainId/state
poller/hooks while keeping HTTP/WS forwarding and metrics — including
forwardedClientId from #20. Point upstreams at HAProxy/direct endpoints.

Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions

Copy link
Copy Markdown
File Lines Key changes Risk
🟠 networks.go +11/-0 ⚠ ErrJsonRpcExceptionInternal
🟢 architecture_jsonrpc.go +12/-0 JsonRpcNetworkConfig, JsonRpcNetworkConfig
🔵 ids.go +8/-0 JsonRpcNetworkId
🔵 defaults.go +21/-4
1 test files +23

xray — see through AI slop with deterministic architecture PR diff reviews

@snowkide

Copy link
Copy Markdown
Author

Supersedes the separate edge path (now closed):

  • docker-images#412
  • charts#342
  • infra#13481

After #20 + this + image: add architecture: jsonrpc networks/upstreams on chainlink-erpc in services-argocd-deployments (HAProxy/direct endpoints). Envoy *.cll.linkpool.com already routes via erpc HTTPRoutes.

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