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.
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
# 1. Install the current JDK LTS (25) # Download the macOS .pkg for your architecture from adoptium.net # and run it, then confirm it is on PATH: java -version # 2. Download and extract the macOS distribution curl -LO https://github.com/fukuii-project/fukuii-cli/releases/latest/download/fukuii-<ver>-macos.tar.gz tar -xzf fukuii-<ver>-macos.tar.gz # 3. Put the launcher on PATH, then verify export PATH="$PWD/fukuii-<ver>/bin:$PATH" fukuii --version
# 1. Install the current JDK LTS (25) # Download the Windows .msi from adoptium.net and run it, # then confirm it is on PATH: java -version # 2. Download and extract the Windows distribution Invoke-WebRequest ` -Uri "https://github.com/fukuii-project/fukuii-cli/releases/latest/download/fukuii-<ver>-windows.zip" ` -OutFile fukuii.zip Expand-Archive fukuii.zip -DestinationPath . # 3. Put the launcher on PATH, then verify $env:Path += ";$PWD\fukuii-<ver>\bin" fukuii --version
# No JDK required, the image bundles everything docker pull ghcr.io/fukuii-project/fukuii-cli:latest # Verify docker run ghcr.io/fukuii-project/fukuii-cli:latest --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
Once installed, the network is a single argument. The two production networks are below; their testnets take the same commands with a different argument.
Ethereum Classic
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 Classic
etcchain 61 - Mordor
mordorchain 63
Ethereum
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 Mainnet
ethchain 1 - Sepolia
sepoliachain 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.
| Network | Argument | Consensus | Chain ID |
|---|---|---|---|
| Ethereum Classic | etc | PoW | 61 |
| Mordor | mordor | PoW testnet | 63 |
| Ethereum Mainnet | eth | PoS | 1 |
| Sepolia | sepolia | PoS testnet | 11155111 |
A syncing full node is the default. These add a role on top of it. Mining applies to Proof-of-Work networks; validating applies to Proof-of-Stake networks.
Stake (PoS)
Fukuii ships the consensus layer, or pair an external one over the Engine API.
Mine (PoW)
Configure a coinbase address and connect a miner. Applies to every configured Proof-of-Work network.
Archive node
Full history retained, which multiplies the disk requirement.
Run as a service
Keep the node running under systemd (Linux), launchd (macOS), or a Windows Service.
| What | Requirement | What drives it |
|---|---|---|
| Java | Current JDK LTS (25) | Any OpenJDK build of the current LTS. The Docker image bundles one. |
| Memory | 8 GB minimum for the JVM heap | Add headroom for each additional network run in the same process. |
| Disk space | Set by the network and the storage approach | A 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 type | SSD, and NVMe for a validator, mining pool or public RPC node | State access during sync is random rather than sequential, which a spinning disk cannot keep up with. |
| CPU | Highest while syncing, lower at the chain tip | Size for the sync, then scale down on observed usage rather than on the peak. |
