Documentation ¶
Index ¶
- Constants
- func DefaultProofRuntime() (prt *merkle.ProofRuntime)
- func ElemKey(index uint64) []byte
- func First(st KVStore, start, end []byte) (kv cmn.KVPair, ok bool)
- func Last(st KVStore, start, end []byte) (kv cmn.KVPair, ok bool)
- func LengthKey() []byte
- func MultiStoreProofOpDecoder(pop merkle.ProofOp) (merkle.ProofOperator, error)
- func NewCacheKVStore(parent KVStore) *cacheKVStore
- func NewCommitMultiStore(db dbm.DB) *rootMultiStore
- func RequireProof(subpath string) bool
- func TopKey() []byte
- type CacheKVStore
- type CacheMultiStore
- type CacheWrap
- type CacheWrapper
- type CommitID
- type CommitInfo
- type CommitKVStore
- type CommitMultiStore
- type CommitStore
- type Committer
- type IavlStore
- func (st *IavlStore) CacheWrap() CacheWrap
- func (st *IavlStore) CacheWrapWithTrace(w io.Writer, tc TraceContext) CacheWrap
- func (st *IavlStore) Commit() CommitID
- func (st *IavlStore) Delete(key []byte)
- func (st *IavlStore) Get(key []byte) (value []byte)
- func (st *IavlStore) GetImmutableTree() *iavl.ImmutableTree
- func (st *IavlStore) GetStoreType() StoreType
- func (st *IavlStore) Has(key []byte) (exists bool)
- func (st *IavlStore) Iterator(start, end []byte) Iterator
- func (st *IavlStore) LastCommitID() CommitID
- func (st *IavlStore) Prefix(prefix []byte) KVStore
- func (st *IavlStore) Query(req abci.RequestQuery) (res abci.ResponseQuery)
- func (st *IavlStore) ReverseIterator(start, end []byte) Iterator
- func (st *IavlStore) Set(key, value []byte)
- func (st *IavlStore) SetPruning(pruning sdk.PruningStrategy)
- func (st *IavlStore) SetVersion(version int64)
- func (st *IavlStore) VersionExists(version int64) bool
- type Iterator
- type KVPair
- type KVStore
- type List
- type MultiStore
- type MultiStoreProof
- type MultiStoreProofOp
- type PrefixNodeDB
- type PruningStrategy
- type Queryable
- type Queue
- type StateSyncHelper
- func (helper *StateSyncHelper) DeleteSnapshot(height int64) error
- func (helper *StateSyncHelper) Init(lastBreatheBlockHeight int64)
- func (helper StateSyncHelper) ReloadSnapshotRoutine(height int64, retry int)
- func (helper *StateSyncHelper) StartRecovery(manifest *abci.Manifest) error
- func (helper *StateSyncHelper) WriteRecoveryChunk(hash abci.SHA256Sum, chunk *abci.AppStateChunk, isComplete bool) (err error)
- type Store
- type StoreCore
- type StoreInfo
- type StoreKey
- type StoreType
- type TraceContext
- type TraceKVStore
- func (tkv *TraceKVStore) CacheWrap() sdk.CacheWrap
- func (tkv *TraceKVStore) CacheWrapWithTrace(_ io.Writer, _ TraceContext) CacheWrap
- func (tkv *TraceKVStore) Delete(key []byte)
- func (tkv *TraceKVStore) Get(key []byte) []byte
- func (tkv *TraceKVStore) GetStoreType() sdk.StoreType
- func (tkv *TraceKVStore) Has(key []byte) bool
- func (tkv *TraceKVStore) Iterator(start, end []byte) sdk.Iterator
- func (tkv *TraceKVStore) Prefix(prefix []byte) KVStore
- func (tkv *TraceKVStore) ReverseIterator(start, end []byte) sdk.Iterator
- func (tkv *TraceKVStore) Set(key []byte, value []byte)
- type TreeStore
Constants ¶
const ProofOpMultiStore = "multistore"
the multi-store proof operation constant value
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 MultiStoreProofOpDecoder ¶
func MultiStoreProofOpDecoder(pop merkle.ProofOp) (merkle.ProofOperator, error)
MultiStoreProofOpDecoder returns a multi-store merkle proof operator from a given proof operation.
func RequireProof ¶
RequireProof return whether proof is require for the subpath
Types ¶
type CacheKVStore ¶
type CacheKVStore = types.CacheKVStore
Import cosmos-sdk/types/store.go for convenience. nolint
type CacheMultiStore ¶
type CacheMultiStore = types.CacheMultiStore
Import cosmos-sdk/types/store.go for convenience. nolint
type CacheWrapper ¶
type CacheWrapper = types.CacheWrapper
Import cosmos-sdk/types/store.go for convenience. nolint
type CommitInfo ¶
NOTE: Keep CommitInfo a simple immutable struct.
func (CommitInfo) CommitID ¶
func (ci CommitInfo) CommitID() CommitID
func (CommitInfo) Hash ¶
func (ci CommitInfo) Hash() []byte
Hash returns the simple merkle root hash of the stores sorted by name.
type CommitKVStore ¶
type CommitKVStore = types.CommitKVStore
Import cosmos-sdk/types/store.go for convenience. nolint
type CommitMultiStore ¶
type CommitMultiStore = types.CommitMultiStore
Import cosmos-sdk/types/store.go for convenience. nolint
type CommitStore ¶
type CommitStore = types.CommitStore
Import cosmos-sdk/types/store.go for convenience. nolint
func LoadIAVLStore ¶
func LoadIAVLStore(db dbm.DB, id CommitID, pruning sdk.PruningStrategy) (CommitStore, error)
load the iavl store
type IavlStore ¶
type IavlStore struct { // The underlying tree. Tree *iavl.MutableTree // contains filtered or unexported fields }
IavlStore Implements KVStore and CommitStore.
func (*IavlStore) CacheWrapWithTrace ¶
func (st *IavlStore) CacheWrapWithTrace(w io.Writer, tc TraceContext) CacheWrap
CacheWrapWithTrace implements the Store interface.
func (*IavlStore) GetImmutableTree ¶
func (st *IavlStore) GetImmutableTree() *iavl.ImmutableTree
func (*IavlStore) Query ¶
func (st *IavlStore) Query(req abci.RequestQuery) (res abci.ResponseQuery)
Query implements ABCI interface, allows queries
by default we will return from (latest height -1), as we will have merkle proofs immediately (header height = data height + 1) If latest-1 is not present, use latest (which must be present) if you care to have the latest data to see a tx results, you must explicitly set the height you want to see
func (*IavlStore) ReverseIterator ¶
Implements KVStore.
func (*IavlStore) SetPruning ¶
func (st *IavlStore) SetPruning(pruning sdk.PruningStrategy)
Implements Committer.
func (*IavlStore) SetVersion ¶
func (*IavlStore) VersionExists ¶
VersionExists returns whether or not a given version is stored.
type List ¶
type List struct {
// contains filtered or unexported fields
}
List defines an integer indexable mapper It panics when the element type cannot be (un/)marshalled by the codec
func (List) Delete ¶
Delete() deletes the element in the given position Other elements' indices are preserved after deletion Panics when the index is out of range
func (List) Len ¶
Len() returns the length of the list The length is only increased by Push() and not decreased List dosen't check if an index is in bounds The user should check Len() before doing any actions
type MultiStore ¶
type MultiStore = types.MultiStore
Import cosmos-sdk/types/store.go for convenience. nolint
type MultiStoreProof ¶
type MultiStoreProof struct {
StoreInfos []StoreInfo
}
MultiStoreProof defines a collection of store proofs in a multi-store
func NewMultiStoreProof ¶
func NewMultiStoreProof(storeInfos []StoreInfo) *MultiStoreProof
func (*MultiStoreProof) ComputeRootHash ¶
func (proof *MultiStoreProof) ComputeRootHash() []byte
ComputeRootHash returns the root hash for a given multi-store proof.
type MultiStoreProofOp ¶
type MultiStoreProofOp struct { // To encode in ProofOp.Data. Proof *MultiStoreProof `json:"proof"` // contains filtered or unexported fields }
TODO: document
func NewMultiStoreProofOp ¶
func NewMultiStoreProofOp(key []byte, proof *MultiStoreProof) MultiStoreProofOp
func (MultiStoreProofOp) GetKey ¶
func (op MultiStoreProofOp) GetKey() []byte
GetKey returns the key for a multi-store proof operation.
func (MultiStoreProofOp) ProofOp ¶
func (op MultiStoreProofOp) ProofOp() merkle.ProofOp
ProofOp return a merkle proof operation from a given multi-store proof operation.
func (MultiStoreProofOp) Run ¶
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 ¶
func (op MultiStoreProofOp) String() string
String implements the Stringer interface for a mult-store proof operation.
type PrefixNodeDB ¶
type PruningStrategy ¶
type PruningStrategy = types.PruningStrategy
Import cosmos-sdk/types/store.go for convenience. nolint
type Queue ¶
type Queue struct {
List List
}
Queue is a List wrapper that provides queue-like functions It panics when the element type cannot be (un/)marshalled by the codec
func (Queue) Flush ¶
Flush() removes elements it processed Return true in the continuation to break The interface{} is unmarshalled before the continuation is called Starts from the top(head) of the queue CONTRACT: Pop() or Push() should not be performed while flushing
func (Queue) Peek ¶
Popping/Peeking on an empty queue will cause panic The user should check IsEmpty() before doing any actions Peek() returns the element at the front of the queue without removing it
type StateSyncHelper ¶
type StateSyncHelper struct { SnapshotHeights chan int64 HeightsToDelete chan int64 // contains filtered or unexported fields }
func NewStateSyncHelper ¶
func NewStateSyncHelper( logger log.Logger, db dbm.DB, cms sdk.CommitMultiStore, cdc *codec.Codec) *StateSyncHelper
func (*StateSyncHelper) DeleteSnapshot ¶
func (helper *StateSyncHelper) DeleteSnapshot(height int64) error
func (*StateSyncHelper) Init ¶
func (helper *StateSyncHelper) Init(lastBreatheBlockHeight int64)
Split Init method and NewStateSyncHelper for snapshot command
func (StateSyncHelper) ReloadSnapshotRoutine ¶
func (helper StateSyncHelper) ReloadSnapshotRoutine(height int64, retry int)
the method might take quite a while, BETTER to be called concurrently so we only do it once a day after breathe block
func (*StateSyncHelper) StartRecovery ¶
func (helper *StateSyncHelper) StartRecovery(manifest *abci.Manifest) error
func (*StateSyncHelper) WriteRecoveryChunk ¶
func (helper *StateSyncHelper) WriteRecoveryChunk(hash abci.SHA256Sum, chunk *abci.AppStateChunk, isComplete bool) (err error)
type StoreInfo ¶
StoreInfo contains the name and core reference for an underlying store. It is the leaf of the rootMultiStores top level simple merkle tree.
type TraceContext ¶
type TraceContext = types.TraceContext
Import cosmos-sdk/types/store.go for convenience. nolint
type TraceKVStore ¶
type TraceKVStore struct {
// contains filtered or unexported fields
}
TraceKVStore implements the KVStore interface with tracing enabled. Operations are traced on each core KVStore call and written to the underlying io.writer.
TODO: Should we use a buffered writer and implement Commit on TraceKVStore?
func NewTraceKVStore ¶
func NewTraceKVStore(parent sdk.KVStore, writer io.Writer, tc TraceContext) *TraceKVStore
NewTraceKVStore returns a reference to a new traceKVStore given a parent KVStore implementation and a buffered writer.
func (*TraceKVStore) CacheWrap ¶
func (tkv *TraceKVStore) CacheWrap() sdk.CacheWrap
CacheWrap implements the KVStore interface. It panics as a TraceKVStore cannot be cache wrapped.
func (*TraceKVStore) CacheWrapWithTrace ¶
func (tkv *TraceKVStore) CacheWrapWithTrace(_ io.Writer, _ TraceContext) CacheWrap
CacheWrapWithTrace implements the KVStore interface. It panics as a TraceKVStore cannot be cache wrapped.
func (*TraceKVStore) Delete ¶
func (tkv *TraceKVStore) Delete(key []byte)
Delete implements the KVStore interface. It traces a write operation and delegates the Delete call to the parent KVStore.
func (*TraceKVStore) Get ¶
func (tkv *TraceKVStore) Get(key []byte) []byte
Get implements the KVStore interface. It traces a read operation and delegates a Get call to the parent KVStore.
func (*TraceKVStore) GetStoreType ¶
func (tkv *TraceKVStore) GetStoreType() sdk.StoreType
GetStoreType implements the KVStore interface. It returns the underlying KVStore type.
func (*TraceKVStore) Has ¶
func (tkv *TraceKVStore) Has(key []byte) bool
Has implements the KVStore interface. It delegates the Has call to the parent KVStore.
func (*TraceKVStore) Iterator ¶
func (tkv *TraceKVStore) Iterator(start, end []byte) sdk.Iterator
Iterator implements the KVStore interface. It delegates the Iterator call the to the parent KVStore.
func (*TraceKVStore) Prefix ¶
func (tkv *TraceKVStore) Prefix(prefix []byte) KVStore
Prefix implements the KVStore interface.
func (*TraceKVStore) ReverseIterator ¶
func (tkv *TraceKVStore) ReverseIterator(start, end []byte) sdk.Iterator
ReverseIterator implements the KVStore interface. It delegates the ReverseIterator call the to the parent KVStore.
func (*TraceKVStore) Set ¶
func (tkv *TraceKVStore) Set(key []byte, value []byte)
Set implements the KVStore interface. It traces a write operation and delegates the Set call to the parent KVStore.