Koios is best described as a Decentralized and Elastic RESTful query layer for exploring data on Cardano blockchain to consume within applications/wallets/explorers/etc. The consistent query layer allows participants to either query API remotely OR setup his replica instance and contribute to elasticity to the clustered query layer.
Problems Solved by Koios
- As the size of blockchain grows rapidly, we're looking at increasingly expensive resources and maintainance costs (financially as well as time-wise) to maintain a scalable solution that will automatically failover and have health checks, ensure most synched versions are returned. With Koios, anyone is free to either add their backend instance to the cluster, or use the query layer without running a node or dbsync instance themselves. There will be a health-check for each endpoint to ensure that connections do not go to a dud backend resulting in information that's stale.
- Folks who do put in tremendous amount of efforts to go through discovery phrase - are often ending up with local solutions, that may not be consistent across the board (eg: Live Stake queries across existing explorers). Since all the queries used by/for Koios layer is on github, anyone can contribute or leverage the query knowledgebase, and help each other out while doing so. An additional endpoint added will only be load balanced between the servers that pass the healthcheck for the endpoint.
- It is almost impossible to fetch some of the live data (for example, Live stake against a pool) due to the cost of computation and amount of data on chain. For such queries, many folks are already using different cache methods, or capturing ledger information from node. Wouldn't it be nice to have these crunced data that were take quite a few minutes to run be shared and available to be able to pick a relatively recent execution across the nodes? This will be available out of the box as part of Koios API.
- There is also a worry when going through updates about feasability/breaking changes/etc that can become a bottleneck for providers. Since participants for Koios automatically receive failover support, they can reduce impact of any subset of clusters going through update process.
- The lightweight query layers around at the moment are unfortunately closed source, centralised - and create a single point of failure. With Koios our aim is to give enough flexibility to all the participants to select their own backend, or pick from any of the available ones instead.
- Bad human errors causing an outage? The bandwidth for Koios becomes better with more participation, but just in case there isnt enough participation - we will be ensuring that atleast 4 trusted instances across the globe of Koios will be around for the initial year, allowing for enough time for adoption to build up gradually.
- Flexibility to participate at different levels. A consumer of these services can participate