iavl

package
v0.9.3 Latest Latest
Warning

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

Go to latest
Published: Nov 20, 2020 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func LoadStore

func LoadStore(db dbm.DB, id types.CommitID, pruning types.PruningOptions, lazyLoading bool) (types.CommitStore, error)

LoadStore loads the iavl store

Types

type Store

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

Store Implements types.KVStore and CommitStore.

func UnsafeNewStore

func UnsafeNewStore(tree *iavl.MutableTree, numRecent int64, storeEvery int64) *Store

CONTRACT: tree should be fully loaded. nolint: unparam

func (*Store) CacheWrap

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

Implements Store.

func (*Store) CacheWrapWithTrace

func (st *Store) CacheWrapWithTrace(w io.Writer, tc types.TraceContext) types.CacheWrap

CacheWrapWithTrace implements the Store interface.

func (*Store) Commit

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

Implements Committer.

func (*Store) Delete

func (st *Store) Delete(key []byte)

Implements types.KVStore.

func (*Store) Get

func (st *Store) Get(key []byte) (value []byte)

Implements types.KVStore.

func (*Store) GetImmutable

func (st *Store) GetImmutable(version int64) (*Store, error)

GetImmutable returns a reference to a new store backed by an immutable IAVL tree at a specific version (height) without any pruning options. This should be used for querying and iteration only. If the version does not exist or has been pruned, an error will be returned. Any mutable operations executed will result in a panic.

func (*Store) GetStoreType

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

Implements Store.

func (*Store) Has

func (st *Store) Has(key []byte) (exists bool)

Implements types.KVStore.

func (*Store) Iterator

func (st *Store) Iterator(start, end []byte) types.Iterator

Implements types.KVStore.

func (*Store) LastCommitID

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

Implements Committer.

func (*Store) Query

func (st *Store) 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 (*Store) ReverseIterator

func (st *Store) ReverseIterator(start, end []byte) types.Iterator

Implements types.KVStore.

func (*Store) Set

func (st *Store) Set(key, value []byte)

Implements types.KVStore.

func (*Store) SetPruning

func (st *Store) SetPruning(opt types.PruningOptions)

Implements Committer.

func (*Store) VersionExists

func (st *Store) VersionExists(version int64) bool

VersionExists returns whether or not a given version is stored.

type Tree

type Tree interface {
	Has(key []byte) bool
	Get(key []byte) (index int64, value []byte)
	Set(key, value []byte) bool
	Remove(key []byte) ([]byte, bool)
	SaveVersion() ([]byte, int64, error)
	DeleteVersion(version int64) error
	Version() int64
	Hash() []byte
	VersionExists(version int64) bool
	GetVersioned(key []byte, version int64) (int64, []byte)
	GetVersionedWithProof(key []byte, version int64) ([]byte, *iavl.RangeProof, error)
	GetImmutable(version int64) (*iavl.ImmutableTree, error)
}

Tree defines an interface that both mutable and immutable IAVL trees must implement. For mutable IAVL trees, the interface is directly implemented by an iavl.MutableTree. For an immutable IAVL tree, a wrapper must be made.

Jump to

Keyboard shortcuts

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