resourceprovider

package
v0.0.0-...-3ac8fd0 Latest Latest
Warning

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

Go to latest
Published: Feb 27, 2024 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const CONTROL_LOOP_INTERVAL = 10 * time.Second

the background "even if we have not heard of an event" loop i.e. things will not wait 10 seconds - the control loop reacts to events in the system - this 10 second background loop is just for in case we miss any events

Variables

This section is empty.

Functions

This section is empty.

Types

type ResourceProvider

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

func NewResourceProvider

func NewResourceProvider(
	options ResourceProviderOptions,
	web3SDK *web3.Web3SDK,
	executor executor.Executor,
) (*ResourceProvider, error)

func (*ResourceProvider) Start

func (resourceProvider *ResourceProvider) Start(ctx context.Context, cm *system.CleanupManager) chan error

type ResourceProviderController

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

func NewResourceProviderController

func NewResourceProviderController(
	options ResourceProviderOptions,
	web3SDK *web3.Web3SDK,
	executor executor.Executor,
) (*ResourceProviderController, error)

func (*ResourceProviderController) Start

func (controller *ResourceProviderController) Start(ctx context.Context, cm *system.CleanupManager) chan error

type ResourceProviderOfferOptions

type ResourceProviderOfferOptions struct {
	// if we are configuring a single machine then
	// these values are populated by the flags
	OfferSpec data.MachineSpec
	// we can dupliate the single spec to create a list of specs
	OfferCount int
	// this represents how many machines we will keep
	// offering to the network
	// we can configure this with a config file
	// to start with we will just add --cpu --gpu and --ram flags
	// to the resource provider CLI which constrains them to a single machine
	Specs []data.MachineSpec
	// the list of modules we are willing to run
	// an empty list means anything
	Modules []string

	// this will normally be FixedPrice for RP's
	Mode data.PricingMode

	// the default pricing for this resource provider
	// for all modules that don't have a specific price
	DefaultPricing  data.DealPricing
	DefaultTimeouts data.DealTimeouts

	// allow different pricing for different modules
	ModulePricing  map[string]data.DealPricing
	ModuleTimeouts map[string]data.DealTimeouts

	// which mediators and directories this RP will trust
	Services data.ServiceConfig
}

this configures the resource offers we will keep track of

type ResourceProviderOptions

type ResourceProviderOptions struct {
	Bacalhau bacalhau.BacalhauExecutorOptions
	Offers   ResourceProviderOfferOptions
	Web3     web3.Web3Options
}

Jump to

Keyboard shortcuts

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