factory

package
v2.0.4-rc6 Latest Latest
Warning

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

Go to latest
Published: Oct 24, 2024 License: Apache-2.0 Imports: 41 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 NewHistoryStateReader

func NewHistoryStateReader(sf Factory, h uint64) protocol.StateReader

NewHistoryStateReader creates new history state reader by given state factory and height

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)
	SimulateExecution(context.Context, address.Address, *action.Execution, ...protocol.SimulateOption) ([]byte, *action.Receipt, error)
	ReadContractStorage(context.Context, address.Address, []byte) ([]byte, error)
	PutBlock(context.Context, *block.Block) error
	DeleteTipBlock(context.Context, *block.Block) error
	StateAtHeight(uint64, interface{}, ...protocol.StateOption) error
	StatesAtHeight(uint64, ...protocol.StateOption) (state.Iterator, 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 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