da

package
v0.14.0-rc1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 31, 2023 License: Apache-2.0 Imports: 10 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ExtendShares

func ExtendShares(squareSize uint64, shares [][]byte) (*rsmt2d.ExtendedDataSquare, error)

func MinShares added in v0.13.0

func MinShares() ([][]byte, error)

MinShares returns one tail-padded share. An error returned when there is an issue with building the share for example if the shareVersion is wrong, or WriteSequenceLen fails, or the share size is incorrect

Types

type DataAvailabilityHeader

type DataAvailabilityHeader struct {
	// RowRoot_j = root((M_{j,1} || M_{j,2} || ... || M_{j,2k} ))
	RowsRoots [][]byte `json:"row_roots"`
	// ColumnRoot_j = root((M_{1,j} || M_{2,j} || ... || M_{2k,j} ))
	ColumnRoots [][]byte `json:"column_roots"`
	// contains filtered or unexported fields
}

DataAvailabilityHeader (DAHeader) contains the row and column roots of the erasure coded version of the data in Block.Data. The original Block.Data is split into shares and arranged in a square of width squareSize. Then, this square is "extended" into an extended data square (EDS) of width 2*squareSize by applying Reed-Solomon encoding. For details see Section 5.2 of https://arxiv.org/abs/1809.09044 or the Celestia specification: https://github.com/celestiaorg/celestia-specs/blob/master/src/specs/data_structures.md#availabledataheader

func DataAvailabilityHeaderFromProto

func DataAvailabilityHeaderFromProto(dahp *daproto.DataAvailabilityHeader) (dah *DataAvailabilityHeader, err error)

func MinDataAvailabilityHeader

func MinDataAvailabilityHeader() DataAvailabilityHeader

MinDataAvailabilityHeader returns the minimum valid data availability header. It is equal to the data availability header for a block with one tail padding share.

func NewDataAvailabilityHeader

func NewDataAvailabilityHeader(eds *rsmt2d.ExtendedDataSquare) DataAvailabilityHeader

NewDataAvailabilityHeader generates a DataAvailability header using the provided square size and shares

func (*DataAvailabilityHeader) Equals

Equals checks equality of two DAHeaders.

func (*DataAvailabilityHeader) Hash

func (dah *DataAvailabilityHeader) Hash() []byte

Hash computes the Merkle root of the row and column roots. Hash memoizes the result in `DataAvailabilityHeader.hash`.

func (*DataAvailabilityHeader) IsZero

func (dah *DataAvailabilityHeader) IsZero() bool

func (*DataAvailabilityHeader) String

func (dah *DataAvailabilityHeader) String() string

String returns hex representation of merkle hash of the DAHeader.

func (*DataAvailabilityHeader) ToProto

func (*DataAvailabilityHeader) ValidateBasic

func (dah *DataAvailabilityHeader) ValidateBasic() error

ValidateBasic runs stateless checks on the DataAvailabilityHeader.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL