Skip to main content

Overview

Marlin Relay is a decentralized relay network that transmits blocks and transactions between nodes of different blockchain networks. You can learn more about the design of the relay network itself in the Learn section. Node operators who wish to join the Marlin Relay network can refer to the architecture diagram below to get a quick understanding and then follow the step-by-step instructions to get started.

Note that the contents of this section are geared towards node operators who wish to run Marlin nodes to provide the aforementioned services. If you are validator of a supported blockchain network and only wish to use the Marlin network to send/receive blocks/transctions, follow the instructions here.

Architecture

The current architecture has 4 types of nodes

  • Beacon
  • Monitoring
  • Relay
  • User (Producers + Consumers)

A cluster operator is responsible for running and managing the beacon, monitoring and relay nodes. Users of the network need to simply run and manage a user node.

Architecture

Beacon

The beacon node is similar to seed nodes or bootstrap nodes in other networks. It is the initial touchpoint using which a user discovers the other nodes in the network.

See Beacon for more details.

Monitoring

The monitoring node is used to monitor the network by aggregating logs and metrics from the other nodes.

See Monitoring for more details.

Relay

The relay nodes form the core of the network and are responsible for propagating information from one user to the others.

See Relay for more details.

User

The user nodes produce and receive messages propagating through the network. It consists of the blockchain client and a gateway to communicate with the Marlin network.

See Gateways for more details.

Hardware Requirements

Node TypevCPUMemoryDisk space
Beacon0.51 GB< 1 GB
Monitoring28 GB50 GB
Relay11< 1 GB
User11< 1 GB

Devops scripts

Reference scripts for provisioning and deployment of a cluster on GCP using Pulumi+Ansible are provided here. While some tweaks might be needed to customize it based on your requirements and infrastructure, it should provide a good base for any customizations.