Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: merge the yocto scripts into yocto manifest #17

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Add reference of the new READMEs in the root one
  • Loading branch information
MoeMahhouk committed Dec 10, 2024
commit cfea317762b556322b49787a87eacc0cd649afd1
30 changes: 24 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -35,15 +35,32 @@ setup a Yocto Project build environment for you!

## Manifest Files

* **default.xml** - External releasable components. Used for release builds.
This repository contains several manifest files:
* **tdx-base.xml** - Minimal confidential computing image configuration (uses [tdx-base_yocto_build_config.env](env_files/tdx-base_yocto_build_config.env))
* **tdx-bob.xml** - Searcher node image configuration (uses [bob_yocto_build_config.env](env_files/bob_yocto_build_config.env))
* **tdx-rbuilder.xml** - Builder/validator node image configuration (uses [rbuilder_yocto_build_config.env](env_files/rbuilder_yocto_build_config.env))

## Build Profiles

This repository supports multiple build profiles, each tailored for specific use cases and defined by its corresponding manifest file:

* **tdx-base**: Minimal confidential computing image.
See [tdx-base/README.md](config_files/tdx-base/README.md) for details.

* **tdx-bob**: Specialized image for running searcher nodes with podman support and searcher-specific configurations.
See [tdx-bob/README.md](config_files/tdx-bob/README.md) for details.

* **tdx-rbuilder**: Comprehensive environment for running Ethereum validators and builders, including reth and lighthouse clients.
See [tdx-rbuilder/README.md](config_files/tdx-rbuilder/README.md) for details.

Each profile's configuration and setup scripts are maintained in the `config_files/` directory. See the profile-specific READMEs for detailed information about features, requirements, and build configurations.

## Reproducing image measurements

**Make sure you are checked out on the correct commit (in this repo).**

Building images is as simple as installing docker and running `make measurements-<name>`. For list of images run `make help`.
Building images and generating their reproducible build measurements is as simple as installing docker and running `make measurements-<name>`. For list of images run `make help`.
Make sure you have plenty of disk space available (200 GBs), and that your session will not time out as a fresh build can take over an hour on slow hardware.
To get

Built images as well as measurements will be available in `./reproducible-build/artifacts-<image name>`.

@@ -98,6 +115,7 @@ $ cd yocto/tdx
* Clone the Yocto meta layer source using yocto manifest as show below.
```
$ repo init -u https://github.com/flashbots/yocto-manifests.git -b main -m <manifest_file>.xml
# Replace <manifest_file> with tdx-base.xml, tdx-bob.xml, or tdx-rbuilder.xml depending on your needs
```
A successful initialization will end with a message stating that Repo is
initialized in your working directory. Your directory should now contain a
@@ -165,9 +183,9 @@ $ git clone https://github.com/flashbots/yocto-manifests.git
```
2. adjust the yocto build configuration in [env_files](https://github.com/flashbots/yocto-manifests/tree/main/env_files) for the target image you want to build
3. make the desired image using, these are the current options:
- image-base: builds a basic tdx-image and outputs the image artifacts in */reproducile-build/artifacts-base*
- image-bob: builds the image for the BOB project with the searcher embedded ss-key and podman support and outputs the image artifacts in */reproducile-build/artifacts-bob*
- image-rbuilder: builds the image for with rbuilder/reth/lighthouse and outputs the image artifacts in */reproducile-build/artifacts-rbuilder*
- image-base: builds a basic tdx-image and outputs the image artifacts in */reproducible-build/artifacts-base* (see [tdx-base profile](config_files/tdx-base/README.md))
- image-bob: builds the image for the BOB project with the searcher embedded ss-key and podman support and outputs the image artifacts in */reproducible-build/artifacts-bob* (see [tdx-bob profile](config_files/tdx-bob/README.md))
- image-rbuilder: builds the image for with rbuilder/reth/lighthouse and outputs the image artifacts in */reproducible-build/artifacts-rbuilder* (see [tdx-rbuilder profile](config_files/tdx-rbuilder/README.md))
```
$ make image-<target-name>
```