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:
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:
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:
Remove a running Full Node
To remove a running full node, you can use the following command:
Monitoring
We plan to provide a dashboard for monitoring the nodes.
Last updated