state

package
v0.25.0 Latest Latest
Warning

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

Go to latest
Published: Apr 9, 2019 License: Apache-2.0 Imports: 24 Imported by: 0

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

This section is empty.

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 DumpReader

type DumpReader interface {
	Next() (*dump.Dump, error)
}

func NewFileDumpReader

func NewFileDumpReader(filename string) (DumpReader, error)

type FileDumpReader

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

func (*FileDumpReader) Next

func (f *FileDumpReader) Next() (*dump.Dump, error)

type KeyFormatStore

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

type ReadState

type ReadState struct {
	Forest storage.ForestReader
	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) GetName

func (s *ReadState) GetName(name string) (*names.Entry, 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) (binary.Word256, 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) 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, value binary.Word256) error) error

func (*ReadState) IterateStreamEvents

func (s *ReadState) IterateStreamEvents(start, end *exec.StreamKey, consumer func(*exec.StreamEvent) error) error

func (*ReadState) IterateValidators

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

func (*ReadState) Power

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

func (*ReadState) StreamEvent

func (s *ReadState) StreamEvent(height, index uint64) (*exec.StreamEvent, 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

Create 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) Hash

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

func (*State) InitialCommit

func (s *State) InitialCommit() error

func (*State) LoadDump

func (s *State) LoadDump(reader DumpReader) 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

type Updatable

type Updatable interface {
	acmstate.Writer
	names.Writer
	proposal.Writer
	validator.Writer
	AddBlock(blockExecution *exec.BlockExecution) error
}

Jump to

Keyboard shortcuts

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