Skip to main content

A utility to generate k8s configs for a Mavryk blockchain

Project description

mkmavrykchain

Helper program to generate values for the Mavryk chain Helm chart

Prerequisites

To run mkmavrykchain, you must either have docker or pymavryk installed.

Installing Docker

To be consistent with other documentation in this project, we describe how to install docker with minikube. We need to install:

- [docker](https://docs.docker.com/get-docker/),
- [minikube](https://minikube.sigs.k8s.io/docs/),
- [helm](https://helm.sh/),
- and `python3`.

Start minikube and configure your shell environment to use minikube's Docker daemon:

minikube start

eval $(minikube docker-env)

Installing pymavryk

This is documented at: https://pymavryk.mavryk.org/quick_start.html#requirements

Install mkmavrykchain

mkdir mkmavrykchain && cd mkmavrykchain
python3 -m venv .venv
. .venv/bin/activate
pip install wheel && pip install mkmavrykchain

Set unbuffered IO for python:

export PYTHONUNBUFFERED=x

Generate Helm Values

Set as an environment variable the name you would like to give to your chain:

export CHAIN_NAME=my-chain

Your chain is uniquely defined by a set of values such as bootstrap account keys, chain id, timestamp...

To generate these values run:

mkmavrykchain $CHAIN_NAME

This command will create a yaml file in your current working directory: <$CHAIN_NAME>_values.yaml

If you configure your chain to run over a Zerotier VPN, mkmavrykchain will create an additional file for invitees to join your network: <$CHAIN_NAME>_invite_values.yaml.

mkmavrykchain parameters

You can explicitly specify some values by:

  • passing CLI parameters to mkmavrykchain
  • directly modifying the values yaml file generated by mkmavrykchain
  • passing arguments to helm install or helm upgrade commands using the --set flag, which will selectively override the current yaml values
YAML Key mkmavrykchain argument Description Default
-h mkmavrykchain help message
-v mkmavrykchain version
--number-of-bakers Number of baking nodes in the cluster 1
--number-of-nodes Number of non-baking nodes in the cluster 0
bootstrap_peers --bootstrap-peers Peer ips to connect to []
expected_proof_of_work --expected-proof-of-work Node identity generation difficulty 0
images.mavkit --mavkit-docker-image Version of the Mavkit docker image to run mavrykdynamics/mavryk:v19.3
--use-docker (--no...) Use (or don't use) docker to generate keys rather than pymavryk autodetect
zerotier_config.zerotier_network --zerotier-network Zerotier network id for external chain access
zerotier_config.zerotier_token --zerotier-token Zerotier token for external chain access

Create Mavryk Chain

Make sure you have the Mavryk Helm chart repo:

helm repo add mavryk-network https://mavryk-network.github.io/mavryk-helm-charts

Then install the Mavryk Helm chart:

helm install $CHAIN_NAME mavryk-network/mavryk-chain \
--values ./${CHAIN_NAME}_values.yaml \
--namespace mavryk-network --create-namespace

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

mkmavrykchain-6.25.8-py3-none-any.whl (9.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page