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.
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 Type | vCPU | Memory | Disk space |
---|---|---|---|
Beacon | 0.5 | 1 GB | < 1 GB |
Monitoring | 2 | 8 GB | 50 GB |
Relay | 1 | 1 | < 1 GB |
User | 1 | 1 | < 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.