Skip to content

Latest commit

 

History

History
40 lines (31 loc) · 1.3 KB

README.md

File metadata and controls

40 lines (31 loc) · 1.3 KB

Simple JSON-RPC proxy based on RPC methods.

How to Run

TBD.

Use Case

Imagine the following set-up:

  • Node1: serves many JSON-RPC methods on the running application, but only X method should be publicly exposed.
  • Node2: serves specific JSON-RPC methods in the running application, but only Y and Z methods should be publicly exposed.
  • Node3: should serve all JSON-RPC methods publicly, even if some overlap with Node1 or Node2.

In this scenario it would be ideal that there's a proxy which could receive a request and forward it based on rules:

  • If a request with method X comes, forward to Node1
  • If a request with method Y comes, forward to Node2
  • If a request with method Z comes, forward to Node2
  • Else, forward to Node3

That's exactly what go-jsonrpc-proxy solves. 😃

ToDos

  • SSL support
  • Command line to support --config=
  • Rate limits for each declared method (using Redis)
  • Rate limits based on API keys (e.g., API key X specified in the Authorization HTTP header can perform more requests than API key Y)
  • More load balancer strategies. Nowadays forwarding hosts are randomly chosen.
  • Admin API to add/remove nodes to serve specific JSON-RPC methods (or method patterns)
  • docker-compose file
  • Integration tests