cosmos-sdk: github.com/cosmos/cosmos-sdk/store/rootmulti Index | Files

package rootmulti

import "github.com/cosmos/cosmos-sdk/store/rootmulti"

Index

Package Files

dbadapter.go proof.go store.go wire.go

Constants

const ProofOpMultiStore = "multistore"

the multi-store proof operation constant value

func DefaultProofRuntime Uses

func DefaultProofRuntime() (prt *merkle.ProofRuntime)

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

func MultiStoreProofOpDecoder Uses

func MultiStoreProofOpDecoder(pop merkle.ProofOp) (merkle.ProofOperator, error)

MultiStoreProofOpDecoder returns a multi-store merkle proof operator from a given proof operation.

func RequireProof Uses

func RequireProof(subpath string) bool

RequireProof returns whether proof is required for the subpath.

type MultiStoreProof Uses

type MultiStoreProof struct {
    StoreInfos []storeInfo
}

MultiStoreProof defines a collection of store proofs in a multi-store

func NewMultiStoreProof Uses

func NewMultiStoreProof(storeInfos []storeInfo) *MultiStoreProof

func (*MultiStoreProof) ComputeRootHash Uses

func (proof *MultiStoreProof) ComputeRootHash() []byte

ComputeRootHash returns the root hash for a given multi-store proof.

type MultiStoreProofOp Uses

type MultiStoreProofOp struct {

    // To encode in ProofOp.Data.
    Proof *MultiStoreProof `json:"proof"`
    // contains filtered or unexported fields
}

TODO: document

func NewMultiStoreProofOp Uses

func NewMultiStoreProofOp(key []byte, proof *MultiStoreProof) MultiStoreProofOp

func (MultiStoreProofOp) GetKey Uses

func (op MultiStoreProofOp) GetKey() []byte

GetKey returns the key for a multi-store proof operation.

func (MultiStoreProofOp) ProofOp Uses

func (op MultiStoreProofOp) ProofOp() merkle.ProofOp

ProofOp return a merkle proof operation from a given multi-store proof operation.

func (MultiStoreProofOp) Run Uses

func (op MultiStoreProofOp) Run(args [][]byte) ([][]byte, error)

Run executes a multi-store proof operation for a given value. It returns the root hash if the value matches all the store's commitID's hash or an error otherwise.

func (MultiStoreProofOp) String Uses

func (op MultiStoreProofOp) String() string

String implements the Stringer interface for a mult-store proof operation.

type Store Uses

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

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

func NewStore Uses

func NewStore(db dbm.DB) *Store

nolint

func (*Store) CacheMultiStore Uses

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

CacheMultiStore cache-wraps the multi-store and returns a CacheMultiStore. It implements the MultiStore interface.

func (*Store) CacheMultiStoreWithVersion Uses

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 Uses

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

Implements CacheWrapper/Store/CommitStore.

func (*Store) CacheWrapWithTrace Uses

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

CacheWrapWithTrace implements the CacheWrapper interface.

func (*Store) Commit Uses

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

Implements Committer/CommitStore.

func (*Store) GetCommitKVStore Uses

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 Uses

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) GetKVStore Uses

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) GetStore Uses

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) GetStoreType Uses

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

Implements Store.

func (*Store) LastCommitID Uses

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

Implements Committer/CommitStore.

func (*Store) LoadLatestVersion Uses

func (rs *Store) LoadLatestVersion() error

LoadLatestVersion implements CommitMultiStore.

func (*Store) LoadLatestVersionAndUpgrade Uses

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

LoadLatestVersionAndUpgrade implements CommitMultiStore

func (*Store) LoadVersion Uses

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

LoadVersion implements CommitMultiStore.

func (*Store) LoadVersionAndUpgrade Uses

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

LoadVersionAndUpgrade allows us to rename substores while loading an older version

func (*Store) MountStoreWithDB Uses

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

Implements CommitMultiStore.

func (*Store) Query Uses

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. TODO: add proof for `multistore -> substore`.

func (*Store) SetInterBlockCache Uses

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) SetLazyLoading Uses

func (rs *Store) SetLazyLoading(lazyLoading bool)

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

func (*Store) SetPruning Uses

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

Implements CommitMultiStore

func (*Store) SetTracer Uses

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 Uses

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) TracingEnabled Uses

func (rs *Store) TracingEnabled() bool

TracingEnabled returns if tracing is enabled for the MultiStore.

Package rootmulti imports 18 packages (graph) and is imported by 6 packages. Updated 2019-09-14. Refresh now. Tools for package owners.