plugins

package
v2.1.0-mercury-20230509 Latest Latest
Warning

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

Go to latest
Published: May 9, 2023 License: MIT Imports: 7 Imported by: 1

README

LOOP Plugins

⚠ Experimental ⚠

This directory supports Local-Out-Of-Process (LOOP) Plugins, an alternative node runtime where some systems execute in separate processes, plug-in via github.com/hashicorp/go-plugin, and communicate via GRPC.

There are currently two kinds of plugins, and one implementation of each: a Solana Relayer plugin, and a Median Reporting plugin. The cmd directory contains their package mains for now. These can be built via make install-solana and make install-median.

How to use

chainlink.Dockerfile extends the regular core/chainlink.Dockerfile to include the plugin binaries, and enables support by setting CL_SOLANA_CMD and CL_MEDIAN_CMD. Either plugin can be disabled by un-setting the environment variable, which will revert to the original in-process runtime. Images built from this Dockerfile can otherwise be used normally, provided that the pre-requisites have been met.

Pre-requisites
Timeouts

LOOPPs communicate over GRPC, which always includes a context.Context and requires realistic timeouts. Placeholder/dummy values (e.g. MaxDurationQuery = 0) will not work and must be updated to realistic values.

Prometheus

TODO how to preserve metrics https://smartcontract-it.atlassian.net/browse/BCF-2202

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewLogger

func NewLogger(cfg EnvConfig) (logger.Logger, func())

func SetEnvConfig

func SetEnvConfig(cmd *exec.Cmd, cfg EnvConfig)

Types

type EnvConfig

type EnvConfig interface {
	LogLevel() zapcore.Level
	JSONConsole() bool
	LogUnixTimestamps() bool
}

func GetEnvConfig

func GetEnvConfig() (EnvConfig, error)

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

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