logicrunner

package
v0.6.1 Latest Latest
Warning

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

Go to latest
Published: Oct 23, 2018 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Overview

Package logicrunner - infrastructure for executing smartcontracts

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func HashInterface added in v0.4.0

func HashInterface(in interface{}) []byte

func MakeBaseMessage added in v0.5.0

func MakeBaseMessage(req rpctypes.UpBaseReq) message.BaseLogicMessage

MakeBaseMessage makes base of logicrunner event from base of up request

Types

type Consensus added in v0.6.1

type Consensus struct {
	Have        int
	Need        int
	Total       int
	Results     map[Ref]ConsensusRecord
	CaseRecords []core.CaseRecord
}

Consensus is an object for one validation process where all validated results will be compared.

func (*Consensus) AddExecutor added in v0.6.1

func (c *Consensus) AddExecutor(m *message.ExecutorResults)

func (*Consensus) AddValidated added in v0.6.1

func (c *Consensus) AddValidated(m *message.ValidationResults)

AddValidated adds results from validators

func (*Consensus) CheckReady added in v0.6.1

func (c *Consensus) CheckReady()

type ConsensusRecord added in v0.6.1

type ConsensusRecord struct {
	Steps int
	Error error
}

type ExecutionState added in v0.6.1

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

Context of one contract execution

type LogicRunner

type LogicRunner struct {
	Executors       [core.MachineTypesLastID]core.MachineLogicExecutor
	ArtifactManager core.ArtifactManager
	MessageBus      core.MessageBus
	Ledger          core.Ledger
	Network         core.Network

	Cfg *configuration.LogicRunner

	Pulse core.Pulse // pulse info for this bind
	// contains filtered or unexported fields
}

LogicRunner is a general interface of contract executor

func NewLogicRunner added in v0.0.3

func NewLogicRunner(cfg *configuration.LogicRunner) (*LogicRunner, error)

NewLogicRunner is constructor for LogicRunner

func (*LogicRunner) Execute added in v0.0.3

func (lr *LogicRunner) Execute(ctx core.Context, inmsg core.Message) (core.Reply, error)

Execute runs a method on an object, ATM just thin proxy to `GoPlugin.Exec`

func (*LogicRunner) ExecutorResults added in v0.6.0

func (lr *LogicRunner) ExecutorResults(ctx core.Context, inmsg core.Message) (core.Reply, error)

func (*LogicRunner) GetConsensus added in v0.6.1

func (lr *LogicRunner) GetConsensus(r Ref) (*Consensus, bool)

func (*LogicRunner) GetExecutor added in v0.0.3

GetExecutor returns an executor for the `MachineType` if it was registered (`RegisterExecutor`), returns error otherwise

func (*LogicRunner) OnPulse added in v0.4.0

func (lr *LogicRunner) OnPulse(pulse core.Pulse) error

func (*LogicRunner) ProcessValidationResults added in v0.6.0

func (lr *LogicRunner) ProcessValidationResults(ctx core.Context, inmsg core.Message) (core.Reply, error)

func (*LogicRunner) RegisterExecutor added in v0.0.3

func (lr *LogicRunner) RegisterExecutor(t core.MachineType, e core.MachineLogicExecutor) error

RegisterExecutor registers an executor for particular `MachineType`

func (*LogicRunner) Start

func (lr *LogicRunner) Start(c core.Components) error

Start starts logic runner component

func (*LogicRunner) Stop

func (lr *LogicRunner) Stop() error

Stop stops logic runner component and its executors

func (*LogicRunner) UpsertExecution added in v0.6.1

func (lr *LogicRunner) UpsertExecution(ref Ref) *ExecutionState

func (*LogicRunner) Validate added in v0.5.0

func (lr *LogicRunner) Validate(ref Ref, p core.Pulse, cr []core.CaseRecord) (int, error)

func (*LogicRunner) ValidateCaseBind added in v0.6.0

func (lr *LogicRunner) ValidateCaseBind(ctx core.Context, inmsg core.Message) (core.Reply, error)

type RPC added in v0.4.0

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

RPC is a RPC interface for runner to use for various tasks, e.g. code fetching

func StartRPC added in v0.4.0

func StartRPC(lr *LogicRunner) *RPC

StartRPC starts RPC server for isolated executors to use

func (*RPC) DeactivateObject added in v0.6.0

func (gpr *RPC) DeactivateObject(req rpctypes.UpDeactivateObjectReq, rep *rpctypes.UpDeactivateObjectResp) error

DeactivateObject is an RPC saving data as memory of a contract as child a parent

func (*RPC) GetCode added in v0.4.0

func (gpr *RPC) GetCode(req rpctypes.UpGetCodeReq, reply *rpctypes.UpGetCodeResp) error

GetCode is an RPC retrieving a code by its reference

func (*RPC) GetDelegate added in v0.4.0

func (gpr *RPC) GetDelegate(req rpctypes.UpGetDelegateReq, rep *rpctypes.UpGetDelegateResp) error

GetDelegate is an RPC saving data as memory of a contract as child a parent

func (*RPC) GetObjChildren added in v0.4.0

func (gpr *RPC) GetObjChildren(req rpctypes.UpGetObjChildrenReq, rep *rpctypes.UpGetObjChildrenResp) error

GetObjChildren is an RPC returns set of object children

func (*RPC) RouteCall added in v0.4.0

func (gpr *RPC) RouteCall(req rpctypes.UpRouteReq, rep *rpctypes.UpRouteResp) error

RouteCall routes call from a contract to a contract through event bus.

func (*RPC) SaveAsChild added in v0.4.0

func (gpr *RPC) SaveAsChild(req rpctypes.UpSaveAsChildReq, rep *rpctypes.UpSaveAsChildResp) error

SaveAsChild is an RPC saving data as memory of a contract as child a parent

func (*RPC) SaveAsDelegate added in v0.4.0

func (gpr *RPC) SaveAsDelegate(req rpctypes.UpSaveAsDelegateReq, rep *rpctypes.UpSaveAsDelegateResp) error

SaveAsDelegate is an RPC saving data as memory of a contract as child a parent

type Ref added in v0.6.0

type Ref = core.RecordRef

type ValidationBehaviour added in v0.5.0

type ValidationBehaviour interface {
	Begin(refs Ref, record core.CaseRecord)
	End(refs Ref, record core.CaseRecord)
	ModifyContext(ctx *core.LogicCallContext)
	NeedSave() bool
	RegisterRequest(m message.IBaseLogicMessage) (*Ref, error)
}

ValidationBehaviour is a special object that responsible for validation behavior of other methods.

type ValidationChecker added in v0.5.0

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

func (ValidationChecker) Begin added in v0.5.0

func (vb ValidationChecker) Begin(refs Ref, record core.CaseRecord)

func (ValidationChecker) End added in v0.5.0

func (vb ValidationChecker) End(refs Ref, record core.CaseRecord)

func (ValidationChecker) ModifyContext added in v0.5.0

func (vb ValidationChecker) ModifyContext(ctx *core.LogicCallContext)

func (ValidationChecker) NeedSave added in v0.5.0

func (vb ValidationChecker) NeedSave() bool

func (ValidationChecker) RegisterRequest added in v0.6.1

func (vb ValidationChecker) RegisterRequest(m message.IBaseLogicMessage) (*Ref, error)

type ValidationSaver added in v0.5.0

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

func (ValidationSaver) Begin added in v0.5.0

func (vb ValidationSaver) Begin(refs Ref, record core.CaseRecord)

func (ValidationSaver) End added in v0.5.0

func (vb ValidationSaver) End(refs Ref, record core.CaseRecord)

func (ValidationSaver) ModifyContext added in v0.5.0

func (vb ValidationSaver) ModifyContext(ctx *core.LogicCallContext)

func (ValidationSaver) NeedSave added in v0.5.0

func (vb ValidationSaver) NeedSave() bool

func (ValidationSaver) RegisterRequest added in v0.6.1

func (vb ValidationSaver) RegisterRequest(m message.IBaseLogicMessage) (*Ref, error)

Directories

Path Synopsis
Package builtin is implementation of builtin contracts engine
Package builtin is implementation of builtin contracts engine
Package goplugin - golang plugin in docker runner
Package goplugin - golang plugin in docker runner
foundation
Package foundation server implementation of smartcontract functions
Package foundation server implementation of smartcontract functions

Jump to

Keyboard shortcuts

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