Welcome to rpc.ag, the rpc aggregator tool for DApps! It simplifies node provider integration by balancing requests across multiple providers through a single endpoint. rpc.ag also enhances observability, improving the overall management and efficiency of your DApp infrastructure. Empower the community with better control and observability by using rpc.ag as the homepage of DApp blockchain infrastructure. Big brothers started watching node providers.
The architecture of the RPC aggregator with load balancing is shown in the following flowchart:
flowchart LR
CC(CLI) --> RPCProxy
RC(Rest) --> RPCProxy
RPCC(RPC) --> RPCProxy
WSC(WS) --> RPCProxy
subgraph RPC Proxy
RPCProxy(Handler) --> Routing
subgraph fasthttp
Routing --> Auth(Auth & Cors)
Auth --> Balancer
end
Balancer --> Proxy
end
Proxy -->|TCP -> 100ms| Upstream1[Provider 1]
Proxy -->|TCP -> 101ms| Upstream2[Provider 2]
Proxy -->|TCP -> 200ms| Upstream3[Provider 3]
Proxy -->|TCP -> 300ms| Upstream4[Provider N]
if you are curious about details
With this roadmap, we aim to add a robust monitoring and performance tracking system to the RPC Aggregator, along with a Prometheus exporter, Grafana dashboards, an uptime page, and a public page. These features will provide greater visibility into the health and performance of the RPC Aggregator and its providers, and promote transparency and accountability for blockchain world.
rpc.ag provides free rpc endpoints for developers and for projects at their super early stage. Please reach us at [email protected]
If you are a node provider and want to support developer community and want to be mentioned here, reach us at [email protected]
If you would like to contribute to the RPC Aggregator with load balancing, please fork the repository and create a pull request with your changes. Be sure to include unit tests and adhere to the project's coding style.
This project uses a Makefile to manage different actions related to the project, including building, running, testing, checking, creating a Docker image, running a Docker container, and cleaning. The following is a brief overview of each target in the Makefile:
build
: builds the project using the go build
command and generates the binary file in the bin/
directoryrun
: runs the binary file generated by the build
target and passes the configuration file as an argumentrunp
: runs the binary file generated by the build
target with a private configuration file located in_private/
directorytest
: tests the project using the go test
commandcheck
: runs various checks on the project, including verifying the module dependencies, building, vetting, andimage
: builds a Docker image of the project using the docker build
commandrun-docker
: runs a Docker container of the project using the docker run
command and maps port 8080clean
: removes the binary file and the bin/
directorymake build
commandmake run
or make runp
commandmake test
commandmake check
commandmake image
commandmake run-docker
commandmake clean
commandNote: Some Makefile targets require the go
, docker
, staticcheck
, and golint
commands to be installed.
IF, the project get support (grant from any blockchain) to cover some server expenses and a bit more, we will share it to developers who contribute to rpc.ag at any level (proxy, doc, monitoring, etc) we will also open some grants for huge tasks and/or issues
Total grant so far: $0
Sol Wallet to support, donate & track rpcroe9QQug5tfnG5hvZRCv65R27n3JdFpWuxhBkekH