Skip to content

Default network

piotr-iohk edited this page Oct 17, 2023 · 4 revisions

Minimina allows to create a network with default settings called default. This network includes several block producers, a seed node, snark coordinator and snark workers and an archive node (including postgres database and archive-service). To create the network run command:

$ minimina network create

Investigate the network directory ~/.minimina/default/

$ tree -p ~/.minimina/default/

~/.minimina/default/
├── [-rw-rw-r--]  create_schema.sql
├── [-rw-rw-r--]  docker-compose.yaml
├── [-rw-rw-r--]  genesis_ledger.json
├── [drwx------]  libp2p-keypairs
│   ├── [-rw-------]  mina-archive
│   ├── [-rw-r--r--]  mina-archive.peerid
│   ├── [-rw-------]  mina-bp-1
│   ├── [-rw-r--r--]  mina-bp-1.peerid
│   ├── [-rw-------]  mina-bp-2
│   ├── [-rw-r--r--]  mina-bp-2.peerid
│   ├── [-rw-------]  mina-seed-1
│   ├── [-rw-r--r--]  mina-seed-1.peerid
│   ├── [-rw-------]  mina-snark-coordinator
│   ├── [-rw-r--r--]  mina-snark-coordinator.peerid
│   ├── [-rw-------]  mina-snark-worker-1
│   └── [-rw-r--r--]  mina-snark-worker-1.peerid
├── [-rw-rw-r--]  network.json
├── [drwx------]  network-keypairs
│   ├── [-rw-------]  mina-archive
│   ├── [-rw-r--r--]  mina-archive.pub
│   ├── [-rw-------]  mina-bp-1
│   ├── [-rw-r--r--]  mina-bp-1.pub
│   ├── [-rw-------]  mina-bp-2
│   ├── [-rw-r--r--]  mina-bp-2.pub
│   ├── [-rw-------]  mina-seed-1
│   ├── [-rw-r--r--]  mina-seed-1.pub
│   ├── [-rw-------]  mina-snark-coordinator
│   ├── [-rw-r--r--]  mina-snark-coordinator.pub
│   ├── [-rw-------]  mina-snark-worker-1
│   └── [-rw-r--r--]  mina-snark-worker-1.pub
├── [-rw-rw-r--]  replayer_input.json
├── [-rw-rw-r--]  services.json
└── [-rw-rw-r--]  zkapp_tables.sql

Note: By default, minimina saves files in $HOME\.minimina. To customize this location, set the $MINIMINA_HOME environment variable, and files will be stored in $MINIMINA_HOME\.minimina.

The default network can be started, stopped, and deleted

$ minimina network start
$ minimina network stop
$ minimina network delete

Default network info and status can be queried

$ minimina network info
$ minimina network status

Individual nodes within the network can be also managed via minimina node command. Use minimina node --help to see available commands.

First let's see what nodes we have available:

$ minimina network info
{
  "network_id": "default",
  "nodes": {
    "mina-seed-1": {
      "graphql_uri": "http://localhost:3101/graphql",
      "private_key": null,
      "node_type": "Seed_node"
    },
    "mina-bp-1": {
      "graphql_uri": "http://localhost:4001/graphql",
      "private_key": null,
      "node_type": "Block_producer"
    },
    "mina-snark-worker-1": {
      "graphql_uri": null,
      "private_key": null,
      "node_type": "Snark_worker"
    },
    "mina-archive": {
      "graphql_uri": "http://localhost:5006/graphql",
      "private_key": null,
      "node_type": "Archive_node"
    },
    "mina-bp-2": {
      "graphql_uri": "http://localhost:4006/graphql",
      "private_key": null,
      "node_type": "Block_producer"
    },
    "mina-snark-coordinator": {
      "graphql_uri": "http://localhost:7001/graphql",
      "private_key": null,
      "node_type": "Snark_coordinator"
    }
  }
}

Node Logs

For instance we can see logs of the individual node:

$ minimina node logs -i mina-bp-2

The result will be wrapped into JSON output:

{
  "logs": "{\"timestamp\":\"2023-10-17 13:42:25.119981Z\",\"level\":\"Info\"....."
  "network_id": "default",
  "node_id": "mina-bp-2"
}

We can also see raw logs by adding --raw-output flag (or -r):

$ minimina node logs -i mina-bp-2 -r
{"timestamp":"2023-10-17 13:42:25.119981Z","level":"Info"...

Note: -r flag is available for most of the minimina node subcommands.

Node Stop/Start

We can stop single node

$ minimina node stop -i mina-bp-2

We can also start single node

$ minimina node start -i mina-bp-2

There are a few interesting flags available with node start. For example we can start node from fresh state, while importing all accounts from network-keypairs to it and also requesting graphql filtered logs with a single command:

$ minimina node start -i mina-bp-2 --fresh-state --import-accounts --graphql-filtered-logs

Node Dump Precomputed Blocks

Each mina daemon node within the network logs pre-computed blocks by default. We can request for pre-computed blocks

$ minimina node dump-precomputed-blocks -i mina-bp-2 

# As raw output
$ minimina node dump-precomputed-blocks -i mina-bp-2 -r

Node Dump Archive Data / Run Replayer

For Archive node we can also dump archive data or run replayer

$ minimina node dump-archive-data -i mina-archive 
$ minimina node run-replayer -i mina-archive --start-slot-since-genesis 0