Cardano lacks modular chain indexer, Cardano DB Sync is heavy-weight and, like all other indexers, needs a cardano-node running on the side, doubling the RAM requirement to ~25GB.
This is the total amount allocated to Mafoc Chain Indexer with integrated Ouroboros networking ("integrated cardano-node").
-
Mafoc will integrate Ouroboros networking into the chain indexer and doesn't require a cardano-node to be run on the side.
There are only technical dependencies, libraries produced by IOG:
Will be available under Apache-2.0 license as a source repository on github.
Integrate cardano-node into Mafoc, using the know-how already present in the current cardano-node, hooking into the correct locations to receive the blocks, and drop unnecessary functionality (tx submission etc).
Other indexers (e.g Cardano DB Sync) require a cardano-node running on the side to consume blocks from. This is an accidental requirement because any indexer actually needs access only to the blocks get whatever data it needs. But the node does a lot more, including keeping a ledger state (full utxo set, and more) which takes up a lot of memory (~13GB as of now). Cardano DB Sync also keeps a ledger state, doubling the memory requirement. This issue is alleviated by integrating cardano-node directly into the indexer.
My project will engage dApp developers who need access to on-chain data and are frustrated in running the heavy-weight Cardano DB Sync as their only option.
Demonstrating the functionality is straightforward: indexing any data off the chain without cardano-node becomes possible.
Ability to run an indexer without cardano-node and Cardano DB Sync together, removing the huge RAM requirement to get any on-chain data.
Impact of the project can be measured by how many of the dApp developers switch from Cardano DB Sync to Mafoc.
The produced library and executable will remain open source for anyone to reuse.
Mafoc, a chain indexer is already implemented as a PoC with ~14 prebuilt indexer (https://captainhaskell.ee/mafoc/docs/category/indexers), but currently requires a cardano-node to connect to. Integrating the node is the logical next step and requires a big engineering push to get done.
Mafoc is also constantly improving as can be seen from the github repository: https://github.com/eyeinsky/mafoc/.
Get a dirty integration of cardano-node into Mafoc, such that it "somehow does something without the cardano-node" :)
Refactor out unrelated services, refactor the node itself such that it becomes easy to integrate, both for Mafoc and other clients.
Improve performance by indexing the chain in parallel from multiple other block sources over the network.
Integrate the refactored cardano-node back into IOHK's code base for upstream use.
(what is said in Milestone 3)
It's only me :)
No external services will be bought, all of the funds will go into development time.
IOHK is developing the Marconi chain indexer, which nominally has a similar goal. That team has ~5 people, if they make around 100k$ per year then they have a run rate of 0.5mln$ per year. Marconi has been in development for over two years. Mafoc has already surpassed them in terms of speed and also has extensive tests against Cardano DB Sync.
The cost of integating cardano-node into Mafoc is relatively well costed.