machine

package
v0.6.0 Latest Latest
Warning

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

Go to latest
Published: Jun 9, 2020 License: Apache-2.0 Imports: 6 Imported by: 24

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BlockReason

type BlockReason interface {
	IsBlocked(m Machine, currentTime *common.TimeBlocks, newMessages bool) bool
	Equals(b BlockReason) bool
}

type BlockStore added in v0.6.0

type BlockStore interface {
	PutBlock(id *common.BlockId, data []byte) error
	DeleteBlock(id *common.BlockId) error
	GetBlock(id *common.BlockId) ([]byte, error)
	BlocksAtHeight(height *common.TimeBlocks) []*common.BlockId
	IsBlockStoreEmpty() bool
	MaxBlockStoreHeight() *common.TimeBlocks
	MinBlockStoreHeight() *common.TimeBlocks
}

type BreakpointBlocked

type BreakpointBlocked struct {
}

func (BreakpointBlocked) Equals

func (b BreakpointBlocked) Equals(a BlockReason) bool

func (BreakpointBlocked) IsBlocked

func (b BreakpointBlocked) IsBlocked(m Machine, currentTime *common.TimeBlocks, newMessages bool) bool

func (BreakpointBlocked) String added in v0.4.0

func (b BreakpointBlocked) String() string

type CheckpointStorage added in v0.4.0

type CheckpointStorage interface {
	DeleteCheckpoint(machineHash common.Hash) bool
	CloseCheckpointStorage() bool
	GetInitialMachine() (Machine, error)
	GetMachine(machineHash common.Hash) (Machine, error)
	SaveValue(val value.Value) bool
	GetValue(hashValue common.Hash) value.Value
	DeleteValue(hashValue common.Hash) bool
	SaveData(key []byte, serializedValue []byte) bool
	GetData(key []byte) []byte
	DeleteData(key []byte) bool
}

type ErrorBlocked

type ErrorBlocked struct {
}

func (ErrorBlocked) Equals

func (b ErrorBlocked) Equals(a BlockReason) bool

func (ErrorBlocked) IsBlocked

func (b ErrorBlocked) IsBlocked(m Machine, currentTime *common.TimeBlocks, newMessages bool) bool

func (ErrorBlocked) String added in v0.4.0

func (b ErrorBlocked) String() string

type HaltBlocked

type HaltBlocked struct {
}

func (HaltBlocked) Equals

func (b HaltBlocked) Equals(a BlockReason) bool

func (HaltBlocked) IsBlocked

func (b HaltBlocked) IsBlocked(m Machine, currentTime *common.TimeBlocks, newMessages bool) bool

func (HaltBlocked) String added in v0.4.0

func (b HaltBlocked) String() string

type InboxBlocked

type InboxBlocked struct {
	Timeout value.IntValue
}

func (InboxBlocked) Equals

func (b InboxBlocked) Equals(a BlockReason) bool

func (InboxBlocked) IsBlocked

func (b InboxBlocked) IsBlocked(m Machine, currentTime *common.TimeBlocks, newMessages bool) bool

func (InboxBlocked) String added in v0.4.0

func (b InboxBlocked) String() string

type Machine

type Machine interface {
	Hash() common.Hash
	Clone() Machine
	PrintState()

	CurrentStatus() Status
	IsBlocked(currentTime *common.TimeBlocks, newMessages bool) BlockReason

	ExecuteAssertion(
		maxSteps uint64,
		timeBounds *protocol.TimeBounds,
		inbox value.TupleValue,
		maxWallTime time.Duration,
	) (*protocol.ExecutionAssertion, uint64)

	MarshalForProof() ([]byte, error)

	Checkpoint(storage CheckpointStorage) bool
}

type NodeStore added in v0.6.0

type NodeStore interface {
	// PutNode records a record into the database with the given height, hash, and data
	PutNode(height uint64, hash common.Hash, data []byte) error

	// GetNode looks up a record in the database with the given height and hash
	GetNode(height uint64, hash common.Hash) ([]byte, error)

	// GetNodeHeight returns the height of the record with the given hash which
	// should be unique across all possible nodes
	GetNodeHeight(hash common.Hash) (uint64, error)

	// GetNodeHash returns the hash of the node most recently saved at that height
	GetNodeHash(height uint64) (common.Hash, error)

	// Empty returns true if the store is empty and false otherwise
	Empty() bool

	// MaxHeight returns maximum height node stored in the database
	// If the database is empty, MaxHeight returns 0
	MaxHeight() uint64
}

NodeStore provides a mechanism for recording data base rollup nodes indexed by their height and hash. The intention of this interface is to be used exclusively for recording nodes that will not be removed in the future. As such the only current usage is for recording confirmed nodes. This limitation is because the GetNodeHeight function described below relies on the assumption that the most recently recorded node at a given height is the correct/relevant one

type Status

type Status int
const (
	Extensive Status = iota
	ErrorStop
	Halt
)

Jump to

Keyboard shortcuts

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