Maru
With Beta v4, Linea switched from a single to a dual-layer architecture, with both an execution layer and consensus layer client. While node runners have a choice of several execution layer clients (documented in this section), Maru is the only consensus layer client available.
Developed specifically for Linea, Maru replaces the Clique Proof of Authority consensus algorithm and introduces the Quorum Byzantine Fault Tolerance (QBFT) consensus algorithm. Eventually, this change will mean Linea will be able to resemble Ethereum's decentralized sequencer system, where validators propose and confirm blocks. To start with, however, only one Linea-internal Maru node will produce blocks.
Run using Docker​
There are two methods you can use to run Maru using Docker:
- Clone the Linea monorepo and use
docker compose - Clone the Linea monorepo and build a Maru Docker image locally from
maru/.
- Linea monorepo
- Maru source
Step 1. Clone monorepo​
The files you need to run Maru are available in the Linea monorepo at the
/docs/getting-started directory,
in either the linea-mainnet
or linea-sepolia
directories.
Clone the monorepo with:
git clone --depth 5 https://github.com/Consensys/linea-monorepo.git
Step 2. Run docker compose​
Navigate to one of the directories from step 1, and run:
docker compose up maru-node
Alternative: Run using the binary distribution​
Prerequisites​
- Java 25
- Make 3.81
Step 1. Clone the Linea monorepo​
git clone https://github.com/Consensys/linea-monorepo.git
cd linea-monorepo/maru
Step 2. Build the Maru binary​
Run the following command to build a distribution:
./gradlew :app:installDist
Step 3. Run Maru​
Run the distribution with the following command:
./app/build/install/app/bin/app --network linea-mainnet --config=docker/maru/config.dev.toml
The distribution will be created in app/build/install/app/ with all necessary dependencies
included.
Maru supports named networks. Do not use --network and --maru-genesis-file together.