Skip to content

Commit

Permalink
docs: address code review changes
Browse files Browse the repository at this point in the history
  • Loading branch information
rach-id committed Feb 4, 2024
1 parent 6f4fbb2 commit d337899
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 13 deletions.
7 changes: 5 additions & 2 deletions developers/blobstream-x-deploy.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,12 @@ need to do the following.
GUARDIAN_11155111=0xDEd0000E32f8F40414d3ab3a830f735a3553E18e

RPC_11155111=https://ethereum-sepolia.publicnode.com
ETHERSCAN_API_KEY_11155111=S26KHEB7PVMD65DAU36P4TB16F6EQ4R5BU
ETHERSCAN_API_KEY_11155111=
```

TODO(@Succinct): Document the following:
- Where to get the timelock and guardian
- The env variables names contain the chainID, we should mention
that different chains will require different variables.
4. Deploy the `SuccinctGateway` contract.

Ex. Deploying `SuccinctGateway` on Sepolia
Expand Down
35 changes: 26 additions & 9 deletions developers/blobstream.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,11 @@ on Ethereum, for integration by developers into L2 contracts. This enables Ether
developers to build high-throughput L2s using Celestia's optimised DA layer,
the first with Data Availability Sampling (DAS).

A new and improved version of Blobstream, Blobstream X, is out and will
replace Blobstream. This latter proves Celestia block headers on the
target EVM chain using zk-proofs which allows inheriting all the security
guarantees of Celestia.
An implementation of Blobstream, by [Succinct](https://succinct.xyz/), called
[Blobstream X](https://github.com/succinctlabs/blobstreamx), is out
and will be used in our canonical deployments. This latter proves Celestia
block headers on the target EVM chain using zk-proofs which allows
inheriting all the security guarantees of Celestia.

## What is Blobstream X?

Expand All @@ -28,7 +29,7 @@ on Ethereum.

Optimistic or ZK rollups that settle on Ethereum but wish to use Celestia for
DA require a mechanism for _bridging_ Celestia’s data root to Ethereum as part
of the settlement process. This data root is used during validity proofs to
of the settlement process. This data root is used during inclusion proofs to
prove that particular rollup transactions were included and made available in
the Celestia network.

Expand Down Expand Up @@ -61,13 +62,29 @@ along with code for:

- The Blobstream X smart contract - [`BlobstreamX.sol`](https://github.com/succinctlabs/blobstreamx/blob/main/contracts/src/BlobstreamX.sol)
- [The Blobstream X circuits](https://alpha.succinct.xyz/celestia/blobstreamx)
- [The Blobstream X contract Golang bindings](https://github.com/succinctlabs/blobstreamx/blob/main/bindings/BlobstreamX.go)

Canonical deployments of Blobstream X will be maintained on the
following chains: Arbitrum One, Base and Ethereum Mainnet. Every 4
hours, Succinct will post an update to the Blobstream X contract
that will include a new data commitment range that covers a 4-hour
following chains: Arbitrum One, Base and Ethereum Mainnet. Every 1
hour, Succinct will post an update to the Blobstream X contract
that will include a new data commitment range that covers a 1-hour
block range from the `latestBlock` in the Blobstream X contract.

:::tip 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` is 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 [`requestHeaderRange(...)`](https://github.com/succinctlabs/blobstreamx/blob/364d3dc8c8dc9fd44b6f9f049cfb18479e56cec4/contracts/src/BlobstreamX.sol#L78-L101)
method.
:::

### How Blobstream X works

As shown in the diagram below, the entrypoint for updates to the Blobstream
Expand Down Expand Up @@ -119,7 +136,7 @@ TBD (Add: Sepolia, Arbitrum Sepolia, and eventually the others).

### Decentralization and security

BlobstreamX is built on Celestia, which uses a CometBFT-based proof-of-stake
Blobstream X is built on Celestia, which uses a CometBFT-based proof-of-stake
system. Blobstream X shares the same security assumptions
as Celestia. In contrast, data availability committees (DACs), are typically
centralized or semi-centralized, relying on a specific set of entities or
Expand Down
4 changes: 2 additions & 2 deletions developers/blobstreamx-proof-queries.md
Original file line number Diff line number Diff line change
Expand Up @@ -670,7 +670,7 @@ with `proofs` being `sharesProof.RowProof.Proofs`.
### `attestationProof`

This is the proof of the data root to the data root tuple root, which is committed
to in the BlobstreamX contract:
to in the Blobstream X contract:

```solidity
/// @notice Contains the necessary parameters needed to verify that a data root tuple
Expand All @@ -685,7 +685,7 @@ struct AttestationProof {
}
```

- `tupleRootNonce`: the nonce at which BlobstreamX committed to the batch containing
- `tupleRootNonce`: the nonce at which Blobstream X committed to the batch containing
the block containing the data.
- `tuple`: the `DataRootTuple` of the block:

Expand Down

0 comments on commit d337899

Please sign in to comment.