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 the binary distribution​
Prerequisites​
- Java 21
- Make 3.81
Step 1. Clone the Maru repository​
git clone https://github.com/Consensys/maru.git
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 --maru-genesis-file=docker/initialization/genesis-maru.json --config=docker/maru/config.dev.toml
The distribution will be created in app/build/install/app/ with all necessary dependencies included.
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 Maru repository and build a Docker image locally.
- Linea monorepo
- Maru repository
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