computation

package
v0.14.9-error-printing Latest Latest
Warning

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

Go to latest
Published: Mar 12, 2021 License: AGPL-3.0 Imports: 17 Imported by: 5

Documentation

Index

Constants

View Source
const DefaultProgramsCacheSize = 1000

Variables

This section is empty.

Functions

This section is empty.

Types

type ComputationManager

type ComputationManager interface {
	ExecuteScript([]byte, [][]byte, *flow.Header, *delta.View) ([]byte, error)
	ComputeBlock(
		ctx context.Context,
		block *entity.ExecutableBlock,
		view *delta.View,
	) (*execution.ComputationResult, error)
	GetAccount(addr flow.Address, header *flow.Header, view *delta.View) (*flow.Account, error)
}

type Manager

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

Manager manages computation and execution

func New

func New(
	logger zerolog.Logger,
	metrics module.ExecutionMetrics,
	tracer module.Tracer,
	me module.Local,
	protoState protocol.State,
	vm VirtualMachine,
	vmCtx fvm.Context,
	programsCacheSize uint,
) (*Manager, error)

func (*Manager) ComputeBlock

func (e *Manager) ComputeBlock(
	ctx context.Context,
	block *entity.ExecutableBlock,
	view *delta.View,
) (*execution.ComputationResult, error)

func (*Manager) ExecuteScript

func (e *Manager) ExecuteScript(code []byte, arguments [][]byte, blockHeader *flow.Header, view *delta.View) ([]byte, error)

func (*Manager) GetAccount

func (e *Manager) GetAccount(address flow.Address, blockHeader *flow.Header, view *delta.View) (*flow.Account, error)

type ProgramsCache added in v0.14.6

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

func NewProgramsCache added in v0.14.6

func NewProgramsCache(size uint) (*ProgramsCache, error)

func (*ProgramsCache) Get added in v0.14.6

func (pc *ProgramsCache) Get(blockID flow.Identifier) *fvm.Programs

func (*ProgramsCache) Set added in v0.14.6

func (pc *ProgramsCache) Set(blockId flow.Identifier, programs *fvm.Programs)

type VirtualMachine

type VirtualMachine interface {
	Run(fvm.Context, fvm.Procedure, state.Ledger, *fvm.Programs) error
	GetAccount(fvm.Context, flow.Address, state.Ledger, *fvm.Programs) (*flow.Account, error)
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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