cmd

package
v0.0.0-...-365054f Latest Latest
Warning

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

Go to latest
Published: May 16, 2024 License: GPL-3.0 Imports: 94 Imported by: 4

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RegisterSignalCallback

func RegisterSignalCallback(callback SignalCallback)

RegisterSignalCallback registers given callback to call on SIGTERM and SIGHUP interrupts

Types

type Dependencies

type Dependencies struct {
	Node *Node

	HTTPTransport *http.Transport
	HTTPClient    *requests.HTTPClient

	NetworkDefinition metadata.NetworkDefinition
	MysteriumAPI      *mysterium.MysteriumAPI
	PricingHelper     *pingpong.Pricer
	EtherClientL1     *paymentClient.EthMultiClient
	EtherClientL2     *paymentClient.EthMultiClient

	SorterClientL1 *psort.MultiClientSorter
	SorterClientL2 *psort.MultiClientSorter

	EtherClients []*paymentClient.ReconnectableEthClient

	BrokerConnector  *nats.BrokerConnector
	BrokerConnection nats.Connection

	NATService       nat.NATService
	NATProber        natprobe.NATProber
	Storage          *boltdb.Bolt
	Keystore         *identity.Keystore
	IdentityManager  identity.Manager
	SignerFactory    identity.SignerFactory
	IdentityRegistry registry.IdentityRegistry
	IdentitySelector identity_selector.Handler
	IdentityMover    *identity.Mover
	FreeRegistrar    *registry.FreeRegistrar

	DiscoveryFactory    service.DiscoveryFactory
	ProposalRepository  *discovery.PricedServiceProposalRepository
	FilterPresetStorage *proposal.FilterPresetStorage
	DiscoveryWorker     discovery.Worker

	QualityClient *quality.MysteriumMORQA

	IPResolver       ip.Resolver
	LocationResolver *location.Cache

	PolicyOracle   *localcopy.Oracle
	PolicyProvider policy.Provider

	SessionStorage                   *consumer_session.Storage
	SessionConnectivityStatusStorage connectivity.StatusStorage

	EventBus eventbus.EventBus

	MultiConnectionManager connection.MultiManager
	ConnectionRegistry     *connection.Registry

	ServicesManager *service.Manager
	ServiceRegistry *service.Registry
	ServiceSessions *service.SessionPool
	ServiceFirewall firewall.IncomingTrafficFirewall

	WireguardClientFactory *endpoint.WgClientFactory

	PortPool   *port.Pool
	PortMapper mapping.PortMapper

	StateKeeper *state.Keeper

	P2PDialer   p2p.Dialer
	P2PListener p2p.Listener

	Authenticator    *auth.Authenticator
	JWTAuthenticator *auth.JWTAuthenticator
	UIServer         UIServer
	Transactor       *registry.Transactor
	Affiliator       *registry.Affiliator
	BCHelper         *paymentClient.MultichainBlockchainClient
	SSOMystnodes     *sso.Mystnodes

	LogCollector *logconfig.Collector
	Reporter     *feedback.Reporter

	BeneficiarySaver    *beneficiary.Saver
	BeneficiaryProvider *beneficiary.Provider

	ProviderInvoiceStorage   *pingpong.ProviderInvoiceStorage
	ConsumerTotalsStorage    *pingpong.ConsumerTotalsStorage
	HermesPromiseStorage     *pingpong.HermesPromiseStorage
	ConsumerBalanceTracker   *pingpong.ConsumerBalanceTracker
	HermesChannelRepository  *pingpong.HermesChannelRepository
	HermesPromiseSettler     pingpong.HermesPromiseSettler
	HermesURLGetter          *pingpong.HermesURLGetter
	HermesCaller             *pingpong.HermesCaller
	HermesPromiseHandler     *pingpong.HermesPromiseHandler
	SettlementHistoryStorage *pingpong.SettlementHistoryStorage
	AddressProvider          *paymentClient.MultiChainAddressProvider
	HermesStatusChecker      *pingpong.HermesStatusChecker
	HermesMigrator           *migration.HermesMigrator

	MMN *mmn.MMN

	PilvytisAPI         *pilvytis.API
	PilvytisTracker     *pilvytis.StatusTracker
	PilvytisOrderIssuer *pilvytis.OrderIssuer

	ObserverAPI *observer.API

	ResidentCountry *identity.ResidentCountry

	BeneficiaryAddressStorage beneficiary.BeneficiaryStorage
	NodeStatusTracker         *monitoring.StatusTracker
	NodeStatsTracker          *node.StatsTracker
	// contains filtered or unexported fields
}

Dependencies is DI container for top level components which is reused in several places

func (*Dependencies) AllowURLAccess

func (di *Dependencies) AllowURLAccess(servers ...string) error

AllowURLAccess allows the requested addresses to be served when the tunnel is active.

func (*Dependencies) Bootstrap

func (di *Dependencies) Bootstrap(nodeOptions node.Options) error

Bootstrap initiates all container dependencies

func (*Dependencies) Shutdown

func (di *Dependencies) Shutdown() (err error)

Shutdown stops container

type NATPinger

type NATPinger interface {
	Stop()
}

NATPinger allows to send nat pings as well as stop it

type Node

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

Node represent entrypoint for Mysterium node with top level components

func NewNode

func NewNode(connectionManager connection.MultiManager, tequilapiServer tequilapi.APIServer, publisher Publisher, uiServer UIServer, notifier SleepNotifier) *Node

NewNode function creates new Mysterium node by given options

func (*Node) Kill

func (node *Node) Kill() error

Kill stops Mysterium node

func (*Node) Start

func (node *Node) Start() error

Start starts Mysterium node (Tequilapi service, fetches location)

func (*Node) Wait

func (node *Node) Wait() error

Wait blocks until Mysterium node is stopped

type Publisher

type Publisher interface {
	Publish(topic string, data interface{})
}

Publisher is responsible for publishing given events

type SignalCallback

type SignalCallback func()

SignalCallback is invoked when process receives signals defined below

type SleepNotifier

type SleepNotifier interface {
	Start()
	Stop()
}

SleepNotifier notifies node about pending sleep events

type UIServer

type UIServer interface {
	Serve()
	SwitchUI(path string)
	Stop()
}

UIServer represents our web server

Directories

Path Synopsis
commands
cli

Jump to

Keyboard shortcuts

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