Skip to content

Commit 91dc0be

Browse files
committed
feat: implement l2 unichain-builder builds
1 parent 7cce0f1 commit 91dc0be

File tree

23 files changed

+619
-10
lines changed

23 files changed

+619
-10
lines changed

l2/_op_rbuilder/mkosi.extra/usr/bin/init-op-rbuilder.sh

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,22 @@
22

33
set -eu
44

5-
mkdir -p /home/op-rbuilder
6-
chown -R op-rbuilder:optimism /home/op-rbuilder
7-
chmod 0750 /home/op-rbuilder
5+
if [ ! -d /home/op-rbuilder ]; then
6+
mkdir -p /home/op-rbuilder
7+
chown -R op-rbuilder:optimism /home/op-rbuilder
8+
chmod 0750 /home/op-rbuilder
9+
fi
810

911
if [ ! -d /var/opt/optimism/rbuilder ]; then
10-
mkdir -p /var/opt/optimism/rbuilder
11-
chown op-rbuilder:optimism /var/opt/optimism/rbuilder
12+
if [ -d /var/opt/optimism/unichain-builder ]; then
13+
mv /var/opt/optimism/unichain-builder /var/opt/optimism/rbuilder
14+
elif [ -d /var/opt/optimism/simulator ]; then
15+
mv /var/opt/optimism/simulator /var/opt/optimism/rbuilder
16+
else
17+
mkdir -p /var/opt/optimism/rbuilder
18+
fi
19+
20+
chown -R op-rbuilder:optimism /var/opt/optimism/rbuilder
1221
chmod 0750 /var/opt/optimism/rbuilder
1322
fi
1423

l2/_simulator/mkosi.extra/usr/bin/init-simulator.sh

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,20 @@
22

33
set -eu
44

5-
mkdir -p /home/simulator
6-
chown -R simulator:optimism /home/simulator
7-
chmod 0750 /home/simulator
5+
if [ ! -d /home/simulator ]; then
6+
mkdir -p /home/simulator
7+
chown -R simulator:optimism /home/simulator
8+
chmod 0750 /home/simulator
9+
fi
810

911
if [ ! -d /var/opt/optimism/simulator ]; then
10-
mkdir -p /var/opt/optimism/simulator
11-
chown simulator:optimism /var/opt/optimism/simulator
12+
if [ -d /var/opt/optimism/rbuilder ]; then
13+
mv /var/opt/optimism/rbuilder /var/opt/optimism/simulator
14+
else
15+
mkdir -p /var/opt/optimism/simulator
16+
fi
17+
18+
chown -R simulator:optimism /var/opt/optimism/simulator
1219
chmod 0750 /var/opt/optimism/simulator
1320
fi
1421

l2/_unichain_builder/mkosi.build

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
#!/bin/bash
2+
3+
set -euxo pipefail
4+
5+
ENV_YAML="$SRCDIR/l2/_unichain_builder/mkosi.extra/etc/flashbots/unichain-builder.yaml"
6+
7+
NODE_HEALTHCHECKER_REF=$(mkosi-chroot yq -r '.node_healthchecker.git_reference' < "$ENV_YAML")
8+
RPROXY_FEATURES=$(mkosi-chroot yq -r '.rproxy.features // ["default"] | sort | join(",")' < "$ENV_YAML")
9+
RPROXY_REF=$(mkosi-chroot yq -r '.rproxy.git_reference' < "$ENV_YAML")
10+
TDX_QUOTE_PROVIDER_REF=$(mkosi-chroot yq -r '.tdx_quote_provider.git_reference' < "$ENV_YAML")
11+
UNICHAIN_BUILDER_REF=$(mkosi-chroot yq -r '.unichain_builder.git_reference' < "$ENV_YAML")
12+
13+
source scripts/make_git_package.sh
14+
source scripts/build_rust_package.sh
15+
16+
export CARGO_HOME="/cargo"
17+
export RUSTUP_HOME="/rustup"
18+
export PATH="$CARGO_HOME/bin:$PATH"
19+
RUST_VERSION=$(mkosi-chroot yq -r '.rust.version' < "$ENV_YAML")
20+
mkosi-chroot rustup toolchain install $RUST_VERSION
21+
mkosi-chroot rustup default $RUST_VERSION
22+
23+
# build unichain-builder
24+
25+
build_rust_package \
26+
"unichain-builder" \
27+
"${UNICHAIN_BUILDER_REF}" \
28+
"https://github.com/flashbots/unichain-builder.git" \
29+
"" "" "-g"
30+
31+
# build tdx-quote-provider
32+
33+
build_rust_package \
34+
"tdx-quote-provider" \
35+
"${TDX_QUOTE_PROVIDER_REF}" \
36+
"https://github.com/flashbots/unichain-builder.git" \
37+
"" "" "-g"
38+
39+
# build rproxy
40+
41+
make_git_package \
42+
"rproxy" \
43+
"${RPROXY_REF}" \
44+
"https://github.com/flashbots/rproxy.git" \
45+
"FEATURES=${RPROXY_FEATURES} TARGET=x86_64-unknown-linux-gnu ./build.sh" \
46+
"target/x86_64-unknown-linux-gnu/release/rproxy:/usr/bin/rproxy"
47+
chmod +x $DESTDIR/usr/bin/rproxy
48+
49+
# build node-healthchecker
50+
51+
make_git_package \
52+
"node-healthchecker" \
53+
"${NODE_HEALTHCHECKER_REF}" \
54+
"https://github.com/flashbots/node-healthchecker.git" \
55+
'go build -trimpath -ldflags "-s -w -X main.version=${NODE_HEALTHCHECKER_REF} -buildid=" -o ./bin/node-healthchecker github.com/flashbots/node-healthchecker/cmd' \
56+
"bin/node-healthchecker:/usr/bin/node-healthchecker"
57+
chmod +x $DESTDIR/usr/bin/node-healthchecker

l2/_unichain_builder/mkosi.conf

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
[Build]
2+
WithNetwork=true
3+
4+
[Content]
5+
BuildScripts=l2/_unichain_builder/mkosi.build
6+
ExtraTrees=l2/_unichain_builder/mkosi.extra
7+
PostInstallationScripts=l2/_unichain_builder/mkosi.postinst
8+
9+
Packages=libtss2-dev
10+
sudo
11+
unzip
12+
13+
BuildPackages=golang
14+
libssl-dev
15+
rustup
16+
unzip
17+
yq
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Set the command-line arguments to pass to the server.
2+
ARGS="\
3+
--collector.systemd \
4+
--collector.systemd.unit-include=\".*(node-healthchecker|prometheus-node-exporter|prometheus-process-exporter|rproxy|unichain-builder|vault-agent).*\" \
5+
--log.format=json \
6+
--web.listen-address=0.0.0.0:9100 \
7+
"
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
node_healthchecker:
2+
git_reference: v0.1.11
3+
rproxy:
4+
git_reference: v0.0.10-dev.7
5+
rust:
6+
version: 1.91.1
7+
tdx_quote_provider:
8+
git_reference: tdx-quote-provider/v0.1.0
9+
unichain_builder:
10+
git_reference: v0.0.1-dev.1
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
process_names:
2+
- name: node-healthchecker
3+
cmdline:
4+
- '^\/([-.0-9a-zA-Z]+\/)*node-healthchecker[-.0-9a-zA-Z]* '
5+
- name: rproxy
6+
cmdline:
7+
- '^\/([-.0-9a-zA-Z]+\/)*rproxy[-.0-9a-zA-Z]* '
8+
- name: unichain-builder
9+
cmdline:
10+
- '^\/([-.0-9a-zA-Z]+\/)*unichain-builder[-.0-9a-zA-Z]* '
11+
- name: vault-agent
12+
cmdline:
13+
- '^\/([-.0-9a-zA-Z]+\/)*vault[-.0-9a-zA-Z]* '
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
AUTOMOUNT_PATH_DATA=/var/opt/optimism
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
[Unit]
2+
Description=Blockchain node healthchecker
3+
After=network.target
4+
Wants=network.target
5+
6+
[Service]
7+
Type=simple
8+
SyslogIdentifier=node-healthchecker
9+
User=unichain-builder
10+
Group=optimism
11+
12+
Restart=always
13+
RestartSec=5
14+
TimeoutStopSec=60
15+
16+
ExecStart=/usr/bin/node-healthchecker serve \
17+
--healthcheck-block-age-threshold 10s \
18+
--healthcheck-timeout 500ms \
19+
--healthcheck-reth-base-url http://127.0.0.1:18645 \
20+
--healthcheck-unconditional-fail-duration 1m \
21+
--http-status-warning 200 \
22+
--server-listen-address 0.0.0.0:8080
23+
24+
[Install]
25+
WantedBy=default.target
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
[Install]
2+
WantedBy=default.target
3+
4+
[Unit]
5+
Description=TDX quote provider
6+
After=network.target
7+
Wants=network.target
8+
9+
[Service]
10+
Type=simple
11+
SyslogIdentifier=tdx-quote-provider
12+
User=root
13+
Group=root
14+
15+
Restart=always
16+
RestartSec=5
17+
TimeoutStopSec=60
18+
19+
ExecStart=/usr/bin/tdx-quote-provider \
20+
--service-host 127.0.0.1 \
21+
--service-port 5757 \
22+
--metrics \
23+
--metrics-host 0.0.0.0 \
24+
--metrics-port 9009 \
25+
--log-level trace \
26+
--log-format json

0 commit comments

Comments
 (0)