kernel

package
v0.0.0-...-f3cb915 Latest Latest
Warning

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

Go to latest
Published: Jun 10, 2023 License: MIT Imports: 26 Imported by: 0

Documentation

Index

Constants

View Source
const (
	INBOUND  = ConnectionIoType(1)
	OUTBOUND = ConnectionIoType(2)
)

Definiert ein oder ausgehende Verbindungestypen

Variables

This section is empty.

Functions

This section is empty.

Types

type APIConnectionLiveService

type APIConnectionLiveService interface {
	GetId() string
	Close()
}

Stellt einen Dienst dar

type APIProcessConnectionWrapper

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

Stellt den Verbindungs Wrapper dar

func (*APIProcessConnectionWrapper) AddProcessInvigoratingService

func (c *APIProcessConnectionWrapper) AddProcessInvigoratingService(new_lservice APIConnectionLiveService)

Registriert einen "Service" welcher geschlossen wird sobald die Verbindung zum Prozess getrennt wird

func (*APIProcessConnectionWrapper) Close

Schließt die Verbindung

func (*APIProcessConnectionWrapper) GetObjectId

func (c *APIProcessConnectionWrapper) GetObjectId() string

Gibt die Objekt ID aus

func (*APIProcessConnectionWrapper) IsConnected

func (c *APIProcessConnectionWrapper) IsConnected() bool

Gibt an ob die Verbindung aufgebaut ist

func (*APIProcessConnectionWrapper) Kill

func (c *APIProcessConnectionWrapper) Kill()

Signalisiert dass alle Prozesse geschlossen werden sollen

func (*APIProcessConnectionWrapper) Read

func (c *APIProcessConnectionWrapper) Read(b []byte) (int, error)

Ließt Daten aus der Verbindung

func (*APIProcessConnectionWrapper) RemoveProcessInvigoratingService

func (c *APIProcessConnectionWrapper) RemoveProcessInvigoratingService(new_lservice APIConnectionLiveService)

Entfernt einen "Service"

func (*APIProcessConnectionWrapper) Write

func (c *APIProcessConnectionWrapper) Write(b []byte) (int, error)

Schreibt Daten in die Verbindung

type ClientModule

type ClientModule interface {
	GetObjectId() string
	RegisterKernel(kernel *Kernel) error
	GetMetaDataInfo() ClientModuleMetaData
	ConnectTo(string, *btcec.PublicKey, *ProxyConfig) error
	GetProtocol() string
	Shutdown()
	Serve()
}

Stellt ein Client Modul dar

type ClientModuleMetaData

type ClientModuleMetaData struct {
}

Gibt den Datentypen an, welcher von einem Client Module zurückgegeben wird

type ConnectionIoType

type ConnectionIoType uint8

Gibt an ob es sich um eine Eingehende oder um eine Ausgehende Verbindung handelt

type ExternalModule

type ExternalModule interface {
	GetName() string
	GetVersion() uint64
}

Stellt die Module Funktionen bereit

type FirewallBaseStructure

type FirewallBaseStructure interface {
}

Stellt die Basisfunktionen einer Firewall dar

type Kernel

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

Stellt das Kernel Objekt dar

func CreateUnixKernel

func CreateUnixKernel(priv_key *btcec.PrivateKey) (*Kernel, error)

Erstellt einen UNIX Kernel

func (*Kernel) APIFetchAllRelays

func (obj *Kernel) APIFetchAllRelays() ([]apiclient.ApiRelayEntry, error)

Ruft alle Relays ab

func (*Kernel) AddNewConnection

func (obj *Kernel) AddNewConnection(relay *Relay, conn RelayConnection) error

Markiert einen Relay als Verbunden

func (*Kernel) CreateNewTempKeyPair

func (obj *Kernel) CreateNewTempKeyPair() (string, error)

Erstellt ein neues Schlüsselpaar, der Zugriff auf den Privaten Schlüssel ist nicht möglich

func (*Kernel) CreateOTKECDHKey

func (obj *Kernel) CreateOTKECDHKey(otk_id string, dest_pkey *btcec.PublicKey) (string, error)

Erstellt einen OTK ECDH Schlüssel aus einem Öffentlichen Schlüssel und der OTK-ID

func (*Kernel) DecryptOTKECDHById

func (obj *Kernel) DecryptOTKECDHById(algo utils.EncryptionAlgo, otk_id string, data []byte) ([]byte, error)

Entschlüsselt einen Datensatz mit dem OTK ECDH Schlüssel

func (*Kernel) DecryptWithPrivateRelayKey

func (obj *Kernel) DecryptWithPrivateRelayKey(cipher_data []byte) ([]byte, error)

Wird verwendet um einen Verschlüsselten Datensatz mit dem Privaten Relay Schlüssel zu enschlüsseln

func (*Kernel) DecryptedLocallyPackageToBuffer

func (obj *Kernel) DecryptedLocallyPackageToBuffer(pckge *addresspackages.SendableAddressLayerPackage) error

Entschlüsselt ein Lokales Paket und Speichert es im Puffer

func (*Kernel) DumpsRoutesForRelayByConnection

func (obj *Kernel) DumpsRoutesForRelayByConnection(conn RelayConnection) (bool, bool)

Wird verwendet um die Routen für ein Relay zu Laden

func (*Kernel) EncryptOTKECDHById

func (obj *Kernel) EncryptOTKECDHById(algo utils.EncryptionAlgo, otk_id string, data []byte) ([]byte, error)

Verschlüsselt einen Datensatz mit dem OTK ECDH Schlüssel

func (*Kernel) EncryptPlainL2PackageAndWriteByNetworkRoute

func (obj *Kernel) EncryptPlainL2PackageAndWriteByNetworkRoute(pckge *addresspackages.AddressLayerPackage) (*extra.PackageSendState, error)

Verschlüsselt ein nicht Verschlüsseltes Layer 2 Paket, Signiert es und Sendet es ins Netzwerk

func (*Kernel) EnterBytesAndSendL2PackageToNetwork

func (obj *Kernel) EnterBytesAndSendL2PackageToNetwork(protocol_type uint8, package_bytes []byte, reciver_pkey *btcec.PublicKey, please_check_instructions bool) (*extra.PackageSendState, error)

Nimmt einen Datensatz von einem Protokoll entgegen und überträgt es als Layer 2 Paket (unverschlüsselt)

func (*Kernel) EnterBytesEncryptAndSendL2PackageToNetwork

func (obj *Kernel) EnterBytesEncryptAndSendL2PackageToNetwork(protocol_type uint8, package_bytes []byte, reciver_pkey *btcec.PublicKey) (*extra.PackageSendState, error)

Nimmt einen Datensatz von einem Protokoll entgegen verschlüsselt ihn und überträgt es als Layer 2 Paket (verschlüsselt)

func (*Kernel) EnterL2Package

func (obj *Kernel) EnterL2Package(pckge *addresspackages.SendableAddressLayerPackage, conn RelayConnection) error

Nimmt eintreffende Layer 2 Pakete entgegen

func (*Kernel) EnterLocallyPackage

func (obj *Kernel) EnterLocallyPackage(pckge *addresspackages.AddressLayerPackage) error

Nimmt Lokale Pakete entgegen und verarbeitet sie

func (*Kernel) EnterPlainPCIPackage

func (obj *Kernel) EnterPlainPCIPackage(pckge *addresspackages.SendableAddressLayerPackage, conn RelayConnection)

Nimmt ein Plain PCI Paket entgegen

func (*Kernel) GetClientProtocolByName

func (obj *Kernel) GetClientProtocolByName(prot_name string) (ClientModule, error)

Gibt ein verfügabres Client Protokoll zurück

func (*Kernel) GetCurrentUTCTimeInSecondsByNTP

func (obj *Kernel) GetCurrentUTCTimeInSecondsByNTP()

Diese Funktion gibt die Aktuelle Unix Zeit in Sekunden an

func (*Kernel) GetIPBasedServersForP2PConnection

func (obj *Kernel) GetIPBasedServersForP2PConnection(res_ip string) []P2PKernelServerWithProtocol

Gibt an ob es einen IP Basierenden Server gibt

func (*Kernel) GetKernelID

func (obj *Kernel) GetKernelID() string

Gibt die KernelID aus

func (*Kernel) GetKernelProtocolById

func (obj *Kernel) GetKernelProtocolById(protocol_type uint8) (KernelTypeProtocol, error)

Gibt das Kernel Protokoll zurück

func (*Kernel) GetPublicKey

func (obj *Kernel) GetPublicKey() *btcec.PublicKey

Gibt den Öffentlichen Schlüssel des Relays aus

func (*Kernel) GetPublicTempKeyById

func (obj *Kernel) GetPublicTempKeyById(temp_key_id string) (*btcec.PublicKey, error)

Gibt einen Öffentlichen Temporären Schlüssel anhand seiner ID aus

func (*Kernel) GetRegisteredKernelTypeProtocol

func (obj *Kernel) GetRegisteredKernelTypeProtocol(tpe uint8) (KernelTypeProtocol, error)

Prüft ob es für den Typen einen bekannten Paket handler gibt

func (*Kernel) GetTrustedRelayByPublicKey

func (obj *Kernel) GetTrustedRelayByPublicKey(pkey *btcec.PublicKey) (*Relay, error)

Gibt einen Relay anhand seinens PublicKeys zurück

func (*Kernel) GetTrustedRelays

func (obj *Kernel) GetTrustedRelays() ([]*Relay, error)

Gibt eine Liste mit allen Verfügbaren Relays zurück

func (*Kernel) HasKernelProtocol

func (obj *Kernel) HasKernelProtocol(protocol_type uint8) bool

Gibt an ob ein bestimmtes Protocol vorhanden ist

func (*Kernel) IsLocallyAddress

func (obj *Kernel) IsLocallyAddress(pubkey btcec.PublicKey) bool

Gibt an ob es sich um eine Lokale Adresse handelt

func (*Kernel) IsRunning

func (obj *Kernel) IsRunning() bool

Gibt an ob der Kernel ausgeführt wird

func (*Kernel) ListOutboundTrustedAvaileRelays

func (obj *Kernel) ListOutboundTrustedAvaileRelays() ([]RelayOutboundPair, error)

Gibt eine Liste mit Verfügabren Relays aus mit denen eine Verbindung möglich ist

func (*Kernel) LoadExternalKernelModules

func (obj *Kernel) LoadExternalKernelModules() error

Wird verwendet um Third Party oder Externe Kernel Module zu laden

func (*Kernel) PlainL2PackageAndWriteByNetworkRoute

func (obj *Kernel) PlainL2PackageAndWriteByNetworkRoute(pckge *addresspackages.AddressLayerPackage, please_check_instructions bool) (*extra.PackageSendState, error)

Signiert ein Layer 2 Paket und sendet es unverschlüsselt an das Netzwerk

func (*Kernel) PlainLocallyPackageToBuffer

func (obj *Kernel) PlainLocallyPackageToBuffer(pckge *addresspackages.SendableAddressLayerPackage) error

Nimmt ein nicht verschlüsseltes Lokales Paket entgegen

func (*Kernel) RegisterAPIInterface

func (obj *Kernel) RegisterAPIInterface(api_interace *KernelAPI) error

Registriert eine API Schnitstellt

func (*Kernel) RegisterClientModule

func (obj *Kernel) RegisterClientModule(csep ClientModule) error

Fügt eine Clientfunktion hinzu, diese Erlaubt ausgehende Verbindungen

func (*Kernel) RegisterNewKernelTypeProtocol

func (obj *Kernel) RegisterNewKernelTypeProtocol(tpe uint8, pckgtf KernelTypeProtocol) error

Registtriert einen neuen Kernel Package Type

func (*Kernel) RegisterServerModule

func (obj *Kernel) RegisterServerModule(lcsep ServerModule) error

Fügt einen Lokalen Server Endpunkt hinzu

func (*Kernel) RemoveConnection

func (obj *Kernel) RemoveConnection(conn RelayConnection) error

Markiert einen Relay als nicht mehr Verbunden

func (*Kernel) ServKernel

func (obj *Kernel) ServKernel(wms uint64)

Wird verwendet um zu Warten bis der Kernel läuft

func (*Kernel) Serve

func (obj *Kernel) Serve() error

Hält den Mainthread am leben bis das Programm ein Close Event bekommt

func (*Kernel) Shutdown

func (obj *Kernel) Shutdown()

Wird ausgeführt um den Kernel zu beenden

func (*Kernel) SignWithRelayKey

func (obj *Kernel) SignWithRelayKey(digest []byte) ([]byte, error)

Wird verwendet um eine Signatur mit dem Relay Key zu Signieren

func (*Kernel) SignWithTempKeyId

func (obj *Kernel) SignWithTempKeyId(temp_key_id string, digest []byte) ([]byte, error)

Wird verwendet um einen Hash mit Temprären Schlüssel zu Signieren

func (*Kernel) Start

func (obj *Kernel) Start() error

Wird ausgeführt wenn das Programm als Dienst ausgeführt wird

func (*Kernel) WriteL2PackageByNetworkRoute

func (obj *Kernel) WriteL2PackageByNetworkRoute(pckge *addresspackages.SendableAddressLayerPackage) (*extra.PackageSendState, error)

Wird verwendet um Pakete an das Netzwerk zu senden

type KernelAPI

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

Stellt die KernelAPI dar

type KernelPackageProtocolEntry

type KernelPackageProtocolEntry struct {
	Ptf KernelTypeProtocol
	Tpe uint8
}

Stellt den Eintrag für einen Funktionstypen Hadnler dar

type KernelTypeProtocol

type KernelTypeProtocol interface {
	EnterRecivedPackage(*addresspackages.AddressLayerPackage) error
	EnterCommandData(string, [][]byte, *APIProcessConnectionWrapper) (map[string]interface{}, error)
	RegisterKernel(kernel *Kernel) error
	GetProtocolName() string
	GetObjectId() string
}

Gibt die Registrierte Paketfunktion an

type Kf

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

Stellt das Kernel API Interface dar

func (*Kf) FetchAllAddresses

func (s *Kf) FetchAllAddresses(_ apiclient.EmptyArg, reply *[]apiclient.ApiRelayEntry) error

Ruft alle Lokalen Adressen ab

func (*Kf) FetchRelays

func (s *Kf) FetchRelays(_ apiclient.EmptyArg, reply *[]apiclient.ApiRelayEntry) error

Ruft alle Verfügbren Relays ab

func (*Kf) PassCommandArgsToProtocol

func (s *Kf) PassCommandArgsToProtocol(args apiclient.CommandArgs, reply *map[string]interface{}) error

Leitet API befehle an ein API Protocol weiter

type P2PKernelServerWithProtocol

type P2PKernelServerWithProtocol struct {
	Protocol string
	Port     uint64
}

Stellt ein Möglichen P2P Server Port und Protokoll verfügbar

type ProxyConfig

type ProxyConfig struct {
	Host string
}

Stellt Proxy Einstellung dar

type Relay

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

func NewUntrustedRelay

func NewUntrustedRelay(public_key *btcec.PublicKey, last_useed int64, end_point string, tpe string) *Relay

Erstellt ein nicht Vertrauenswürdiges Relay

func (*Relay) Equal

func (obj *Relay) Equal(p2 *Relay) bool

Gibt an, ob es sich um die gleiche Verbindung handelt

func (*Relay) GetEndpoint

func (obj *Relay) GetEndpoint() string

Gibt den Endpunkt der Gegenseite aus

func (*Relay) GetProtocol

func (obj *Relay) GetProtocol() string

Gibt das verwendete Protkoll aus

func (*Relay) GetPublicKey

func (obj *Relay) GetPublicKey() *btcec.PublicKey

Gibt den Öffentlichen Schlüssel aus

func (*Relay) GetPublicKeyHexString

func (obj *Relay) GetPublicKeyHexString() string

Gibt den Öffentlichen Schlüssel als hexstring aus

func (*Relay) Hash

func (obj *Relay) Hash() uint32

Gibt den Hashwert des Objekts zurück

func (*Relay) IsTrusted

func (obj *Relay) IsTrusted() bool

Gibt an ob dem Relay vertraut wird

type RelayConnection

type RelayConnection interface {
	EnterSendableData([]byte) (*extra.PackageSendState, error)
	GetSessionPKey() (*btcec.PublicKey, error)
	RegisterKernel(kernel *Kernel) error
	GetTxRxBytes() (uint64, uint64)
	GetIOType() ConnectionIoType
	CannUseToWrite() bool
	GetPingTime() uint64
	GetProtocol() string
	GetObjectId() string
	FinallyInit() error
	IsConnected() bool
	IsFinally() bool
	CloseByKernel()
}

Stellt eine Verbindung dar

type RelayConnectionEntry

type RelayConnectionEntry struct {
	PingTime    []uint64
	RelayLink   Relay
	Connections []RelayConnection
	// contains filtered or unexported fields
}

Stellt einen Relay Eintrag dar

func (*RelayConnectionEntry) AddConnection

func (obj *RelayConnectionEntry) AddConnection(conn RelayConnection) error

Fügt dem Eintrag eine neue Verbindung hinzu

func (*RelayConnectionEntry) BufferL2PackageAndWrite

Nimmt Pakete entgegen welche gesendet werden sollen

func (*RelayConnectionEntry) CloseByKernel

func (obj *RelayConnectionEntry) CloseByKernel()

Wird ausgeführt wenn der Kernel Signalisiert dass die Verbindung getrennt werden soll

func (*RelayConnectionEntry) ConnectionIsKnown

func (obj *RelayConnectionEntry) ConnectionIsKnown(conn RelayConnection) bool

Gibt an ob es sich um eine bekannte Verbindung handelt

func (*RelayConnectionEntry) Equal

func (obj *RelayConnectionEntry) Equal(p2 *Relay) bool

Gibt an, ob es sich um die gleiche Verbindung handelt

func (*RelayConnectionEntry) GetAllMetaInformationsOfRelayConnections

func (obj *RelayConnectionEntry) GetAllMetaInformationsOfRelayConnections() []RelayConnectionMetaData

Gibt die Metadaten des Relay Eintrags zurück

func (*RelayConnectionEntry) GetAveragePingTimeMS

func (obj *RelayConnectionEntry) GetAveragePingTimeMS() uint64

Gibt den Durchschnittlichen Ping an

func (*RelayConnectionEntry) GetInbouncConnections

func (obj *RelayConnectionEntry) GetInbouncConnections() []RelayConnection

Gibt alle Eingehenden Verbindungen aus

func (*RelayConnectionEntry) GetOutboundConnections

func (obj *RelayConnectionEntry) GetOutboundConnections() []RelayConnection

Gibt alle Ausgehenden Verbindungen an

func (*RelayConnectionEntry) GetTotalConenctions

func (obj *RelayConnectionEntry) GetTotalConenctions() uint64

Gibt die Gesamtzahl aller Verfügabren Verbindungen zurück

func (*RelayConnectionEntry) GetTotalReadedBytes

func (obj *RelayConnectionEntry) GetTotalReadedBytes() uint64

Gibt an weiviele Daten zum jetzigen Zeitpunkt Empfangen wurden

func (*RelayConnectionEntry) GetTotalWritedBytes

func (obj *RelayConnectionEntry) GetTotalWritedBytes() uint64

Gibt an wieviele Daten zum jetzigen Zeitpunk gesendet wurden

func (*RelayConnectionEntry) HasActiveConnection

func (obj *RelayConnectionEntry) HasActiveConnection() bool

Gibt an ob der Relay mindestens eine Aktive Verbindung hat

func (*RelayConnectionEntry) HasActiveRouteList

func (obj *RelayConnectionEntry) HasActiveRouteList() bool

Gibt an ob die Routing Liste für diesen Relay bereits zugewiesen wurde

func (*RelayConnectionEntry) Hash

func (obj *RelayConnectionEntry) Hash() uint32

Gibt den Hashwert des Objekts zurück

func (*RelayConnectionEntry) IsTrustedConnection

func (obj *RelayConnectionEntry) IsTrustedConnection() bool

Gibt an ob es sich um eine Vertrauenswürdige Verbindung handelt

func (*RelayConnectionEntry) RegisterRouteList

func (obj *RelayConnectionEntry) RegisterRouteList(rlist *routingmanager.RelayRoutesList) bool

registriert eine Routing Liste für diesen Relay

func (*RelayConnectionEntry) RemoveConnection

func (obj *RelayConnectionEntry) RemoveConnection(conn RelayConnection) error

Entfernt einen Verbindungseintrag

type RelayConnectionMetaData

type RelayConnectionMetaData struct {
	SessionPKey     string
	Id              string
	IsConnected     bool
	Protocol        string
	InboundOutbound uint8
	TxBytes         uint64
	RxBytes         uint64
	Ping            uint64
}

Stellt die MetaDaten einer einzelnen Verbindung dar

type RelayConnectionRoutingTable

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

Stellt den Verbindungsmanager dar

func (*RelayConnectionRoutingTable) EnterPackageToRoutingManger

Nimmt Pakete entgegen und Routet diese zu dem Entsprechenden Host

func (*RelayConnectionRoutingTable) GetAllMetaInformationsOfRelayConnections

func (obj *RelayConnectionRoutingTable) GetAllMetaInformationsOfRelayConnections(relay *Relay) (*RelayMetaData, error)

Ruft alle MetaDaten über die Verbindungen eines Relays ab

func (*RelayConnectionRoutingTable) GetRelayByConnection

func (obj *RelayConnectionRoutingTable) GetRelayByConnection(conn RelayConnection) (*Relay, bool, error)

Ruft ein Relay anhand einer Verbindung ab

func (*RelayConnectionRoutingTable) GetTotalRelayConnections

func (obj *RelayConnectionRoutingTable) GetTotalRelayConnections(relay *Relay) uint64

Gibt an weiviele Verbindungen ein Relay hat

func (*RelayConnectionRoutingTable) HasActiveConnections

func (obj *RelayConnectionRoutingTable) HasActiveConnections() bool

Gibt an ob es eine Aktive Verbindung gibt

func (*RelayConnectionRoutingTable) InitRoutesForRelay

func (obj *RelayConnectionRoutingTable) InitRoutesForRelay(rlay *Relay, routes *routingmanager.RelayRoutesList) (bool, bool)

Wird verwendet um alle Aktiven Routen für ein Relay zu Initalisieren

func (*RelayConnectionRoutingTable) RegisterNewRelayConnection

func (obj *RelayConnectionRoutingTable) RegisterNewRelayConnection(relay *Relay, conn RelayConnection) error

Fügt eine neue AKtive Verbindung zum Manager hinzu

func (*RelayConnectionRoutingTable) RelayIsConnected

func (obj *RelayConnectionRoutingTable) RelayIsConnected(relay *Relay) bool

Gibt an ob der Relay Verbunden ist

func (*RelayConnectionRoutingTable) RemoveConnectionFromRelay

func (obj *RelayConnectionRoutingTable) RemoveConnectionFromRelay(conn RelayConnection) error

Entfernt eine Verbindung

func (*RelayConnectionRoutingTable) ShutdownByKernel

func (obj *RelayConnectionRoutingTable) ShutdownByKernel()

Wird vom Kernel verwendet alle Verbindungen zu schließen

type RelayDirectoryService

type RelayDirectoryService interface {
}

Stellt ein Relay Diretory Service bereit

type RelayMetaData

type RelayMetaData struct {
	Connections []RelayConnectionMetaData
	PublicKey   string
	IsConnected bool
	TotalWrited uint64
	TotalReaded uint64
	PingMS      uint64
	IsTrusted   bool
}

Stellt die MetaDaten dar

type RelayOutboundPair

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

Stellt ein mögliches Relay dar mit welchen nocht keien Verbindung besteht

func (*RelayOutboundPair) GetClientConnModule

func (obj *RelayOutboundPair) GetClientConnModule() *ClientModule

Gibt das Client Protkoll zurück

func (*RelayOutboundPair) GetRelay

func (obj *RelayOutboundPair) GetRelay() *Relay

Gibt das Relay Objekt zurück

type ServerModule

type ServerModule interface {
	IsIpBasedServer() bool
	GetLocalIPBasedPort() uint64
	RegisterKernel(kernel *Kernel) error
	GetObjectId() string
	GetProtocol() string
	IsRunning() bool
	Start() error
	Shutdown()
}

Stellt das Gerüst für ein Server Modul dar

type TrustedRelays

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

func (*TrustedRelays) GetAllRelays

func (obj *TrustedRelays) GetAllRelays() []*Relay

func (*TrustedRelays) Shutdown

func (obj *TrustedRelays) Shutdown()

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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