Instructions for setting up a Resource Provider (node) on the public Lilypad testnet using Docker, including obtaining necessary funds and installing required software.
Lilypad RPs currently only support Linux installs. Running a RP on Windows is currently experimental.
Linux (Ubuntu 22.04 LTS)
Nvidia GPU
Docker (Ubuntu install)
Nvidia Docker drivers
For a more in-depth look at the requirements to run a Lilypad node, please refer to the hardware requirements documentation.
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:
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.
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.
The Arbitrum Sepolia faucet provides 0.0001 tokens per request. If you need more tokens and already have Sepolia ETH, you can use the official Arbitrum bridge to transfer it over to Arbitrum Sepolia.
The faucet will give you both ETH (to pay for gas) and LP (to stake and pay for jobs).
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.
Before we start the Docker setup, you'll need to retrieve the private key from the wallet you set up earlier in this guide. For guidance on exporting your private key, refer to this official MetaMask guide. Once you’ve securely copied your private key, proceed to initialize the Docker containers using the commands provided below.
You have two options to start the Lilypad setup: using Docker Compose or directly pulling the image. Both methods will run the containers in the background, allowing you to continue using your terminal while the setup operates.
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.
Use curl
to download the docker-compose.yml
file from the Lilypad GitHub repository.
If any containers named resource-provider
, ipfs
, or watchtower
are already in use, they will need to be stopped before running this setup to avoid naming conflicts.
You can check if these containers are running with:
If they are running, stop them with:
If there are still conflicts when trying to running with the docker-compose file, remove the containers:
Before moving to the next step, ensure older versions of lilypad and bacalhau are not running as systemd services.
Start the Lilypad containers using Docker Compose:
To include a custom RPC URL:
You must not reuse your compute node key as a client, even for testing: this will result in failed jobs and will negatively impact your compute node since the wallet address is how nodes are identified on the network.
Use the following command to check the status of the resource provider and bacalhau.
Use the following command to view the containers running after starting Docker Compose.
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.
Using the Lilypad Docker RP install instructions setup a new RP and run.
To view your Lilybit_ rewards, visit one of the following dashboards and paste your node's public address into the input:
Here are some common troubleshooting techniques when it comes to your resource provider using Docker:
Checking Docker Runtime
To verify your Docker runtime configuration: sudo docker info | grep Runtimes
You should see the NVIDIA runtime listed. If you only see: Runtimes: io.containerd.runc.v2 runc
you will need to configure the NVIDIA runtime.
Configuring NVIDIA Runtime If the NVIDIA runtime is not showing up or you're experiencing issues, try the following:
1. Configure the NVIDIA Container Toolkit runtime: sudo nvidia-ctk runtime configure --runtime=docker --set-as-default
2. Restart the Docker service: sudo systemctl restart docker
Overview of Docker setup
For a comprehensive overview of your Docker setup, use: docker info
. This command provides detailed information about your Docker daemon configuration.
Instructions to update your Docker node for Resource Providers who already had Lilypad installed.
If the Linux Install was your previous version, follow part A, and if you had previously installed a Docker version, follow part B if you have already installed the Docker version and are updating.
This only applies if you had a Linux version installed
Stop all systemd processess
Disable the systemd services:
Delete the service files from the systemd directory.
**Note: Be extremely careful when using sudo
to remove files.
Reload the systemd daemon to apply the changes.
If a Docker RP is running stop the system (if the node is not running, disregard this first step)
You can check the status of the containers with:
If they are running, stop them with:
Remove the containers:
View all Docker images
Take note of all the IMAGE ID for each lilypad image (resource-provider, bacalhau, and watchtower)
Delete old Docker images that are duplicates for Lilypad (Bacalhau, Lilypad)
*Note - You can also use docker volume prune
to remove specific images that aren't being used
Create a new Resource Provider wallet (We recommend you don't use the same one you were using before, and you cannot use the same wallet you use to run jobs). See the Docs for Setting up a Metamask Wallet
Export your new WEB3_PRIVATE_KEY as an environment variable
Use curl
to download the docker-compose.yml
file from the Lilypad GitHub repository.
Start your Lilypad Node
OR start with your own RPC URL
Use the following command to check the status of the resource provider and bacalhau.
Use the following command to view the containers running after starting Docker Compose.
A healthy, updated node should have all containers started, a preflight check, and be adding a resource offer.