badger

package
v0.29.6 Latest Latest
Warning

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

Go to latest
Published: Jan 19, 2023 License: AGPL-3.0 Imports: 16 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsBootstrapped

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

IsBootstrapped returns whether or not 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(block *cluster.Block) error

TODO (Ramtin) pass context here

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 *badger.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 *badger.DB, tracer module.Tracer, headers storage.Headers, payloads storage.ClusterPayloads, clusterID flow.ChainID) (*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) (*StateRoot, error)

func (StateRoot) Block

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

func (StateRoot) ClusterID

func (s StateRoot) ClusterID() flow.ChainID

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