rpcchainvm

package
v0.1.3 Latest Latest
Warning

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

Go to latest
Published: Aug 10, 2023 License: BSD-3-Clause Imports: 56 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// Handshake is a common handshake that is shared by plugin and host.
	Handshake = plugin.HandshakeConfig{
		ProtocolVersion:  version.RPCChainVMProtocol,
		MagicCookieKey:   "VM_PLUGIN",
		MagicCookieValue: "dynamic",
	}

	// PluginMap is the map of plugins we can dispense.
	PluginMap = map[string]plugin.Plugin{
		"vm": &vmPlugin{},
	}
)

Functions

func New

func New(vm block.ChainVM) plugin.Plugin

New will be called by the server side of the plugin to pass into the server side PluginMap for dispatching.

func NewFactory

func NewFactory(path string, processTracker resource.ProcessTracker) vms.Factory

func Serve

func Serve(vm block.ChainVM)

Serve serves a ChainVM plugin using sane gRPC server defaults.

Types

type VMClient

type VMClient struct {
	*chain.State
	// contains filtered or unexported fields
}

VMClient is an implementation of a VM that talks over RPC.

func NewClient

func NewClient(client vmpb.VMClient) *VMClient

NewClient returns a VM connected to a remote VM

func (*VMClient) AppGossip

func (vm *VMClient) AppGossip(ctx context.Context, nodeID ids.NodeID, msg []byte) error

func (*VMClient) AppRequest

func (vm *VMClient) AppRequest(ctx context.Context, nodeID ids.NodeID, requestID uint32, deadline time.Time, request []byte) error

func (*VMClient) AppRequestFailed

func (vm *VMClient) AppRequestFailed(ctx context.Context, nodeID ids.NodeID, requestID uint32) error

func (*VMClient) AppResponse

func (vm *VMClient) AppResponse(ctx context.Context, nodeID ids.NodeID, requestID uint32, response []byte) error

func (*VMClient) BatchedParseBlock

func (vm *VMClient) BatchedParseBlock(ctx context.Context, blksBytes [][]byte) ([]snowman.Block, error)

func (*VMClient) Connected

func (vm *VMClient) Connected(ctx context.Context, nodeID ids.NodeID, nodeVersion *version.Application) error

func (*VMClient) CreateHandlers

func (vm *VMClient) CreateHandlers(ctx context.Context) (map[string]*common.HTTPHandler, error)

func (*VMClient) CreateStaticHandlers

func (vm *VMClient) CreateStaticHandlers(ctx context.Context) (map[string]*common.HTTPHandler, error)

func (*VMClient) CrossChainAppRequest

func (vm *VMClient) CrossChainAppRequest(ctx context.Context, chainID ids.ID, requestID uint32, deadline time.Time, request []byte) error

func (*VMClient) CrossChainAppRequestFailed

func (vm *VMClient) CrossChainAppRequestFailed(ctx context.Context, chainID ids.ID, requestID uint32) error

func (*VMClient) CrossChainAppResponse

func (vm *VMClient) CrossChainAppResponse(ctx context.Context, chainID ids.ID, requestID uint32, response []byte) error

func (*VMClient) Disconnected

func (vm *VMClient) Disconnected(ctx context.Context, nodeID ids.NodeID) error

func (*VMClient) Gather

func (vm *VMClient) Gather() ([]*dto.MetricFamily, error)

func (*VMClient) GetAncestors

func (vm *VMClient) GetAncestors(
	ctx context.Context,
	blkID ids.ID,
	maxBlocksNum int,
	maxBlocksSize int,
	maxBlocksRetrivalTime time.Duration,
) ([][]byte, error)

func (*VMClient) GetBlockIDAtHeight

func (vm *VMClient) GetBlockIDAtHeight(ctx context.Context, height uint64) (ids.ID, error)

func (*VMClient) GetLastStateSummary

func (vm *VMClient) GetLastStateSummary(ctx context.Context) (block.StateSummary, error)

func (*VMClient) GetOngoingSyncStateSummary

func (vm *VMClient) GetOngoingSyncStateSummary(ctx context.Context) (block.StateSummary, error)

func (*VMClient) GetStateSummary

func (vm *VMClient) GetStateSummary(ctx context.Context, summaryHeight uint64) (block.StateSummary, error)

func (*VMClient) HealthCheck

func (vm *VMClient) HealthCheck(ctx context.Context) (interface{}, error)

func (*VMClient) Initialize

func (vm *VMClient) Initialize(
	ctx context.Context,
	chainCtx *snow.Context,
	dbManager manager.Manager,
	genesisBytes []byte,
	upgradeBytes []byte,
	configBytes []byte,
	toEngine chan<- common.Message,
	fxs []*common.Fx,
	appSender common.AppSender,
) error

func (*VMClient) ParseStateSummary

func (vm *VMClient) ParseStateSummary(ctx context.Context, summaryBytes []byte) (block.StateSummary, error)

func (*VMClient) SetPreference

func (vm *VMClient) SetPreference(ctx context.Context, blkID ids.ID) error

func (*VMClient) SetProcess

func (vm *VMClient) SetProcess(ctx *snow.Context, proc *plugin.Client, processTracker resource.ProcessTracker)

SetProcess gives ownership of the server process to the client.

func (*VMClient) SetState

func (vm *VMClient) SetState(ctx context.Context, state snow.State) error

func (*VMClient) Shutdown

func (vm *VMClient) Shutdown(ctx context.Context) error

func (*VMClient) StateSyncEnabled

func (vm *VMClient) StateSyncEnabled(ctx context.Context) (bool, error)

func (*VMClient) VerifyHeightIndex

func (vm *VMClient) VerifyHeightIndex(ctx context.Context) error

func (*VMClient) Version

func (vm *VMClient) Version(ctx context.Context) (string, error)

type VMServer

type VMServer struct {
	vmpb.UnsafeVMServer
	// contains filtered or unexported fields
}

VMServer is a VM that is managed over RPC.

func NewServer

func NewServer(vm block.ChainVM) *VMServer

NewServer returns a vm instance connected to a remote vm instance

func (*VMServer) AppGossip

func (vm *VMServer) AppGossip(ctx context.Context, req *vmpb.AppGossipMsg) (*emptypb.Empty, error)

func (*VMServer) AppRequest

func (vm *VMServer) AppRequest(ctx context.Context, req *vmpb.AppRequestMsg) (*emptypb.Empty, error)

func (*VMServer) AppRequestFailed

func (vm *VMServer) AppRequestFailed(ctx context.Context, req *vmpb.AppRequestFailedMsg) (*emptypb.Empty, error)

func (*VMServer) AppResponse

func (vm *VMServer) AppResponse(ctx context.Context, req *vmpb.AppResponseMsg) (*emptypb.Empty, error)

func (*VMServer) BatchedParseBlock

func (vm *VMServer) BatchedParseBlock(
	ctx context.Context,
	req *vmpb.BatchedParseBlockRequest,
) (*vmpb.BatchedParseBlockResponse, error)

func (*VMServer) BlockAccept

func (vm *VMServer) BlockAccept(ctx context.Context, req *vmpb.BlockAcceptRequest) (*emptypb.Empty, error)

func (*VMServer) BlockReject

func (vm *VMServer) BlockReject(ctx context.Context, req *vmpb.BlockRejectRequest) (*emptypb.Empty, error)

func (*VMServer) BlockVerify

func (*VMServer) BuildBlock

If the underlying VM doesn't actually implement this method, its [BuildBlock] method will be called instead.

func (*VMServer) Connected

func (vm *VMServer) Connected(ctx context.Context, req *vmpb.ConnectedRequest) (*emptypb.Empty, error)

func (*VMServer) CreateHandlers

func (vm *VMServer) CreateHandlers(ctx context.Context, _ *emptypb.Empty) (*vmpb.CreateHandlersResponse, error)

func (*VMServer) CreateStaticHandlers

func (vm *VMServer) CreateStaticHandlers(ctx context.Context, _ *emptypb.Empty) (*vmpb.CreateStaticHandlersResponse, error)

func (*VMServer) CrossChainAppRequest

func (vm *VMServer) CrossChainAppRequest(ctx context.Context, msg *vmpb.CrossChainAppRequestMsg) (*emptypb.Empty, error)

func (*VMServer) CrossChainAppRequestFailed

func (vm *VMServer) CrossChainAppRequestFailed(ctx context.Context, msg *vmpb.CrossChainAppRequestFailedMsg) (*emptypb.Empty, error)

func (*VMServer) CrossChainAppResponse

func (vm *VMServer) CrossChainAppResponse(ctx context.Context, msg *vmpb.CrossChainAppResponseMsg) (*emptypb.Empty, error)

func (*VMServer) Disconnected

func (vm *VMServer) Disconnected(ctx context.Context, req *vmpb.DisconnectedRequest) (*emptypb.Empty, error)

func (*VMServer) Gather

func (*VMServer) GetAncestors

func (*VMServer) GetBlock

func (vm *VMServer) GetBlock(ctx context.Context, req *vmpb.GetBlockRequest) (*vmpb.GetBlockResponse, error)

func (*VMServer) GetBlockIDAtHeight

func (*VMServer) GetLastStateSummary

func (vm *VMServer) GetLastStateSummary(ctx context.Context, _ *emptypb.Empty) (*vmpb.GetLastStateSummaryResponse, error)

func (*VMServer) GetOngoingSyncStateSummary

func (vm *VMServer) GetOngoingSyncStateSummary(
	ctx context.Context,
	_ *emptypb.Empty,
) (*vmpb.GetOngoingSyncStateSummaryResponse, error)

func (*VMServer) GetStateSummary

func (vm *VMServer) GetStateSummary(
	ctx context.Context,
	req *vmpb.GetStateSummaryRequest,
) (*vmpb.GetStateSummaryResponse, error)

func (*VMServer) Health

func (vm *VMServer) Health(ctx context.Context, _ *emptypb.Empty) (*vmpb.HealthResponse, error)

func (*VMServer) Initialize

func (*VMServer) ParseBlock

func (*VMServer) ParseStateSummary

func (vm *VMServer) ParseStateSummary(
	ctx context.Context,
	req *vmpb.ParseStateSummaryRequest,
) (*vmpb.ParseStateSummaryResponse, error)

func (*VMServer) SetPreference

func (vm *VMServer) SetPreference(ctx context.Context, req *vmpb.SetPreferenceRequest) (*emptypb.Empty, error)

func (*VMServer) SetState

func (vm *VMServer) SetState(ctx context.Context, stateReq *vmpb.SetStateRequest) (*vmpb.SetStateResponse, error)

func (*VMServer) Shutdown

func (vm *VMServer) Shutdown(ctx context.Context, _ *emptypb.Empty) (*emptypb.Empty, error)

func (*VMServer) StateSummaryAccept

func (*VMServer) StateSyncEnabled

func (vm *VMServer) StateSyncEnabled(ctx context.Context, _ *emptypb.Empty) (*vmpb.StateSyncEnabledResponse, error)

func (*VMServer) VerifyHeightIndex

func (vm *VMServer) VerifyHeightIndex(ctx context.Context, _ *emptypb.Empty) (*vmpb.VerifyHeightIndexResponse, error)

func (*VMServer) Version

func (vm *VMServer) Version(ctx context.Context, _ *emptypb.Empty) (*vmpb.VersionResponse, error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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