managed

package
v0.0.0-...-618b5bf Latest Latest
Warning

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

Go to latest
Published: Aug 10, 2026 License: MIT Imports: 31 Imported by: 0

Documentation

Overview

Package managed provides "managed" versions of Oracle and Bootstrapper that perform garbage collection, track on-chain configuration changes, serializes messages to binary, etc...

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CopyAllTreeSyncChunksFromPrevInstance

func CopyAllTreeSyncChunksFromPrevInstance(
	ctx context.Context,
	logger loghelper.LoggerWithContext,
	publicConfig ocr3_1config.PublicConfig,
	prevSeqNr uint64,
	prevStateRootDigest protocol.StateRootDigest,
	prevTxn protocol.KeyValueDatabaseReadTransaction,
	nextSemanticKeyValueDatabase protocol.KeyValueDatabase,
) error

func FindRoundedUpSnapshot

func FindRoundedUpSnapshot(
	logger loghelper.LoggerWithContext,
	prevRegisterer prometheus.Registerer,
	prevKeyValueDatabase ocr3_1types.KeyValueDatabase,
	prevConfigDigest types.ConfigDigest,
	prevSeqNr uint64,
) (jmt.Version, protocol.StateRootDigest, error)

Returns the snapshot/tree root version and the digest of the tree root at that version, for the minimum snapshot version that is expected to cover prevSeqNr, without knowing the snapshot interval. The caller is responsible for checking that indeed the state root is valid and covers up to and including prevSeqNr but no further sequence numbers.

func RunManagedBootstrapper

func RunManagedBootstrapper(
	ctx context.Context,

	bootstrapperFactory types.BootstrapperFactory,
	v2bootstrappers []commontypes.BootstrapperLocator,
	contractConfigTracker types.ContractConfigTracker,
	database types.ConfigDatabase,
	localConfig types.LocalConfig,
	logger loghelper.LoggerWithContext,
	offchainConfigDigester types.OffchainConfigDigester,
)

RunManagedBootstrapper runs a "managed" bootstrapper. It handles configuration updates on the contract.

func RunManagedMercuryOracle

func RunManagedMercuryOracle(
	ctx context.Context,

	v2bootstrappers []commontypes.BootstrapperLocator,
	configTracker types.ContractConfigTracker,
	contractTransmitter types.ContractTransmitter,
	database ocr3types.Database,
	localConfig types.LocalConfig,
	logger loghelper.LoggerWithContext,
	metricsRegisterer prometheus.Registerer,
	monitoringEndpoint commontypes.MonitoringEndpoint,
	netEndpointFactory types.BinaryNetworkEndpointFactory,
	offchainConfigDigester types.OffchainConfigDigester,
	offchainKeyring types.OffchainKeyring,
	onchainKeyring types.OnchainKeyring,
	mercuryPluginFactory ocr3types.MercuryPluginFactory,
)

RunManagedMercuryOracle runs a "managed" version of protocol.RunOracle. It handles setting up telemetry, garbage collection, configuration updates, translating from commontypes.BinaryNetworkEndpoint to protocol.NetworkEndpoint, and creation/teardown of reporting plugins.

func RunManagedOCR2Oracle

func RunManagedOCR2Oracle(
	ctx context.Context,

	v2bootstrappers []commontypes.BootstrapperLocator,
	configTracker types.ContractConfigTracker,
	contractTransmitter types.ContractTransmitter,
	database types.Database,
	localConfig types.LocalConfig,
	logger loghelper.LoggerWithContext,
	metricsRegisterer prometheus.Registerer,
	monitoringEndpoint commontypes.MonitoringEndpoint,
	netEndpointFactory types.BinaryNetworkEndpointFactory,
	offchainConfigDigester types.OffchainConfigDigester,
	offchainKeyring types.OffchainKeyring,
	onchainKeyring types.OnchainKeyring,
	reportingPluginFactory types.ReportingPluginFactory,
)

RunManagedOCR2Oracle runs a "managed" version of protocol.RunOracle. It handles setting up telemetry, garbage collection, configuration updates, translating from commontypes.BinaryNetworkEndpoint to protocol.NetworkEndpoint, and creation/teardown of reporting plugins.

func RunManagedOCR3Oracle

func RunManagedOCR3Oracle[RI any](
	ctx context.Context,

	v2bootstrappers []commontypes.BootstrapperLocator,
	configTracker types.ContractConfigTracker,
	contractTransmitter ocr3types.ContractTransmitter[RI],
	database ocr3types.Database,
	localConfig types.LocalConfig,
	logger loghelper.LoggerWithContext,
	metricsRegisterer prometheus.Registerer,
	monitoringEndpoint commontypes.MonitoringEndpoint,
	netEndpointFactory types.BinaryNetworkEndpointFactory,
	offchainConfigDigester types.OffchainConfigDigester,
	offchainKeyring types.OffchainKeyring,
	onchainKeyring ocr3types.OnchainKeyring2[RI],
	reportingPluginFactory ocr3types.ReportingPluginFactory[RI],
)

RunManagedOCR3Oracle runs a "managed" version of protocol.RunOracle. It handles setting up telemetry, garbage collection, configuration updates, translating from commontypes.BinaryNetworkEndpoint to protocol.NetworkEndpoint, and creation/teardown of reporting plugins.

func RunManagedOCR3_1Oracle

func RunManagedOCR3_1Oracle[RI any](
	ctx context.Context,

	v2bootstrappers []commontypes.BootstrapperLocator,
	configTracker types.ContractConfigTracker,
	contractTransmitter ocr3types.ContractTransmitter[RI],
	database ocr3_1types.Database,
	keyValueDatabaseFactory ocr3_1types.KeyValueDatabaseFactory,
	localConfig types.LocalConfig,
	logger loghelper.LoggerWithContext,
	metricsRegisterer prometheus.Registerer,
	monitoringEndpoint commontypes.MonitoringEndpoint,
	messageNetEndpointFactory types.BinaryNetworkEndpoint2Factory,
	offchainConfigDigester types.OffchainConfigDigester,
	offchainKeyring types.OffchainKeyring,
	onchainKeyring ocr3types.OnchainKeyring2[RI],
	reportingPluginFactory ocr3_1types.ReportingPluginFactory[RI],
)

RunManagedOCR3_1Oracle runs a "managed" version of protocol.RunOracle. It handles setting up telemetry, garbage collection, configuration updates, translating from types.BinaryNetworkEndpoint2 to protocol.NetworkEndpoint, and creation/teardown of reporting plugins.

func TrackConfig

func TrackConfig(
	ctx context.Context,

	configDigester prefixCheckConfigDigester,
	configTracker types.ContractConfigTracker,
	initialConfigDigest types.ConfigDigest,
	localConfig types.LocalConfig,
	logger loghelper.LoggerWithContext,

	chChanges chan<- types.ContractConfig,
)

Uses configTracker to track the latest configuration. When a new configuration is detected, it is validated with configDigester and sent to chChanges.

Types

This section is empty.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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