state

package
v0.31.3 Latest Latest
Warning

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

Go to latest
Published: Mar 25, 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 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 {
	Forest storage.ForestReader
	Plain  *storage.PrefixDB
	validator.History
}

func (*ReadState) GetAccount

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

Returns nil if account does not exist with given address.

func (*ReadState) GetMetadata added in v0.28.0

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

func (*ReadState) GetName

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

func (*ReadState) GetNodeByID added in v0.29.0

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

func (*ReadState) GetProposal

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

func (*ReadState) GetStorage

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

func (*ReadState) IterateAccounts

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

func (*ReadState) IterateNames

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

func (*ReadState) IterateNodes added in v0.29.0

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

func (*ReadState) IterateProposals

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

func (*ReadState) IterateStorage

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

func (*ReadState) IterateStreamEvents

func (s *ReadState) 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 (*ReadState) IterateValidators

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

func (*ReadState) LastStoredHeight added in v0.30.5

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

Get the last block height we stored in state

func (*ReadState) Power

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

func (*ReadState) TxByHash

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

func (*ReadState) TxsAtHeight

func (s *ReadState) TxsAtHeight(height uint64) ([]*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) 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) LoadHeight

func (s *State) LoadHeight(height uint64) (*ReadState, 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