Build and Earn! Check out the bounties!

Run a node

Instructions for setting up a Resource Provider (node) on the public Lilypad testnet using Docker, including obtaining necessary funds and installing required software.

Prerequisites

Lilypad RPs currently only support Linux installs. Running a RP on Windows is currently experimental.

For a more in-depth look at the requirements to run a Lilypad node, please refer to the hardware requirements documentation.

Network information and Testnet tokens

The testnet has a base currency of ETH, as well as a utility token called LP. Both are used for running nodes. To add a node to the testnet, follow these steps:

Metamask Configuration

We recommend using MetaMask with custom settings to make things easier. Once you have it installed and setup, here are the settings you need to use:

Network name: Arbitrum Sepolia

New RPC URL: https://sepolia-rollup.arbitrum.io/rpc

Chain ID: 421614

Currency symbol: ETH

Block explorer URL: (leave blank)

For a step by step guide on adding the network, please refer to our Setting up MetaMask documentation.

Fund your wallet with ETH and LP

To obtain testnet LP, use the Lilypad faucet and enter your ETH address.

To obtain testnet ETH, use a third party Arbitrum Sepolia testnet faucet and enter your ETH address.

If you need more tokens and already have Sepolia ETH, use the official Arbitrum bridge to transfer tokens over to Arbitrum Sepolia.

The faucet will give you both ETH (to pay for gas) and LP (to stake and pay for jobs).

Setup Arbitrum RPC (Optional)

The Lilypad Network uses the Arbitrum Sepolia Testnet to settle compute transactions. When a transaction is ready to be saved on-chain, Lilypad cycles through a list of public Arbitrum Sepolia RPC endpoints using the endpoint that settles first to save the compute transaction.

Resource Providers have the option to setup their own Arbitrum RPC endpoint using Alchemy instead of using the default public RPC endpoints.

A personal RPC endpoint helps RPs to avoid reliability issues with the public RPC endpoints used by Lilypad ensuring rewards can be earned and jobs can be run consistently. RPs running a personal RPC endpoint contribute to the fault tolerance and decentralization of the Lilypad Network! Read more in the Alchemy Arbitrum docs.

Docker Compose Setup

Before we start the Rp with the Docker setup, retrieve the private key from the wallet set up earlier in this guide. For guidance on exporting your private key, refer to this official MetaMask guide. Once the private key has been retrieved, proceed to initialize the Docker containers using the commands provided below.

1. Export Your Private Key

The same WEB3_PRIVATE_KEY cannot be used for both a RP and using the Lilypad CLI. If a WEB3_PRIVATE_KEY has already been used to run jobs with the CLI, make a new one and fund the wallet. You can `unset $WEB3_PRIVATE_KEY` if you want to use a different one to run your RP.

Before starting, export your private key from MetaMask. Follow the official MetaMask guide for instructions on safely exporting your private key.

2. Download the Docker Compose Configuration

Use curl to download the docker-compose.yml file from the Lilypad GitHub repository.

LATEST_VERSION=$(curl -s https://api.github.com/repos/Lilypad-Tech/lilypad/releases/latest | sed -n 's/.*"tag_name": "\(.*\)".*/\1/p')

curl -o docker-compose.yml "https://raw.githubusercontent.com/Lilypad-Tech/lilypad/$LATEST_VERSION/docker/docker-compose.yml"

3. Check for Existing Containers

You can check if these containers are running with:

docker ps -a | grep -E "resource-provider|ipfs|watchtower"

If they are running, stop them with:

docker stop <container_name>

If there are still conflicts when trying to running with the docker-compose file, remove the containers:

docker rm <container_name>

Before moving to the next step, ensure older versions of lilypad and bacalhau are not running as systemd services.

4. Start the Resource Provider

Start the Lilypad containers using Docker Compose:

WEB3_PRIVATE_KEY=<your_private_key> docker compose up -d

To include a custom RPC URL:

WEB3_PRIVATE_KEY=<your_private_key> WEB3_RPC_URL=wss://arb-sepolia.g.alchemy.com/v2/your-alchemy-id docker compose up -d

5. Monitor Your Node

Use the following command to check the status of the resource provider and bacalhau.

docker logs resource-provider
docker logs bacalhau

Use the following command to view the containers running after starting Docker Compose.

docker ps

NOTE: Occasional websocket errors in your RP logs are normal and nothing to worry about. These are simply the result of standard internet fluctuations.

Our solver may also restart periodically, which can temporarily interrupt your connection.

Rest assured that these brief disconnections will not affect your rewards in any way.

Update Lilypad version for Docker RP

When a new version of Lilypad is released, it is critical for Resource Providers to update their installations to ensure compatibility and ability to run Lilypad jobs.

1. If a Docker RP is running stop the system (if the node is not running, disregard this first step)

docker compose down

2. View all Docker images

docker images

3. Delete old Docker images that are duplicates for Lilypad (Bacalhau, Lilypad)

docker rmi <image_name_or_id> 

4. Follow Docker RP install instructions

Using the Lilypad Docker RP install instructions setup a new RP and run.

View Lilybit_ rewards

To view your Lilybit_ rewards, visit one of the following dashboards and paste your node's public address into the input:

Troubleshooting

Here are some common troubleshooting techniques when it comes to your resource provider using Docker.

Last updated

Was this helpful?