rootmulti

package
v0.45.10 Latest Latest
Warning

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

Go to latest
Published: Sep 20, 2025 License: Apache-2.0 Imports: 28 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DefaultProofRuntime

func DefaultProofRuntime() (prt *merkle.ProofRuntime)

XXX: This should be managed by the rootMultiStore which may want to register more proof ops?

func GetLatestVersion

func GetLatestVersion(db dbm.DB) int64

func RequireProof

func RequireProof(subpath string) bool

RequireProof returns whether proof is required for the subpath.

Types

type Store

type Store struct {
	// contains filtered or unexported fields
}

Store is composed of many CommitStores. Name contrasts with cacheMultiStore which is used for branching other MultiStores. It implements the CommitMultiStore interface.

func NewStore

func NewStore(db dbm.DB, logger log.Logger) *Store

NewStore returns a reference to a new Store object with the provided DB. The store will be created with a PruneNothing pruning strategy by default. After a store is created, KVStores must be mounted and finally LoadLatestVersion or LoadVersion must be called.

func NewStoreWithArchival

func NewStoreWithArchival(db, archivalDb dbm.DB, archivalVersion int64, logger log.Logger) *Store

func (*Store) AddListeners

func (rs *Store) AddListeners(key types.StoreKey, listeners []types.WriteListener)

AddListeners adds listeners for a specific KVStore

func (*Store) CacheMultiStore

func (rs *Store) CacheMultiStore() types.CacheMultiStore

CacheMultiStore creates ephemeral branch of the multi-store and returns a CacheMultiStore. It implements the MultiStore interface.

func (*Store) CacheMultiStoreForExport

func (rs *Store) CacheMultiStoreForExport(version int64) (types.CacheMultiStore, error)

func (*Store) CacheMultiStoreWithVersion

func (rs *Store) CacheMultiStoreWithVersion(version int64) (types.CacheMultiStore, error)

CacheMultiStoreWithVersion is analogous to CacheMultiStore except that it attempts to load stores at a given version (height). An error is returned if any store cannot be loaded. This should only be used for querying and iterating at past heights.

func (*Store) CacheWrap

func (rs *Store) CacheWrap(storeKey types.StoreKey) types.CacheWrap

CacheWrap implements CacheWrapper/Store/CommitStore.

func (*Store) CacheWrapWithListeners

func (rs *Store) CacheWrapWithListeners(storeKey types.StoreKey, _ []types.WriteListener) types.CacheWrap

CacheWrapWithListeners implements the CacheWrapper interface.

func (*Store) CacheWrapWithTrace

func (rs *Store) CacheWrapWithTrace(storeKey types.StoreKey, _ io.Writer, _ types.TraceContext) types.CacheWrap

CacheWrapWithTrace implements the CacheWrapper interface.

func (*Store) Close

func (rs *Store) Close() error

func (*Store) Commit

func (rs *Store) Commit(bumpVersion bool) types.CommitID

Commit implements Committer/CommitStore.

func (*Store) GetCommitKVStore

func (rs *Store) GetCommitKVStore(key types.StoreKey) types.CommitKVStore

GetCommitKVStore returns a mounted CommitKVStore for a given StoreKey. If the store is wrapped in an inter-block cache, it will be unwrapped before returning.

func (*Store) GetCommitStore

func (rs *Store) GetCommitStore(key types.StoreKey) types.CommitStore

GetCommitStore returns a mounted CommitStore for a given StoreKey. If the store is wrapped in an inter-block cache, it will be unwrapped before returning.

func (*Store) GetEarliestVersion

func (rs *Store) GetEarliestVersion() int64

func (*Store) GetEvents

func (rs *Store) GetEvents() []abci.Event

GetStores returns mounted stores

func (*Store) GetKVStore

func (rs *Store) GetKVStore(key types.StoreKey) types.KVStore

GetKVStore returns a mounted KVStore for a given StoreKey. If tracing is enabled on the KVStore, a wrapped TraceKVStore will be returned with the root store's tracer, otherwise, the original KVStore will be returned.

NOTE: The returned KVStore may be wrapped in an inter-block cache if it is set on the root store.

func (*Store) GetPruning

func (rs *Store) GetPruning() types.PruningOptions

GetPruning fetches the pruning strategy from the root store.

func (*Store) GetStore

func (rs *Store) GetStore(key types.StoreKey) types.Store

GetStore returns a mounted Store for a given StoreKey. If the StoreKey does not exist, it will panic. If the Store is wrapped in an inter-block cache, it will be unwrapped prior to being returned.

TODO: This isn't used directly upstream. Consider returning the Store as-is instead of unwrapping.

func (*Store) GetStoreByName

func (rs *Store) GetStoreByName(name string) types.Store

GetStoreByName performs a lookup of a StoreKey given a store name typically provided in a path. The StoreKey is then used to perform a lookup and return a Store. If the Store is wrapped in an inter-block cache, it will be unwrapped prior to being returned. If the StoreKey does not exist, nil is returned.

func (*Store) GetStoreType

func (rs *Store) GetStoreType() types.StoreType

GetStoreType implements Store.

func (*Store) GetStores

func (rs *Store) GetStores() map[types.StoreKey]types.CommitKVStore

GetStores returns mounted stores

func (*Store) GetWorkingHash

func (rs *Store) GetWorkingHash() ([]byte, error)

func (*Store) LastCommitID

func (rs *Store) LastCommitID() types.CommitID

LastCommitID implements Committer/CommitStore.

func (*Store) LastCommitInfo

func (rs *Store) LastCommitInfo() *types.CommitInfo

func (*Store) ListeningEnabled

func (rs *Store) ListeningEnabled(key types.StoreKey) bool

ListeningEnabled returns if listening is enabled for a specific KVStore

func (*Store) LoadLatestVersion

func (rs *Store) LoadLatestVersion() error

LoadLatestVersion implements CommitMultiStore.

func (*Store) LoadLatestVersionAndUpgrade

func (rs *Store) LoadLatestVersionAndUpgrade(upgrades *types.StoreUpgrades) error

LoadLatestVersionAndUpgrade implements CommitMultiStore

func (*Store) LoadVersion

func (rs *Store) LoadVersion(ver int64) error

LoadVersion implements CommitMultiStore.

func (*Store) LoadVersionAndUpgrade

func (rs *Store) LoadVersionAndUpgrade(ver int64, upgrades *types.StoreUpgrades) error

LoadVersionAndUpgrade allows us to rename substores while loading an older version

func (*Store) MountStoreWithDB

func (rs *Store) MountStoreWithDB(key types.StoreKey, typ types.StoreType, db dbm.DB)

MountStoreWithDB implements CommitMultiStore.

func (*Store) PruneStores

func (rs *Store) PruneStores(clearStorePruningHeights bool, pruningHeights []int64)

PruneStores will batch delete a list of heights from each mounted sub-store. If clearStorePruningHeihgts is true, store's pruneHeights is appended to the pruningHeights and reset after finishing pruning.

func (*Store) Query

func (rs *Store) Query(req abci.RequestQuery) abci.ResponseQuery

Query calls substore.Query with the same `req` where `req.Path` is modified to remove the substore prefix. Ie. `req.Path` here is `/<substore>/<path>`, and trimmed to `/<path>` for the substore. Special case: if `req.Path` is `/proofs`, the commit hash is included as response value. In addition, proofs of every store are appended to the response for the requested height

func (*Store) ResetEvents

func (rs *Store) ResetEvents()

func (*Store) Restore

func (rs *Store) Restore(
	height uint64, format uint32, protoReader protoio.Reader,
) (snapshottypes.SnapshotItem, error)

Restore implements snapshottypes.Snapshotter. returns next snapshot item and error.

func (*Store) RollbackToVersion

func (rs *Store) RollbackToVersion(target int64) error

RollbackToVersion delete the versions after `target` and update the latest version.

func (*Store) SetIAVLCacheSize

func (rs *Store) SetIAVLCacheSize(cacheSize int)

func (*Store) SetIAVLDisableFastNode

func (rs *Store) SetIAVLDisableFastNode(disableFastNode bool)

func (*Store) SetInitialVersion

func (rs *Store) SetInitialVersion(version int64) error

SetInitialVersion sets the initial version of the IAVL tree. It is used when starting a new chain at an arbitrary height. NOTE: this never errors. Can we fix the function signature ?

func (*Store) SetInterBlockCache

func (rs *Store) SetInterBlockCache(c types.MultiStorePersistentCache)

SetInterBlockCache sets the Store's internal inter-block (persistent) cache. When this is defined, all CommitKVStores will be wrapped with their respective inter-block cache.

func (*Store) SetKVStores

func (rs *Store) SetKVStores(handler func(key types.StoreKey, s types.KVStore) types.CacheWrap) types.MultiStore

func (*Store) SetLastCommitInfo

func (rs *Store) SetLastCommitInfo(c *types.CommitInfo)

func (*Store) SetLazyLoading

func (rs *Store) SetLazyLoading(lazyLoading bool)

SetLazyLoading sets if the iavl store should be loaded lazily or not

func (*Store) SetOrphanConfig

func (rs *Store) SetOrphanConfig(opts *iavltree.Options)

func (*Store) SetPruning

func (rs *Store) SetPruning(pruningOpts types.PruningOptions)

SetPruning sets the pruning strategy on the root store and all the sub-stores. Note, calling SetPruning on the root store prior to LoadVersion or LoadLatestVersion performs a no-op as the stores aren't mounted yet.

func (*Store) SetTracer

func (rs *Store) SetTracer(w io.Writer) types.MultiStore

SetTracer sets the tracer for the MultiStore that the underlying stores will utilize to trace operations. A MultiStore is returned.

func (*Store) SetTracingContext

func (rs *Store) SetTracingContext(tc types.TraceContext) types.MultiStore

SetTracingContext updates the tracing context for the MultiStore by merging the given context with the existing context by key. Any existing keys will be overwritten. It is implied that the caller should update the context when necessary between tracing operations. It returns a modified MultiStore.

func (*Store) Snapshot

func (rs *Store) Snapshot(height uint64, protoWriter protoio.Writer) error

Snapshot implements snapshottypes.Snapshotter. The snapshot output for a given format must be identical across nodes such that chunks from different sources fit together. If the output for a given format changes (at the byte level), the snapshot format must be bumped - see TestMultistoreSnapshot_Checksum test.

func (*Store) StoreKeys

func (rs *Store) StoreKeys() []types.StoreKey

func (*Store) TracingEnabled

func (rs *Store) TracingEnabled() bool

TracingEnabled returns if tracing is enabled for the MultiStore.

Jump to

Keyboard shortcuts

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