Project Architectureยถ
This page provides an overview of the Ethereum on ARM project architecture, illustrating how source code is transformed into distributed packages and ready-to-run images.
High-Level Architectureยถ
The project pipeline flows from upstream source code through our build systems to final artifacts (packages and images) consumed by end users.
Package Builder: Compiles binary packages (.deb) from upstream sources for ARM64.
APT Repository: Hosts these packages, allowing for standard apt install and updates.
Image Creation Tool: Builds full operating system images pre-installed with the repository and configuration scripts.
End Users: Consume either the packages (existing systems) or full images (new deployments).
Component Detailsยถ
1. FPM Package Builderยถ
Located in fpm-package-builder/, this component is responsible for:
Fetching Sources: Downloading upstream releases or cloning repositories.
Compilation: Compiling binaries for
linux/arm64(if not pre-built).Packaging: Wrapping binaries, systemd services, and default configuration into Debian (.deb) packages.
Directory Structure:
fpm-package-builder/
โโโ l1-clients/ # Execution & Consensus clients (Geth, Prysm, etc.)
โโโ l2-clients/ # Layer 2 solutions (Optimism, Arbitrum)
โโโ infra/ # DVT, MEV-Boost, Monitoring
โโโ utils/ # System utilities
2. Image Creation Toolยถ
Located in image-creation-tool/, this component builds the final OS images.
SBC Images: Uses Armbian build tools to create bootable images for specific hardware (Rock 5B, Raspberry Pi 5).
Cloud Images: Uses Packer to build Amazon Machine Images (AMI) and other cloud formats (VHD, GCE).
3. Configuration Standardsยถ
To ensure consistency across the ecosystem, all packages adhere to a strict standard:
Service Management: All clients run as systemd services.
User Isolation: Services run under the dedicated
ethereumuser.Config Location: All environment flags are loaded from
/etc/ethereum/<client>.conf.Data Persistence: Data is stored in
/home/ethereum/.<client>.
This standardization allows users to mix and match any combination of Execution and Consensus clients easily.