AN EXECUTION CLIENT
FOR THE EVM ECOSYSTEM

LinuxmacOSWindowsDocker
Quick Start

Installing Fukuii

Install Fukuii, then start a node on the network you want. The same binary runs every network it supports, so nothing below changes except one argument.

docker run ghcr.io/fukuii-project/fukuii-cli
Scala 3PekkoJVMRocksDB

Install and run

Two steps: get the binary onto the machine, then tell it which network to join. The network is a single argument, and the ones below are configured and ready. Testnets take the same commands with a different argument.

What you get is a full node: it validates every block against the protocol rules rather than trusting a peer, serves JSON-RPC locally, and keeps its own copy of state. The first sync takes hours to days depending on the network and the disk, and the node is usable for reads well before it reaches the tip.

Layer 1: Install

Get the binary onto your machine. Native installs require JDK 25 LTS, from your distribution's OpenJDK package or from Eclipse Temurin. The Docker image bundles everything.

# 1. Install the current JDK LTS (25)
sudo apt update && sudo apt install -y openjdk-25-jdk    # Debian, Ubuntu
# sudo dnf install java-25-openjdk-devel                 # Fedora, RHEL
java -version

# 2. Download and extract the Linux distribution
curl -LO https://github.com/fukuii-project/fukuii-cli/releases/latest/download/fukuii-<ver>-linux.tar.gz
tar -xzf fukuii-<ver>-linux.tar.gz

# 3. Put the launcher on PATH, then verify
export PATH="$PWD/fukuii-<ver>/bin:$PATH"
fukuii --version
Build from source (advanced, requires Scala toolchain)
# Requires the current JDK LTS (25) and sbt, the Scala build tool
git clone https://github.com/fukuii-project/fukuii-cli
cd fukuii && sbt assembly
# Output: target/fukuii-assembly-<ver>.jar
Layer 2: Run a node

Once installed, the network is a single argument. The two production networks are below; their testnets take the same commands with a different argument.

Proof-of-Work / ETChash

Ethereum Classic

PoW

Runs standalone. Proof-of-Work needs no consensus layer, so this is the whole deployment.

docker run ghcr.io/fukuii-project/fukuii-cli --network=etc
  • Ethereum Classicetcchain 61
  • Mordormordorchain 63
Proof-of-Stake / Engine API

Ethereum

PoS

Needs a consensus layer. Fukuii can run one in the same process, or be driven by an external consensus client over the Engine API.

docker run ghcr.io/fukuii-project/fukuii-cli --network=eth
  • Ethereum Mainnetethchain 1
  • Sepoliasepoliachain 11155111

The complete form, with persistent storage and, for Proof-of-Stake, the Engine API:

# Native
fukuii --network=<network>

# Docker
docker run -v fukuii-data:/var/lib/fukuii \
  ghcr.io/fukuii-project/fukuii-cli:latest --network=<network>
# Consensus layer in the same process
fukuii --network=eth \
  --consensus-layer-enabled \
  --fee-recipient=0xYourAddress

# Or drive it with an external consensus client, sharing one
# JWT secret over the Engine API on localhost
openssl rand -hex 32 | tr -d "\n" > jwt.hex
fukuii --network=eth \
  --engine-rpc-enabled \
  --engine-rpc-port=8551 \
  --engine-jwt-secret=./jwt.hex

Fukuii pairs with Lighthouse, Prysm, Teku, Lodestar and Nimbus. Point your consensus client at http://localhost:8551 using the same JWT file.

Supported networks and their launch arguments
NetworkArgumentConsensusChain ID
Ethereum ClassicetcPoW61
MordormordorPoW testnet63
Ethereum MainnetethPoS1
SepoliasepoliaPoS testnet11155111
Before you start
What a node needs, and what determines each requirement
WhatRequirementWhat drives it
JavaCurrent JDK LTS (25)Any OpenJDK build of the current LTS. The Docker image bundles one.
Memory8 GB minimum for the JVM heapAdd headroom for each additional network run in the same process.
Disk spaceSet by the network and the storage approachA pruned Ethereum mainnet node is on the order of a terabyte and grows with the chain. Ethereum Classic is substantially smaller. An archive node is a multiple of the pruned figure on either.
Disk typeSSD, and NVMe for a validator, mining pool or public RPC nodeState access during sync is random rather than sequential, which a spinning disk cannot keep up with.
CPUHighest while syncing, lower at the chain tipSize for the sync, then scale down on observed usage rather than on the peak.