Skip to content

feat(examples): add Base64 decoding async example#2860

Open
Amit5601 wants to merge 1 commit into
succinctlabs:mainfrom
Amit5601:feat-base64-example
Open

feat(examples): add Base64 decoding async example#2860
Amit5601 wants to merge 1 commit into
succinctlabs:mainfrom
Amit5601:feat-base64-example

Conversation

@Amit5601

Copy link
Copy Markdown

Motivation

The examples directory currently lacks a Base64 decoding implementation. Base64 is a highly common data encoding format in Web3 and cryptography, making it a valuable reference for developers learning how to serialize, deserialize, and process string data across the Host/Guest zkVM boundary.

Solution

Implemented an end-to-end Base64 decoding execution pipeline.

Implementation Details:

  • Guest (program): Implemented standard Base64 decoding logic inside the zkVM, ensuring it successfully cross-compiles to the new riscv64im-succinct-zkvm-elf target.
  • Host (script): Upgraded the host implementation to align with the latest async architecture, utilizing ProverClient::from_env().await, the updated ProvingKey verification traits, and the sp1_sdk::Elf::Static() wrapper.

Note on testing: The Rust logic and Host/Guest serialization compile flawlessly with 0 errors/warnings. My local hardware hits an OOM memory limit when attempting to generate the execution trace matrix locally via .execute() or .prove(), so I am relying on the CI/CD pipeline to generate the final execution/proof verification.

PR Checklist

  • Added Tests (The example script serves as an end-to-end integration test)
  • Added Documentation
  • Breaking changes

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