Skip to content

anagrambuild/erpc

 
 

Repository files navigation

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.

Case Studies

🚀 Moonwell: How eRPC slashed RPC calls by 67%
🚀 Chronicle: How eRPC reduced RPC cost by 45%

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

Releases

No releases published

Packages

No packages published

Languages

  • Go 98.7%
  • Other 1.3%