Documentation ¶
Index ¶
- Constants
- func SaveBlockStoreStateBatch(bsj *BlockStoreState, batch dbm.Batch)
- type BlockMeta
- type BlockStore
- func (bs *BlockStore) Base() int64
- func (bs *BlockStore) Close() error
- func (bs *BlockStore) Height() int64
- func (bs *BlockStore) IsEmpty() bool
- func (bs *BlockStore) LastCelestiaHeightQueried() int64
- func (bs *BlockStore) LoadBlock(height int64, blockIndex int) *cmtproto.Block
- func (bs *BlockStore) LoadBlockMeta(height int64) *BlockMeta
- func (bs *BlockStore) LoadBlockPart(height int64, blockIndex int, partIndex int) []byte
- func (bs *BlockStore) PruneBlocks(height int64, startup bool) (uint64, error)
- func (bs *BlockStore) SaveBlock(celestiaHeight int64, height int64, block []byte)
- func (bs *BlockStore) SetInitialState(height int64)
- type BlockStoreState
- type PartSet
Constants ¶
const ( // BlockPartSizeBytes is the size of one block part. BlockPartSizeBytes = 65536 // 64kB )
Variables ¶
This section is empty.
Functions ¶
func SaveBlockStoreStateBatch ¶
func SaveBlockStoreStateBatch(bsj *BlockStoreState, batch dbm.Batch)
SaveBlockStoreStateBatch persists the blockStore state to the database. It uses the DB batch passed as parameter
Types ¶
type BlockStore ¶
type BlockStore struct {
// contains filtered or unexported fields
}
BlockStore is a simple low level store for non-contiguous blocks.
// NOTE: BlockStore methods will panic if they encounter errors // deserializing loaded data, indicating probable corruption on disk.
func NewBlockStore ¶
func NewBlockStore(db dbm.DB) *BlockStore
NewBlockStore returns a new BlockStore with the given DB, initialized to the last height that was committed to the DB.
func (*BlockStore) Base ¶
func (bs *BlockStore) Base() int64
Base returns the first known contiguous block height, or 0 for empty block stores.
func (*BlockStore) Close ¶
func (bs *BlockStore) Close() error
func (*BlockStore) Height ¶
func (bs *BlockStore) Height() int64
Height returns the last known contiguous block height, or 0 for empty block stores.
func (*BlockStore) IsEmpty ¶
func (bs *BlockStore) IsEmpty() bool
Empty of contiguous block (may contain non-contiguous blocks)
func (*BlockStore) LastCelestiaHeightQueried ¶
func (bs *BlockStore) LastCelestiaHeightQueried() int64
func (*BlockStore) LoadBlock ¶
func (bs *BlockStore) LoadBlock(height int64, blockIndex int) *cmtproto.Block
LoadBlock returns the block with the given height. If no block is found for that height, it returns nil.
func (*BlockStore) LoadBlockMeta ¶
func (bs *BlockStore) LoadBlockMeta(height int64) *BlockMeta
LoadBlockMeta returns the BlockMeta for the given height. If no block is found for the given height, it returns nil.
func (*BlockStore) LoadBlockPart ¶
func (bs *BlockStore) LoadBlockPart(height int64, blockIndex int, partIndex int) []byte
LoadBlockPart returns the Part at the given index from the block at the given height. If no part is found for the given height and index, it returns nil.
func (*BlockStore) PruneBlocks ¶
func (bs *BlockStore) PruneBlocks(height int64, startup bool) (uint64, error)
PruneBlocks removes block up to (but not including) a height. It returns number of blocks pruned. It can prune blocks above the store's height, but then the store is considered empty
func (*BlockStore) SaveBlock ¶
func (bs *BlockStore) SaveBlock(celestiaHeight int64, height int64, block []byte)
SaveBlock persists the given block, blockParts, and seenCommit to the underlying db. blockParts: Must be parts of the block seenCommit: The +2/3 precommits that were seen which committed at height.
If all the nodes restart after committing a block, we need this to reload the precommits to catch-up nodes to the most recent height. Otherwise they'd stall at H-1.
func (*BlockStore) SetInitialState ¶
func (bs *BlockStore) SetInitialState(height int64)
type BlockStoreState ¶
type BlockStoreState struct { Base int64 `json:"base"` Height int64 `json:"height"` LastCelestiaHeightQueried int64 `json:"last_celestia_height_queried"` }
TODO: make proto, low priority
func LoadBlockStoreState ¶
func LoadBlockStoreState(db dbm.DB) BlockStoreState
LoadBlockStoreState returns the BlockStoreState as loaded from disk. If no BlockStoreState was previously persisted, it returns the zero value.