Control plane
A long-running node is required to run the control plane and the instructions below assume commands are being run inside such a node.
tip
Existing Marlin operators can use their beacon nodes to run the control plane.
Prerequisites
- supervisord, can be installed on Ubuntu/Debian-based systems using
sudo apt install supervisor - marlinctl2, setup instructions are in the README
Download rates files
Download compute and bandwidth rates files by running
wget https://raw.githubusercontent.com/marlinprotocol/oyster-setup-aws/master/rates.json
wget https://raw.githubusercontent.com/marlinprotocol/oyster-setup-aws/master/bandwidth-rates.json
Run control plane
Set up the control plane by running
sudo marlinctl cp create --rpc <arbitrum_rpc_url> --contract 0x9d95D61eA056721E358BC49fE995caBF3B86A34B --provider <provider_addr> --profile <aws_profile> --key-name oyster --instance-rates /path/to/rates.json --bandwidth-rates /path/to/bandwidth-rates.json --regions "us-east-1,us-east-2,us-west-1,us-west-2,ca-central-1,sa-east-1,eu-north-1,eu-west-3,eu-west-2,eu-west-1,eu-central-1,eu-central-2,eu-south-1,eu-south-2,me-south-1,me-central-1,af-south-1,ap-south-1,ap-south-2,ap-northeast-1,ap-northeast-2,ap-northeast-3,ap-southeast-1,ap-southeast-2,ap-southeast-3,ap-southeast-4,ap-east-1"
Important parameters include
rpc- RPC URL for the Arbitrum chain. Note that WebSockets support is required which the endpoints provided by the Arbitrum team do not have, so a third-party RPC (like Infura/Alchemy) might be needed.contract- Contract address of the Oyster marketplace on Arbitrumprovider- Your Arbitrum address that will interact with contracts to manage provider registration and receive payments for running enclavesprofile- AWS profile to use for provisioning infrastructure to run enclaveskey-name- Name of the SSH key to use (new one will be created if not found)instance-rates- Absolute path to compute rates filebandwidth-rates- Absolute path to bandwidth rates fileregions- Supported regions
Configure firewalls
Expose port 8080 to the Internet, this is where the control plane runs a server with helper APIs like job to IP translation, rate queries, etc.