factory

package
v2.1.0-rc20 Latest Latest
Warning

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

Go to latest
Published: Dec 3, 2024 License: Apache-2.0 Imports: 44 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// AccountKVNamespace is the bucket name for account
	AccountKVNamespace = "Account"
	// ArchiveNamespacePrefix is the prefix of the buckets storing history data
	ArchiveNamespacePrefix = "Archive"
	// CurrentHeightKey indicates the key of current factory height in underlying DB
	CurrentHeightKey = "currentHeight"
	// ArchiveTrieNamespace is the bucket for the latest state view
	ArchiveTrieNamespace = "AccountTrie"
	// ArchiveTrieRootKey indicates the key of accountTrie root hash in underlying DB
	ArchiveTrieRootKey = "archiveTrieRoot"
)

Variables

View Source
var (
	// ErrNotSupported is the error that the statedb is not for archive mode
	ErrNotSupported = errors.New("not supported")
	// ErrNoArchiveData is the error that the node have no archive data
	ErrNoArchiveData = errors.New("no archive data")

	//DefaultConfig is the default config for state factory
	DefaultConfig = Config{
		Chain:   blockchain.DefaultConfig,
		Genesis: genesis.Default,
	}
)

Functions

func NewMinter

NewMinter creates a wrapper instance

Types

type Config

type Config struct {
	Chain   blockchain.Config
	Genesis genesis.Genesis
}

Config contains the config for factory

func GenerateConfig

func GenerateConfig(chain blockchain.Config, g genesis.Genesis) Config

GenerateConfig generates the factory config

type Factory

type Factory interface {
	lifecycle.StartStopper
	protocol.StateReader
	Register(protocol.Protocol) error
	Validate(context.Context, *block.Block) error
	// NewBlockBuilder creates block builder
	NewBlockBuilder(context.Context, actpool.ActPool, func(action.Envelope) (*action.SealedEnvelope, error)) (*block.Builder, error)
	PutBlock(context.Context, *block.Block) error
	DeleteTipBlock(context.Context, *block.Block) error
	WorkingSet(context.Context) (protocol.StateManager, error)
	WorkingSetAtHeight(context.Context, uint64) (protocol.StateManager, error)
}

Factory defines an interface for managing states

func NewFactory

func NewFactory(cfg Config, dao db.KVStore, opts ...Option) (Factory, error)

NewFactory creates a new state factory

func NewStateDB

func NewStateDB(cfg Config, dao db.KVStore, opts ...StateDBOption) (Factory, error)

NewStateDB creates a new state db

type MintOption added in v2.0.8

type MintOption func(*minter)

func WithTimeoutOption added in v2.0.8

func WithTimeoutOption(timeout time.Duration) MintOption

WithTimeoutOption sets the timeout for NewBlockBuilder

type Option

type Option func(*factory, *Config) error

Option sets Factory construction parameter

func DefaultTriePatchOption

func DefaultTriePatchOption() Option

DefaultTriePatchOption loads patchs

func RegistryOption

func RegistryOption(reg *protocol.Registry) Option

RegistryOption sets the registry in state db

func SkipBlockValidationOption

func SkipBlockValidationOption() Option

SkipBlockValidationOption skips block validation on PutBlock

type StateDBOption

type StateDBOption func(*stateDB, *Config) error

StateDBOption sets stateDB construction parameter

func DefaultPatchOption

func DefaultPatchOption() StateDBOption

DefaultPatchOption loads patchs

func DisableWorkingSetCacheOption

func DisableWorkingSetCacheOption() StateDBOption

DisableWorkingSetCacheOption disable workingset cache

func RegistryStateDBOption

func RegistryStateDBOption(reg *protocol.Registry) StateDBOption

RegistryStateDBOption sets the registry in state db

func SkipBlockValidationStateDBOption

func SkipBlockValidationStateDBOption() StateDBOption

SkipBlockValidationStateDBOption skips block validation on PutBlock

Jump to

Keyboard shortcuts

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