Documentation ¶
Index ¶
- func ExecCommitBlock(appConnConsensus proxy.AppConnConsensus, block *types.Block, logger log.Logger) ([]byte, error)
- func MakeGenesisDocFromFile(genDocFile string) (*types.GenesisDoc, error)
- type ABCIResponses
- type ErrAppBlockHeightTooHigh
- type ErrBlockHashMismatch
- type ErrInvalidBlock
- type ErrLastStateMismatch
- type ErrNoValSetForHeight
- 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() (last *types.ValidatorSet, current *types.ValidatorSet)
- func (s *State) LoadABCIResponses() *ABCIResponses
- func (s *State) LoadValidators(height int) (*types.ValidatorSet, error)
- 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
- type ValidatorsInfo
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).
func MakeGenesisDocFromFile ¶
func MakeGenesisDocFromFile(genDocFile string) (*types.GenesisDoc, error)
MakeGenesisDocFromFile reads and unmarshals genesis doc from the given file.
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 ErrNoValSetForHeight ¶
type ErrNoValSetForHeight struct {
Height int
}
func (ErrNoValSetForHeight) Error ¶
func (e ErrNoValSetForHeight) 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 { ChainID string // Consensus parameters used for validating blocks Params types.ConsensusParams // These fields are updated by SetBlockAndValidators. // LastBlockHeight=0 at genesis (ie. block(H=0) does not exist) // LastValidators is used to validate block.LastCommit. LastBlockHeight int LastBlockID types.BlockID LastBlockTime time.Time Validators *types.ValidatorSet LastValidators *types.ValidatorSet // When a block returns a validator set change via EndBlock, // the change only applies to the next block. // So, if s.LastBlockHeight causes a valset change, // we set s.LastHeightValidatorsChanged = s.LastBlockHeight + 1 LastHeightValidatorsChanged int // AppHash is updated after Commit AppHash []byte // TxIndexer indexes transactions TxIndexer txindex.TxIndexer `json:"-"` // 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 ¶
MakeGenesisState creates state from types.GenesisDoc.
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) Copy ¶
Copy makes a copy of the State for mutating. NOTE: Does not create a copy of TxIndexer. It creates a new pointer that points to the same underlying TxIndexer.
func (*State) GetValidators ¶ added in v0.8.0
func (s *State) GetValidators() (last *types.ValidatorSet, current *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. This is useful for recovering from crashes where we called app.Commit and before we called s.Save()
func (*State) LoadValidators ¶ added in v0.11.0
func (s *State) LoadValidators(height int) (*types.ValidatorSet, error)
LoadValidators loads the ValidatorSet for a given height.
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
type ValidatorsInfo ¶
type ValidatorsInfo struct { ValidatorSet *types.ValidatorSet LastHeightChanged int }
ValidatorsInfo represents the latest validator set, or the last height it changed
func (*ValidatorsInfo) Bytes ¶
func (valInfo *ValidatorsInfo) Bytes() []byte
Bytes serializes the ValidatorsInfo using go-wire