Blobstream X: the previous zk implementation of Blobstream

What is Blobstream X?
Blobstream X is the previous implementation of Blobstream. It uses plonky2x to create circuits that verify the Celestia consensus and generate the corresponding proofs.
NOTE
The Blobstream X repository is now archived. For current deployments and active development, see SP1 Blobstream.
Blobstream X is built and deployed with Succinct's protocol.
NOTE
Current Blobstream deployments use SP1 Blobstream, not BlobstreamX circuits. This documentation is maintained for historical reference.
You can find the repository for Blobstream X along with code for:
- The Blobstream X smart contract -
BlobstreamX.sol - The Blobstream X circuits
- The Blobstream X contract Golang bindings
NOTE
Custom ranges can be requested using the BlobstreamX contract to create proofs for specific Celestia block batches. These ranges can be constructed as [latestBlock, customTargetBlock), with latestBlock as the latest block height that was committed to by the BlobstreamX contract, and latestBlock > customTargetBlock, and customTargetBlock - latestBlock <= DATA_COMMITMENT_MAX.
Block ranges that are before the contract's latestBlock can't be proven a second time in different batches.
More information can be found in the requestHeaderRange(...) method.
How Blobstream X works
As shown in the diagram below, the entrypoint for updates to the Blobstream X contract is through the SuccinctGateway smart contract, which is a simple entrypoint contract that verifies proofs (against a deployed onchain verifier for the Blobstream X circuit) and then calls the BlobstreamX.sol contract to update it.

NOTE
If the Blobstream X contract is not deployed on a desired chain, it needs to be deployed before it can be used by your rollup.
Deploy Blobstream X
It is possible to deploy and maintain a Blobstream x instance and have the same security guarantees.
First, you will need to create a multisig that governs the Blobstream X contract and also the function identifiers.
Then, check the deployment documentation for how to deploy the contract.
Then, you will need to run a relayer, which will generate the proofs and relay them to your deployed Blobstream X contract. Check the local proving documentation for more information.
Community implementations
Learn more about the community implementation of Blobstream proofs by CryptoKass.