This project is a bundle of the following:- Cosmos RPC & REST Cache service (no rate limit, horizontal scaling)- Daily exports + Free Developer API (All delegators, staked amounts, balances, etc)- Cosmos Indexer (Future archive node builder)
—1) CosmosCache can be found here: https://github.com/Reecepbcups/cosmos-endpoint-cache.
This is a horizontal scaling solution for public node providers to ensure lots of traffic does not take down a node (Multithreading). A provider can use Regex to disable select endpoints as well. It can run on your node, on AWS, or in Docker (including on Akash, as I have helped SG-1 do).
By default it also has support for a backup RPC, REST, and WEBSOCKET provided yours goes down, thus allowing for a mesh network of RPC and REST requests automatically.
It has been live on Juno Network since February. At its peak, it has done 76.54m requests per day (2.37B req / Month). For reference, Polkachu as a whole does this across all their interchain nodes in a month. It is unheard of for a single node to process this many requests, yet CosmosCache can handle it. It even works with State syncing, so clients have no clue the data is cached. It’s just faster and more efficient.
I wish to continue support, coordinating with other cosmos infra providers on ALL chains (yes, it has Cosmos EVM support as well, tested on Canto), as well as run my own nodes with no rate limit as I do for Juno.
Rhino, StrangeLove, SilkNodes, and Lav5 have all also expressed interest. I am sure many others will as well once they hear about it. Will save lots of money on infra cost.
—2) Airdrops in Cosmos are hard. Building tooling to get a lot of data from the chain as well is too.
(This is a add on to part 1. Exports are made possible with me running nodes with 0 downtime on the RPC)
Using the infra above, I can provide an automatic export service to provide all user: balances, staked amounts (and validators), and all users account sequences + public keys every 20k blocks (to save space).
This can be used with my tooling here: https://github.com/Reecepbcups/airdrop-tools – to make doing airdrops easier without having to run your own Infra nodes to get exports.
However, this can also be extremely useful if a public API was put on top to query these in a simple REST format.
Example: Stakecito wants a way to get all their delegators to query what they voted on the past proposal. This way they can see what %’s their delegators vote, so they can do a weighted vote vs. abstain. An automtic service like mine will make this a ton easier to implement and scale
You can’t query the RPC/REST in Cosmos because it will take down the node. The solution? I can build a general REST API on top of my exports to use the latest JSON data. This way it’s serving off chain data with web2 like speed for these needs.
—3) Cosmos Indexer: https://github.com/Reecepbcups/cosmos-indexerThis is the fastest indexer in all of cosmos. on an i7-7700k I downloaded and decoded the entire Juno chain (8 mil blocks) in just 4 hours. The SQLIte file size of just 55Gb (14gb compressed) which stores and indexes all the needed data to do chain analysis.
You can find some chain analysis findings in the scripts/ folder here.
A future goal is to provide constantly updating latest indexed snapshots of the entire chain daily as well as build a lightweight archive node on top of the network (Currently Juno chain is >8000GB in size, this would be <500GB, a 16x savings in storage space)