WARNING: This project is currently experimental and not recommended for any production use cases yet
Blobstream Zero is an implementation of Blobstream using the RISC Zero zkVM to verify Celestia blocks.
The blocks are verified using a zk Tendermint light client with the light-client-guest program, which is composed with a proof that recursively verifies these light client proofs and builds a merkle tree of the verified blocks in batch-guest. This proof is then verified on Ethereum using the Blobstream solidity contracts.
The ABI for the Blobstream Zero solidity contract as well as the merkle tree format for the batch proof is currently matching previous implementations to maintain as much compatibility with previous solutions as well as the existing APIs to request Blobstream inclusion proofs.
Clone this repository, then pull submodules:
git submodule update --init --recursiveEnsure Rust, Foundry, and the RISC Zero toolchain are installed.
Build guest programs and update autogenerated files:
# Could also run `cargo build`
cargo checkOptionally run tests, which includes an end to end test:
cargo testRun the CLI to generate proofs or post those proofs on an Eth based network:
cargo run -p host -- --helpNote: This CLI as well as other APIs will change in the short term. If you need anything specific from this, open an issue!
For more docs on running the Blobstream service, see usage-guide.md.