Skip to content

build: include umbra-prover binary in flow-server image#323

Merged
enzotar merged 3 commits into
mainfrom
fix/ship-umbra-prover-binary
Apr 24, 2026
Merged

build: include umbra-prover binary in flow-server image#323
enzotar merged 3 commits into
mainfrom
fix/ship-umbra-prover-binary

Conversation

@enzotar
Copy link
Copy Markdown
Contributor

@enzotar enzotar commented Apr 24, 2026

Summary

The @spo/umbra.* Bun nodes shell out to a native Rust binary (crates/umbra-prover) for Groth16 proof generation, but the deploy Dockerfile only builds and packages flow-server. resolveProverBin() in cmds-bun/src/umbra/umbra_common.ts falls back to PATH when workspace paths are missing, which in production fails with:

Executable not found in \$PATH: "umbra-prover"

Seen in flow_run ea68e2e5-282e-4234-b9cc-dd8aed171239 from @spo/umbra.umbra_register.0.1.

Changes

  • Build umbra-prover alongside flow-server in the Rust stage (cargo build --bin flow-server --bin umbra-prover)
  • Copy it into the runtime image at /usr/local/bin/umbra-prover
  • Add it to the ldd verification step so we catch missing shared libs the same way as the other binaries

Test plan

  • CI build produces a flow-server:<sha> image containing both binaries
  • Deploy to dev cluster
  • Trigger /flow/start/333ebbab-acf9-41e3-95f1-31498105917f (Umbra treasury register on mainnet) — expect status: "success" with 3 comma-separated tx signatures in output.signature

enzotar added 3 commits April 24, 2026 12:32
The @spo/umbra.* Bun nodes shell out to a native Rust binary
(crates/umbra-prover) for Groth16 proof generation. resolveProverBin()
in cmds-bun/src/umbra/umbra_common.ts falls back to PATH lookup when
target/debug|release/ copies aren't present, but the deploy container
had neither — so register/claim/sweep flows failed with
"Executable not found in $PATH: umbra-prover".

Build the binary alongside flow-server in the Rust stage, copy it into
the runtime image, and add it to the ldd-verification step so we catch
missing shared libs the same way we do for flow-server/deno/bun.

Seen in: flow_run ea68e2e5 from @spo/umbra.umbra_register.0.1.
@enzotar enzotar enabled auto-merge (squash) April 24, 2026 22:41
@enzotar enzotar merged commit 3dbd09e into main Apr 24, 2026
7 of 8 checks passed
@enzotar enzotar deleted the fix/ship-umbra-prover-binary branch April 24, 2026 22:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant