From 6f4a2f525414a9187d1c380a4b093c8c95830d18 Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Tue, 10 Jun 2025 12:01:59 -0300 Subject: [PATCH 01/41] feat: proof aggregtor docker --- Makefile | 21 ++++++++++++++++ .../config-proof-aggregator-docker.yaml | 19 +++++++++++++++ docker-compose.yaml | 8 +++++++ docker/README.md | 24 +++++++++++++++++++ docker/proof-aggregator.Dockerfile | 14 +++++++++++ 5 files changed, 86 insertions(+) create mode 100644 config-files/config-proof-aggregator-docker.yaml create mode 100644 docker/proof-aggregator.Dockerfile diff --git a/Makefile b/Makefile index 76b918f16b..9bfb1c908d 100644 --- a/Makefile +++ b/Makefile @@ -982,6 +982,9 @@ docker_build_operator: docker_build_batcher: docker compose -f docker-compose.yaml --profile batcher build +docker_build_proof_aggregator: + docker compose -f docker-compose.yaml --profile proof-aggregator build + docker_restart_aggregator: docker compose -f docker-compose.yaml --profile aggregator down docker compose -f docker-compose.yaml --profile aggregator up -d --remove-orphans --force-recreate @@ -1002,6 +1005,7 @@ docker_build: docker compose -f docker-compose.yaml --profile operator build docker compose -f docker-compose.yaml --profile batcher build docker compose -f docker-compose.yaml --profile aggregator build + docker compose -f docker-compose.yaml --profile proof-aggregator build docker_up: docker compose -f docker-compose.yaml --profile base up -d --remove-orphans --force-recreate @@ -1016,10 +1020,12 @@ docker_up: docker compose -f docker-compose.yaml --profile operator up -d --remove-orphans --force-recreate docker compose -f docker-compose.yaml run --rm user-fund-payment-service-devnet docker compose -f docker-compose.yaml --profile batcher up -d --remove-orphans --force-recreate + docker compose -f docker-compose.yaml --profile proof-aggregator up -d --remove-orphans --force-recreate @echo "Up and running" docker_down: docker compose -f docker-compose.yaml --profile batcher down + docker compose -f docker-compose.yaml --profile proof-aggregator down docker compose -f docker-compose.yaml --profile operator down docker compose -f docker-compose.yaml --profile base down @echo "Everything down" @@ -1171,6 +1177,15 @@ docker_verify_proof_submission_success: echo "All proofs verified successfully!"; \ ' +docker_proof_aggregator_run_sp1: + docker exec $(shell docker ps | grep proof_aggregator | awk '{print $$1}') "AGGREGATOR=sp1 /aligned_layer/proof_aggregator_cpu /aligned_layer/config-files/config-proof-aggregator-docker.yaml && echo '{"last_aggregated_block":0}' > config-files/proof-aggregator.last_aggregated_block.json" + +docker_proof_aggregator_run_risc0: + docker exec $(shell docker ps | grep proof_aggregator | awk '{print $$1}') "AGGREGATOR=risc0 /aligned_layer/proof_aggregator_cpu /aligned_layer/config-files/config-proof-aggregator-docker.yaml && echo '{"last_aggregated_block":0}' > config-files/proof-aggregator.last_aggregated_block.json" + +docker_proof_aggregator_verify: + @(docker logs $$(docker ps | grep proof_aggregator | awk '{print $$1}') | grep -q "Error while aggregating and submitting proofs" && exit 1) || exit 0 + docker_attach_foundry: docker exec -ti $(shell docker ps | grep anvil | awk '{print $$1}') /bin/bash @@ -1186,6 +1201,9 @@ docker_attach_operator: docker_attach_batcher: docker exec -ti $(shell docker ps | grep batcher | awk '{print $$1}') /bin/bash +docker_attach_proof_aggregator: + docker exec -ti $(shell docker ps | grep batcher | awk '{print $$1}') /bin/bash + docker_logs_anvil: docker compose -f docker-compose.yaml logs anvil -f @@ -1198,6 +1216,9 @@ docker_logs_operator: docker_logs_batcher: docker compose -f docker-compose.yaml logs batcher -f +docker_logs_proof_aggregator: + docker compose -f docker-compose.yaml logs proof-aggregator -f + __TELEMETRY__: # Collector, Jaeger and Elixir API telemetry_full_start: telemetry_compile_bls_verifier open_telemetry_start telemetry_start diff --git a/config-files/config-proof-aggregator-docker.yaml b/config-files/config-proof-aggregator-docker.yaml new file mode 100644 index 0000000000..cdfbd32f96 --- /dev/null +++ b/config-files/config-proof-aggregator-docker.yaml @@ -0,0 +1,19 @@ +aligned_service_manager_address: "0x1613beB3B2C4f22Ee086B2b38C1476A3cE7f78E8" +proof_aggregation_service_address: "0xFD471836031dc5108809D173A067e8486B9047A3" +eth_rpc_url: "http://anvil:8545" +eth_ws_url: "ws://anvil:8545" +max_proofs_in_queue: 1000 +last_aggregated_block_filepath: config-files/proof-aggregator.last_aggregated_block.json +proofs_per_chunk: 512 # Amount of proofs to process per chunk +# This number comes from the blob data limit +# Since each blob has a capacity of (4096 * 32) = 131.072 bytes +# But to not surpass the field modulus we pad with a 0xo byte so we have (4096 * 31) = 126.976 bytes +# of usable data +# Since each proof commitments takes 32 bytes hash +# We can aggregate as much proofs as 126.976 / 32 = 3968 per blob +total_proofs_limit: 3968 + + +ecdsa: + private_key_store_path: "config-files/anvil.proof-aggregator.ecdsa.key.json" + private_key_store_password: "" diff --git a/docker-compose.yaml b/docker-compose.yaml index fb5ef41e70..76cde51651 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -117,6 +117,14 @@ services: dockerfile: docker/batcher.Dockerfile profiles: - batcher + + proof_aggregator: + image: ghcr.io/yetanotherco/aligned_layer/proof_aggregator:latest + build: + context: . + dockerfile: docker/proof-aggregator.Dockerfile + profiles: + - proof-aggregator aligned_base: image: ghcr.io/yetanotherco/aligned_layer/aligned_base:latest diff --git a/docker/README.md b/docker/README.md index 4e7f3c3935..8125d8b0e5 100644 --- a/docker/README.md +++ b/docker/README.md @@ -92,6 +92,26 @@ And you can run this to attach to the anvil/foundry container and run `cast` wit make docker_attach_foundry ``` +## Aggregation + +To aggregate SP1 proofs: + +```shell +make docker_proof_aggregator_run_sp1 +``` + +For Risc0: + +```shell +make docker_proof_aggregator_run_risc0 +``` + +To verify that the proofs have been aggregated correctly: + +```shell +make docker_proof_aggregator_verify +``` + ## Logs You can watch logs for the components with the following commands: @@ -111,3 +131,7 @@ make docker_logs_operator ```shell make docker_logs_batcher ``` + +```shell +make docker_logs_proof_aggregator +``` diff --git a/docker/proof-aggregator.Dockerfile b/docker/proof-aggregator.Dockerfile new file mode 100644 index 0000000000..d7b0565fc5 --- /dev/null +++ b/docker/proof-aggregator.Dockerfile @@ -0,0 +1,14 @@ +FROM ghcr.io/yetanotherco/aligned_layer/aligned_base:latest AS base + +RUN apt update -y && apt install -y gcc + +WORKDIR /aligned_layer/aggregation_mode/ +RUN cargo build --features prove --release --bin proof_aggregator_cpu + +FROM debian:bookworm-slim AS final + +COPY --from=base /aligned_layer/aggregation_mode/target/release/ /aligned_layer/proof_aggregator_cpu +COPY ./config-files/config-proof-aggregator-docker.yaml ./config-files/ +COPY ./config-files/anvil.proof-aggregator.ecdsa.key.json ./config-files/ + +RUN apt update -y && apt install -y libssl-dev ca-certificates From f6993b469a05a0e7991650b3bb8abb5fa9bf52a4 Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Tue, 10 Jun 2025 12:02:26 -0300 Subject: [PATCH 02/41] ci: add proof aggregation mode steps to send-proofs workflow --- .github/workflows/send-proofs-docker.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/send-proofs-docker.yml b/.github/workflows/send-proofs-docker.yml index 84641479c1..c487d6fa44 100644 --- a/.github/workflows/send-proofs-docker.yml +++ b/.github/workflows/send-proofs-docker.yml @@ -46,6 +46,17 @@ jobs: - name: Verify all sent proofs run: make docker_verify_proof_submission_success + + - name: Aggregate sp1 proofs + run: make docker_proof_aggregator_run_sp1 + - name: Verify SP1 aggregation + run: make docker_proof_aggregator_verify + + - name: Aggregate risc0 proofs + run: make docker_proof_aggregator_run_risc0 + + - name: Verify Risc0 aggregation + run: make docker_proof_aggregator_verify - name: Stop containers continue-on-error: true From e6d542d8558bd0e18e352e7319b31bf3bc6e17b2 Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Tue, 10 Jun 2025 12:04:58 -0300 Subject: [PATCH 03/41] fix: docker build --- docker/proof-aggregator.Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/proof-aggregator.Dockerfile b/docker/proof-aggregator.Dockerfile index d7b0565fc5..7a2c2e27bb 100644 --- a/docker/proof-aggregator.Dockerfile +++ b/docker/proof-aggregator.Dockerfile @@ -7,7 +7,7 @@ RUN cargo build --features prove --release --bin proof_aggregator_cpu FROM debian:bookworm-slim AS final -COPY --from=base /aligned_layer/aggregation_mode/target/release/ /aligned_layer/proof_aggregator_cpu +COPY --from=base /aligned_layer/aggregation_mode/target/release/proof_aggregator_cpu /aligned_layer/proof_aggregator_cpu COPY ./config-files/config-proof-aggregator-docker.yaml ./config-files/ COPY ./config-files/anvil.proof-aggregator.ecdsa.key.json ./config-files/ From bcfd07e462d249a76042e70bcf23b2c29bf73a46 Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Tue, 10 Jun 2025 12:21:14 -0300 Subject: [PATCH 04/41] fix: docker build copy aggregation mode files --- docker/proof-aggregator.Dockerfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docker/proof-aggregator.Dockerfile b/docker/proof-aggregator.Dockerfile index 7a2c2e27bb..1de53b251d 100644 --- a/docker/proof-aggregator.Dockerfile +++ b/docker/proof-aggregator.Dockerfile @@ -2,8 +2,9 @@ FROM ghcr.io/yetanotherco/aligned_layer/aligned_base:latest AS base RUN apt update -y && apt install -y gcc -WORKDIR /aligned_layer/aggregation_mode/ -RUN cargo build --features prove --release --bin proof_aggregator_cpu +COPY crates /aligned_layer/crates/ +COPY aggregation_mode /aligned_layer/aggregation_mode/ +RUN cargo build --manifest-path ./aggregation_mode/Cargo.toml --features prove --release --bin proof_aggregator_cpu FROM debian:bookworm-slim AS final From 7dce9dcd2c0ba7e3e8305f967dbc0d4c5394556c Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Tue, 10 Jun 2025 13:13:50 -0300 Subject: [PATCH 05/41] fix: docker build workdir --- docker/proof-aggregator.Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/docker/proof-aggregator.Dockerfile b/docker/proof-aggregator.Dockerfile index 1de53b251d..e2b95af43a 100644 --- a/docker/proof-aggregator.Dockerfile +++ b/docker/proof-aggregator.Dockerfile @@ -4,6 +4,7 @@ RUN apt update -y && apt install -y gcc COPY crates /aligned_layer/crates/ COPY aggregation_mode /aligned_layer/aggregation_mode/ +WORKDIR /aligned_layer RUN cargo build --manifest-path ./aggregation_mode/Cargo.toml --features prove --release --bin proof_aggregator_cpu FROM debian:bookworm-slim AS final From 1c4f1f9f1f61de4ba4c517b406a9caca5cf08289 Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Tue, 10 Jun 2025 13:47:10 -0300 Subject: [PATCH 06/41] fix: build docker in docker --- aggregation_mode/build.rs | 17 ++++++++++++----- docker/proof-aggregator.Dockerfile | 2 +- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/aggregation_mode/build.rs b/aggregation_mode/build.rs index cb6e6363b5..251a6d0206 100644 --- a/aggregation_mode/build.rs +++ b/aggregation_mode/build.rs @@ -3,6 +3,9 @@ use std::collections::HashMap; // Reference: https://docs.succinct.xyz/docs/sp1/writing-programs/compiling#advanced-build-options-1 fn main() { + // If we are in docker, we don't want to build the programs with docker + let in_docker = std::env::var("IN_DOCKER").is_ok(); + sp1_build::build_program_with_args("./aggregation_programs/sp1", { sp1_build::BuildArgs { output_directory: Some("./aggregation_programs/sp1/elf".to_string()), @@ -12,7 +15,7 @@ fn main() { ], // We use Docker to generate a reproducible ELF that will be identical across all platforms // (https://docs.succinct.xyz/docs/sp1/writing-programs/compiling#production-builds) - docker: true, + docker: !in_docker, ..Default::default() } }); @@ -21,10 +24,14 @@ fn main() { // regardless of the machine or local environment, will produce the same ImageID let docker_options = DockerOptionsBuilder::default().build().unwrap(); // Reference: https://github.com/risc0/risc0/blob/main/risc0/build/src/config.rs#L73-L90 - let guest_options = GuestOptionsBuilder::default() - .use_docker(docker_options) - .build() - .unwrap(); + let guest_options = if !in_docker { + GuestOptionsBuilder::default() + .use_docker(docker_options) + .build() + .unwrap() + } else { + GuestOptionsBuilder::default().build().unwrap() + }; risc0_build::embed_methods_with_options(HashMap::from([( "risc0_aggregation_program", diff --git a/docker/proof-aggregator.Dockerfile b/docker/proof-aggregator.Dockerfile index e2b95af43a..a951e783a7 100644 --- a/docker/proof-aggregator.Dockerfile +++ b/docker/proof-aggregator.Dockerfile @@ -5,7 +5,7 @@ RUN apt update -y && apt install -y gcc COPY crates /aligned_layer/crates/ COPY aggregation_mode /aligned_layer/aggregation_mode/ WORKDIR /aligned_layer -RUN cargo build --manifest-path ./aggregation_mode/Cargo.toml --features prove --release --bin proof_aggregator_cpu +RUN IN_DOCKER=true cargo build --manifest-path ./aggregation_mode/Cargo.toml --features prove --release --bin proof_aggregator_cpu FROM debian:bookworm-slim AS final From 5ad7a0a5532ce38a746d0d0e77d2a503a55ad4a3 Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Tue, 10 Jun 2025 13:53:40 -0300 Subject: [PATCH 07/41] fix: build docker install toolchains --- docker/proof-aggregator.Dockerfile | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docker/proof-aggregator.Dockerfile b/docker/proof-aggregator.Dockerfile index a951e783a7..30d28d14f4 100644 --- a/docker/proof-aggregator.Dockerfile +++ b/docker/proof-aggregator.Dockerfile @@ -2,9 +2,20 @@ FROM ghcr.io/yetanotherco/aligned_layer/aligned_base:latest AS base RUN apt update -y && apt install -y gcc +# Install SP1 toolchain +RUN curl -L https://sp1up.succinct.xyz | bash -s -- -y +ENV PATH="/root/.sp1/bin:${PATH}" +RUN sp1up + +# Install Risc0 toolchain +RUN curl -L https://risczero.com/install | bash +ENV PATH="/root/.risc0/bin:${PATH}" +RUN rzup install + COPY crates /aligned_layer/crates/ COPY aggregation_mode /aligned_layer/aggregation_mode/ WORKDIR /aligned_layer + RUN IN_DOCKER=true cargo build --manifest-path ./aggregation_mode/Cargo.toml --features prove --release --bin proof_aggregator_cpu FROM debian:bookworm-slim AS final From eae75050b1a36ce778865dfa9d173cf0e8cd7499 Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Tue, 10 Jun 2025 14:10:27 -0300 Subject: [PATCH 08/41] fix: docker aggregation targets --- Makefile | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 9bfb1c908d..8a80d34449 100644 --- a/Makefile +++ b/Makefile @@ -1178,10 +1178,16 @@ docker_verify_proof_submission_success: ' docker_proof_aggregator_run_sp1: - docker exec $(shell docker ps | grep proof_aggregator | awk '{print $$1}') "AGGREGATOR=sp1 /aligned_layer/proof_aggregator_cpu /aligned_layer/config-files/config-proof-aggregator-docker.yaml && echo '{"last_aggregated_block":0}' > config-files/proof-aggregator.last_aggregated_block.json" + docker exec $(shell docker ps | grep proof_aggregator | awk '{print $$1}') \ + sh -c 'AGGREGATOR=sp1 \ + /aligned_layer/proof_aggregator_cpu /aligned_layer/config-files/config-proof-aggregator-docker.yaml \ + && echo "{\"last_aggregated_block\":0}" > config-files/proof-aggregator.last_aggregated_block.json' docker_proof_aggregator_run_risc0: - docker exec $(shell docker ps | grep proof_aggregator | awk '{print $$1}') "AGGREGATOR=risc0 /aligned_layer/proof_aggregator_cpu /aligned_layer/config-files/config-proof-aggregator-docker.yaml && echo '{"last_aggregated_block":0}' > config-files/proof-aggregator.last_aggregated_block.json" + docker exec $(shell docker ps | grep proof_aggregator | awk '{print $$1}') \ + sh -c 'AGGREGATOR=risc0 \ + /aligned_layer/proof_aggregator_cpu /aligned_layer/config-files/config-proof-aggregator-docker.yaml \ + && echo "{\"last_aggregated_block\":0}" > config-files/proof-aggregator.last_aggregated_block.json' docker_proof_aggregator_verify: @(docker logs $$(docker ps | grep proof_aggregator | awk '{print $$1}') | grep -q "Error while aggregating and submitting proofs" && exit 1) || exit 0 From 6735fda63b60df641c8d2e818836e8907f9f8933 Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Tue, 10 Jun 2025 14:38:21 -0300 Subject: [PATCH 09/41] fix: proof aggregator target names --- Makefile | 8 ++++---- docker-compose.yaml | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 8a80d34449..5c5f34c6e5 100644 --- a/Makefile +++ b/Makefile @@ -1178,19 +1178,19 @@ docker_verify_proof_submission_success: ' docker_proof_aggregator_run_sp1: - docker exec $(shell docker ps | grep proof_aggregator | awk '{print $$1}') \ + docker exec $(shell docker ps | grep proof-aggregator | awk '{print $$1}') \ sh -c 'AGGREGATOR=sp1 \ /aligned_layer/proof_aggregator_cpu /aligned_layer/config-files/config-proof-aggregator-docker.yaml \ && echo "{\"last_aggregated_block\":0}" > config-files/proof-aggregator.last_aggregated_block.json' docker_proof_aggregator_run_risc0: - docker exec $(shell docker ps | grep proof_aggregator | awk '{print $$1}') \ + docker exec $(shell docker ps | grep proof-aggregator | awk '{print $$1}') \ sh -c 'AGGREGATOR=risc0 \ /aligned_layer/proof_aggregator_cpu /aligned_layer/config-files/config-proof-aggregator-docker.yaml \ && echo "{\"last_aggregated_block\":0}" > config-files/proof-aggregator.last_aggregated_block.json' docker_proof_aggregator_verify: - @(docker logs $$(docker ps | grep proof_aggregator | awk '{print $$1}') | grep -q "Error while aggregating and submitting proofs" && exit 1) || exit 0 + @(docker logs $$(docker ps | grep proof-aggregator | awk '{print $$1}') | grep -q "Error while aggregating and submitting proofs" && exit 1) || exit 0 docker_attach_foundry: docker exec -ti $(shell docker ps | grep anvil | awk '{print $$1}') /bin/bash @@ -1208,7 +1208,7 @@ docker_attach_batcher: docker exec -ti $(shell docker ps | grep batcher | awk '{print $$1}') /bin/bash docker_attach_proof_aggregator: - docker exec -ti $(shell docker ps | grep batcher | awk '{print $$1}') /bin/bash + docker exec -ti $(shell docker ps | grep proof-aggregator | awk '{print $$1}') /bin/bash docker_logs_anvil: docker compose -f docker-compose.yaml logs anvil -f diff --git a/docker-compose.yaml b/docker-compose.yaml index 76cde51651..572299b941 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -118,8 +118,8 @@ services: profiles: - batcher - proof_aggregator: - image: ghcr.io/yetanotherco/aligned_layer/proof_aggregator:latest + proof-aggregator: + image: ghcr.io/yetanotherco/aligned_layer/proof-aggregator:latest build: context: . dockerfile: docker/proof-aggregator.Dockerfile From 07e41e4faa641c5a575c1d363fbeb86d53bb532f Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Tue, 10 Jun 2025 15:27:46 -0300 Subject: [PATCH 10/41] fix: docker keep container in bg --- docker/proof-aggregator.Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker/proof-aggregator.Dockerfile b/docker/proof-aggregator.Dockerfile index 30d28d14f4..6f8dba0bdc 100644 --- a/docker/proof-aggregator.Dockerfile +++ b/docker/proof-aggregator.Dockerfile @@ -25,3 +25,5 @@ COPY ./config-files/config-proof-aggregator-docker.yaml ./config-files/ COPY ./config-files/anvil.proof-aggregator.ecdsa.key.json ./config-files/ RUN apt update -y && apt install -y libssl-dev ca-certificates + +CMD ["sh"] From 9a54d8370d8ba6d07b9304d34d36354646cdbc8e Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Tue, 10 Jun 2025 15:45:12 -0300 Subject: [PATCH 11/41] fix: docker keep container in bg --- docker/proof-aggregator.Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docker/proof-aggregator.Dockerfile b/docker/proof-aggregator.Dockerfile index 6f8dba0bdc..b6ffbedc00 100644 --- a/docker/proof-aggregator.Dockerfile +++ b/docker/proof-aggregator.Dockerfile @@ -26,4 +26,6 @@ COPY ./config-files/anvil.proof-aggregator.ecdsa.key.json ./config-files/ RUN apt update -y && apt install -y libssl-dev ca-certificates -CMD ["sh"] +# Leave it in the background as this container is used to exec the proof_aggregator binary +CMD ["sleep","infinity"] + From bac2feffc7140404f33c42b4d26f33919955854c Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Tue, 10 Jun 2025 15:57:20 -0300 Subject: [PATCH 12/41] fix: config-files copy --- docker/proof-aggregator.Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/proof-aggregator.Dockerfile b/docker/proof-aggregator.Dockerfile index b6ffbedc00..feb1e6fe68 100644 --- a/docker/proof-aggregator.Dockerfile +++ b/docker/proof-aggregator.Dockerfile @@ -21,8 +21,8 @@ RUN IN_DOCKER=true cargo build --manifest-path ./aggregation_mode/Cargo.toml --f FROM debian:bookworm-slim AS final COPY --from=base /aligned_layer/aggregation_mode/target/release/proof_aggregator_cpu /aligned_layer/proof_aggregator_cpu -COPY ./config-files/config-proof-aggregator-docker.yaml ./config-files/ -COPY ./config-files/anvil.proof-aggregator.ecdsa.key.json ./config-files/ +COPY config-files/config-proof-aggregator-docker.yaml /aligned_layer/config-files/ +COPY config-files/anvil.proof-aggregator.ecdsa.key.json /aligned_layer/config-files/ RUN apt update -y && apt install -y libssl-dev ca-certificates From 527b5c364167823d863c998da893444b0dac2d5f Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Tue, 10 Jun 2025 16:11:11 -0300 Subject: [PATCH 13/41] fix: paths in proof aggregator config --- config-files/config-proof-aggregator-docker.yaml | 4 ++-- docker/proof-aggregator.Dockerfile | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/config-files/config-proof-aggregator-docker.yaml b/config-files/config-proof-aggregator-docker.yaml index cdfbd32f96..7dacb39aa7 100644 --- a/config-files/config-proof-aggregator-docker.yaml +++ b/config-files/config-proof-aggregator-docker.yaml @@ -3,7 +3,7 @@ proof_aggregation_service_address: "0xFD471836031dc5108809D173A067e8486B9047A3" eth_rpc_url: "http://anvil:8545" eth_ws_url: "ws://anvil:8545" max_proofs_in_queue: 1000 -last_aggregated_block_filepath: config-files/proof-aggregator.last_aggregated_block.json +last_aggregated_block_filepath: /aligned_layer/config-files/proof-aggregator.last_aggregated_block.json proofs_per_chunk: 512 # Amount of proofs to process per chunk # This number comes from the blob data limit # Since each blob has a capacity of (4096 * 32) = 131.072 bytes @@ -15,5 +15,5 @@ total_proofs_limit: 3968 ecdsa: - private_key_store_path: "config-files/anvil.proof-aggregator.ecdsa.key.json" + private_key_store_path: "/aligned_layer/config-files/anvil.proof-aggregator.ecdsa.key.json" private_key_store_password: "" diff --git a/docker/proof-aggregator.Dockerfile b/docker/proof-aggregator.Dockerfile index feb1e6fe68..69b6ddb85f 100644 --- a/docker/proof-aggregator.Dockerfile +++ b/docker/proof-aggregator.Dockerfile @@ -22,6 +22,7 @@ FROM debian:bookworm-slim AS final COPY --from=base /aligned_layer/aggregation_mode/target/release/proof_aggregator_cpu /aligned_layer/proof_aggregator_cpu COPY config-files/config-proof-aggregator-docker.yaml /aligned_layer/config-files/ +COPY config-files/proof-aggregator.last_aggregated_block.json /aligned_layer/config-files/ COPY config-files/anvil.proof-aggregator.ecdsa.key.json /aligned_layer/config-files/ RUN apt update -y && apt install -y libssl-dev ca-certificates From 0be9c3f966037cc93ce25ad88ae7b583adee08d7 Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Tue, 10 Jun 2025 16:38:43 -0300 Subject: [PATCH 14/41] fix: aggregation docker in docker --- docker-compose.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docker-compose.yaml b/docker-compose.yaml index 572299b941..aa39020514 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -123,6 +123,10 @@ services: build: context: . dockerfile: docker/proof-aggregator.Dockerfile + # Privileged so that it can run docker in docker (necessary for proving) + privileged: true + volumes: + - /var/run/docker.sock:/var/run/docker.sock profiles: - proof-aggregator From 319ad384a5ebb5f987fe151098012179fcbe3b1e Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Tue, 10 Jun 2025 17:00:01 -0300 Subject: [PATCH 15/41] fix: install docker cli on proof aggregator Docker --- docker/proof-aggregator.Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/proof-aggregator.Dockerfile b/docker/proof-aggregator.Dockerfile index 69b6ddb85f..2c44a85759 100644 --- a/docker/proof-aggregator.Dockerfile +++ b/docker/proof-aggregator.Dockerfile @@ -1,6 +1,6 @@ FROM ghcr.io/yetanotherco/aligned_layer/aligned_base:latest AS base -RUN apt update -y && apt install -y gcc +RUN apt update -y && apt install -y gcc docker-ce-cli # Install SP1 toolchain RUN curl -L https://sp1up.succinct.xyz | bash -s -- -y From e4addf41ea659efefdeac04e9edc69db12d5b4a2 Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Tue, 10 Jun 2025 17:15:49 -0300 Subject: [PATCH 16/41] fix: docker-cli installation --- docker/proof-aggregator.Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/proof-aggregator.Dockerfile b/docker/proof-aggregator.Dockerfile index 2c44a85759..10142b2ce4 100644 --- a/docker/proof-aggregator.Dockerfile +++ b/docker/proof-aggregator.Dockerfile @@ -1,6 +1,6 @@ FROM ghcr.io/yetanotherco/aligned_layer/aligned_base:latest AS base -RUN apt update -y && apt install -y gcc docker-ce-cli +RUN apt update -y && apt install -y gcc docker.io # Install SP1 toolchain RUN curl -L https://sp1up.succinct.xyz | bash -s -- -y From ed56e91981bdb0151afaa41f4ef43edf77a7d325 Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Tue, 10 Jun 2025 17:38:04 -0300 Subject: [PATCH 17/41] debug rust backtrace --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 5c5f34c6e5..e9b9938217 100644 --- a/Makefile +++ b/Makefile @@ -1179,7 +1179,7 @@ docker_verify_proof_submission_success: docker_proof_aggregator_run_sp1: docker exec $(shell docker ps | grep proof-aggregator | awk '{print $$1}') \ - sh -c 'AGGREGATOR=sp1 \ + sh -c 'RUST_BACKTRACE=1 AGGREGATOR=sp1 \ /aligned_layer/proof_aggregator_cpu /aligned_layer/config-files/config-proof-aggregator-docker.yaml \ && echo "{\"last_aggregated_block\":0}" > config-files/proof-aggregator.last_aggregated_block.json' From d6c79bb5d1fa483290223b4c632405977d9de369 Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Tue, 10 Jun 2025 18:16:02 -0300 Subject: [PATCH 18/41] docker group --- docker/proof-aggregator.Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docker/proof-aggregator.Dockerfile b/docker/proof-aggregator.Dockerfile index 10142b2ce4..e5fb635521 100644 --- a/docker/proof-aggregator.Dockerfile +++ b/docker/proof-aggregator.Dockerfile @@ -1,6 +1,8 @@ FROM ghcr.io/yetanotherco/aligned_layer/aligned_base:latest AS base -RUN apt update -y && apt install -y gcc docker.io +RUN apt update -y && apt install -y gcc docker.io && \ + groupadd docker || true && \ + usermod -aG docker r # Install SP1 toolchain RUN curl -L https://sp1up.succinct.xyz | bash -s -- -y From 381ed06768c1a90086381a81a58ef624d92da1bf Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Tue, 10 Jun 2025 18:28:27 -0300 Subject: [PATCH 19/41] docker group --- docker/proof-aggregator.Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/proof-aggregator.Dockerfile b/docker/proof-aggregator.Dockerfile index e5fb635521..fbd277f085 100644 --- a/docker/proof-aggregator.Dockerfile +++ b/docker/proof-aggregator.Dockerfile @@ -2,7 +2,7 @@ FROM ghcr.io/yetanotherco/aligned_layer/aligned_base:latest AS base RUN apt update -y && apt install -y gcc docker.io && \ groupadd docker || true && \ - usermod -aG docker r + usermod -aG docker root # Install SP1 toolchain RUN curl -L https://sp1up.succinct.xyz | bash -s -- -y From 3c71559afe510e30eeb7a951289429c0c808e71d Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Tue, 10 Jun 2025 18:52:07 -0300 Subject: [PATCH 20/41] docker info --- Makefile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Makefile b/Makefile index e9b9938217..6c6976b574 100644 --- a/Makefile +++ b/Makefile @@ -1179,9 +1179,7 @@ docker_verify_proof_submission_success: docker_proof_aggregator_run_sp1: docker exec $(shell docker ps | grep proof-aggregator | awk '{print $$1}') \ - sh -c 'RUST_BACKTRACE=1 AGGREGATOR=sp1 \ - /aligned_layer/proof_aggregator_cpu /aligned_layer/config-files/config-proof-aggregator-docker.yaml \ - && echo "{\"last_aggregated_block\":0}" > config-files/proof-aggregator.last_aggregated_block.json' + sh -c 'docker info' docker_proof_aggregator_run_risc0: docker exec $(shell docker ps | grep proof-aggregator | awk '{print $$1}') \ From c20cc576b3016ccd42c5ceb1efcaf66746018ccd Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Wed, 11 Jun 2025 10:38:21 -0300 Subject: [PATCH 21/41] fix: use docker in docker instead of installing it --- docker/proof-aggregator.Dockerfile | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/docker/proof-aggregator.Dockerfile b/docker/proof-aggregator.Dockerfile index fbd277f085..1d1f31d71c 100644 --- a/docker/proof-aggregator.Dockerfile +++ b/docker/proof-aggregator.Dockerfile @@ -1,9 +1,5 @@ FROM ghcr.io/yetanotherco/aligned_layer/aligned_base:latest AS base -RUN apt update -y && apt install -y gcc docker.io && \ - groupadd docker || true && \ - usermod -aG docker root - # Install SP1 toolchain RUN curl -L https://sp1up.succinct.xyz | bash -s -- -y ENV PATH="/root/.sp1/bin:${PATH}" @@ -20,7 +16,7 @@ WORKDIR /aligned_layer RUN IN_DOCKER=true cargo build --manifest-path ./aggregation_mode/Cargo.toml --features prove --release --bin proof_aggregator_cpu -FROM debian:bookworm-slim AS final +FROM docker:24.0.7-dind AS final COPY --from=base /aligned_layer/aggregation_mode/target/release/proof_aggregator_cpu /aligned_layer/proof_aggregator_cpu COPY config-files/config-proof-aggregator-docker.yaml /aligned_layer/config-files/ From 5a1604b8ebad6153e6c0c426f0fcec2d27bbd7be Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Wed, 11 Jun 2025 10:56:25 -0300 Subject: [PATCH 22/41] fix: docker apt --- docker/proof-aggregator.Dockerfile | 2 -- 1 file changed, 2 deletions(-) diff --git a/docker/proof-aggregator.Dockerfile b/docker/proof-aggregator.Dockerfile index 1d1f31d71c..24b8d60a5f 100644 --- a/docker/proof-aggregator.Dockerfile +++ b/docker/proof-aggregator.Dockerfile @@ -23,8 +23,6 @@ COPY config-files/config-proof-aggregator-docker.yaml /aligned_layer/config-file COPY config-files/proof-aggregator.last_aggregated_block.json /aligned_layer/config-files/ COPY config-files/anvil.proof-aggregator.ecdsa.key.json /aligned_layer/config-files/ -RUN apt update -y && apt install -y libssl-dev ca-certificates - # Leave it in the background as this container is used to exec the proof_aggregator binary CMD ["sleep","infinity"] From cf6adf517f113214bb8e017ca0f6df4917f6b76a Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Wed, 11 Jun 2025 11:24:15 -0300 Subject: [PATCH 23/41] chore: re-add proof aggregation --- Makefile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 6c6976b574..e9b9938217 100644 --- a/Makefile +++ b/Makefile @@ -1179,7 +1179,9 @@ docker_verify_proof_submission_success: docker_proof_aggregator_run_sp1: docker exec $(shell docker ps | grep proof-aggregator | awk '{print $$1}') \ - sh -c 'docker info' + sh -c 'RUST_BACKTRACE=1 AGGREGATOR=sp1 \ + /aligned_layer/proof_aggregator_cpu /aligned_layer/config-files/config-proof-aggregator-docker.yaml \ + && echo "{\"last_aggregated_block\":0}" > config-files/proof-aggregator.last_aggregated_block.json' docker_proof_aggregator_run_risc0: docker exec $(shell docker ps | grep proof-aggregator | awk '{print $$1}') \ From 9955222e2405dc24f3e6d38b83306c7664a82f94 Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Wed, 11 Jun 2025 17:55:10 -0300 Subject: [PATCH 24/41] debug --- docker/proof-aggregator.Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/proof-aggregator.Dockerfile b/docker/proof-aggregator.Dockerfile index 24b8d60a5f..3489acbdd6 100644 --- a/docker/proof-aggregator.Dockerfile +++ b/docker/proof-aggregator.Dockerfile @@ -16,7 +16,7 @@ WORKDIR /aligned_layer RUN IN_DOCKER=true cargo build --manifest-path ./aggregation_mode/Cargo.toml --features prove --release --bin proof_aggregator_cpu -FROM docker:24.0.7-dind AS final +FROM debian:bookworm-slim AS final COPY --from=base /aligned_layer/aggregation_mode/target/release/proof_aggregator_cpu /aligned_layer/proof_aggregator_cpu COPY config-files/config-proof-aggregator-docker.yaml /aligned_layer/config-files/ From 4aa0ec319f21baf34976877a956aead5c53fdc28 Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Wed, 11 Jun 2025 18:09:32 -0300 Subject: [PATCH 25/41] back to dind --- docker/proof-aggregator.Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/proof-aggregator.Dockerfile b/docker/proof-aggregator.Dockerfile index 3489acbdd6..24b8d60a5f 100644 --- a/docker/proof-aggregator.Dockerfile +++ b/docker/proof-aggregator.Dockerfile @@ -16,7 +16,7 @@ WORKDIR /aligned_layer RUN IN_DOCKER=true cargo build --manifest-path ./aggregation_mode/Cargo.toml --features prove --release --bin proof_aggregator_cpu -FROM debian:bookworm-slim AS final +FROM docker:24.0.7-dind AS final COPY --from=base /aligned_layer/aggregation_mode/target/release/proof_aggregator_cpu /aligned_layer/proof_aggregator_cpu COPY config-files/config-proof-aggregator-docker.yaml /aligned_layer/config-files/ From a0c9e2f02b188fb6f4b7d72eae3f2a4f7b41f5d9 Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Wed, 11 Jun 2025 18:10:32 -0300 Subject: [PATCH 26/41] use cli docker image instead --- docker/proof-aggregator.Dockerfile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docker/proof-aggregator.Dockerfile b/docker/proof-aggregator.Dockerfile index 24b8d60a5f..68386e5b6e 100644 --- a/docker/proof-aggregator.Dockerfile +++ b/docker/proof-aggregator.Dockerfile @@ -16,7 +16,10 @@ WORKDIR /aligned_layer RUN IN_DOCKER=true cargo build --manifest-path ./aggregation_mode/Cargo.toml --features prove --release --bin proof_aggregator_cpu -FROM docker:24.0.7-dind AS final +FROM docker:28.2.2-cli AS final + +RUN apt update -y && apt install -y libssl-dev ca-certificates + COPY --from=base /aligned_layer/aggregation_mode/target/release/proof_aggregator_cpu /aligned_layer/proof_aggregator_cpu COPY config-files/config-proof-aggregator-docker.yaml /aligned_layer/config-files/ From a816948609d43475ed7c94a591aca14d313e5ee2 Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Thu, 12 Jun 2025 13:02:41 -0300 Subject: [PATCH 27/41] apk for alpine --- Makefile | 2 +- docker/proof-aggregator.Dockerfile | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index a0b59e1d45..29011546f8 100644 --- a/Makefile +++ b/Makefile @@ -1184,7 +1184,7 @@ docker_verify_proof_submission_success: docker_proof_aggregator_run_sp1: docker exec $(shell docker ps | grep proof-aggregator | awk '{print $$1}') \ - sh -c 'RUST_BACKTRACE=1 AGGREGATOR=sp1 \ + sh -c 'AGGREGATOR=sp1 \ /aligned_layer/proof_aggregator_cpu /aligned_layer/config-files/config-proof-aggregator-docker.yaml \ && echo "{\"last_aggregated_block\":0}" > config-files/proof-aggregator.last_aggregated_block.json' diff --git a/docker/proof-aggregator.Dockerfile b/docker/proof-aggregator.Dockerfile index 68386e5b6e..7fb41167e0 100644 --- a/docker/proof-aggregator.Dockerfile +++ b/docker/proof-aggregator.Dockerfile @@ -18,8 +18,7 @@ RUN IN_DOCKER=true cargo build --manifest-path ./aggregation_mode/Cargo.toml --f FROM docker:28.2.2-cli AS final -RUN apt update -y && apt install -y libssl-dev ca-certificates - +RUN apk add --no-cache openssl-dev ca-certificates COPY --from=base /aligned_layer/aggregation_mode/target/release/proof_aggregator_cpu /aligned_layer/proof_aggregator_cpu COPY config-files/config-proof-aggregator-docker.yaml /aligned_layer/config-files/ From 6634dce9372705efbc2b7c21d440a8670894f5c3 Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Thu, 12 Jun 2025 13:57:23 -0300 Subject: [PATCH 28/41] instal docker on debian --- docker/proof-aggregator.Dockerfile | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/docker/proof-aggregator.Dockerfile b/docker/proof-aggregator.Dockerfile index 7fb41167e0..e87b30933e 100644 --- a/docker/proof-aggregator.Dockerfile +++ b/docker/proof-aggregator.Dockerfile @@ -16,9 +16,28 @@ WORKDIR /aligned_layer RUN IN_DOCKER=true cargo build --manifest-path ./aggregation_mode/Cargo.toml --features prove --release --bin proof_aggregator_cpu -FROM docker:28.2.2-cli AS final - -RUN apk add --no-cache openssl-dev ca-certificates +FROM debian:bookworm-slim AS final + +RUN apt update -y && apt install -y libssl-dev ca-certificates + +# Install docker for SP1 and Risc0 wrapping to snark +RUN apt-get update +RUN apt-get install ca-certificates curl +RUN install -m 0755 -d /etc/apt/keyrings +RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc +RUN chmod a+r /etc/apt/keyrings/docker.asc +RUN echo \ + "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ + $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \ +tee /etc/apt/sources.list.d/docker.list > /dev/null +RUN apt-get update + +# Note, we don't need to install docker-ce and containerd.io as we pass the docker engine socket via docker volume +RUN apt-get install docker-ce-cli docker-buildx-plugin docker-compose-plugin + +RUN groupadd docker +RUN usermod -aG docker $USER +RUN newgrp docker COPY --from=base /aligned_layer/aggregation_mode/target/release/proof_aggregator_cpu /aligned_layer/proof_aggregator_cpu COPY config-files/config-proof-aggregator-docker.yaml /aligned_layer/config-files/ From 979cb80f5f9413158665c239110689904496870e Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Thu, 12 Jun 2025 14:11:35 -0300 Subject: [PATCH 29/41] fix docker installation --- docker/proof-aggregator.Dockerfile | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/docker/proof-aggregator.Dockerfile b/docker/proof-aggregator.Dockerfile index e87b30933e..122a4acbbd 100644 --- a/docker/proof-aggregator.Dockerfile +++ b/docker/proof-aggregator.Dockerfile @@ -20,20 +20,25 @@ FROM debian:bookworm-slim AS final RUN apt update -y && apt install -y libssl-dev ca-certificates -# Install docker for SP1 and Risc0 wrapping to snark -RUN apt-get update -RUN apt-get install ca-certificates curl -RUN install -m 0755 -d /etc/apt/keyrings -RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc -RUN chmod a+r /etc/apt/keyrings/docker.asc -RUN echo \ - "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ - $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \ -tee /etc/apt/sources.list.d/docker.list > /dev/null -RUN apt-get update + +# Install required tools and set up Docker repository +# Installing docker is necessary for SP1 and Risc0 wrapping to snark +RUN apt-get update && apt-get install -y \ + ca-certificates \ + curl \ + gnupg \ + lsb-release && \ + install -m 0755 -d /etc/apt/keyrings && \ + curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc && \ + chmod a+r /etc/apt/keyrings/docker.asc && \ + echo \ + "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ + $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ + tee /etc/apt/sources.list.d/docker.list > /dev/null && \ + apt-get update # Note, we don't need to install docker-ce and containerd.io as we pass the docker engine socket via docker volume -RUN apt-get install docker-ce-cli docker-buildx-plugin docker-compose-plugin +RUN apt-get install docker-ce-cli docker-buildx-plugin docker-compose-plugin -y RUN groupadd docker RUN usermod -aG docker $USER From 11f493a468465936a77db7ee6ff37903b9a31e6f Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Thu, 12 Jun 2025 14:32:43 -0300 Subject: [PATCH 30/41] don't create docker user --- docker/proof-aggregator.Dockerfile | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docker/proof-aggregator.Dockerfile b/docker/proof-aggregator.Dockerfile index 122a4acbbd..5a0ac917ec 100644 --- a/docker/proof-aggregator.Dockerfile +++ b/docker/proof-aggregator.Dockerfile @@ -40,10 +40,6 @@ RUN apt-get update && apt-get install -y \ # Note, we don't need to install docker-ce and containerd.io as we pass the docker engine socket via docker volume RUN apt-get install docker-ce-cli docker-buildx-plugin docker-compose-plugin -y -RUN groupadd docker -RUN usermod -aG docker $USER -RUN newgrp docker - COPY --from=base /aligned_layer/aggregation_mode/target/release/proof_aggregator_cpu /aligned_layer/proof_aggregator_cpu COPY config-files/config-proof-aggregator-docker.yaml /aligned_layer/config-files/ COPY config-files/proof-aggregator.last_aggregated_block.json /aligned_layer/config-files/ From a501b438b3f972e0f58b754e668576e50f244589 Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Thu, 12 Jun 2025 15:13:20 -0300 Subject: [PATCH 31/41] don't share docker engine --- docker-compose.yaml | 6 +++--- docker/proof-aggregator.Dockerfile | 3 +-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index aa39020514..81aa8609ad 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -124,9 +124,9 @@ services: context: . dockerfile: docker/proof-aggregator.Dockerfile # Privileged so that it can run docker in docker (necessary for proving) - privileged: true - volumes: - - /var/run/docker.sock:/var/run/docker.sock + # privileged: true + # volumes: + # - /var/run/docker.sock:/var/run/docker.sock profiles: - proof-aggregator diff --git a/docker/proof-aggregator.Dockerfile b/docker/proof-aggregator.Dockerfile index 5a0ac917ec..babd5e9041 100644 --- a/docker/proof-aggregator.Dockerfile +++ b/docker/proof-aggregator.Dockerfile @@ -37,8 +37,7 @@ RUN apt-get update && apt-get install -y \ tee /etc/apt/sources.list.d/docker.list > /dev/null && \ apt-get update -# Note, we don't need to install docker-ce and containerd.io as we pass the docker engine socket via docker volume -RUN apt-get install docker-ce-cli docker-buildx-plugin docker-compose-plugin -y +RUN apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y COPY --from=base /aligned_layer/aggregation_mode/target/release/proof_aggregator_cpu /aligned_layer/proof_aggregator_cpu COPY config-files/config-proof-aggregator-docker.yaml /aligned_layer/config-files/ From aea3c6551f563e2b0be02cde468db8d2dc8c48a6 Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Thu, 12 Jun 2025 15:33:15 -0300 Subject: [PATCH 32/41] priviliged true --- docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 81aa8609ad..e13d50928a 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -124,7 +124,7 @@ services: context: . dockerfile: docker/proof-aggregator.Dockerfile # Privileged so that it can run docker in docker (necessary for proving) - # privileged: true + privileged: true # volumes: # - /var/run/docker.sock:/var/run/docker.sock profiles: From 800ff4aaa0dc7213da1fec1b45ac10afb733d578 Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Wed, 18 Jun 2025 11:22:34 -0300 Subject: [PATCH 33/41] run docker info in container build --- docker/proof-aggregator.Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docker/proof-aggregator.Dockerfile b/docker/proof-aggregator.Dockerfile index babd5e9041..fd76c02715 100644 --- a/docker/proof-aggregator.Dockerfile +++ b/docker/proof-aggregator.Dockerfile @@ -20,7 +20,6 @@ FROM debian:bookworm-slim AS final RUN apt update -y && apt install -y libssl-dev ca-certificates - # Install required tools and set up Docker repository # Installing docker is necessary for SP1 and Risc0 wrapping to snark RUN apt-get update && apt-get install -y \ @@ -44,6 +43,8 @@ COPY config-files/config-proof-aggregator-docker.yaml /aligned_layer/config-file COPY config-files/proof-aggregator.last_aggregated_block.json /aligned_layer/config-files/ COPY config-files/anvil.proof-aggregator.ecdsa.key.json /aligned_layer/config-files/ +RUN docker info + # Leave it in the background as this container is used to exec the proof_aggregator binary CMD ["sleep","infinity"] From 2f4d51ac795943c77db47b607746e9a22bd87a0b Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Wed, 18 Jun 2025 11:39:59 -0300 Subject: [PATCH 34/41] share circuits volumes between host and proof agg container --- docker-compose.yaml | 5 +++-- docker/proof-aggregator.Dockerfile | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index e13d50928a..94affc9a0a 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -125,8 +125,9 @@ services: dockerfile: docker/proof-aggregator.Dockerfile # Privileged so that it can run docker in docker (necessary for proving) privileged: true - # volumes: - # - /var/run/docker.sock:/var/run/docker.sock + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - ~/.sp1/circuits/:/root/.sp1/circuits/ profiles: - proof-aggregator diff --git a/docker/proof-aggregator.Dockerfile b/docker/proof-aggregator.Dockerfile index fd76c02715..a42e0bda4e 100644 --- a/docker/proof-aggregator.Dockerfile +++ b/docker/proof-aggregator.Dockerfile @@ -36,7 +36,8 @@ RUN apt-get update && apt-get install -y \ tee /etc/apt/sources.list.d/docker.list > /dev/null && \ apt-get update -RUN apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y +# Note, we don't need to install docker-ce and containerd.io as we pass the docker engine socket via docker volume +RUN apt-get install docker-ce-cli docker-buildx-plugin docker-compose-plugin -y COPY --from=base /aligned_layer/aggregation_mode/target/release/proof_aggregator_cpu /aligned_layer/proof_aggregator_cpu COPY config-files/config-proof-aggregator-docker.yaml /aligned_layer/config-files/ From 4ce6df430cb772be9d8b75e181e8a973e352213b Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Wed, 18 Jun 2025 11:44:58 -0300 Subject: [PATCH 35/41] remove docker info in container --- docker/proof-aggregator.Dockerfile | 2 -- 1 file changed, 2 deletions(-) diff --git a/docker/proof-aggregator.Dockerfile b/docker/proof-aggregator.Dockerfile index a42e0bda4e..b159232acd 100644 --- a/docker/proof-aggregator.Dockerfile +++ b/docker/proof-aggregator.Dockerfile @@ -44,8 +44,6 @@ COPY config-files/config-proof-aggregator-docker.yaml /aligned_layer/config-file COPY config-files/proof-aggregator.last_aggregated_block.json /aligned_layer/config-files/ COPY config-files/anvil.proof-aggregator.ecdsa.key.json /aligned_layer/config-files/ -RUN docker info - # Leave it in the background as this container is used to exec the proof_aggregator binary CMD ["sleep","infinity"] From f92080963f0b2d08410b93297d03fe27b94310cf Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Wed, 18 Jun 2025 12:16:34 -0300 Subject: [PATCH 36/41] install docker for reproduceable builds --- docker/proof-aggregator.Dockerfile | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/docker/proof-aggregator.Dockerfile b/docker/proof-aggregator.Dockerfile index b159232acd..44df92d1f8 100644 --- a/docker/proof-aggregator.Dockerfile +++ b/docker/proof-aggregator.Dockerfile @@ -14,7 +14,28 @@ COPY crates /aligned_layer/crates/ COPY aggregation_mode /aligned_layer/aggregation_mode/ WORKDIR /aligned_layer -RUN IN_DOCKER=true cargo build --manifest-path ./aggregation_mode/Cargo.toml --features prove --release --bin proof_aggregator_cpu +RUN apt update -y && apt install -y libssl-dev ca-certificates + +# Install required tools and set up Docker repository +# Installing docker is necessary for SP1 and Risc0 wrapping to snark +RUN apt-get update && apt-get install -y \ + ca-certificates \ + curl \ + gnupg \ + lsb-release && \ + install -m 0755 -d /etc/apt/keyrings && \ + curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc && \ + chmod a+r /etc/apt/keyrings/docker.asc && \ + echo \ + "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ + $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ + tee /etc/apt/sources.list.d/docker.list > /dev/null && \ + apt-get update + +# Note, we don't need to install docker-ce and containerd.io as we pass the docker engine socket via docker volume +RUN apt-get install docker-ce-cli docker-buildx-plugin docker-compose-plugin -y + +RUN cargo build --manifest-path ./aggregation_mode/Cargo.toml --features prove --release --bin proof_aggregator_cpu FROM debian:bookworm-slim AS final From d0629121356361c7dd5ca4759a73a5206038c1cb Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Wed, 18 Jun 2025 12:19:11 -0300 Subject: [PATCH 37/41] build program to update ids --- docker/proof-aggregator.Dockerfile | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/docker/proof-aggregator.Dockerfile b/docker/proof-aggregator.Dockerfile index 44df92d1f8..05b8f779a4 100644 --- a/docker/proof-aggregator.Dockerfile +++ b/docker/proof-aggregator.Dockerfile @@ -14,28 +14,8 @@ COPY crates /aligned_layer/crates/ COPY aggregation_mode /aligned_layer/aggregation_mode/ WORKDIR /aligned_layer -RUN apt update -y && apt install -y libssl-dev ca-certificates - -# Install required tools and set up Docker repository -# Installing docker is necessary for SP1 and Risc0 wrapping to snark -RUN apt-get update && apt-get install -y \ - ca-certificates \ - curl \ - gnupg \ - lsb-release && \ - install -m 0755 -d /etc/apt/keyrings && \ - curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc && \ - chmod a+r /etc/apt/keyrings/docker.asc && \ - echo \ - "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ - $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ - tee /etc/apt/sources.list.d/docker.list > /dev/null && \ - apt-get update - -# Note, we don't need to install docker-ce and containerd.io as we pass the docker engine socket via docker volume -RUN apt-get install docker-ce-cli docker-buildx-plugin docker-compose-plugin -y - -RUN cargo build --manifest-path ./aggregation_mode/Cargo.toml --features prove --release --bin proof_aggregator_cpu +RUN IN_DOCKER=true cargo build --manifest-path ./aggregation_mode/Cargo.toml --features prove --release --bin proof_aggregator_cpu +RUN ./sripts.build_program.sh FROM debian:bookworm-slim AS final From 8413f5379913c7816d771d1aa44fd6606ad4ea8c Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Wed, 18 Jun 2025 14:09:59 -0300 Subject: [PATCH 38/41] build program to update ids --- docker/proof-aggregator.Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/proof-aggregator.Dockerfile b/docker/proof-aggregator.Dockerfile index 05b8f779a4..5ee0dde2ce 100644 --- a/docker/proof-aggregator.Dockerfile +++ b/docker/proof-aggregator.Dockerfile @@ -15,7 +15,7 @@ COPY aggregation_mode /aligned_layer/aggregation_mode/ WORKDIR /aligned_layer RUN IN_DOCKER=true cargo build --manifest-path ./aggregation_mode/Cargo.toml --features prove --release --bin proof_aggregator_cpu -RUN ./sripts.build_program.sh +RUN ./scripts/build_program.sh FROM debian:bookworm-slim AS final From a38f5eeddabec693de13acd3440211a2332d4366 Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Wed, 18 Jun 2025 14:38:17 -0300 Subject: [PATCH 39/41] fix build_program script --- docker/proof-aggregator.Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/proof-aggregator.Dockerfile b/docker/proof-aggregator.Dockerfile index 5ee0dde2ce..356ef841f8 100644 --- a/docker/proof-aggregator.Dockerfile +++ b/docker/proof-aggregator.Dockerfile @@ -15,7 +15,7 @@ COPY aggregation_mode /aligned_layer/aggregation_mode/ WORKDIR /aligned_layer RUN IN_DOCKER=true cargo build --manifest-path ./aggregation_mode/Cargo.toml --features prove --release --bin proof_aggregator_cpu -RUN ./scripts/build_program.sh +RUN cd aggregation_mode && ./scripts/build_program.sh FROM debian:bookworm-slim AS final From c7795bd548a33329ccf40fb794e6b8c4e4e24c6d Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Wed, 18 Jun 2025 15:02:39 -0300 Subject: [PATCH 40/41] fix build_program script --- docker/proof-aggregator.Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/proof-aggregator.Dockerfile b/docker/proof-aggregator.Dockerfile index 356ef841f8..129e5a4136 100644 --- a/docker/proof-aggregator.Dockerfile +++ b/docker/proof-aggregator.Dockerfile @@ -15,7 +15,7 @@ COPY aggregation_mode /aligned_layer/aggregation_mode/ WORKDIR /aligned_layer RUN IN_DOCKER=true cargo build --manifest-path ./aggregation_mode/Cargo.toml --features prove --release --bin proof_aggregator_cpu -RUN cd aggregation_mode && ./scripts/build_program.sh +RUN cd aggregation_mode && ./scripts/build_programs.sh FROM debian:bookworm-slim AS final From f96628d02dfebffa90246b9add4f9506abe36adc Mon Sep 17 00:00:00 2001 From: Marcos Nicolau Date: Wed, 18 Jun 2025 15:08:47 -0300 Subject: [PATCH 41/41] add in docker flag --- docker/proof-aggregator.Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/proof-aggregator.Dockerfile b/docker/proof-aggregator.Dockerfile index 129e5a4136..3d9d2433c2 100644 --- a/docker/proof-aggregator.Dockerfile +++ b/docker/proof-aggregator.Dockerfile @@ -15,7 +15,7 @@ COPY aggregation_mode /aligned_layer/aggregation_mode/ WORKDIR /aligned_layer RUN IN_DOCKER=true cargo build --manifest-path ./aggregation_mode/Cargo.toml --features prove --release --bin proof_aggregator_cpu -RUN cd aggregation_mode && ./scripts/build_programs.sh +RUN cd aggregation_mode && IN_DOCKER=true ./scripts/build_programs.sh FROM debian:bookworm-slim AS final