Fullnode Installation Guide

Chain ID: mayachain-mainnet-v1 | Current Node Version: v1.124.1

Install Go and other requirements

Install Go

We will use Go v1.23.4 which is the required version for the latest MAYANode. The code below installs Go in your home directory to avoid requiring sudo privileges.

# Remove any existing Go installation
rm -rf ~/.go
# Download and extract Go
wget https://golang.org/dl/go1.23.4.linux-amd64.tar.gz
tar -C ~/ -xzf go1.23.4.linux-amd64.tar.gz
mv ~/go ~/.go
rm go1.23.4.linux-amd64.tar.gz

Configure Go

Unless you want to configure in a non-standard way, then set these in the ~/.bash_profile for bash and ~/.zshrc for zsh.

export GOROOT=$HOME/.go
export GOPATH=$HOME/go
export GO111MODULE=on
export PATH=$PATH:$HOME/.go/bin:$HOME/go/bin

After adding these lines, reload your shell configuration:

# For bash
source ~/.bash_profile
# For zsh
source ~/.zshrc

Install dependencies protobuf-compiler

Install docker and docker compose plugin

https://docs.docker.com/engine/install/

Install Node

Install the current version of node binary.

*You can see tags in mayanode's repo tags

Install binary

Install library dependencies

MAYANode requires the libzec.so and libradix_engine_toolkit_uniffi.so libraries. Copy them to the system library path:

Initialize Node

First, initialize the node and download the genesis file:

Configure Ports (if running alongside other nodes)

If you're running MAYANode alongside other blockchain nodes (like THORChain), you'll need to change the default ports to avoid conflicts:

Add Seed Nodes

Create Service File

Create a mayanode.service file in the /etc/systemd/system folder with the following code snippet. Make sure to replace USER with your Linux username. You need sudo privilege to do this step.

Download Snapshot

Please use a snapshot in order to avoid syncing from start. You can choose between full snapshots or pruned snapshots (recommended for fullnodes to save disk space).

Using aria2c (recommended for faster downloads):

Using AWS CLI:

Note: Check the snapshot page for the latest available snapshot height.

Start Node Service

Other Considerations

This installation guide is the bare minimum to get a node started. You should consider the following as you become a more experienced node operator.

  • Firewall Configuration: Configure firewall to close most ports while only leaving the p2p port (28146 if using custom ports, or 27146 for default) open for incoming connections

  • Multiple Nodes: When running multiple blockchain nodes on the same server, ensure each uses different ports as shown in the port configuration section

  • Disk Space: Pruned snapshots use significantly less disk space (~15GB vs ~50GB for full snapshots) and are recommended for fullnodes

  • Monitoring: Set up monitoring for the node using the Prometheus metrics endpoint (port 28660 if using custom ports)

  • Seed Nodes: The seed nodes may change over time. Check with the MAYAChain community for current active seed nodes if connection issues persist

Troubleshooting

Port Conflicts: If you see "bind: address already in use" errors, check if another service is using the port:

Library Errors: If you see "error while loading shared libraries: libzec.so" or "libradix_engine_toolkit_uniffi.so", ensure the libraries are properly installed:

No Peers: If the node shows 0 peers after starting, check:

  1. Firewall rules allow outbound connections

  2. Seed nodes are correctly configured in config.toml

  3. P2P port is accessible

If you find a bug in this installation guide, please reach out to our Discord Server and let us know.

Last updated

Was this helpful?