state

package
v0.34.4 Latest Latest
Warning

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

Go to latest
Published: Jul 23, 2021 License: Apache-2.0 Imports: 22 Imported by: 5

Documentation

Index

Constants

View Source
const (
	DefaultValidatorsWindowSize = 10
)
View Source
const VersionOffset = int64(1)

Since we have an initial save of our state forest we start one version ahead of the block height, but from then on we should track height by this offset.

Variables

View Source
var Prefixes [][]byte

Functions

func HeightAtVersion

func HeightAtVersion(version int64) uint64

func LoadValidatorRing

func LoadValidatorRing(version int64, ringSize int,
	getImmutable func(version int64) (*storage.ImmutableForest, error)) (*validator.Ring, error)

Initialises the validator Ring from the validator storage in forest

func VersionAtHeight

func VersionAtHeight(height uint64) int64

Types

type ImmutableState added in v0.32.0

type ImmutableState struct {
	Forest storage.ForestReader
	validator.History
}

This is the immutable merklised read state at a given finalised height

func (*ImmutableState) GetAccount added in v0.32.0

func (s *ImmutableState) GetAccount(address crypto.Address) (*acm.Account, error)

Returns nil if account does not exist with given address.

func (*ImmutableState) GetName added in v0.32.0

func (s *ImmutableState) GetName(name string) (*names.Entry, error)

func (*ImmutableState) GetNodeByID added in v0.32.0

func (s *ImmutableState) GetNodeByID(id crypto.Address) (*registry.NodeIdentity, error)

func (*ImmutableState) GetProposal added in v0.32.0

func (s *ImmutableState) GetProposal(proposalHash []byte) (*payload.Ballot, error)

func (*ImmutableState) GetStorage added in v0.32.0

func (s *ImmutableState) GetStorage(address crypto.Address, key binary.Word256) ([]byte, error)

func (*ImmutableState) IterateAccounts added in v0.32.0

func (s *ImmutableState) IterateAccounts(consumer func(*acm.Account) error) error

func (*ImmutableState) IterateNames added in v0.32.0

func (s *ImmutableState) IterateNames(consumer func(*names.Entry) error) error

func (*ImmutableState) IterateNodes added in v0.32.0

func (s *ImmutableState) IterateNodes(consumer func(crypto.Address, *registry.NodeIdentity) error) error

func (*ImmutableState) IterateProposals added in v0.32.0

func (s *ImmutableState) IterateProposals(consumer func(proposalHash []byte, proposal *payload.Ballot) error) error

func (*ImmutableState) IterateStorage added in v0.32.0

func (s *ImmutableState) IterateStorage(address crypto.Address, consumer func(key binary.Word256, value []byte) error) error

func (*ImmutableState) IterateStreamEvents added in v0.32.0

func (s *ImmutableState) IterateStreamEvents(startHeight, endHeight *uint64, sortOrder storage.SortOrder,
	consumer func(*exec.StreamEvent) error) error

Iterate SteamEvents over the closed interval [startHeight, endHeight] - i.e. startHeight and endHeight inclusive

func (*ImmutableState) IterateValidators added in v0.32.0

func (s *ImmutableState) IterateValidators(fn func(id crypto.Addressable, power *big.Int) error) error

func (*ImmutableState) LastStoredHeight added in v0.32.0

func (s *ImmutableState) LastStoredHeight() (uint64, error)

Get the last block height we stored in state

func (*ImmutableState) Power added in v0.32.0

func (s *ImmutableState) Power(id crypto.Address) (*big.Int, error)

func (*ImmutableState) TxsAtHeight added in v0.32.0

func (s *ImmutableState) TxsAtHeight(height uint64) ([]*exec.TxExecution, error)

type KeyFormatStore

type KeyFormatStore struct {
	Account   *storage.MustKeyFormat
	Storage   *storage.MustKeyFormat
	Name      *storage.MustKeyFormat
	Proposal  *storage.MustKeyFormat
	Validator *storage.MustKeyFormat
	Event     *storage.MustKeyFormat
	Registry  *storage.MustKeyFormat
	TxHash    *storage.MustKeyFormat
	Abi       *storage.MustKeyFormat
}

type ReadState

type ReadState struct {
	ImmutableState
	Plain *storage.PrefixDB
}

func (*ReadState) GetMetadata added in v0.28.0

func (s *ReadState) GetMetadata(metahash acmstate.MetadataHash) (string, error)

func (*ReadState) TxByHash

func (s *ReadState) TxByHash(txHash []byte) (*exec.TxExecution, error)

type State

type State struct {
	sync.Mutex

	ReadState
	// contains filtered or unexported fields
}

Writers to state are responsible for calling State.Lock() before calling

func LoadState

func LoadState(db dbm.DB, version int64) (*State, error)

Tries to load the execution state from DB, returns nil with no error if no state found

func MakeGenesisState

func MakeGenesisState(db dbm.DB, genesisDoc *genesis.GenesisDoc) (*State, error)

Make genesis state from GenesisDoc and save to DB

func NewState

func NewState(db dbm.DB) *State

NewState creates a new State object

func (*State) AtHeight added in v0.32.0

func (s *State) AtHeight(height uint64) (*ImmutableState, error)

Return a concurrent-safe immutable read state at the given height

func (*State) AtLatestVersion added in v0.32.0

func (s *State) AtLatestVersion() (*ImmutableState, error)

func (*State) AtVersion added in v0.32.0

func (s *State) AtVersion(version int64) (*ImmutableState, error)

Return a concurrent-safe immutable read state at the given version

func (*State) Copy

func (s *State) Copy(db dbm.DB) (*State, error)

Creates a copy of the database to the supplied db

func (*State) Dump

func (s *State) Dump() string

func (*State) GetAccountStats

func (s *State) GetAccountStats() acmstate.AccountStats

func (*State) GetNodeIDsByAddress added in v0.29.0

func (s *State) GetNodeIDsByAddress(net string) ([]crypto.Address, error)

func (*State) GetNumPeers added in v0.29.0

func (s *State) GetNumPeers() int

func (*State) Hash

func (s *State) Hash() []byte

func (*State) InitialCommit

func (s *State) InitialCommit() error

func (*State) SetLogger

func (s *State) SetLogger(logger *logging.Logger)

func (*State) Update

func (s *State) Update(updater func(up Updatable) error) ([]byte, int64, error)

Perform updates to state whilst holding the write lock, allows a commit to hold the write lock across multiple operations while preventing interlaced reads and writes

func (*State) Version

func (s *State) Version() int64

Jump to

Keyboard shortcuts

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