This page describes the historical Celo Layer 1 blockchain. It is useful for understanding Celo’s history, but does not reflect the current state of the network. As of block height 31,056,500 (March 26, 2025, 3:00 AM UTC), Celo has transitioned to an Ethereum Layer 2.
What is a Full Node?
Full nodes play a special purpose in the Celo ecosystem, acting as a bridge between the mobile wallets (running as light clients) and the validator nodes.Prerequisites
- You have Docker installed. If you don’t have it already, follow the instructions here: Get Started with Docker. It will involve creating or signing in with a Docker account, downloading a desktop app, and then launching the app to be able to use the Docker CLI. If you are running on a Linux server, follow the instructions for your distro here. You may be required to run Docker with
sudo
depending on your installation environment.
The code you’ll see on this page is bash commands and their output.When you see text in angle brackets <>, replace them and the text inside with your own value of what it refers to. Don’t include the <> in the command.
Celo Networks
First, we are going to setup the environment variables required forAlfajores
network. Run:
Pull the Celo Docker image
We’re going to use a Docker image containing the Celo node software in this tutorial. If you are re-running these instructions, the Celo Docker image may have been updated, and it’s important to get the latest version.Set up a data directory
First, create the directory that will store your node’s configuration and its copy of the blockchain. This directory can be named anything you’d like, but here’s a default you can use. The commands below create a directory and then navigate into it. The rest of the steps assume you are running the commands from inside this directory.Create an account and get its address
In this step, you’ll create an account on the network. If you’ve already done this and have an account address, you can skip this and move on to configuring your node. Run the command to create a new account:Public address of the key: <YOUR-ACCOUNT-ADDRESS>
Save this address to an environment variable, so that you can reference it below (don’t include the braces):
This environment variable will only persist while you have this terminal window open. If you want this environment variable to be available in the future, you can add it to your
~/.bash_profile
Start the node
This command specifies the settings needed to run the node, and gets it started.Security: The command line above includes the parameter
--http.addr 0.0.0.0
which makes the Celo Blockchain software listen for incoming RPC requests on all network adaptors. Exercise extreme caution in doing this when running outside Docker, as it means that any unlocked accounts and their funds may be accessed from other machines on the Internet. In the context of running a Docker container on your local machine, this together with the docker -p
flags allows you to make RPC calls from outside the container, i.e from your local host, but not from outside your machine. Read more about Docker Networking here.Command Line Interface
Once the full node is running, it can serve the Command Line Interface toolcelocli
. For example: