* besu-package: update sequencer version * besu-package: update sequencer version * besu-package: update sequencer version * besu-package: sequencer plugin update to v2.1-rc16.2.3 * besu-package: update besu package * localstack: update coordinator version * localstack: remove unnecessary * localstack: revert l2 node configs on profitability check * localstack: update e2e README * besu-package: update sequencer plugin * Revert "localstack: revert l2 node configs on profitability check" This reverts commit 24ac5f6b746b85c4f27c02aaa63d992549aa44ac. * besu-package: update plugins * besu-package: update besu image * fix flaky test * besu-package: remove besu/plugins from classpath * expected-traces-api-version-v2="beta-v2.1-rc16.2" * update shomei plugin * update besu-package image * besu-package add back plugins folder to classpath * localstack: update besu package
Linea Besu Distribution
This project uses Gradle to manage dependencies, build tasks, and create distributions for linea-besu with all the necessary plugins to run a node for operators. The build process will also create a Docker image that can be used to run a node with a specific profile.
Run with Docker
Step 1. Download configuration files
You can start with the Docker Compose files located in the docker directory.
Step 2. Update the Docker Compose file
In the docker-compose.yaml file, update the --p2p-host command to include your public IP address. For example:
--p2p-host=103.10.10.10
Update plugin-linea-l1-rpc-endpoint config with your L1 RPC endpoint. You should replace YOUR_L1_RPC_ENDPOINT with your endpoint, like:
--plugin-linea-l1-rpc-endpoint=https://mainnet.infura.io/v3/PROJECT_ID
This is required to enable RPC queries using "FINALIZED" block tag. Linea Finalization status is based on L1 RPC endpoint's response
Step 2. Start the Besu node
docker compose -f ./linea-besu-package/docker/docker-compose-basic-mainnet.yaml up
Alternatively, to run a node with a specific profile, set the BESU_PROFILE environment variable to the desired profile name:
docker run -e BESU_PROFILE=basic-mainnet consensys/linea-besu-package:latest
Or use a specific release image tag
docker run -e BESU_PROFILE=basic-mainnet consensys/linea-besu-package:2.1.0-20250507100634-6dc9db9
Run with a binary distribution
Step 1. Install Linea Besu from packaged binaries
- Download the linea-besu-package-<release>.tar.gz from the assets.
- Unpack the downloaded files and change directory into the
linea-besu/besudirectory.
Display Besu command line help to confirm installation:
bin/besu --help
Step 2. Start the Besu client
Note the YOUR_L1_RPC_ENDPOINT. You should replace this with your L1 RPC endpoint.
This is required to enable RPC queries using "FINALIZED" tag. Linea Finalization status is based on L1 RPC endpoint's response
bin/besu --profile=advanced-mainnet --plugin-linea-l1-rpc-endpoint=YOUR_L1_RPC_ENDPOINT
Build from source
- Make a branch with changes to
linea-besu-package/versions.envas needed - Create a PR for the branch
- Go to the actions tab to check if the workflow completed successfully
- Go to the releases page and you should find the corresponding release info along with the docker image tag
How-To Release
-
Go to the actions tab and click on the workflow
linea-besu-package-releasefor release with besu and plugin versions based onlinea-besu-package/versions.env -
If release prefix is not given,
LINEA_TRACER_PLUGIN_VERSIONin the targetversions.envfile will be used, and the resultant release tag would belinea-besu-package-[releasePrefix]-[YYYYMMDDHHMMSS]-[shortenCommitHash]and the docker image tag would be[releasePrefix]-[YYYYMMDDHHMMSS]-[shortenCommitHash] -
Go to the releases page and you should find the corresponding release info along with the docker image tag
Additionally, the latest tag will be updated to match this release
Profiles
This project leverages Besu Profiles to enable multiple startup configurations for different node types.
During the build process, all TOML files located in the linea-besu-package/linea-besu/profiles directory will be incorporated into the package. These profiles are crucial for configuring the node, as each one specifies the necessary plugins and CLI options to ensure Besu operates correctly.
Each profile is a TOML file that outlines the plugins and CLI options to be used when starting the node. For example:
# required plugins to run a sequencer node
plugins=["LineaExtraDataPlugin","LineaEndpointServicePlugin","LineaTransactionPoolValidatorPlugin","LineaTransactionSelectorPlugin"]
# required options to configure the plugins above
plugin-linea-module-limit-file-path="config/trace-limits.mainnet.toml"
# Other required plugin options
# ...
# Other Besu options
# ...
Currently, the following profiles are available:
| Profile Name | Description | Network |
|---|---|---|
basic-mainnet |
Creates a basic Linea Node. | Mainnet |
advanced-mainnet |
Creates a Linea Node with linea_estimateGas and finalized tag updater plugin. |
Mainnet |
basic-sepolia |
Creates a basic Linea Node. | Sepolia |
advanced-sepolia |
Creates a Linea Node with linea_estimateGas and finalized tag updater plugin. |
Sepolia |