Skip to content

Repository files navigation

cardano-ignite

Index

Information

Cardano Ignite is a toolbox for rapidly deploying and managing Cardano testnets with multiple stake-pools distributed across different simulated regions. It comes with helper tools, such as cardano-db-sync, Blockfrost, Prometheus and Loki. The testnet topology, log files and cardano-node metrics are visualized in built-in Grafana dashboards.

Showcase

Status Block Chain
Physical Topology Localroot Topology
Network Process

Target Audience

This project is designed for developers and end users who wish to run their own Cardano testnet for rapid development or experimentation. It is not intended for performance benchmarking or integration testing, such as the Antithesis project.

Tech Stack

The following list provides an overview of the key tools and technologies used in the Cardano Ignite project.

Name Description Link
Amaru A fully open source node client for Cardano, written in Rust. https://github.com/pragma-org/amaru
Blackbox Exporter A Prometheus Exporter for probing endpoints over multiple protocols. https://github.com/prometheus/blackbox_exporter
Blockfrost A blockchain explorer and API for Cardano. https://github.com/blockfrost/blockfrost-backend-ryo
Cardano CLI A command-line interface for the Cardano blockchain. https://github.com/IntersectMBO/cardano-cli
Cardano DB Sync A database synchronization tool for the Cardano ledger. https://github.com/IntersectMBO/cardano-db-sync
Cardano Node A node implementation of the Cardano blockchain. https://github.com/IntersectMBO/cardano-node
Cardano TX Generator A tool for generating transactions on the Cardano blockchain. https://github.com/IntersectMBO/cardano-node/tree/master/bench/tx-generator
CoreDNS A flexible, extensible DNS server. https://github.com/coredns/coredns
Grafana An open and composable observability and data visualization platform. https://github.com/grafana/grafana
Loki A log aggregation system designed to store and query logs. https://github.com/grafana/loki
PostgreSQL An object-relational database system. https://www.postgresql.org
Prometheus A systems and service monitoring system. https://github.com/prometheus/prometheus
Yaci Store A modular, high-performance Cardano blockchain indexer and datastore. https://github.com/bloxbean/yaci-store

Testnets

The repository ships a set of pre-defined testnets under testnets/. Binary testnets use a pre-built cardano-node and build quickly, while Source testnets compile the node from source and take considerably longer on the first build. Each testnet directory contains a README.md with further details, such as the cardano-node version in use.

Testnet Nodes Node Build Description
simple_network_binary 3 pools Binary Three-pool testnet with a pre-built cardano-node. A good first choice.
single_pool_binary 1 pool Binary The smallest testnet, a single pool.
simple_network_source 3 pools Source Like simple_network_binary, but cardano-node is built from source.
simple_mixed_nodes_source 3 pools + 2 Amaru nodes Source cardano-node and Amaru nodes running side by side.
simple_mixed_consensus 12 pools Source A mixture of nodes running in Praos- or Genesis-mode, in-memory and disk UTXO HD.
global_network 6 pools, 24 nodes Source Block producers and relays spread across simulated regions, mixed node versions.
global_network_mixed_nodes 6 pools, 24 nodes + 2 Amaru Source Global topology with both cardano-node and Amaru, starts with 4 epochs of blocks.
global_network_2c 4 pools, 16 nodes Source Reduced two-continent variant of global_network for A/B benchmarking, needs 8 cores.

Requirements

Cardano Ignite builds on top of Docker Compose. Due to dependencies related to networking, its current compatibility is limited to Linux-based operating systems.

The following applications are required:

Installation

Please consult the SETUP.md file for detailed installation instructions.

Getting Started

  • Pull the Cardano Ignite Git repository

    git clone https://github.com/cardano-foundation/cardano-ignite.git
    cd ./cardano-ignite/
    
  • Pick a testnet from the Testnets overview. For a first run, simple_network_binary builds quickly and is a good starting point.

  • Build the simple_network_binary testnet

    make build testnet=simple_network_binary
    

Note

The first build downloads the base images and builds all containers. For simple_network_binary this takes about 5-10 minutes and around 10 GB of disk space, depending on hardware and network bandwidth. Testnets that build cardano-node from source can take more than an hour.

  • Start the simple_network_binary testnet without optional containers

    make up testnet=simple_network_binary
    
  • Start the simple_network_binary testnet with optional containers (Blockfrost, TX Generator...)

    make up-all testnet=simple_network_binary
    
  • Open your browser and navigate to
    http://localhost:3000

  • Enter the credentials below

    Username:
    cardano
    
    Password:
    cardano
    
  • Watch the testnet come alive. The pools start producing blocks right away, and within a few minutes the Grafana dashboards fill up with logs, metrics and the testnet topology.

  • Check that all pools have reached consensus

    make validate
    

    The testnet is healthy when the reply shows "status":"synced".

  • Stop the simple_network_binary testnet

    make down testnet=simple_network_binary
    

Useful Commands

  • Show available commands

    make help
    
  • Check for consensus among all pools

    make validate
    
  • Show block adoption statistics

    make blockperf
    
  • Show canary transaction statistics

    make canary
    
  • Show latest block and slot from cardano-db-sync

    make dbsync
    
  • Show information about the latest block from Blockfrost

    make block
    
  • Show details about all stake-pools from Blockfrost

    make pools
    

Appendix

About

Cardano Ignite is a toolbox for rapidly deploying and managing Cardano testnets with multiple stake-pools and helper tools (such as cardano-db-sync and blockfrost).

Topics

Resources

Stars

11 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages