Currently the DataHash field in the header commits to nothing. In following with the vanilla Tendermint/Cosmos SDK, it will commit to the Merkle root of transactions.
https://github.com/celestiaorg/optimint/blob/0473227037419b45c27e2efbef12daf9a11a9eda/types/block.go#L22
However, if it commits to transactions then a rollup light client won't actually be able to determine whether the data behind the root is available, since it does DAS on shares. In order to resolve this, the DataHash must be the Merkle root of the rollup block's transactions in share form, specifically aligned to share size including the block header itself in the rollup block.
Currently the
DataHashfield in the header commits to nothing. In following with the vanilla Tendermint/Cosmos SDK, it will commit to the Merkle root of transactions.https://github.com/celestiaorg/optimint/blob/0473227037419b45c27e2efbef12daf9a11a9eda/types/block.go#L22
However, if it commits to transactions then a rollup light client won't actually be able to determine whether the data behind the root is available, since it does DAS on shares. In order to resolve this, the
DataHashmust be the Merkle root of the rollup block's transactions in share form, specifically aligned to share size including the block header itself in the rollup block.