Documentation ¶
Index ¶
- Variables
- func WithTransition(status Status, transition TransitionFunc) func(*FSM)
- type Config
- type FSM
- type Feeder
- type Forest
- type Loader
- type Option
- type State
- type Status
- type TransitionFunc
- type Transitions
- func (t *Transitions) BootstrapState(s *State) error
- func (t *Transitions) CollectRegisters(s *State) error
- func (t *Transitions) ForwardHeight(s *State) error
- func (t *Transitions) IndexChain(s *State) error
- func (t *Transitions) InitializeMapper(s *State) error
- func (t *Transitions) MapRegisters(s *State) error
- func (t *Transitions) ResumeIndexing(s *State) error
- func (t *Transitions) UpdateTree(s *State) error
Constants ¶
This section is empty.
Variables ¶
var DefaultConfig = Config{ BootstrapState: false, SkipRegisters: false, WaitInterval: 100 * time.Millisecond, }
DefaultConfig is the default configuration for the Mapper.
Functions ¶
func WithTransition ¶
func WithTransition(status Status, transition TransitionFunc) func(*FSM)
WithTransition specifies which TransitionFunc should be used when the state machine has the given status.
Types ¶
type FSM ¶
type FSM struct {
// contains filtered or unexported fields
}
FSM is a finite state machine which is used to map block data from multiple sources into the DPS index.
type Feeder ¶
type Feeder interface {
Update() (*ledger.TrieUpdate, error)
}
Feeder represents something that can be consumed to get trie updates in chronological order.
type Forest ¶
type Forest interface { Save(tree *trie.MTrie, paths []ledger.Path, parent flow.StateCommitment) Has(commit flow.StateCommitment) bool Tree(commit flow.StateCommitment) (*trie.MTrie, bool) Paths(commit flow.StateCommitment) ([]ledger.Path, bool) Parent(commit flow.StateCommitment) (flow.StateCommitment, bool) Reset(finalized flow.StateCommitment) }
Forest represents a multitude of trees which are mapped by their state commitment hash.
type Option ¶ added in v1.4.0
type Option func(*Config)
Option is an option that can be given to the mapper to configure optional parameters on initialization.
func WithBootstrapState ¶ added in v1.4.0
WithBootstrapState makes the mapper bootstrap the state from a root checkpoint. If not set, it will resume indexing from a previous trie.
func WithSkipRegisters ¶ added in v1.4.0
WithSkipRegisters makes the mapper skip indexing of all ledger registers, which speeds up the run significantly and can be used for debugging purposes.
func WithWaitInterval ¶ added in v1.3.0
WithWaitInterval sets the wait interval that we will wait before retrying to retrieve a trie update when it wasn't available.
type State ¶
type State struct {
// contains filtered or unexported fields
}
State is the state machine's state.
func EmptyState ¶
EmptyState returns a new empty state that uses the given forest.
type Status ¶
type Status uint8
Status is a representation of the state machine's status.
type TransitionFunc ¶
TransitionFunc is a function that is applied onto the state machine's state.
type Transitions ¶
type Transitions struct {
// contains filtered or unexported fields
}
Transitions is what applies transitions to the state of an FSM.
func NewTransitions ¶
func NewTransitions(log zerolog.Logger, load Loader, chain dps.Chain, feed Feeder, read dps.Reader, write dps.Writer, options ...Option) *Transitions
NewTransitions returns a Transitions component using the given dependencies and using the given options
func (*Transitions) BootstrapState ¶
func (t *Transitions) BootstrapState(s *State) error
BootstrapState bootstraps the state by loading the checkpoint if there is one and initializing the elements subsequently used by the FSM.
func (*Transitions) CollectRegisters ¶
func (t *Transitions) CollectRegisters(s *State) error
CollectRegisters reads the payloads for the next block to be indexed from the state's forest, unless payload indexing is disabled.
func (*Transitions) ForwardHeight ¶
func (t *Transitions) ForwardHeight(s *State) error
ForwardHeight increments the height at which the mapping operates, and updates the last indexed height.
func (*Transitions) IndexChain ¶
func (t *Transitions) IndexChain(s *State) error
IndexChain indexes chain data for the current height.
func (*Transitions) InitializeMapper ¶ added in v1.4.0
func (t *Transitions) InitializeMapper(s *State) error
InitializeMapper initializes the mapper by either going into bootstrapping or into resuming, depending on the configuration.
func (*Transitions) MapRegisters ¶ added in v1.4.0
func (t *Transitions) MapRegisters(s *State) error
MapRegisters maps the collected registers to the current block.
func (*Transitions) ResumeIndexing ¶ added in v1.4.0
func (t *Transitions) ResumeIndexing(s *State) error
ResumeIndexing resumes indexing the data from a previous run.
func (*Transitions) UpdateTree ¶
func (t *Transitions) UpdateTree(s *State) error
UpdateTree updates the state's tree. If the state's forest already matches with the next block's state commitment, it immediately returns and sets the state's status to StatusMatched.