Youβll need a few things to get started with deploying a publicly-accessible Catalyst node:
A Linux server with a publicly-accessible IP address.
Docker, or another container runtime such as Podman.
TCP Ports 80, 443 and 1935 accessible through your firewall. Additionally, WebRTC will require the ephemeral port range to be available over UDP, 32768 - 60999.
A reverse proxy with a valid TLS certificate. It should be configured to forward incoming traffic to http://127.0.0.1:8888.
Running the image
There are two required parameters to boot the Catalyst node:
CATALYST_PUBLIC_URL: This is the publicly-accessible address of your Catalyst node, including the https prefix, with no trailing slash. Example value: https://example.com
CATALYST_SECRET: This is a secret identifier used to secure connections into the node. You should generate your own and keep it secure.
Additionally, you will need to bind-mount a local directory to the /data route to persist your Catalyst nodeβs data.
Enabling mainnet transcoding requires some additional configuration.
Pre-requisites
You will need an RPC provider for Arbitrum One. This could be a local fully-synced Arbitrum Nitro node, or one of many hosted services β the Arbitrum team maintains a list here.
You will need funds sufficient to populate your deposit and reserve. At time of writing, 0.2 Eth is sufficient to get started with transoding on mainnet.
Creating a wallet
The easiest way to create a wallet and deposit funds is to use the go-live node itself along with the live_cli command-line tool. Both are downloadable from the go-live releases page on GitHub. Once you have those binaries, you can boot up a temporary live broadcaster locally:
That command will prompt you for a password and then create a new Ethereum wallet for you. It will be located in $HOME/.lpData/arbitrum-one-mainnet/keystore. BACK THIS FILE UP IMMEDIATELY! Losing this wallet will make your funds unrecoverable.
With the wallet created, you may boot up the live_cli command-line interface. You will be shown output something like this:
+-----------------------------------------------------------+
| Welcome to live-cli, your Live command line tool |
| |
| This tool lets you interact with a local Live node |
| and participate in the Live protocol without the |
| hassle that it would normally entail. |
| |
+-----------------------------------------------------------+
+-----------+
|NODE STATS|
+-----------+
*------------------------------------*--------------------------------------------*
| Node's version | 0.7.2-cad67131 |
*------------------------------------*--------------------------------------------*
| Node's GO runtime version | go1.20.4 |
*------------------------------------*--------------------------------------------*
| Node's architecture | amd64 |
*------------------------------------*--------------------------------------------*
| Node's operating system | linux |
*------------------------------------*--------------------------------------------*
| HTTP Port | 7935 |
*------------------------------------*--------------------------------------------*
| Controller Address | 0xD8E8328501E9645d16Cf49539efC04f734606ee4 |
| FOR REFERENCE - DO NOT SEND TOKENS | |
*------------------------------------*--------------------------------------------*
| LiveToken Address | 0x289ba1701C2F088cf0faf8B3705246331cB8A839 |
| FOR REFERENCE - DO NOT SEND TOKENS | |
*------------------------------------*--------------------------------------------*
| LiveTokenFaucet Address | 0x0000000000000000000000000000000000000000 |
| FOR REFERENCE - DO NOT SEND TOKENS | |
*------------------------------------*--------------------------------------------*
| Broadcaster Account | YOUR WALLET HERE |
| YOUR WALLET FOR ETH & LPT | |
*------------------------------------*--------------------------------------------*
| LPT Balance | 0 LPTU |
*------------------------------------*--------------------------------------------*
| ETH Balance | 0 ETH |
*------------------------------------*--------------------------------------------*
| Max Gas Price | n/a |
*------------------------------------*--------------------------------------------*
| Min Gas Price | 0 GWei |
*------------------------------------*--------------------------------------------*
At this point you may deposit your Eth into the βBroadcaster Accountβ address provided here. Once that transaction has posted to the Arbitrum One network, you can then invoke option 11: Invoke "deposit broadcasting funds" (ETH). For example, if you intend to deposit 0.1 Eth in your deposit and 0.1 Eth in your reserve, that would look something like this:
> 11
Current Deposit: 0.1 ETH
Current Reserve: 0.1 ETH
Enter deposit amount in ETH - > 0.1
Enter reserve amount in ETH - > 0.1
fundDepositAndReserve success true
Finally, you will need to securely upload this wallet to your server and place it into a directory that can be bind-mounted by Docker. In this example, we will be placing the keys at /keystore.
And now youβre ready to run a mainnet-enabled Catalyst!