This project contains three main components:
patches/${github_org}/${github_repo}/${branch/tag/commit}.patch- Patch files (Rust source only) to apply to lighthouse upstream repooverlay/xatu- The xatu crate for the xatu-sidecar to be injected into the lighthouse build processci/- Dockerfile and CI helpers (copied over upstream files during apply)
The goal of this project is to inject the xatu-sidecar into the lighthouse build process, by applying a patch file to the lighthouse upstream repo.
patches/ - Slim patches (only Rust source diffs)
overlay/xatu/ - Xatu crate overlay (copied into lighthouse during apply)
ci/ - Dockerfile.ethpandaops and workflow helpers
scripts/ - Build, apply, save, update-deps, and validate scripts
scripts/apply-dimhouse-patch.shapplies patches, copies overlay/xatu, copies ci/Dockerfile.ethpandaops, injects Cargo.toml deps viascripts/update-deps.sh, and disables upstream workflowsscripts/dimhouse-build.shorchestrates clone + apply + build (supports--skip-buildfor Docker CI)scripts/save-patch.shstrips overlay/CI/dep artifacts and generates a clean patch
kurtosis-config.yaml defines a local testnet with a dimhouse (lighthouse+xatu) node and a vanilla lighthouse node.
The xatu config is inlined via extra_files with stdout output so events appear in container logs.
# Quick test (assumes ethpandaops/dimhouse:latest image exists):
kurtosis run github.com/ethpandaops/ethereum-package --args-file kurtosis-config.yaml --enclave dimhouse
# View xatu events:
kurtosis service logs dimhouse cl-1-lighthouse-nethermind
# Cleanup:
kurtosis enclave rm -f dimhouseKey notes:
- The xatu config
type: stdoutrequires a dummyconfig.addressfield to satisfy the Rust config parser (the Go side ignores it for stdout) - The
vc_imagemust matchcl_imagesince lighthouse VC shares the same binary - No ENTRYPOINT in the Docker image -- kurtosis passes
lighthouse beacon_node .../lighthouse vc ...as the full command libxatu.somust be in the image at a path covered byLD_LIBRARY_PATH(e.g./usr/local/lib)- Update
overlay/xatu/src/libxatu.sowhen bumping xatu-sidecar version (build.rs only downloads if missing)