Documentation ¶
Index ¶
- func ExecCommitBlock(appConnConsensus proxy.AppConnConsensus, block *types.Block, logger log.Logger) ([]byte, error)
- type ABCIResponses
- type ErrAppBlockHeightTooHigh
- type ErrBlockHashMismatch
- type ErrInvalidBlock
- type ErrLastStateMismatch
- type ErrProxyAppConn
- type ErrStateMismatch
- type ErrUnknownBlock
- type State
- func (s *State) ApplyBlock(eventCache types.Fireable, proxyAppConn proxy.AppConnConsensus, ...) error
- func (s *State) Bytes() []byte
- func (s *State) CommitStateUpdateMempool(proxyAppConn proxy.AppConnConsensus, block *types.Block, mempool types.Mempool) error
- func (s *State) Copy() *State
- func (s *State) Equals(s2 *State) bool
- func (s *State) GetValidators() (*types.ValidatorSet, *types.ValidatorSet)
- func (s *State) LoadABCIResponses() *ABCIResponses
- func (s *State) Save()
- func (s *State) SaveABCIResponses(abciResponses *ABCIResponses)
- func (s *State) SetBlockAndValidators(header *types.Header, blockPartsHeader types.PartSetHeader, ...)
- func (s *State) SetLogger(l log.Logger)
- func (s *State) ValExecBlock(eventCache types.Fireable, proxyAppConn proxy.AppConnConsensus, ...) (*ABCIResponses, error)
- func (s *State) ValidateBlock(block *types.Block) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ExecCommitBlock ¶
func ExecCommitBlock(appConnConsensus proxy.AppConnConsensus, block *types.Block, logger log.Logger) ([]byte, error)
ExecCommitBlock executes and commits a block on the proxyApp without validating or mutating the state. It returns the application root hash (result of abci.Commit).
Types ¶
type ABCIResponses ¶
type ABCIResponses struct { Height int DeliverTx []*abci.ResponseDeliverTx EndBlock abci.ResponseEndBlock // contains filtered or unexported fields }
ABCIResponses retains the responses of the various ABCI calls during block processing. It is persisted to disk before calling Commit.
func NewABCIResponses ¶
func NewABCIResponses(block *types.Block) *ABCIResponses
NewABCIResponses returns a new ABCIResponses
func (*ABCIResponses) Bytes ¶
func (a *ABCIResponses) Bytes() []byte
Bytes serializes the ABCIResponse using go-wire
type ErrAppBlockHeightTooHigh ¶
func (ErrAppBlockHeightTooHigh) Error ¶
func (e ErrAppBlockHeightTooHigh) Error() string
type ErrBlockHashMismatch ¶
func (ErrBlockHashMismatch) Error ¶
func (e ErrBlockHashMismatch) Error() string
type ErrInvalidBlock ¶
type ErrInvalidBlock error
type ErrLastStateMismatch ¶
func (ErrLastStateMismatch) Error ¶
func (e ErrLastStateMismatch) Error() string
type ErrProxyAppConn ¶
type ErrProxyAppConn error
type ErrStateMismatch ¶
func (ErrStateMismatch) Error ¶
func (e ErrStateMismatch) Error() string
type ErrUnknownBlock ¶
type ErrUnknownBlock struct {
Height int
}
func (ErrUnknownBlock) Error ¶
func (e ErrUnknownBlock) Error() string
type State ¶
type State struct { // should not change GenesisDoc *types.GenesisDoc ChainID string // updated at end of SetBlockAndValidators LastBlockHeight int // Genesis state has this set to 0. So, Block(H=0) does not exist. LastBlockID types.BlockID LastBlockTime time.Time Validators *types.ValidatorSet LastValidators *types.ValidatorSet // block.LastCommit validated against this // AppHash is updated after Commit AppHash []byte TxIndexer txindex.TxIndexer `json:"-"` // Transaction indexer. // contains filtered or unexported fields }
State represents the latest committed state of the Tendermint consensus, including the last committed block and validator set. Newly committed blocks are validated and executed against the State. NOTE: not goroutine-safe.
func GetState ¶ added in v0.8.0
GetState loads the most recent state from the database, or creates a new one from the given genesisFile and persists the result to the database.
func MakeGenesisState ¶
func MakeGenesisState(db dbm.DB, genDoc *types.GenesisDoc) *State
MakeGenesisState creates state from types.GenesisDoc.
Used in tests.
func MakeGenesisStateFromFile ¶
MakeGenesisStateFromFile reads and unmarshals state from the given file.
Used during replay and in tests.
func (*State) ApplyBlock ¶ added in v0.8.0
func (s *State) ApplyBlock(eventCache types.Fireable, proxyAppConn proxy.AppConnConsensus, block *types.Block, partsHeader types.PartSetHeader, mempool types.Mempool) error
ApplyBlock validates the block against the state, executes it against the app, commits it, and saves the block and state. It's the only function that needs to be called from outside this package to process and commit an entire block.
func (*State) CommitStateUpdateMempool ¶ added in v0.8.0
func (s *State) CommitStateUpdateMempool(proxyAppConn proxy.AppConnConsensus, block *types.Block, mempool types.Mempool) error
CommitStateUpdateMempool locks the mempool, runs the ABCI Commit message, and updates the mempool. The Mempool must be locked during commit and update because state is typically reset on Commit and old txs must be replayed against committed state before new txs are run in the mempool, lest they be invalid.
func (*State) GetValidators ¶ added in v0.8.0
func (s *State) GetValidators() (*types.ValidatorSet, *types.ValidatorSet)
GetValidators returns the last and current validator sets.
func (*State) LoadABCIResponses ¶ added in v0.9.1
func (s *State) LoadABCIResponses() *ABCIResponses
LoadABCIResponses loads the ABCIResponses from the database.
func (*State) Save ¶ added in v0.7.0
func (s *State) Save()
Save persists the State to the database.
func (*State) SaveABCIResponses ¶ added in v0.9.1
func (s *State) SaveABCIResponses(abciResponses *ABCIResponses)
SaveABCIResponses persists the ABCIResponses to the database. This is useful in case we crash after app.Commit and before s.Save().
func (*State) SetBlockAndValidators ¶ added in v0.8.0
func (s *State) SetBlockAndValidators(header *types.Header, blockPartsHeader types.PartSetHeader, abciResponses *ABCIResponses)
SetBlockAndValidators mutates State variables to update block and validators after running EndBlock.
func (*State) ValExecBlock ¶ added in v0.9.1
func (s *State) ValExecBlock(eventCache types.Fireable, proxyAppConn proxy.AppConnConsensus, block *types.Block) (*ABCIResponses, error)
ValExecBlock executes the block, but does NOT mutate State. + validates the block + executes block.Txs on the proxyAppConn