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.
The current architecture has 4 types of nodes
- 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.
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.
The monitoring node is used to monitor the network by aggregating logs and metrics from the other nodes.
See Monitoring for more details.
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.
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.
|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|
* In the case of relay and user nodes, a full/light node of a blockchain usually runs alongside it (as shown in the diagram above) which consumes signifiant resources depending on the blockchain. Hardware requirements need to be determined accordingly. For example, we recommend 2 vCPUs, 8GB Memory and 375 GB local SSD for Ethereum.
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.