pebble

package
v0.33.37-pebble-storage Latest Latest
Warning

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

Go to latest
Published: Aug 7, 2024 License: AGPL-3.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsBootstrapped

func IsBootstrapped(db *pebble.DB, clusterID flow.ChainID) (bool, error)

IsBootstrapped returns whether the database contains a bootstrapped state.

Types

type MutableState

type MutableState struct {
	*State
	// contains filtered or unexported fields
}

func NewMutableState

func NewMutableState(state *State, tracer module.Tracer, headers storage.Headers, payloads storage.ClusterPayloads) (*MutableState, error)

func (*MutableState) Extend

func (m *MutableState) Extend(candidate *cluster.Block) error

Extend introduces the given block into the cluster state as a pending without modifying the current finalized state. The block's parent must have already been successfully inserted. TODO(ramtin) pass context here Expected errors during normal operations:

  • state.OutdatedExtensionError if the candidate block is outdated (e.g. orphaned)
  • state.UnverifiableExtensionError if the reference block is _not_ a known finalized block
  • state.InvalidExtensionError if the candidate block is invalid

type Params

type Params struct {
	// contains filtered or unexported fields
}

func (*Params) ChainID

func (p *Params) ChainID() (flow.ChainID, error)

type Snapshot

type Snapshot struct {
	// contains filtered or unexported fields
}

Snapshot represents a snapshot of chain state anchored at a particular reference block.

func (*Snapshot) Collection

func (s *Snapshot) Collection() (*flow.Collection, error)

func (*Snapshot) Head

func (s *Snapshot) Head() (*flow.Header, error)

func (*Snapshot) Pending

func (s *Snapshot) Pending() ([]flow.Identifier, error)

type State

type State struct {
	// contains filtered or unexported fields
}

func Bootstrap

func Bootstrap(db *pebble.DB, stateRoot *StateRoot) (*State, error)

Bootstrap initializes the persistent cluster state with a genesis block. The genesis block must have height 0, a parent hash of 32 zero bytes, and an empty collection as payload.

func OpenState

func OpenState(db *pebble.DB, _ module.Tracer, _ storage.Headers, _ storage.ClusterPayloads, clusterID flow.ChainID, epoch uint64) (*State, error)

func (*State) AtBlockID

func (s *State) AtBlockID(blockID flow.Identifier) cluster.Snapshot

func (*State) Final

func (s *State) Final() cluster.Snapshot

func (*State) Params

func (s *State) Params() cluster.Params

type StateRoot

type StateRoot struct {
	// contains filtered or unexported fields
}

StateRoot is the root information required to bootstrap the cluster state.

func NewStateRoot

func NewStateRoot(genesis *cluster.Block, qc *flow.QuorumCertificate, epoch uint64) (*StateRoot, error)

func (StateRoot) Block

func (s StateRoot) Block() *cluster.Block

func (StateRoot) ClusterID

func (s StateRoot) ClusterID() flow.ChainID

func (StateRoot) EpochCounter

func (s StateRoot) EpochCounter() uint64

func (StateRoot) QC

type Translator

type Translator struct {
	// contains filtered or unexported fields
}

Translator is a translation layer that determines the reference block on the main chain for a given cluster block, using the reference block from the cluster block's payload.

func NewTranslator

func NewTranslator(payloads storage.ClusterPayloads, state protocol.State) *Translator

NewTranslator returns a new block ID translator.

func (*Translator) Translate

func (t *Translator) Translate(blockID flow.Identifier) (flow.Identifier, error)

Translate retrieves the reference main-chain block ID for the given cluster block ID.

Jump to

Keyboard shortcuts

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