Skip to content

mavryk-network/testnets

 
 

Repository files navigation

Testnets

Infrastructure-as-code repo to activate and bootstrap Mavryk testnets in a repeatable, automated way.

See testnets.mavryk.network for the list of active Testnets.

Features

Based on mavryk-k8s

mavryk-k8s is a framework to deploy Mavryk nodes or chains using Kubernetes and Helm.

See the mavryk-k8s documentation

Faucet support

We support the beacon-compatible Mavryk Faucet.

Injection of contracts at genesis

A collection of raw Michelson contracts can be optionally deployed in any Testnet at genesis.

Injection of Smart Rollups at genesis

Rollups can be injected at genesis of your test chain. Testnets supports extraction of the EVM Rollup from the Mavkit container, and its injection at a predetermined address.

Bootstrap baker and bootstrap p2p endpoint

Upon deployment of a Testnet, a genesis baker will run and its p2p and rpc endpoints will be exposed externally. Example:

  • p2p: ghostnet.testnets.mavryk.network
  • rpc rpc.ghostnet.testnets.mavryk.network

--network endpoint for Mavryk node

Mavryk nodes supports downloading of network specification from a json endpoint: mavkit-node config init --network https://testnets.mavryk.network/<TESTNET NAME>

The Testnet platform creates and exposes such endpoints.

Automate on Testnets

You are encouraged to build automation to ensure your Mavryk project keeps running with the future versions of Mavryk shell and/or protocol.

This endpoint lists the current active testnets: https://testnets.mavryk.network/testnets.json

Add new Testnets or modify existing Testnets

Each Testnet is defined within a subdirectory of the /networks directory in this repository. The Testnet directory must contain the following files:

  • A Helm chart values.yaml file
  • Optionally, a Helm chart faucet_values.yaml file if deploying a faucet
  • Optionally, a submodule of mavryk-k8s (in case you need an unreleased or custom version of the mavryk-k8s software)

Helm chart values.yaml

The Helm chart values.yaml lets you customize your chain in many ways:

  • specify activation parameters, such as:
    • list of genesis bakers
    • list of accounts funded at genesis
    • chains parameters (blocks per cycle, time between blocks...)
  • specify user-activated upgrades for hard-forks at a given length
  • specify the list of baker/endorser binaries to run.

Look in any Testnet directory's values.yaml file in /networks for reference as to how to configure your own Testnet.

The default Helm values.yaml has details on every possible way to customize your testnet.

testnets.mavryk.network website

The website is created with Jekyll from Markdown files generated from Jinja templates based on Pulumi outputs.

To build the website locally, from the top-level dir of the repo:

  1. run pulumi stack output networks > networks.json
  2. run pulumi stack output testnets > testnets.json
  3. run python testnets_xyz_page/release.py
  4. cd target/release
  5. run bundle install
  6. run bundle exec jekyll serve

The website will be rendered on localhost:4000.

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 81.3%
  • Jinja 7.2%
  • Python 6.5%
  • HTML 4.0%
  • Other 1.0%