Documentation
¶
Index ¶
Constants ¶
View Source
const ( // AccountKVNameSpace is the bucket name for account trie AccountKVNameSpace = "Account" // CandidateKVNameSpace is the bucket name for candidate data storage CandidateKVNameSpace = "Candidate" // CurrentHeightKey indicates the key of current factory height in underlying DB CurrentHeightKey = "currentHeight" // AccountTrieRootKey indicates the key of accountTrie root hash in underlying DB AccountTrieRootKey = "accountTrieRoot" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Factory ¶
type Factory interface {
lifecycle.StartStopper
// Accounts
Balance(string) (*big.Int, error)
Nonce(string) (uint64, error) // Note that Nonce starts with 1.
AccountState(string) (*state.Account, error)
RootHash() hash.Hash256
RootHashByHeight(uint64) (hash.Hash256, error)
Height() (uint64, error)
NewWorkingSet() (WorkingSet, error)
Commit(WorkingSet) error
// Candidate pool
CandidatesByHeight(uint64) ([]*state.Candidate, error)
State(hash.Hash160, interface{}) error
AddActionHandlers(...protocol.ActionHandler)
}
Factory defines an interface for managing states
func NewFactory ¶
NewFactory creates a new state factory
func NewStateDB ¶
func NewStateDB(cfg config.Config, opts ...StateDBOption) (Factory, error)
NewStateDB creates a new state db
type Option ¶
Option sets Factory construction parameter
func DefaultTrieOption ¶
func DefaultTrieOption() Option
DefaultTrieOption creates trie from config for state factory
func InMemTrieOption ¶
func InMemTrieOption() Option
InMemTrieOption creates in memory trie for state factory
func PrecreatedTrieDBOption ¶
PrecreatedTrieDBOption uses pre-created trie DB for state factory
type StateDBOption ¶
StateDBOption sets stateDB construction parameter
func DefaultStateDBOption ¶
func DefaultStateDBOption() StateDBOption
DefaultStateDBOption creates trie from config for state db
func InMemStateDBOption ¶
func InMemStateDBOption() StateDBOption
InMemStateDBOption creates in memory trie for state db
type WorkingSet ¶
type WorkingSet interface {
// states and actions
//RunActions(context.Context, uint64, []action.SealedEnvelope) (map[hash.Hash32B]*action.Receipt, error)
RunAction(protocol.RunActionsCtx, action.SealedEnvelope) (*action.Receipt, error)
UpdateBlockLevelInfo(blockHeight uint64) hash.Hash256
RunActions(context.Context, uint64, []action.SealedEnvelope) ([]*action.Receipt, error)
Snapshot() int
Revert(int) error
Commit() error
RootHash() hash.Hash256
Digest() hash.Hash256
Version() uint64
Height() uint64
// General state
State(hash.Hash160, interface{}) error
PutState(hash.Hash160, interface{}) error
DelState(pkHash hash.Hash160) error
GetDB() db.KVStore
GetCachedBatch() db.CachedBatch
}
WorkingSet defines an interface for working set of states changes
func NewWorkingSet ¶
func NewWorkingSet( version uint64, kv db.KVStore, root hash.Hash256, actionHandlers []protocol.ActionHandler, ) (WorkingSet, error)
NewWorkingSet creates a new working set
Click to show internal directories.
Click to hide internal directories.