baseapp

package
v0.47.0 Latest Latest
Warning

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

Go to latest
Published: Feb 1, 2022 License: Apache-2.0 Imports: 37 Imported by: 0

Documentation

Index

Constants

View Source
const Paramspace = "baseapp"

Paramspace defines the parameter subspace to be used for the paramstore.

Variables

View Source
var (
	ParamStoreKeyBlockParams     = []byte("BlockParams")
	ParamStoreKeyEvidenceParams  = []byte("EvidenceParams")
	ParamStoreKeyValidatorParams = []byte("ValidatorParams")
)

Parameter store keys for all the consensus parameter types.

Functions

func DefaultStoreLoader added in v0.47.0

func DefaultStoreLoader(ms sdk.CommitMultiStore) error

DefaultStoreLoader will be used by default and loads the latest version

func SetHaltHeight added in v0.47.0

func SetHaltHeight(blockHeight uint64) func(*BaseApp)

SetHaltHeight returns a BaseApp option function that sets the halt block height.

func SetHaltTime added in v0.47.0

func SetHaltTime(haltTime uint64) func(*BaseApp)

SetHaltTime returns a BaseApp option function that sets the halt block time.

func SetIAVLCacheSize added in v0.47.0

func SetIAVLCacheSize(size int) func(*BaseApp)

SetIAVLCacheSize provides a BaseApp option function that sets the size of IAVL cache.

func SetIndexEvents added in v0.47.0

func SetIndexEvents(ie []string) func(*BaseApp)

SetIndexEvents provides a BaseApp option function that sets the events to index.

func SetInterBlockCache added in v0.47.0

func SetInterBlockCache(cache sdk.MultiStorePersistentCache) func(*BaseApp)

SetInterBlockCache provides a BaseApp option function that sets the inter-block cache.

func SetMinGasPrices added in v0.30.0

func SetMinGasPrices(gasPricesStr string) func(*BaseApp)

SetMinGasPrices returns an option that sets the minimum gas prices on the app.

func SetMinRetainBlocks added in v0.47.0

func SetMinRetainBlocks(minRetainBlocks uint64) func(*BaseApp)

SetMinRetainBlocks returns a BaseApp option function that sets the minimum block retention height value when determining which heights to prune during ABCI Commit.

func SetPruning added in v0.21.0

func SetPruning(opts sdk.PruningOptions) func(*BaseApp)

SetPruning sets a pruning option on the multistore associated with the app

func SetSnapshotInterval added in v0.47.0

func SetSnapshotInterval(interval uint64) func(*BaseApp)

SetSnapshotInterval sets the snapshot interval.

func SetSnapshotKeepRecent added in v0.47.0

func SetSnapshotKeepRecent(keepRecent uint32) func(*BaseApp)

SetSnapshotKeepRecent sets the recent snapshots to keep.

func SetSnapshotStore added in v0.47.0

func SetSnapshotStore(snapshotStore *snapshots.Store) func(*BaseApp)

SetSnapshotStore sets the snapshot store.

func SetTrace added in v0.47.0

func SetTrace(trace bool) func(*BaseApp)

SetTrace will turn on or off trace flag

func ValidateBlockParams added in v0.47.0

func ValidateBlockParams(i interface{}) error

ValidateBlockParams defines a stateless validation on BlockParams. This function is called whenever the parameters are updated or stored.

func ValidateEvidenceParams added in v0.47.0

func ValidateEvidenceParams(i interface{}) error

ValidateEvidenceParams defines a stateless validation on EvidenceParams. This function is called whenever the parameters are updated or stored.

func ValidateValidatorParams added in v0.47.0

func ValidateValidatorParams(i interface{}) error

ValidateValidatorParams defines a stateless validation on ValidatorParams. This function is called whenever the parameters are updated or stored.

Types

type ABCIListener added in v0.47.0

type ABCIListener interface {
	// ListenBeginBlock updates the streaming service with the latest BeginBlock messages
	ListenBeginBlock(ctx types.Context, req abci.RequestBeginBlock, res abci.ResponseBeginBlock) error
	// ListenEndBlock updates the steaming service with the latest EndBlock messages
	ListenEndBlock(ctx types.Context, req abci.RequestEndBlock, res abci.ResponseEndBlock) error
	// ListenDeliverTx updates the steaming service with the latest DeliverTx messages
	ListenDeliverTx(ctx types.Context, req abci.RequestDeliverTx, res abci.ResponseDeliverTx) error
}

ABCIListener interface used to hook into the ABCI message processing of the BaseApp

type BaseApp

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

BaseApp reflects the ABCI application implementation.

func NewBaseApp

func NewBaseApp(
	name string, logger log.Logger, db dbm.DB, options ...func(*BaseApp),
) *BaseApp

NewBaseApp returns a reference to an initialized BaseApp. It accepts a variadic number of option functions, which act on the BaseApp to set configuration choices.

NOTE: The db is used to store the version number for now.

func (*BaseApp) AppVersion added in v0.47.0

func (app *BaseApp) AppVersion() uint64

AppVersion returns the application's protocol version.

func (*BaseApp) ApplySnapshotChunk added in v0.47.0

ApplySnapshotChunk implements the ABCI interface. It delegates to app.snapshotManager if set.

func (*BaseApp) BeginBlock

func (app *BaseApp) BeginBlock(req abci.RequestBeginBlock) (res abci.ResponseBeginBlock)

BeginBlock implements the ABCI application interface.

func (*BaseApp) CheckTx

func (app *BaseApp) CheckTx(req abci.RequestCheckTx) abci.ResponseCheckTx

CheckTx implements the ABCI interface and executes a tx in CheckTx mode. In CheckTx mode, messages are not executed. This means messages are only validated and only the AnteHandler is executed. State is persisted to the BaseApp's internal CheckTx state if the AnteHandler passes. Otherwise, the ResponseCheckTx will contain releveant error information. Regardless of tx execution outcome, the ResponseCheckTx will contain relevant gas execution context.

func (*BaseApp) Commit

func (app *BaseApp) Commit() (res abci.ResponseCommit)

Commit implements the ABCI interface. It will commit all state that exists in the deliver state's multi-store and includes the resulting commit ID in the returned abci.ResponseCommit. Commit will set the check state based on the latest header and reset the deliver state. Also, if a non-zero halt height is defined in config, Commit will execute a deferred function call to check against that height and gracefully halt if it matches the latest committed height.

func (*BaseApp) DeliverTx

func (app *BaseApp) DeliverTx(req abci.RequestDeliverTx) abci.ResponseDeliverTx

DeliverTx implements the ABCI interface and executes a tx in DeliverTx mode. State only gets persisted if all messages are valid and get executed successfully. Otherwise, the ResponseDeliverTx will contain releveant error information. Regardless of tx execution outcome, the ResponseDeliverTx will contain relevant gas execution context.

func (*BaseApp) EndBlock

func (app *BaseApp) EndBlock(req abci.RequestEndBlock) (res abci.ResponseEndBlock)

EndBlock implements the ABCI interface.

func (*BaseApp) FilterPeerByAddrPort added in v0.18.0

func (app *BaseApp) FilterPeerByAddrPort(info string) abci.ResponseQuery

FilterPeerByAddrPort filters peers by address/port.

func (*BaseApp) FilterPeerByID added in v0.31.0

func (app *BaseApp) FilterPeerByID(info string) abci.ResponseQuery

FilterPeerByID filters peers by node ID.

func (*BaseApp) GRPCQueryRouter added in v0.47.0

func (app *BaseApp) GRPCQueryRouter() *GRPCQueryRouter

GRPCQueryRouter returns the GRPCQueryRouter of a BaseApp.

func (*BaseApp) GetBlockRetentionHeight added in v0.47.0

func (app *BaseApp) GetBlockRetentionHeight(commitHeight int64) int64

GetBlockRetentionHeight returns the height for which all blocks below this height are pruned from Tendermint. Given a commitment height and a non-zero local minRetainBlocks configuration, the retentionHeight is the smallest height that satisfies:

- Unbonding (safety threshold) time: The block interval in which validators can be economically punished for misbehavior. Blocks in this interval must be auditable e.g. by the light client.

- Logical store snapshot interval: The block interval at which the underlying logical store database is persisted to disk, e.g. every 10000 heights. Blocks since the last IAVL snapshot must be available for replay on application restart.

- State sync snapshots: Blocks since the oldest available snapshot must be available for state sync nodes to catch up (oldest because a node may be restoring an old snapshot while a new snapshot was taken).

- Local (minRetainBlocks) config: Archive nodes may want to retain more or all blocks, e.g. via a local config option min-retain-blocks. There may also be a need to vary retention for other nodes, e.g. sentry nodes which do not need historical blocks.

func (*BaseApp) GetConsensusParams added in v0.47.0

func (app *BaseApp) GetConsensusParams(ctx sdk.Context) *tmproto.ConsensusParams

GetConsensusParams returns the current consensus parameters from the BaseApp's ParamStore. If the BaseApp has no ParamStore defined, nil is returned.

func (*BaseApp) Info

func (app *BaseApp) Info(req abci.RequestInfo) abci.ResponseInfo

Info implements the ABCI interface.

func (*BaseApp) InitChain

func (app *BaseApp) InitChain(req abci.RequestInitChain) (res abci.ResponseInitChain)

InitChain implements the ABCI interface. It runs the initialization logic directly on the CommitMultiStore.

func (*BaseApp) IsSealed added in v0.24.0

func (app *BaseApp) IsSealed() bool

IsSealed returns true if the BaseApp is sealed and false otherwise.

func (*BaseApp) LastBlockHeight

func (app *BaseApp) LastBlockHeight() int64

LastBlockHeight returns the last committed block height.

func (*BaseApp) LastCommitID

func (app *BaseApp) LastCommitID() storetypes.CommitID

LastCommitID returns the last CommitID of the multistore.

func (*BaseApp) ListSnapshots added in v0.47.0

ListSnapshots implements the ABCI interface. It delegates to app.snapshotManager if set.

func (*BaseApp) LoadLatestVersion

func (app *BaseApp) LoadLatestVersion() error

LoadLatestVersion loads the latest application version. It will panic if called more than once on a running BaseApp.

func (*BaseApp) LoadSnapshotChunk added in v0.47.0

LoadSnapshotChunk implements the ABCI interface. It delegates to app.snapshotManager if set.

func (*BaseApp) LoadVersion

func (app *BaseApp) LoadVersion(version int64) error

LoadVersion loads the BaseApp application version. It will panic if called more than once on a running baseapp.

func (*BaseApp) Logger

func (app *BaseApp) Logger() log.Logger

Logger returns the logger of the BaseApp.

func (*BaseApp) MountKVStores added in v0.47.0

func (app *BaseApp) MountKVStores(keys map[string]*storetypes.KVStoreKey)

MountKVStores mounts all IAVL or DB stores to the provided keys in the BaseApp multistore.

func (*BaseApp) MountMemoryStores added in v0.47.0

func (app *BaseApp) MountMemoryStores(keys map[string]*storetypes.MemoryStoreKey)

MountMemoryStores mounts all in-memory KVStores with the BaseApp's internal commit multi-store.

func (*BaseApp) MountStore

func (app *BaseApp) MountStore(key storetypes.StoreKey, typ storetypes.StoreType)

MountStore mounts a store to the provided key in the BaseApp multistore, using the default DB.

func (*BaseApp) MountStores added in v0.27.0

func (app *BaseApp) MountStores(keys ...storetypes.StoreKey)

MountStores mounts all IAVL or DB stores to the provided keys in the BaseApp multistore.

func (*BaseApp) MountTransientStores added in v0.47.0

func (app *BaseApp) MountTransientStores(keys map[string]*storetypes.TransientStoreKey)

MountTransientStores mounts all transient stores to the provided keys in the BaseApp multistore.

func (*BaseApp) Name

func (app *BaseApp) Name() string

Name returns the name of the BaseApp.

func (*BaseApp) NewContext

func (app *BaseApp) NewContext(isCheckTx bool, header tmproto.Header) sdk.Context

Context with current {check, deliver}State of the app used by tests.

func (*BaseApp) NewUncachedContext added in v0.47.0

func (app *BaseApp) NewUncachedContext(isCheckTx bool, header tmproto.Header) sdk.Context

func (*BaseApp) OfferSnapshot added in v0.47.0

OfferSnapshot implements the ABCI interface. It delegates to app.snapshotManager if set.

func (*BaseApp) Query

func (app *BaseApp) Query(req abci.RequestQuery) (res abci.ResponseQuery)

Query implements the ABCI interface. It delegates to CommitMultiStore if it implements Queryable.

func (*BaseApp) QueryRouter added in v0.25.0

func (app *BaseApp) QueryRouter() sdk.QueryRouter

QueryRouter returns the QueryRouter of a BaseApp.

func (*BaseApp) RegisterGRPCServer added in v0.47.0

func (app *BaseApp) RegisterGRPCServer(server gogogrpc.Server)

RegisterGRPCServer registers gRPC services directly with the gRPC server.

func (*BaseApp) Seal added in v0.24.0

func (app *BaseApp) Seal()

Seal seals a BaseApp. It prohibits any further modifications to a BaseApp.

func (*BaseApp) SetAddrPeerFilter added in v0.18.0

func (app *BaseApp) SetAddrPeerFilter(pf sdk.PeerFilter)

func (*BaseApp) SetBeginBlocker

func (app *BaseApp) SetBeginBlocker(beginBlocker sdk.BeginBlocker)

func (*BaseApp) SetCMS added in v0.24.0

func (app *BaseApp) SetCMS(cms store.CommitMultiStore)

func (*BaseApp) SetCommitMultiStoreTracer added in v0.21.0

func (app *BaseApp) SetCommitMultiStoreTracer(w io.Writer)

SetCommitMultiStoreTracer sets the store tracer on the BaseApp's underlying CommitMultiStore.

func (*BaseApp) SetDB added in v0.24.0

func (app *BaseApp) SetDB(db dbm.DB)

func (*BaseApp) SetEndBlocker

func (app *BaseApp) SetEndBlocker(endBlocker sdk.EndBlocker)

func (*BaseApp) SetFauxMerkleMode added in v0.27.0

func (app *BaseApp) SetFauxMerkleMode()

func (*BaseApp) SetIDPeerFilter added in v0.31.0

func (app *BaseApp) SetIDPeerFilter(pf sdk.PeerFilter)

func (*BaseApp) SetInitChainer

func (app *BaseApp) SetInitChainer(initChainer sdk.InitChainer)

func (*BaseApp) SetInterfaceRegistry added in v0.47.0

func (app *BaseApp) SetInterfaceRegistry(registry types.InterfaceRegistry)

SetInterfaceRegistry sets the InterfaceRegistry.

func (*BaseApp) SetName added in v0.24.0

func (app *BaseApp) SetName(name string)

func (*BaseApp) SetParamStore added in v0.47.0

func (app *BaseApp) SetParamStore(ps ParamStore)

SetParamStore sets a parameter store on the BaseApp.

func (*BaseApp) SetProtocolVersion added in v0.47.0

func (app *BaseApp) SetProtocolVersion(v uint64)

SetProtocolVersion sets the application's protocol version

func (*BaseApp) SetSnapshotInterval added in v0.47.0

func (app *BaseApp) SetSnapshotInterval(snapshotInterval uint64)

SetSnapshotInterval sets the snapshot interval.

func (*BaseApp) SetSnapshotKeepRecent added in v0.47.0

func (app *BaseApp) SetSnapshotKeepRecent(snapshotKeepRecent uint32)

SetSnapshotKeepRecent sets the number of recent snapshots to keep.

func (*BaseApp) SetSnapshotStore added in v0.47.0

func (app *BaseApp) SetSnapshotStore(snapshotStore *snapshots.Store)

SetSnapshotStore sets the snapshot store.

func (*BaseApp) SetStoreLoader added in v0.47.0

func (app *BaseApp) SetStoreLoader(loader StoreLoader)

SetStoreLoader allows us to customize the rootMultiStore initialization.

func (*BaseApp) SetStreamingService added in v0.47.0

func (app *BaseApp) SetStreamingService(s StreamingService)

SetStreamingService is used to set a streaming service into the BaseApp hooks and load the listeners into the multistore

func (*BaseApp) SetTxHandler added in v0.47.0

func (app *BaseApp) SetTxHandler(txHandler tx.Handler)

func (*BaseApp) SetVersion added in v0.47.0

func (app *BaseApp) SetVersion(v string)

SetVersion sets the application's version string.

func (*BaseApp) SimCheck added in v0.47.0

func (app *BaseApp) SimCheck(txEncoder sdk.TxEncoder, sdkTx sdk.Tx) (sdk.GasInfo, *sdk.Result, error)

SimCheck defines a CheckTx helper function that used in tests and simulations.

func (*BaseApp) SimDeliver added in v0.47.0

func (app *BaseApp) SimDeliver(txEncoder sdk.TxEncoder, sdkTx sdk.Tx) (sdk.GasInfo, *sdk.Result, error)

SimDeliver defines a DeliverTx helper function that used in tests and simulations.

func (*BaseApp) Simulate added in v0.18.0

func (app *BaseApp) Simulate(txBytes []byte) (sdk.GasInfo, *sdk.Result, error)

Simulate executes a tx in simulate mode to get result and gas info.

func (*BaseApp) StoreConsensusParams added in v0.47.0

func (app *BaseApp) StoreConsensusParams(ctx sdk.Context, cp *tmproto.ConsensusParams)

StoreConsensusParams sets the consensus parameters to the baseapp's param store.

func (*BaseApp) Trace added in v0.47.0

func (app *BaseApp) Trace() bool

Trace returns the boolean value for logging error stack traces.

func (*BaseApp) Version added in v0.47.0

func (app *BaseApp) Version() string

Version returns the application's version string.

type GRPCQueryHandler added in v0.47.0

type GRPCQueryHandler = func(ctx sdk.Context, req abci.RequestQuery) (abci.ResponseQuery, error)

GRPCQueryHandler defines a function type which handles ABCI Query requests using gRPC

type GRPCQueryRouter added in v0.47.0

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

GRPCQueryRouter routes ABCI Query requests to GRPC handlers

func NewGRPCQueryRouter added in v0.47.0

func NewGRPCQueryRouter() *GRPCQueryRouter

NewGRPCQueryRouter creates a new GRPCQueryRouter

func (*GRPCQueryRouter) RegisterService added in v0.47.0

func (qrt *GRPCQueryRouter) RegisterService(sd *grpc.ServiceDesc, handler interface{})

RegisterService implements the gRPC Server.RegisterService method. sd is a gRPC service description, handler is an object which implements that gRPC service/

This functions PANICS: - if a protobuf service is registered twice.

func (*GRPCQueryRouter) Route added in v0.47.0

func (qrt *GRPCQueryRouter) Route(path string) GRPCQueryHandler

Route returns the GRPCQueryHandler for a given query route path or nil if not found

func (*GRPCQueryRouter) SetInterfaceRegistry added in v0.47.0

func (qrt *GRPCQueryRouter) SetInterfaceRegistry(interfaceRegistry codectypes.InterfaceRegistry)

SetInterfaceRegistry sets the interface registry for the router. This will also register the interface reflection gRPC service.

type ParamStore added in v0.47.0

type ParamStore interface {
	Get(ctx sdk.Context, key []byte, ptr interface{})
	Has(ctx sdk.Context, key []byte) bool
	Set(ctx sdk.Context, key []byte, param interface{})
}

ParamStore defines the interface the parameter store used by the BaseApp must fulfill.

type QueryRouter added in v0.25.0

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

func NewQueryRouter added in v0.25.0

func NewQueryRouter() *QueryRouter

NewQueryRouter returns a reference to a new QueryRouter.

func (*QueryRouter) AddRoute added in v0.25.0

func (qrt *QueryRouter) AddRoute(path string, q sdk.Querier) sdk.QueryRouter

AddRoute adds a query path to the router with a given Querier. It will panic if a duplicate route is given. The route must be alphanumeric.

func (*QueryRouter) Route added in v0.25.0

func (qrt *QueryRouter) Route(path string) sdk.Querier

Route returns the Querier for a given query route path.

type QueryServiceTestHelper added in v0.47.0

type QueryServiceTestHelper struct {
	*GRPCQueryRouter
	Ctx sdk.Context
}

QueryServiceTestHelper provides a helper for making grpc query service rpc calls in unit tests. It implements both the grpc Server and ClientConn interfaces needed to register a query service server and create a query service client.

func NewQueryServerTestHelper added in v0.47.0

func NewQueryServerTestHelper(ctx sdk.Context, interfaceRegistry types.InterfaceRegistry) *QueryServiceTestHelper

NewQueryServerTestHelper creates a new QueryServiceTestHelper that wraps the provided sdk.Context

func (*QueryServiceTestHelper) Invoke added in v0.47.0

func (q *QueryServiceTestHelper) Invoke(_ gocontext.Context, method string, args, reply interface{}, _ ...grpc.CallOption) error

Invoke implements the grpc ClientConn.Invoke method

func (*QueryServiceTestHelper) NewStream added in v0.47.0

NewStream implements the grpc ClientConn.NewStream method

type StoreLoader added in v0.47.0

type StoreLoader func(ms sdk.CommitMultiStore) error

StoreLoader defines a customizable function to control how we load the CommitMultiStore from disk. This is useful for state migration, when loading a datastore written with an older version of the software. In particular, if a module changed the substore key name (or removed a substore) between two versions of the software.

type StreamingService added in v0.47.0

type StreamingService interface {
	// Stream is the streaming service loop, awaits kv pairs and writes them to some destination stream or file
	Stream(wg *sync.WaitGroup) error
	// Listeners returns the streaming service's listeners for the BaseApp to register
	Listeners() map[store.StoreKey][]store.WriteListener
	// ABCIListener interface for hooking into the ABCI messages from inside the BaseApp
	ABCIListener
	// Closer interface
	io.Closer
}

StreamingService interface for registering WriteListeners with the BaseApp and updating the service with the ABCI messages using the hooks

Jump to

Keyboard shortcuts

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