Running a Full Node

STEP 1: Install Prerequisites

We recommend using Docker to run a node on Kroma. Make sure you have Docker and Git installed.

STEP 2: Clone the kroma-up Git Repository

Clone the kroma-up Git repository and navigate to the cloned directory:

git clone https://github.com/kroma-network/kroma-up.git
cd kroma-up

Note: Please ensure you are cloning to the latest version of the repository.

STEP 3: Start up the Environment

Run the following command to generate keys and environment variables required to run a node:

./startup.sh <network>

STEP 4: Configure the Node

Step 3 will generate a .env file with default values, and we recommend using the default values unless you have specific needs or preferences. If you do have any specific needs or preferences, configure the .env file according to your requirements.

Here are the environment variables in the .env file:

[Environment variables in .env file]

Name

Description

NETWORK_NAME

The name of the network to run on. Note that only sepolia is available currently.

IMAGE_TAG__KROMA_GETH

The docker image tag of kroma-geth. Default value is provided while generating the .env file.

IMAGE_TAG__KROMA_NODE

The docker image tag of kroma-node. Default value is provided while generating the .env file.

IMAGE_TAG__KROMA_VALIDATOR

The docker image tag of kroma-validator. Default value is provided while generating the .env file.

L1_RPC_ENDPOINT

The RPC endpoint of Layer 1

L2_RPC_ENDPOINT

The L2 Geth RPC endpoint, necessary for obtaining block traces during ZK fault proof generation.

KROMA_GETH__BOOT_NODES

The address of a bootnode for kroma-geth client. Default value is provided while generating the .env file.

KROMA_NODE__BOOT_NODES

The address of a bootnode for kroma-node client. Default value is provided while generating the .env file.

KROMA_VALIDATOR__OUTPUT_SUBMITTER_ENABLED

A flag to determine if the validator node is going to submit checkpoint outputs. Default value is true.

KROMA_VALIDATOR__CHALLENGER_ENABLED

A flag to determine if the validator node is going to validate unfinalized checkpoint outputs and initiate a challenge if an invalid checkpoint output is detected. Default value is false.

KROMA_VALIDATOR__MNEMONIC

The mnemonic phrase of the Ethereum account connected to the validator client. This should be provided along with the HD path value. When this value is provided, the private key value should be empty.

KROMA_VALIDATOR__HD_PATH

The HD path of the Ethereum account connected to the validator client. This should be provided along with the mNemonic value. When this value is provided, the private key value should be empty.

KROMA_VALIDATOR__PRIVATE_KEY

The private key of the Ethereum account connected to the validator client. When this value is provided, the mnemonic and HD path values should be empty.

KROMA_VALIDATOR__PROVER_RPC

The RPC address of the kroma-prover client. If KROMA_VALIDATOR__CHALLENGER_ENABLED is true, this value must be provided.

Note that environment variables whose name starts with KROMA_VALIDATOR are only for running a validator node.

For more information on environment variables, please refer to the Github documentation.

STEP 5: Start the Full Node

If you have followed the previous steps, you can now start your full node. Ensure that Docker is running, and execute the following command:

docker compose -f docker-compose-<network>.yml --profile fullnode up -d

Remove a running Full Node

To remove a running full node, you can use the following command:

docker compose -f docker-compose-<network>.yml --profile fullnode down -v

Monitoring

We plan to provide a dashboard for monitoring the nodes.

Last updated