transport

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: May 23, 2022 License: GPL-3.0 Imports: 12 Imported by: 0

Documentation

Overview

Package transport is a generated GoMock package.

Package transport is a generated GoMock package.

Index

Constants

View Source
const NutsCommServiceType = "NutsComm"

NutsCommServiceType holds the DID document service type that specifies the Nuts network service address of the Nuts node.

Variables

This section is empty.

Functions

func ParseAddress

func ParseAddress(input string) (string, error)

ParseAddress parses the given input string to a gRPC target address. The input must include the protocol scheme (e.g. grpc://).

Types

type ConnectionManager

type ConnectionManager interface {
	core.Diagnosable

	// Connect attempts to make an outbound connection to the given peer if it's not already connected.
	// acceptNonAuthenticated indicates if the connection must be kept even if the other end can't be authenticated.
	// The connection can then still be used for non-authenticated purposes.
	Connect(peerAddress string, option ...ConnectionOption)

	// Peers returns a slice containing the peers that are currently connected.
	Peers() []Peer

	// RegisterObserver allows to register a callback function for stream state changes
	RegisterObserver(callback StreamStateObserverFunc)

	// Start instructs the ConnectionManager to start accepting connections and prepare to make outbound connections.
	Start() error

	// Stop shuts down the connections made by the ConnectionManager.
	Stop()
}

ConnectionManager manages the connections to peers, making outbound connections if required. It also determines the network layout.

type ConnectionOption

type ConnectionOption func(peer *Peer)

ConnectionOption is the option function for adding options when establishing a connection through the connection manager. The options are set on the Peer

func WithUnauthenticated

func WithUnauthenticated() ConnectionOption

WithUnauthenticated is the option for allowing the connection to be unauthenticated. The node.DID authentication on a connection will always succeed. Actions that require the node.DID will fail.

type ConnectorStats

type ConnectorStats struct {
	// Address holds the target address the connector is connecting to.
	Address string
	// Attempts holds the number of times the node tried to connect to the peer.
	Attempts uint32
}

ConnectorStats holds statistics of an outbound connector.

type Diagnostics

type Diagnostics struct {
	// Uptime the uptime (time since the node started) in seconds.
	Uptime time.Duration `json:"uptime"`
	// Peers contains the peer IDs of the node's peers.
	Peers []PeerID `json:"peers"`
	// NumberOfTransactions contains the total number of transactions on the node's DAG.
	NumberOfTransactions uint32 `json:"transactionNum"`
	// SoftwareVersion contains an indication of the software version of the node. It's recommended to use a (Git) commit ID that uniquely resolves to a code revision, alternatively a semantic version could be used (e.g. 1.2.5).
	SoftwareVersion string `json:"softwareVersion"`
	// SoftwareID contains an indication of the vendor of the software of the node. For open source implementations it's recommended to specify URL to the public, open source repository.
	// Proprietary implementations could specify the product's or vendor's name.
	SoftwareID string `json:"softwareID"`
}

Diagnostics contains information that is shared to this node's peers on request.

type FixedNodeDIDResolver

type FixedNodeDIDResolver struct {
	NodeDID did.DID
}

FixedNodeDIDResolver is a NodeDIDResolver that returns a preset DID.

func (FixedNodeDIDResolver) Resolve

func (f FixedNodeDIDResolver) Resolve() (did.DID, error)

Resolve returns the fixed-set node DID.

type MockConnectionManager

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

MockConnectionManager is a mock of ConnectionManager interface.

func NewMockConnectionManager

func NewMockConnectionManager(ctrl *gomock.Controller) *MockConnectionManager

NewMockConnectionManager creates a new mock instance.

func (*MockConnectionManager) Connect

func (m *MockConnectionManager) Connect(peerAddress string, option ...ConnectionOption)

Connect mocks base method.

func (*MockConnectionManager) Diagnostics

func (m *MockConnectionManager) Diagnostics() []core.DiagnosticResult

Diagnostics mocks base method.

func (*MockConnectionManager) EXPECT

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockConnectionManager) Peers

func (m *MockConnectionManager) Peers() []Peer

Peers mocks base method.

func (*MockConnectionManager) RegisterObserver

func (m *MockConnectionManager) RegisterObserver(callback StreamStateObserverFunc)

RegisterObserver mocks base method.

func (*MockConnectionManager) Start

func (m *MockConnectionManager) Start() error

Start mocks base method.

func (*MockConnectionManager) Stop

func (m *MockConnectionManager) Stop()

Stop mocks base method.

type MockConnectionManagerMockRecorder

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

MockConnectionManagerMockRecorder is the mock recorder for MockConnectionManager.

func (*MockConnectionManagerMockRecorder) Connect

func (mr *MockConnectionManagerMockRecorder) Connect(peerAddress interface{}, option ...interface{}) *gomock.Call

Connect indicates an expected call of Connect.

func (*MockConnectionManagerMockRecorder) Diagnostics

func (mr *MockConnectionManagerMockRecorder) Diagnostics() *gomock.Call

Diagnostics indicates an expected call of Diagnostics.

func (*MockConnectionManagerMockRecorder) Peers

Peers indicates an expected call of Peers.

func (*MockConnectionManagerMockRecorder) RegisterObserver

func (mr *MockConnectionManagerMockRecorder) RegisterObserver(callback interface{}) *gomock.Call

RegisterObserver indicates an expected call of RegisterObserver.

func (*MockConnectionManagerMockRecorder) Start

Start indicates an expected call of Start.

func (*MockConnectionManagerMockRecorder) Stop

Stop indicates an expected call of Stop.

type MockProtocol

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

MockProtocol is a mock of Protocol interface.

func NewMockProtocol

func NewMockProtocol(ctrl *gomock.Controller) *MockProtocol

NewMockProtocol creates a new mock instance.

func (*MockProtocol) Configure

func (m *MockProtocol) Configure(peerID PeerID) error

Configure mocks base method.

func (*MockProtocol) Diagnostics

func (m *MockProtocol) Diagnostics() []core.DiagnosticResult

Diagnostics mocks base method.

func (*MockProtocol) EXPECT

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockProtocol) PeerDiagnostics

func (m *MockProtocol) PeerDiagnostics() map[PeerID]Diagnostics

PeerDiagnostics mocks base method.

func (*MockProtocol) Start

func (m *MockProtocol) Start() error

Start mocks base method.

func (*MockProtocol) Stop

func (m *MockProtocol) Stop()

Stop mocks base method.

func (*MockProtocol) Version

func (m *MockProtocol) Version() int

Version mocks base method.

type MockProtocolMockRecorder

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

MockProtocolMockRecorder is the mock recorder for MockProtocol.

func (*MockProtocolMockRecorder) Configure

func (mr *MockProtocolMockRecorder) Configure(peerID interface{}) *gomock.Call

Configure indicates an expected call of Configure.

func (*MockProtocolMockRecorder) Diagnostics

func (mr *MockProtocolMockRecorder) Diagnostics() *gomock.Call

Diagnostics indicates an expected call of Diagnostics.

func (*MockProtocolMockRecorder) PeerDiagnostics

func (mr *MockProtocolMockRecorder) PeerDiagnostics() *gomock.Call

PeerDiagnostics indicates an expected call of PeerDiagnostics.

func (*MockProtocolMockRecorder) Start

func (mr *MockProtocolMockRecorder) Start() *gomock.Call

Start indicates an expected call of Start.

func (*MockProtocolMockRecorder) Stop

func (mr *MockProtocolMockRecorder) Stop() *gomock.Call

Stop indicates an expected call of Stop.

func (*MockProtocolMockRecorder) Version

func (mr *MockProtocolMockRecorder) Version() *gomock.Call

Version indicates an expected call of Version.

type NodeDIDResolver

type NodeDIDResolver interface {
	// Resolve tries to resolve the node DID. If it's absent, an empty DID is returned. In any other non-successful case an error is returned.
	Resolve() (did.DID, error)
}

NodeDIDResolver defines an interface for types that resolve the local node's DID, which is used to identify the node on the network.

func NewAutoNodeDIDResolver

func NewAutoNodeDIDResolver(keyResolver crypto.KeyResolver, docFinder types.DocFinder) NodeDIDResolver

NewAutoNodeDIDResolver creates a new node DID resolver that tried to look it up by matching DID documents with a NutsComm endpoint set and the private key of the local node.

type Peer

type Peer struct {
	// ID holds the unique identificator of the peer
	ID PeerID
	// Address holds the remote address of the node we're actually connected to
	Address string
	// NodeDID holds the DID that the peer uses to identify its node on the network.
	// It is only set when properly authenticated.
	NodeDID did.DID
	// AcceptUnauthenticated indicates if a connection may be made with this Peer even if the NodeDID is not set.
	AcceptUnauthenticated bool
}

Peer holds the properties of a remote node we're connected to

func (Peer) String

func (p Peer) String() string

String returns the peer as string.

type PeerID

type PeerID string

PeerID defines a peer's unique identifier.

func (PeerID) String

func (p PeerID) String() string

String returns the PeerID as string.

type Protocol

type Protocol interface {
	// Configure configures the Protocol implementation, must be called before Start().
	Configure(peerID PeerID) error
	// Start starts the Protocol implementation.
	Start() error
	// Stop stops the Protocol implementation.
	Stop()
	// Diagnostics collects and returns diagnostical information on the protocol.
	Diagnostics() []core.DiagnosticResult
	// PeerDiagnostics collects and returns diagnostical information on the peers the protocol is communicating with.
	PeerDiagnostics() map[PeerID]Diagnostics
	// Version returns the version of the protocol
	Version() int
}

Protocol is a self-contained process that can exchange network data (e.g. DAG transactions or private credentials) with other parties on the network.

type StreamState

type StreamState string

StreamState is a type for defining connection states

const (
	// StateConnected is passed to the connection observers when a stream state changed to connected
	StateConnected StreamState = "connected"
	// StateDisconnected is passed to the connection observers when a stream state changed to disconnected
	StateDisconnected StreamState = "disconnected"
)

type StreamStateObserverFunc

type StreamStateObserverFunc func(peer Peer, state StreamState, protocol Protocol)

StreamStateObserverFunc is a function that can be registered on the connection manager. If a stream state changes this callback will be called. It's called per protocol.

Directories

Path Synopsis
Package grpc is a generated GoMock package.
Package grpc is a generated GoMock package.
v1
logic
Package logic is a generated GoMock package.
Package logic is a generated GoMock package.
protobuf
Package protobuf is a generated GoMock package.
Package protobuf is a generated GoMock package.
v2
Package v2 is a generated GoMock package.
Package v2 is a generated GoMock package.
gossip
Package gossip is a generated GoMock package.
Package gossip is a generated GoMock package.

Jump to

Keyboard shortcuts

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