We are excited to officially launch our EOS API Proxy to the community. We hope that this service will become a fundamental building block for all dApp developers, helping abstract away the complexities of communicating with the EOS blockchain into a single API host.
The service is 100% free, requires no custom integration or client side library, and has already served over 500,000,000 successful requests since we opened it for beta.
You can try it now in your browser, let's use the
/chain/get_info endpoint (hint, check the HTTP headers in dev tools): https://proxy.eosnode.tools/v1/chain/get_info
The Problem for dApp Developers
As the network continues to grow, it has become more difficult to manage a pool of reliable EOS API nodes which provide the data to power applications and to interact with the chain. The problem is further amplified based on the type of queries that dApp developers want to run. For example, not all API nodes have full history enabled for every account, therefore it can be extremely difficult to provide a consistent user experience within a dApp.
The Problem for Block Producers
It's natural for a developer to find a single reliable API node and hardcode all requests to it. Continued reliability leads to more developers adopting the same API, and suddenly one producer is beginning to struggle under the weight of requests (similar to the thundering herd problem). On the flip side, there are many producers with great hardware that operate well under capacity as they are less known within the developer community.
We have created a single API host that automatically proxies requests to the closest and most performant nodes in the EOS network. It does so by continually monitoring the performance of the top block producer API nodes, feeding the results into a real-time selection algorithm which will re-route the request to the most relevant node at that point in time. Not only does this make reliable chain interaction easier for developers, but it also improves the user experience of any dApp as data is returned faster due to requests being contextual to the user’s geographic location.
Validating the Service
The community spirit within EOS is amazing! We have developed this service in conjunction with some of the biggest dApps in the ecosystem and have consulted with several block producer teams to make sure that the API proxy contains all the features needed to make it a true drop-in replacement for any EOS API host.
We would like to give special thanks to:
- Dafeng @ EOS Asia for being an early adopter, helping shape the product by integrating it into several dApps and taking the time to review several upgrades to the app and inform the dev community of the service
- Syed at EOS Cafe Block for great feature suggestions and catching some edge case scenarios
- Nathan at Scatter for helping validate the idea and confirming that it will work within various client side libraries
- Cesar from Nebula Protocol, Charles from EOS42, Ben from shEOS and all the others who have helped along the way!
We are currently serving upwards of 50,000,000 requests a day through the proxy, and we record metrics for every request. As we see a cross section of all requests to the EOS chain, we are collecting a lot of interesting data that we want to share with our fellow block producers to help improve API performance and reliability across the EOS network.
Our plan is to also open up a public metrics dashboard, similar to our node monitor which will allow anyone to interrogate the stats across producer, geo location, api endpoint and various other metrics to better understand the request patterns across the globe.
Finally, we are planning a series of blog posts on the technical side of how we built the proxy. Most of team at Block Matrix come from the online ad industry, we specialise in creating tech that can handle billions of events, and it’s been so much fun building and iterating on the API proxy app - we're excited to share what we’ve learnt along the way.
There is a dedicated microsite for the API Proxy @ https://eosnode.tools/proxy
If you'd like to discuss anything further, we have a telegram group @ https://t.me/eosnodeproxy
About Block Matrix
Block Matrix are currently a standby BP for the EOS network. We are super passionate about the EOS project and are focused on creating robust infrastructure and applications to support the network and the wider community.