stateroot

package
v0.103.1 Latest Latest
Warning

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

Go to latest
Published: Nov 9, 2023 License: MIT Imports: 20 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrStateMismatch means that local state root doesn't match the one
	// signed by state validators.
	ErrStateMismatch = errors.New("stateroot mismatch")
)

Functions

This section is empty.

Types

type Module

type Module struct {
	Store *storage.MemCachedStore
	// contains filtered or unexported fields
}

Module represents module for local processing of state roots.

func NewModule

func NewModule(cfg config.Blockchain, verif VerifierFunc, log *zap.Logger, s *storage.MemCachedStore) *Module

NewModule returns new instance of stateroot module.

func (*Module) AddMPTBatch

func (s *Module) AddMPTBatch(index uint32, b mpt.Batch, cache *storage.MemCachedStore) (*mpt.Trie, *state.MPTRoot, error)

AddMPTBatch updates using provided batch.

func (*Module) AddStateRoot

func (s *Module) AddStateRoot(sr *state.MPTRoot) error

AddStateRoot adds validated state root provided by network.

func (*Module) CleanStorage added in v0.97.3

func (s *Module) CleanStorage() error

CleanStorage removes all MPT-related data from the storage (MPT nodes, validated stateroots) except local stateroot for the current height and GC flag. This method is aimed to clean outdated MPT data before state sync process can be started. Note: this method is aimed to be called for genesis block only, an error is returned otherwise.

func (*Module) CurrentLocalHeight added in v0.95.4

func (s *Module) CurrentLocalHeight() uint32

CurrentLocalHeight returns height of the local state root.

func (*Module) CurrentLocalStateRoot

func (s *Module) CurrentLocalStateRoot() util.Uint256

CurrentLocalStateRoot returns hash of the local state root.

func (*Module) CurrentValidatedHeight

func (s *Module) CurrentValidatedHeight() uint32

CurrentValidatedHeight returns current state root validated height.

func (*Module) FindStates added in v0.97.3

func (s *Module) FindStates(root util.Uint256, prefix, start []byte, max int) ([]storage.KeyValue, error)

FindStates returns a set of key-value pairs with keys matching the prefix starting from the `prefix`+`start` path from MPT with the specified root. `max` is the maximum number of elements to be returned. If nil `start` is specified, then the item with the key equal to the prefix is included into the result; if empty `start` is specified, then the item with the key equal to the prefix is not included into the result. In case there are no results (prefix is unused, start is after the last available element) mpt.ErrNotFound is returned.

func (*Module) GC added in v0.98.2

func (s *Module) GC(index uint32, store storage.Store) time.Duration

GC performs garbage collection.

func (*Module) GetLatestStateHeight added in v0.99.0

func (s *Module) GetLatestStateHeight(root util.Uint256) (uint32, error)

GetLatestStateHeight returns the latest blockchain height by the given stateroot.

func (*Module) GetState added in v0.97.3

func (s *Module) GetState(root util.Uint256, key []byte) ([]byte, error)

GetState returns value at the specified key fom the MPT with the specified root.

func (*Module) GetStateProof

func (s *Module) GetStateProof(root util.Uint256, key []byte) ([][]byte, error)

GetStateProof returns proof of having key in the MPT with the specified root.

func (*Module) GetStateRoot

func (s *Module) GetStateRoot(height uint32) (*state.MPTRoot, error)

GetStateRoot returns state root for a given height.

func (*Module) GetStateValidators

func (s *Module) GetStateValidators(height uint32) keys.PublicKeys

GetStateValidators returns current state validators.

func (*Module) Init

func (s *Module) Init(height uint32) error

Init initializes state root module at the given height.

func (*Module) JumpToState added in v0.97.3

func (s *Module) JumpToState(sr *state.MPTRoot)

JumpToState performs jump to the state specified by given stateroot index.

func (*Module) ResetState added in v0.99.5

func (s *Module) ResetState(height uint32, cache *storage.MemCachedStore) error

ResetState resets MPT state to the given height.

func (*Module) SeekStates added in v0.102.0

func (s *Module) SeekStates(root util.Uint256, prefix []byte, cont func(k, v []byte) bool)

SeekStates traverses over contract storage with the state based on the specified root. `prefix` is expected to consist of contract ID and the desired storage items prefix. `cont` is called for every matching key-value pair; the resulting key does not include contract ID and the desired storage item prefix (they are stripped to match the Blockchain's SeekStorage behaviour. The result includes item with the key that equals to the `prefix` (if such item is found in the storage). Traversal process is stopped when `false` is returned from `cont`.

func (*Module) SetUpdateValidatorsCallback

func (s *Module) SetUpdateValidatorsCallback(f func(uint32, keys.PublicKeys))

SetUpdateValidatorsCallback sets callback for sending signed root.

func (*Module) UpdateCurrentLocal added in v0.94.1

func (s *Module) UpdateCurrentLocal(mpt *mpt.Trie, sr *state.MPTRoot)

UpdateCurrentLocal updates local caches using provided state root.

func (*Module) UpdateStateValidators

func (s *Module) UpdateStateValidators(height uint32, pubs keys.PublicKeys)

UpdateStateValidators updates list of state validator keys.

func (*Module) VerifyStateRoot

func (s *Module) VerifyStateRoot(r *state.MPTRoot) error

VerifyStateRoot checks if state root is valid.

type VerifierFunc added in v0.98.1

type VerifierFunc func(util.Uint160, hash.Hashable, *transaction.Witness, int64) (int64, error)

VerifierFunc is a function that allows to check witness of account for Hashable item with GAS limit.

Jump to

Keyboard shortcuts

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