nodepart

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Sep 3, 2024 License: GPL-3.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	MaxLoopTime int
}

Config is the configuration for the driver and for Node's part

type NodeMessenger

type NodeMessenger struct {
	common.Messenger
}

NodeMessenger is the messenger on Node's part of the pipe

func NewNodeMessenger

func NewNodeMessenger(reader *os.File, writer *os.File, marshalizer marshaling.Marshalizer) *NodeMessenger

NewNodeMessenger creates a new messenger

func (*NodeMessenger) ReceiveHookCallRequestOrContractResponse

func (messenger *NodeMessenger) ReceiveHookCallRequestOrContractResponse(timeout int) (common.MessageHandler, int, error)

ReceiveHookCallRequestOrContractResponse waits for any message that could arrive from VM

func (*NodeMessenger) SendContractRequest

func (messenger *NodeMessenger) SendContractRequest(request common.MessageHandler) error

SendContractRequest sends a request to VM

func (*NodeMessenger) SendHookCallResponse

func (messenger *NodeMessenger) SendHookCallResponse(response common.MessageHandler) error

SendHookCallResponse sends a hook response to VM

type NodePart

type NodePart struct {
	Messenger *NodeMessenger

	Repliers []common.MessageReplier
	// contains filtered or unexported fields
}

NodePart is the endpoint that implements the message loop on Node's side

func NewNodePart

func NewNodePart(
	input *os.File,
	output *os.File,
	blockchain vmcommon.BlockchainHook,
	config Config,
	marshalizer marshaling.Marshalizer,
) (*NodePart, error)

NewNodePart creates the Node part

func (*NodePart) SendStopSignal

func (part *NodePart) SendStopSignal() error

SendStopSignal sends a stop signal to VM Should only be used for tests!

func (*NodePart) StartLoop

func (part *NodePart) StartLoop(request common.MessageHandler) (common.MessageHandler, error)

StartLoop runs the main loop

type ParentLogsPart

type ParentLogsPart interface {
	StartLoop(childStdout io.Reader, childStderr io.Reader) error
	StopLoop()
}

ParentLogsPart defines the interface for the Node's part of the logging dialogue

type VMDriver

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

VMDriver manages the execution of the VM process

func NewVMDriver

func NewVMDriver(
	blockchainHook vmcommon.BlockchainHook,
	vmArguments common.VMArguments,
	config Config,
) (*VMDriver, error)

NewVMDriver creates a new driver

func (*VMDriver) Close

func (driver *VMDriver) Close() error

Close stops VM

func (*VMDriver) DiagnoseWait

func (driver *VMDriver) DiagnoseWait(milliseconds uint32) error

DiagnoseWait sends a diagnose message to VM

func (*VMDriver) GasScheduleChange

func (driver *VMDriver) GasScheduleChange(newGasSchedule map[string]map[string]uint64)

GasScheduleChange sends a "gas change" request to VM and waits for the output

func (*VMDriver) GetVersion

func (driver *VMDriver) GetVersion() string

GetVersion gets the VM version

func (*VMDriver) IsClosed

func (driver *VMDriver) IsClosed() bool

IsClosed checks whether the VM process is closed

func (*VMDriver) IsInterfaceNil

func (driver *VMDriver) IsInterfaceNil() bool

IsInterfaceNil returns true if there is no value under the interface

func (*VMDriver) RestartVMIfNecessary

func (driver *VMDriver) RestartVMIfNecessary() error

RestartVMIfNecessary restarts VM if the process is closed

func (*VMDriver) RunSmartContractCall

func (driver *VMDriver) RunSmartContractCall(input *vmcommon.ContractCallInput) (*vmcommon.VMOutput, error)

RunSmartContractCall sends an execution request to VM and waits for the output

func (*VMDriver) RunSmartContractCreate

func (driver *VMDriver) RunSmartContractCreate(input *vmcommon.ContractCreateInput) (*vmcommon.VMOutput, error)

RunSmartContractCreate sends a deploy request to VM and waits for the output

Jump to

Keyboard shortcuts

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