Marconi is a lightweight customizable solution for indexing and querying the Cardano blockchain. Its original purpose is to provide a library that eases the tailored indexing of on-chain information. However, this repository also contains a set of indexers that are ready to use and some executables that group them. While we’d recommend defining indexers that fits your need, you can reuse the existing ones to test Marconi.
-
Customizable backend. The core library comes with file:./marconi-core/src/Marconi/Core/Indexer/SQLiteIndexer.hs[SQLite backend], a file:./marconi-core/src/Marconi/Core/Indexer/FileIndexer.hs[file backend] or a file:./marconi-core/src/Marconi/Core/Indexer/ListIndexer.hs[in-memory backend].
-
file:./marconi-core/src/Marconi/Core/Indexer/SQLiteAggregateQuery.hs[Group indexers] to query them,
-
file:./marconi-core/src/Marconi/Core/Preprocessor/Resume.hs[Resume indexing] (new indexers don’t reset existing ones).
-
file:./marconi-core/src/Marconi/Core/Transformer/WithCatchup.hs[Batch insert] to speed up synchronisation with the node.
-
Logging using iohk-monitoring-framework.
-
Indexers can be file:./marconi-core/src/Marconi/Core/Coordinator.hs[grouped].
A comparison with other chain-indexing projects is also available.
The more in-depth user documentation is available in our website.
The Haskell API documentation (Haddock) for the Marconi libraries is hosted here:
You may generate them directly with Cabal
for each component:
cabal haddock marconi-core
cabal haddock marconi-core-json-rpc
cabal haddock marconi-cardano-chain-index
See the Design and Architecture section the website for more in-depth explainations.
See CONTRIBUTING for comprehensive documentation on how to contribute to the project, including development, and how to submit changes.
Issues can be filed in the GitHub Issue tracker.