Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
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
5 changes: 5 additions & 0 deletions .changeset/every-banks-sleep.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@cartesi/sdk": patch
---

Bump cartesi-base-image debian:trixie to latest version.
5 changes: 5 additions & 0 deletions .changeset/fresh-pumas-clap.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@cartesi/sdk": patch
---

Bump anvil and foundry to 1.5.1, and the cartesi-rollups-prt release providing the anvil state to 3.0.0-alpha.4.
5 changes: 5 additions & 0 deletions .changeset/small-carrots-rush.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@cartesi/sdk": patch
---

Bump image-kernel to 0.21.0, linux-kernel to 6.5.13-ctsi-2-v0.21.0 and machine-emulator to 0.21.0. Add machine-emulator dependency lua-lpeg
5 changes: 5 additions & 0 deletions .changeset/tidy-owls-shave.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@cartesi/sdk": patch
---

Drop the @cartesi/devnet dependency from the image. The anvil state dump is now downloaded directly from the cartesi/dave release selected by CARTESI_PRT_VERSION, so the image no longer ships /usr/share/cartesi/deployments nor DEVNET_VERSION. A PRT_VERSION file is written instead.
37 changes: 25 additions & 12 deletions packages/sdk/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -70,13 +70,29 @@ mkdir -p /usr/local/bin
curl -fsSL https://github.com/foundry-rs/foundry/releases/download/v${FOUNDRY_VERSION}/foundry_v${FOUNDRY_VERSION}_${TARGETOS}_${TARGETARCH}.tar.gz \
-o /tmp/foundry.tar.gz
case "${TARGETARCH}" in
amd64) echo "325ba04dc5cb41c110723b00ac291f8269f8cd785028299aad8252ef980961a7 /tmp/foundry.tar.gz" | sha256sum --check ;;
arm64) echo "209492cb4ebd723d9eac002fa30f41f53c8810105b67d3c32fe8201cf70f89d4 /tmp/foundry.tar.gz" | sha256sum --check ;;
amd64) echo "73640b01bd9ed29fdb4965085099371f8cf0dbbec3e2086cf54564efc4dcfe88 /tmp/foundry.tar.gz" | sha256sum --check ;;
arm64) echo "cccf28bdf202289e837a9e21ed213b2b80dc1e806e12f1717bc98a44315c331e /tmp/foundry.tar.gz" | sha256sum --check ;;
*) echo "unsupported architecture: ${TARGETARCH}"; exit 1 ;;
esac
tar -zx -f /tmp/foundry.tar.gz -C /usr/local/bin
EOF

################################################################################
# devnet anvil state
# The state dump is produced by the anvil version named in the asset, so
# FOUNDRY_VERSION must be the same one that provides /usr/local/bin/anvil below.
FROM base AS devnet-state
ARG CARTESI_PRT_VERSION
ARG FOUNDRY_VERSION
RUN <<EOF
mkdir -p /opt/devnet
curl -fsSL https://github.com/cartesi/dave/releases/download/v${CARTESI_PRT_VERSION}/cartesi-rollups-prt-${CARTESI_PRT_VERSION}-anvil-v${FOUNDRY_VERSION}.tar.gz \
-o /tmp/prt-anvil.tar.gz
tar -xzO -f /tmp/prt-anvil.tar.gz state.json > /opt/devnet/anvil_state.json
rm /tmp/prt-anvil.tar.gz
echo ${CARTESI_PRT_VERSION} > /opt/devnet/PRT_VERSION
EOF

################################################################################
# nitro builder
FROM builder AS nitro
Expand Down Expand Up @@ -149,7 +165,8 @@ RUN <<EOF
apt-get install -y --no-install-recommends \
libslirp0 \
libgomp1 \
lua5.4
lua5.4 \
lua-lpeg
rm -rf /var/lib/apt/lists/*
EOF

Expand All @@ -171,8 +188,8 @@ RUN <<EOF
curl -fsSL https://github.com/cartesi/machine-emulator/releases/download/v${CARTESI_MACHINE_EMULATOR_VERSION}/machine-emulator_${TARGETARCH}.deb \
-o /tmp/machine-emulator.deb
case "${TARGETARCH}" in
amd64) echo "46b2f37b889091df3b89a8909467935f8dd4a1426eeb0491b6a346a12f0c341c /tmp/machine-emulator.deb" | sha256sum --check ;;
arm64) echo "27ea10571335ad174b75388e7de54a3d3434bd607554d8c0bdf6abca47ceae0d /tmp/machine-emulator.deb" | sha256sum --check ;;
amd64) echo "5f13034f43454c340062c677146daabe77c587cee1bd60342c95b8ad8f1463a3 /tmp/machine-emulator.deb" | sha256sum --check ;;
arm64) echo "866f0bde2db53b9b8e6a6eac85e5ad4116338379fa25cdfcc5e4bf835f948bb1 /tmp/machine-emulator.deb" | sha256sum --check ;;
*) echo "unsupported architecture: ${TARGETARCH}"; exit 1 ;;
esac
apt-get install -y --no-install-recommends /tmp/machine-emulator.deb
Expand Down Expand Up @@ -279,7 +296,7 @@ FROM scratch AS kernel-image
ARG CARTESI_IMAGE_KERNEL_VERSION
ARG CARTESI_LINUX_KERNEL_VERSION

ADD --checksum=sha256:65dd100ff6204346ac2f50f772721358b5c1451450ceb39a154542ee27b4c947 \
ADD --checksum=sha256:5c900060da2db2bfa84cd39cd9cd722988c83c42225f3cac55f2d3157e48f32f \
https://github.com/cartesi/image-kernel/releases/download/v${CARTESI_IMAGE_KERNEL_VERSION}/linux-${CARTESI_LINUX_KERNEL_VERSION}.bin \
/usr/share/cartesi-machine/images/linux.bin

Expand All @@ -289,7 +306,7 @@ FROM base AS kernel-headers
ARG CARTESI_IMAGE_KERNEL_VERSION
ARG CARTESI_LINUX_KERNEL_VERSION

ADD --checksum=sha256:4a4714bfa8c0028cb443db2036fad4f8da07065c1cb4ac8e0921a259fddd731b \
ADD --checksum=sha256:e3f140a8632fcfb18218e7aea32a7d002124d3dce5ba8121ae061ab7f40a6cf4 \
https://github.com/cartesi/image-kernel/releases/download/v${CARTESI_IMAGE_KERNEL_VERSION}/linux-headers-${CARTESI_LINUX_KERNEL_VERSION}.tar.xz \
/tmp/linux-headers-${CARTESI_LINUX_KERNEL_VERSION}.tar.xz
RUN tar -xJf "/tmp/linux-headers-${CARTESI_LINUX_KERNEL_VERSION}.tar.xz" -C /
Expand All @@ -299,7 +316,6 @@ RUN tar -xJf "/tmp/linux-headers-${CARTESI_LINUX_KERNEL_VERSION}.tar.xz" -C /
FROM rollups-runtime
ARG ALTO_VERSION
ARG ALTO_PACKAGE_VERSION
ARG CARTESI_DEVNET_VERSION
ARG CARTESI_MACHINE_EMULATOR_VERSION
ARG CARTESI_PAYMASTER_VERSION
ARG CARTESI_PASSKEY_SERVER_VERSION
Expand Down Expand Up @@ -352,15 +368,11 @@ EOF
COPY --from=alto /app/alto/src/pimlico-alto-${ALTO_PACKAGE_VERSION}.tgz /tmp/pimlico-alto.tgz
RUN <<EOF
npm install -g \
@cartesi/devnet@${CARTESI_DEVNET_VERSION} \
@cartesi/mock-verifying-paymaster@${CARTESI_PAYMASTER_VERSION} \
@cartesi/passkey-server@${CARTESI_PASSKEY_SERVER_VERSION} \
/tmp/pimlico-alto.tgz

rm /tmp/pimlico-alto.tgz
mkdir -p /usr/share/cartesi
cp -r "$(npm root -g)/@cartesi/devnet/deployments" /usr/share/cartesi/
cp "$(npm root -g)/@cartesi/devnet/anvil_state.json" /usr/share/cartesi/
EOF

ENV LC_ALL=en_US.UTF-8
Expand All @@ -373,6 +385,7 @@ COPY devnet /usr/local/bin
COPY eth_isready /usr/local/bin

COPY entrypoint.sh /usr/local/bin/
COPY --from=devnet-state /opt/devnet/ /usr/share/cartesi/
COPY --from=foundry /usr/local/bin/anvil /usr/local/bin/
COPY --from=foundry /usr/local/bin/cast /usr/local/bin/
COPY --from=squashfs-tools /usr/local/src/squashfs-tools/mksquashfs /usr/local/bin/
Expand Down
1 change: 0 additions & 1 deletion packages/sdk/devnet
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
#!/usr/bin/env sh
set -e
jq -r '.contracts | to_entries | sort_by(.key) | .[] | "\(.value.address) \(.key)"' /usr/share/cartesi/deployments/anvil.json
exec anvil --load-state /usr/share/cartesi/anvil_state.json "$@"
14 changes: 7 additions & 7 deletions packages/sdk/docker-bake.hcl
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,19 @@ target "default" {
args = {
ALTO_VERSION = "1.2.7"
ALTO_PACKAGE_VERSION = "0.0.20"
CARTESI_BASE_IMAGE = "docker.io/library/debian:trixie-20260610@sha256:fe7312b5f05bf5f43fad76bcd8945642e4e47a68aefd1b73f447615899d0fac1"
CARTESI_DEVNET_VERSION = "2.0.0-alpha.14"
CARTESI_IMAGE_KERNEL_VERSION = "0.20.0"
CARTESI_LINUX_KERNEL_VERSION = "6.5.13-ctsi-1-v0.20.0"
CARTESI_MACHINE_EMULATOR_VERSION = "0.20.0"
CARTESI_BASE_IMAGE = "docker.io/library/debian:trixie-20260803@sha256:34cd9e9fd437c0a095ec39cb2e73422c9f30821b0d0848ed74fd0d43bae4d958"
CARTESI_IMAGE_KERNEL_VERSION = "0.21.0"
CARTESI_LINUX_KERNEL_VERSION = "6.5.13-ctsi-2-v0.21.0"
CARTESI_MACHINE_EMULATOR_VERSION = "0.21.0"
CARTESI_PASSKEY_SERVER_VERSION = "1.0.1"
CARTESI_PAYMASTER_VERSION = "0.2.0"
CARTESI_PRT_VERSION = "3.0.0-alpha.4"
CARTESI_ROLLUPS_NODE_VERSION = "2.0.0-alpha.12"
FOUNDRY_VERSION = "1.4.3"
FOUNDRY_VERSION = "1.5.1"
NITRO_VERSION = "c937fa4fd202074dd250086ebd92de6884968b84" # v0.8.1
NODE_VERSION = "24.14.0"
NVM_VERSION = "977563e97ddc66facf3a8e31c6cff01d236f09bd" # 0.40.3
POSTGRES_BASE_IMAGE = "docker.io/library/postgres:17-trixie@sha256:2203e6282d9e7de7c24d7da234e2a744fb325df366a3fd8ed940e8abbee39527"
POSTGRES_BASE_IMAGE = "docker.io/library/postgres:17-trixie@sha256:7958605b474b3d264a969cb3a123d6aa00ad1e1fe9da8a69984dabb704d93317"
SQUASHFS_TOOLS_VERSION = "bad1d213ab6df587d6fa0ef7286180fbf7b86167" # 4.7.4
SU_EXEC_VERSION = "0.3"
TELEGRAF_VERSION = "1.38.0"
Expand Down
Loading