Skip to main content

Running with Docker

info

There is a known issue that you can't use the docker image on the Apple silicon chip. To run Mina Rosetta on Apple silicon, you can use the steps in Building and running Rosetta from source code.

  1. Install Docker and check that your Docker configuration has at least 12 GB RAM (the recommended amount is 16 GB).

  2. Check the latest release for Mainnet on the official Mina GitHub releases page.

  3. Go to minaprotocol/mina-rosetta ` page on the Docker Hub repository. Pull the image with the commit hash matching to the latest Mainnet release.

  4. Use this image:

note

If you want to build your own docker image, you can find more details in Mina’s Rosetta repository. However, for most users, it’s not necessary to build your own image in order to interact with the API.

The container in /rosetta includes four entrypoints, which each run a different set of services connected to a particular network.

  • docker-start.sh (default) - connects the mina node to our Mainnet network and initializes the archive database from publicly-available nightly O(1) Labs backups. This script runs a mina node, mina-archive, a postgresql DB, and mina-rosetta. The script also periodically checks for blocks that may be missing between the nightly backup and the tip of the chain and will fill in those gaps by walking back the linked list of blocks in the canonical chain and importing them one at a time. Take a look at the source for more information about what and how you can configure.
  • docker-standalone-start.sh - starts only the mina-rosetta API endpoint and any flags passed into the script go to mina-rosetta. Use this for the "offline" part of the Construction API.
  • docker-demo-start.sh launches a mina node with a very simple 1-address genesis ledger as a sandbox for developing and playing around in. This script starts the full suite of tools (a mina node, mina-archive, a postgresql DB, and mina-rosetta), but for a demo network with all operations occurring inside this container and no external network activity.
  • docker-devnet-start.sh - connects the mina node to our Devnet network with the archive database initialized in a similar way to docker-start.sh. As with docker-start.sh, this script runs a mina node, mina-archive, a postgresql DB, and mina-rosetta. docker-devnet-start.sh is now just a special case of docker-start.sh so inspect the source there for more detailed configuration.

Run the container with following command (replace the image tag with the latest one from dockerhub, also replace --entrypoint if needed):

docker run -it --rm --name rosetta \
--entrypoint=./docker-start.sh \
-p 10101:10101 -p 3085:3085 -p 3086:3086 -p 3087:3087 \
minaprotocol/mina-rosetta:<tag>
note
  • It can take 20 min to 1 hour for your node to sync
  • Port 10101 is the default P2P port and must be exposed to the open internet
  • The GraphQL API runs on port 3085 (accessible via localhost:3085/graphql)
  • PostgreSQL runs on port 3086
  • Rosetta runs on port 3087