state

package
v0.10.0-rc2 Latest Latest
Warning

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

Go to latest
Published: May 29, 2017 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ExecCommitBlock added in v0.9.2

func ExecCommitBlock(appConnConsensus proxy.AppConnConsensus, block *types.Block, logger log.Logger) ([]byte, error)

Exec and commit a block on the proxyApp without validating or mutating the state Returns the application root hash (result of abci.Commit)

Types

type ABCIResponses added in v0.9.2

type ABCIResponses struct {
	Height int

	DeliverTx []*abci.ResponseDeliverTx
	EndBlock  abci.ResponseEndBlock
	// contains filtered or unexported fields
}

func NewABCIResponses added in v0.9.2

func NewABCIResponses(block *types.Block) *ABCIResponses

func (*ABCIResponses) Bytes added in v0.9.2

func (a *ABCIResponses) Bytes() []byte

Serialize the ABCIResponse

type ErrAppBlockHeightTooHigh added in v0.8.0

type ErrAppBlockHeightTooHigh struct {
	CoreHeight int
	AppHeight  int
}

func (ErrAppBlockHeightTooHigh) Error added in v0.8.0

func (e ErrAppBlockHeightTooHigh) Error() string

type ErrBlockHashMismatch added in v0.8.0

type ErrBlockHashMismatch struct {
	CoreHash []byte
	AppHash  []byte
	Height   int
}

func (ErrBlockHashMismatch) Error added in v0.8.0

func (e ErrBlockHashMismatch) Error() string

type ErrInvalidBlock added in v0.8.0

type ErrInvalidBlock error

type ErrLastStateMismatch added in v0.8.0

type ErrLastStateMismatch struct {
	Height int
	Core   []byte
	App    []byte
}

func (ErrLastStateMismatch) Error added in v0.8.0

func (e ErrLastStateMismatch) Error() string

type ErrProxyAppConn added in v0.8.0

type ErrProxyAppConn error

type ErrStateMismatch added in v0.8.0

type ErrStateMismatch struct {
	Got      *State
	Expected *State
}

func (ErrStateMismatch) Error added in v0.8.0

func (e ErrStateMismatch) Error() string

type ErrUnknownBlock added in v0.8.0

type ErrUnknownBlock struct {
	Height int
}

func (ErrUnknownBlock) Error added in v0.8.0

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
}

NOTE: not goroutine-safe.

func GetState added in v0.8.0

func GetState(stateDB dbm.DB, genesisFile string) *State

Load the most recent state from "state" db, or create a new one (and save) from genesis.

func LoadState

func LoadState(db dbm.DB) *State

func MakeGenesisState

func MakeGenesisState(db dbm.DB, genDoc *types.GenesisDoc) *State

MakeGenesisState creates state from types.GenesisDoc.

Used in tests.

func MakeGenesisStateFromFile

func MakeGenesisStateFromFile(db dbm.DB, genDocFile string) *State

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

Validate, execute, and commit block against app, save block and state

func (*State) Bytes added in v0.8.0

func (s *State) Bytes() []byte

func (*State) CommitStateUpdateMempool added in v0.8.0

func (s *State) CommitStateUpdateMempool(proxyAppConn proxy.AppConnConsensus, block *types.Block, mempool types.Mempool) error

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

func (s *State) Copy() *State

func (*State) Equals added in v0.8.0

func (s *State) Equals(s2 *State) bool

func (*State) GetValidators added in v0.8.0

func (s *State) GetValidators() (*types.ValidatorSet, *types.ValidatorSet)

func (*State) LoadABCIResponses added in v0.9.2

func (s *State) LoadABCIResponses() *ABCIResponses

func (*State) Save

func (s *State) Save()

func (*State) SaveABCIResponses added in v0.9.2

func (s *State) SaveABCIResponses(abciResponses *ABCIResponses)

Sets the ABCIResponses in the state and writes them to disk 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)

Mutate state variables to match block and validators after running EndBlock

func (*State) SetLogger added in v0.10.0

func (s *State) SetLogger(l log.Logger)

func (*State) ValExecBlock added in v0.9.2

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

func (*State) ValidateBlock

func (s *State) ValidateBlock(block *types.Block) error

Directories

Path Synopsis
kv

Jump to

Keyboard shortcuts

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