Skip to content

A GraphQL-enabled indexer of the Mina blockchain.

License

Notifications You must be signed in to change notification settings

Granola-Team/mina-indexer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Mina Indexer

Tier 1 Tier 2 Tier 3 Production License

Constructs and serves indices of the Mina blockchain.

Note: As the project is in active development, be aware that the public APIs and functionalities are subject to change.

The Mina Indexer uses precomputed blocks (logged by a Mina node) as the source of truth for the blockchain.

Development Prerequisites

  1. Install Nix.
  2. Install and configure Direnv.

Execution Environment

Set ulimit -n (max open files) to 4096 or more.

Building the Project

Run rake check to check for errors. See also the output of rake for other options.

Storage

The default storage location is on /mnt because the testing code may download large volumes of test data, and placing on /mnt gives an opportunity to use different storage volumes from one's build directory.

Set the VOLUMES_DIR environment variable if you want to replace /mnt with another path.

Testing

Unit Tests

Execute unit tests to validate code functionality with:

rake test:unit:tier1
rake test:unit:tier2

Regression Tests

To quickly perform regression tests, which check for new bugs in existing features after updates, use:

rake dev

To perform the test battery that the (tier-1) CI runs, use:

rake tier1

Deployment

rake deploy:local_prod uses the Nix-based release binary

Generating OCI Images With Nix

Note: This requires the Docker Engine to be installed.

Building the OCI (Docker) image from Nix must happen from an x86-64-linux machine.

Issue the following command to build the image and load it into Docker:

rake build:oci_image

License

Copyright 2022-2025 Granola Systems Inc.

This software is licensed under the Apache License, Version 2.0.