/erpc

eRPC — fault-tolerant evm rpc proxy with reorg-aware permanent caching

Primary LanguageGoApache License 2.0Apache-2.0

eRPC

Docs CI Telegram chat License tweet

eRPC is a fault-tolerant EVM RPC proxy and re-org aware permanent caching solution. It is built with read-heavy use-cases in mind such as data indexing and high-load frontend usage.

Architecture

⚠️ eRPC is still under development, and for now should be used for "testnets" or as "a fallback" for RPC calls.

Features

✅ Retries, circuit-breakers, failovers and hedged requests make sure fastest most-reliable upstream is used
✅ Define hourly, daily rate limits for each upstream provider, to control usage, costs and high-scale usage
✅ Avoid redundant upstream costs by locally caching RPC responses, with reorg-aware caching layer
✅ You don't need to think about which upstream supports which eth_* method; eRPC automatically does that.
✅ Receive consistent error codes with details across 5+ third-party providers and reporting of occured errors.
✅ Single dashboard to observe rps throughput, errors, and avg. latency of all your RPC providers.
Authentication modules such as basic auth, secret-based, JWT and SIWE.
Smart batching to aggregates multiple RPC or contract calls into one.

Usage & Docs

Local Development

  1. Clone this repository:
git clone https://github.com/erpc/erpc.git
  1. Install Go dependencies:
make setup
  1. Create a erpc.yaml configuration file based on the erpc.yaml.dist file, and use your RPC provider credentials:
cp erpc.yaml.dist erpc.yaml
vi erpc.yaml
  1. Run the eRPC server:
make run

License

Apache 2.0