Skip to main content

Aramid Soldier Setup

Aramid Bridge is a multisignature, multichain bridge supporting EVM, AVM, and NEAR. An Aramid Soldier plays a key role in ensuring the security and operation of the bridge by acting as a signatory of the multisig.

Components

Each soldier must run the following components:

  • Aramid Chain Relay Algod and Indexer Nodes
  • A Public Participation Node
  • Aramid Soldier App

If you are interested in becoming an Aramid Soldier, fill out the registration form.

Environment

Aramid apps are best run in Kubernetes environments. The following sections provide detailed steps for setting up each component.

Kubernetes Setup

Kubernetes is an open-source container orchestration platform designed to automate the deployment, scaling, and management of containerized applications.

Key Features

  • Container Orchestration: Automates the deployment and scaling of containerized applications across clusters.
  • Self-healing: Automatically restarts containers that fail, replaces containers, and manages health checks.
  • Horizontal Scaling: Applications can be scaled up and down with a simple command or automatically based on CPU usage.
  • Service Discovery and Load Balancing: Kubernetes can expose containers using DNS names or their own IP addresses.
  • Automated Rollouts and Rollbacks: Kubernetes progressively rolls out changes while monitoring the application's health.
  • Secret and Configuration Management: Store and manage sensitive information like passwords, tokens, and SSH keys.

Kubernetes is widely used in production environments to manage microservices and ensure high availability of applications.

Linode Kubernetes Setup

To set up Kubernetes on Linode, follow the steps outlined in the Linode K8S setup guide.

Helm Repository Setup

Helm is a package manager for Kubernetes that simplifies the process of deploying and managing applications.

Benefits

  • Simplified Deployment: Helm charts bundle necessary Kubernetes manifests.
  • Version Control: Easily manage versions and rollbacks of deployments.
  • Reusability: Helm charts can be shared across projects.
  • Customization: Helm provides a templating engine for easy customization.
  • Dependency Management: Helm manages dependencies between charts, simplifying complex setups.

Installation

To install Helm, run the following command:

curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

For more details, refer to the Helm repository setup guide.

Algod Node Setup

Aramid chain relay nodes are used for bootstrapping AVM chains. Soldiers use the algod node in their Aramid Soldier app to submit payloads and exchange data.

Relay Node Setup

To set up the relay node, follow these steps:

  1. Create the aramid-relay-values.yaml file and add any necessary modifications from the default values.yaml configuration. You can review the default configuration here.

Example configuration for Linode:

pvcRoot:
storageClassName: "linode-block-storage-retain"

deployment:
resources:
requests:
memory: "1000Mi"
cpu: "1000m"
limits:
memory: "16000Mi"
cpu: "8000m"

Example for AWS:

pvcRoot:
storageClassName: "gp2"
  1. Review the configuration:
helm template biatec-repo/aramid-relay --values ./aramid-relay-values.yaml --namespace aramid
  1. Install the node:
kubectl create namespace aramid
helm install aramid-relay biatec-repo/aramid-relay --values ./aramid-relay-values.yaml --namespace aramid
  1. Update or upgrade the node:
helm upgrade aramid-relay biatec-repo/aramid-relay --values ./aramid-relay-values.yaml --namespace aramid

For more details, visit:

  • Relay node setup using helm chart
  • Example node setup on GitHub: Aramid Relay Node Setup

Indexer Node Setup

The Aramid Indexer Node serves lookup functions for the Aramid Soldier app.

Indexer Node Installation

  1. Create the aramid-indexer-values.yaml file with modifications as needed from the default configuration. See the default values.yaml here.

Example configuration for Linode:

pvcDB:
storageClassName: "linode-block-storage-retain"
resources:
requests:
storage: 50Gi

pvcConduit:
storageClassName: "linode-block-storage-retain"

pvcFollowNode:
storageClassName: "linode-block-storage-retain"

ingress:
host: "aramidmain-indexer.us.biatec.io"

Example for AWS:

pvcDB:
storageClassName: "gp2"
resources:
requests:
storage: 50Gi

pvcConduit:
storageClassName: "gp2"

pvcFollowNode:
storageClassName: "gp2"

ingress:
host: "aramidmain-indexer.us.biatec.io"
  1. Review the configuration:
helm template biatec-repo/aramid-indexer --values ./aramid-indexer-values.yaml --namespace aramid
  1. Install the node:
kubectl create namespace aramid
helm install aramid-indexer biatec-repo/aramid-indexer --values ./aramid-indexer-values.yaml --namespace aramid
  1. Update the node:
helm upgrade aramid-indexer biatec-repo/aramid-indexer --values ./aramid-indexer-values.yaml --namespace aramid
  1. Check the node's status:
kubectl get pods,services,ingresses -n aramid

For more information, refer to:

  • Indexer setup using helm chart
  • Example setup on GitHub: Aramid Indexer Setup

Public Participation Node Setup

The Public Participation Node allows anyone to make their account online and protect the AramidMain chain.

Participation Node Installation

  1. Create the aramid-participation-values.yaml file with modifications from the default configuration. See the default values.yaml here.

Example configuration for Linode:

pvcParticipationNode:
storageClassName: "linode-block-storage-retain"

ingressParticipationNode:
host: "aramidmain-participation.us.biatec.io"

Example for AWS:

pvcParticipationNode:
storageClassName: "gp2"

ingressParticipationNode:
host: "aramidmain-participation.us.biatec.us"
  1. Review the configuration:
helm template biatec-repo/aramid-participation --values ./aramid-participation-values.yaml --namespace aramid
  1. Install the node:
kubectl create namespace aramid
helm install aramid-participation biatec-repo/aramid-participation --values ./aramid-participation-values.yaml --namespace aramid
  1. Update the node:
helm upgrade aramid-participation biatec-repo/aramid-participation --values ./aramid-participation-values.yaml --namespace aramid
  1. Check node status:
kubectl get pods,services,ingresses -n aramid

Public participation nodes are registered in this GitHub repository: Public Participation Providers