Skip to content

Releases: OmegaTymbJIep/jsonrpc-proxy

Release list

v0.1.1

Choose a tag to compare

@OmegaTymbJIep OmegaTymbJIep released this 13 Mar 13:18
4a60887

🔄 JSON-RPC Proxy v0.1.1 Release

We're pleased to announce the release of JSON-RPC v0.1.1, which introduces important privacy improvements for configuration management.

What's New in v0.1.1

  • Named URL Routes: Added support for human-readable names in route configurations
  • Privacy Protection: Prevent sensitive API keys from appearing in logs
  • Improved Logging: Logs now show friendly endpoint names instead of full URLs
  • Batch Processing Fix: Fixed type handling in batch request processing

Configuration Update

The configuration format now supports named routes:

default_url: "https://mainnet.infura.io/v3/your-project-id"
default_name: "Infura Mainnet"
routes:
  - method: "eth_chainId"
    url: "https://polygon-rpc.com"
    name: "Polygon RPC"
  
  - method: "eth_blockNumber"
    url: "https://rpc.ankr.com/eth"
    name: "Ankr Ethereum"

Why This Matters

Many RPC endpoints require API keys in the URL. With this update, these sensitive credentials no longer appear in your logs, improving security and making logs more readable.

Upgrading

This is a backward-compatible change. Existing configurations without names will continue to work, but we recommend adding names to your routes for improved security and readability.

# Pull the latest version
docker pull ghcr.io/omegatymbjiep/jsonrpc-proxy:latest

v0.1.0

Choose a tag to compare

@OmegaTymbJIep OmegaTymbJIep released this 13 Mar 12:18
51b5f68

JSON-RPC HTTP Proxy v0.1.0

A simple, configurable HTTP proxy for JSON-RPC requests written in Go. The proxy routes requests to different backend services based on the JSON-RPC method name.

Features

  • Route JSON-RPC requests to different backends based on method name
  • Intelligent routing of batch requests to appropriate backends
  • YAML-based configuration
  • Fallback to default URL for undefined methods
  • Transparent proxy that preserves headers and status codes

Installation

Using Docker (Recommended)

# Pull the latest image
docker pull ghcr.io/omegatymbjiep/jsonrpc-proxy:latest

# Run the container
docker run -p 8080:8080 -v $(pwd)/config.yaml:/app/config/config.yaml ghcr.io/omegatymbjiep/jsonrpc-proxy:latest

Using Docker Compose

# Start the service
docker-compose up -d

Building from Source

git clone https://github.com/omegatymbjiep/jsonrpc-proxy.git
cd jsonrpc-proxy
go build -o jsonrpc-proxy
./jsonrpc-proxy -config=config.yaml -port=8080

Configuration

Create a config.yaml file with your routing rules:

# Default destination URL for any methods not explicitly defined
default_url: "https://mainnet.infura.io/v3/your-project-id"

# Method-specific routing
routes:
  - method: "eth_chainId"
    url: "https://polygon-rpc.com"
  
  - method: "eth_blockNumber"
    url: "https://rpc.ankr.com/eth"

Example Usage

# Single request
curl -X POST -H "Content-Type: application/json" \
     --data '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}' \
     http://localhost:8080

# Batch request
curl -X POST -H "Content-Type: application/json" \
     --data '[
        {"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1},
        {"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":2}
     ]' \
     http://localhost:8080

Known Limitations

  • Currently, the proxy does not support authentication for backend services
  • No caching mechanism for responses
  • No rate limiting