@streamr/trackerless-network 0.0.1-tatum.6 → 0.0.1-tatum.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/dist/package.json +10 -8
  2. package/dist/src/NetworkNode.js +1 -1
  3. package/dist/src/NetworkNode.js.map +1 -1
  4. package/dist/src/NetworkStack.d.ts +1 -3
  5. package/dist/src/NetworkStack.js +18 -47
  6. package/dist/src/NetworkStack.js.map +1 -1
  7. package/dist/src/identifiers.js +2 -2
  8. package/dist/src/identifiers.js.map +1 -1
  9. package/dist/src/logic/{StreamNodeServer.d.ts → DeliveryRpcLocal.d.ts} +6 -5
  10. package/dist/src/logic/{StreamNodeServer.js → DeliveryRpcLocal.js} +5 -5
  11. package/dist/src/logic/{StreamNodeServer.js.map → DeliveryRpcLocal.js.map} +1 -1
  12. package/dist/src/logic/{RemoteRandomGraphNode.d.ts → DeliveryRpcRemote.d.ts} +2 -2
  13. package/dist/src/logic/{RemoteRandomGraphNode.js → DeliveryRpcRemote.js} +5 -5
  14. package/dist/src/logic/DeliveryRpcRemote.js.map +1 -0
  15. package/dist/src/logic/{StreamPartEntryPointDiscovery.d.ts → EntryPointDiscovery.d.ts} +8 -10
  16. package/dist/src/logic/{StreamPartEntryPointDiscovery.js → EntryPointDiscovery.js} +14 -36
  17. package/dist/src/logic/EntryPointDiscovery.js.map +1 -0
  18. package/dist/src/logic/ILayer0.d.ts +3 -6
  19. package/dist/src/logic/NodeList.d.ts +10 -10
  20. package/dist/src/logic/NodeList.js.map +1 -1
  21. package/dist/src/logic/RandomGraphNode.d.ts +8 -12
  22. package/dist/src/logic/RandomGraphNode.js +41 -40
  23. package/dist/src/logic/RandomGraphNode.js.map +1 -1
  24. package/dist/src/logic/StreamrNode.d.ts +9 -12
  25. package/dist/src/logic/StreamrNode.js +53 -63
  26. package/dist/src/logic/StreamrNode.js.map +1 -1
  27. package/dist/src/logic/createRandomGraphNode.d.ts +6 -1
  28. package/dist/src/logic/createRandomGraphNode.js +17 -23
  29. package/dist/src/logic/createRandomGraphNode.js.map +1 -1
  30. package/dist/src/logic/formStreamPartDeliveryServiceId.d.ts +2 -0
  31. package/dist/src/logic/formStreamPartDeliveryServiceId.js +8 -0
  32. package/dist/src/logic/formStreamPartDeliveryServiceId.js.map +1 -0
  33. package/dist/src/logic/inspect/Inspector.d.ts +3 -2
  34. package/dist/src/logic/inspect/Inspector.js +5 -5
  35. package/dist/src/logic/inspect/Inspector.js.map +1 -1
  36. package/dist/src/logic/neighbor-discovery/{HandshakerServer.d.ts → HandshakeRpcLocal.d.ts} +10 -10
  37. package/dist/src/logic/neighbor-discovery/{HandshakerServer.js → HandshakeRpcLocal.js} +13 -13
  38. package/dist/src/logic/neighbor-discovery/HandshakeRpcLocal.js.map +1 -0
  39. package/dist/src/logic/neighbor-discovery/{RemoteHandshaker.d.ts → HandshakeRpcRemote.d.ts} +1 -1
  40. package/dist/src/logic/neighbor-discovery/{RemoteHandshaker.js → HandshakeRpcRemote.js} +8 -7
  41. package/dist/src/logic/neighbor-discovery/HandshakeRpcRemote.js.map +1 -0
  42. package/dist/src/logic/neighbor-discovery/Handshaker.d.ts +8 -7
  43. package/dist/src/logic/neighbor-discovery/Handshaker.js +23 -24
  44. package/dist/src/logic/neighbor-discovery/Handshaker.js.map +1 -1
  45. package/dist/src/logic/neighbor-discovery/NeighborFinder.d.ts +1 -1
  46. package/dist/src/logic/neighbor-discovery/NeighborFinder.js +1 -1
  47. package/dist/src/logic/neighbor-discovery/NeighborFinder.js.map +1 -1
  48. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.d.ts +3 -2
  49. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js +5 -5
  50. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js.map +1 -1
  51. package/dist/src/logic/neighbor-discovery/{NeighborUpdateManagerServer.d.ts → NeighborUpdateRpcLocal.d.ts} +6 -6
  52. package/dist/src/logic/neighbor-discovery/{NeighborUpdateManagerServer.js → NeighborUpdateRpcLocal.js} +9 -9
  53. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.js.map +1 -0
  54. package/dist/src/logic/neighbor-discovery/{RemoteNeighborUpdateManager.d.ts → NeighborUpdateRpcRemote.d.ts} +1 -1
  55. package/dist/src/logic/neighbor-discovery/{RemoteNeighborUpdateManager.js → NeighborUpdateRpcRemote.js} +5 -5
  56. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcRemote.js.map +1 -0
  57. package/dist/src/logic/propagation/Propagation.js +2 -2
  58. package/dist/src/logic/propagation/Propagation.js.map +1 -1
  59. package/dist/src/logic/proxy/{ProxyStreamConnectionClient.d.ts → ProxyClient.d.ts} +6 -9
  60. package/dist/src/logic/proxy/{ProxyStreamConnectionClient.js → ProxyClient.js} +23 -21
  61. package/dist/src/logic/proxy/ProxyClient.js.map +1 -0
  62. package/dist/src/logic/proxy/{ProxyStreamConnectionServer.d.ts → ProxyConnectionRpcLocal.d.ts} +5 -5
  63. package/dist/src/logic/proxy/{ProxyStreamConnectionServer.js → ProxyConnectionRpcLocal.js} +6 -6
  64. package/dist/src/logic/proxy/ProxyConnectionRpcLocal.js.map +1 -0
  65. package/dist/src/logic/proxy/{RemoteProxyServer.d.ts → ProxyConnectionRpcRemote.d.ts} +1 -1
  66. package/dist/src/logic/proxy/{RemoteProxyServer.js → ProxyConnectionRpcRemote.js} +4 -4
  67. package/dist/src/logic/proxy/ProxyConnectionRpcRemote.js.map +1 -0
  68. package/dist/src/logic/temporary-connection/{TemporaryConnectionRpcServer.d.ts → TemporaryConnectionRpcLocal.d.ts} +5 -4
  69. package/dist/src/logic/temporary-connection/{TemporaryConnectionRpcServer.js → TemporaryConnectionRpcLocal.js} +6 -6
  70. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.js.map +1 -0
  71. package/dist/src/logic/temporary-connection/{RemoteTemporaryConnectionRpcServer.d.ts → TemporaryConnectionRpcRemote.d.ts} +1 -1
  72. package/dist/src/logic/temporary-connection/{RemoteTemporaryConnectionRpcServer.js → TemporaryConnectionRpcRemote.js} +4 -4
  73. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcRemote.js.map +1 -0
  74. package/dist/src/proto/packages/dht/protos/DhtRpc.d.ts +0 -4
  75. package/dist/src/proto/packages/dht/protos/DhtRpc.js +1 -2
  76. package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +1 -1
  77. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.d.ts +4 -4
  78. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.js +7 -7
  79. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.js.map +1 -1
  80. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.d.ts +10 -10
  81. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.js +7 -7
  82. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.js.map +1 -1
  83. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.server.d.ts +2 -2
  84. package/dist/test/benchmark/first-message.js +10 -13
  85. package/dist/test/benchmark/first-message.js.map +1 -1
  86. package/dist/test/utils/utils.d.ts +5 -5
  87. package/dist/test/utils/utils.js +14 -13
  88. package/dist/test/utils/utils.js.map +1 -1
  89. package/package.json +10 -8
  90. package/protos/NetworkRpc.proto +5 -5
  91. package/src/NetworkNode.ts +1 -1
  92. package/src/NetworkStack.ts +20 -62
  93. package/src/identifiers.ts +3 -3
  94. package/src/logic/{StreamNodeServer.ts → DeliveryRpcLocal.ts} +8 -7
  95. package/src/logic/{RemoteRandomGraphNode.ts → DeliveryRpcRemote.ts} +3 -3
  96. package/src/logic/{StreamPartEntryPointDiscovery.ts → EntryPointDiscovery.ts} +18 -42
  97. package/src/logic/ILayer0.ts +3 -6
  98. package/src/logic/NodeList.ts +12 -12
  99. package/src/logic/RandomGraphNode.ts +61 -62
  100. package/src/logic/StreamrNode.ts +59 -73
  101. package/src/logic/createRandomGraphNode.ts +28 -26
  102. package/src/logic/formStreamPartDeliveryServiceId.ts +5 -0
  103. package/src/logic/inspect/Inspector.ts +8 -7
  104. package/src/logic/neighbor-discovery/{HandshakerServer.ts → HandshakeRpcLocal.ts} +20 -20
  105. package/src/logic/neighbor-discovery/{RemoteHandshaker.ts → HandshakeRpcRemote.ts} +6 -5
  106. package/src/logic/neighbor-discovery/Handshaker.ts +38 -38
  107. package/src/logic/neighbor-discovery/NeighborFinder.ts +2 -2
  108. package/src/logic/neighbor-discovery/NeighborUpdateManager.ts +13 -10
  109. package/src/logic/neighbor-discovery/{NeighborUpdateManagerServer.ts → NeighborUpdateRpcLocal.ts} +15 -15
  110. package/src/logic/neighbor-discovery/{RemoteNeighborUpdateManager.ts → NeighborUpdateRpcRemote.ts} +2 -2
  111. package/src/logic/propagation/Propagation.ts +2 -2
  112. package/src/logic/proxy/{ProxyStreamConnectionClient.ts → ProxyClient.ts} +27 -27
  113. package/src/logic/proxy/{ProxyStreamConnectionServer.ts → ProxyConnectionRpcLocal.ts} +10 -11
  114. package/src/logic/proxy/{RemoteProxyServer.ts → ProxyConnectionRpcRemote.ts} +1 -1
  115. package/src/logic/temporary-connection/{TemporaryConnectionRpcServer.ts → TemporaryConnectionRpcLocal.ts} +11 -10
  116. package/src/logic/temporary-connection/{RemoteTemporaryConnectionRpcServer.ts → TemporaryConnectionRpcRemote.ts} +1 -1
  117. package/src/proto/packages/dht/protos/DhtRpc.ts +1 -6
  118. package/src/proto/packages/trackerless-network/protos/NetworkRpc.client.ts +8 -8
  119. package/src/proto/packages/trackerless-network/protos/NetworkRpc.server.ts +2 -2
  120. package/src/proto/packages/trackerless-network/protos/NetworkRpc.ts +14 -14
  121. package/test/benchmark/first-message.ts +10 -13
  122. package/test/end-to-end/inspect.test.ts +12 -12
  123. package/test/end-to-end/proxy-and-full-node.test.ts +13 -14
  124. package/test/end-to-end/proxy-connections.test.ts +9 -11
  125. package/test/end-to-end/proxy-key-exchange.test.ts +12 -13
  126. package/test/end-to-end/random-graph-with-real-connections.test.ts +7 -7
  127. package/test/end-to-end/webrtc-full-node-network.test.ts +8 -8
  128. package/test/end-to-end/websocket-full-node-network.test.ts +8 -10
  129. package/test/integration/{RemoteRandomGraphNode.test.ts → DeliveryRpcRemote.test.ts} +17 -14
  130. package/test/integration/{RemoteHandshaker.test.ts → HandshakeRpcRemote.test.ts} +10 -9
  131. package/test/integration/Handshakes.test.ts +23 -20
  132. package/test/integration/Inspect.test.ts +3 -2
  133. package/test/integration/{RemoteNeighborUpdateManager.test.ts → NeighborUpdateRpcRemote.test.ts} +12 -10
  134. package/test/integration/NetworkNode.test.ts +9 -8
  135. package/test/integration/NetworkRpc.test.ts +5 -7
  136. package/test/integration/NetworkStack.test.ts +13 -15
  137. package/test/integration/Propagation.test.ts +2 -2
  138. package/test/integration/RandomGraphNode-Layer1Node-Latencies.test.ts +10 -8
  139. package/test/integration/RandomGraphNode-Layer1Node.test.ts +17 -17
  140. package/test/integration/StreamrNode.test.ts +5 -3
  141. package/test/integration/joining-streams-on-offline-peers.test.ts +16 -18
  142. package/test/integration/stream-without-default-entrypoints.test.ts +11 -13
  143. package/test/unit/{StreamNodeServer.test.ts → DeliveryRpcLocal.test.ts} +8 -8
  144. package/test/unit/{StreamPartEntrypointDiscovery.test.ts → EntrypointDiscovery.test.ts} +23 -40
  145. package/test/unit/{HandshakerServer.test.ts → HandshakeRpcLocal.test.ts} +26 -24
  146. package/test/unit/Handshaker.test.ts +10 -8
  147. package/test/unit/Inspector.test.ts +4 -3
  148. package/test/unit/NeighborFinder.test.ts +5 -5
  149. package/test/unit/NodeList.test.ts +22 -13
  150. package/test/unit/{RemoteProxyServer.test.ts → ProxyConnectionRpcRemote.test.ts} +4 -4
  151. package/test/unit/RandomGraphNode.test.ts +6 -5
  152. package/test/unit/StreamMessageTranslator.test.ts +10 -9
  153. package/test/unit/StreamrNode.test.ts +8 -8
  154. package/test/utils/mock/MockLayer0.ts +7 -26
  155. package/test/utils/mock/MockLayer1.ts +3 -8
  156. package/test/utils/mock/MockNeighborFinder.ts +1 -2
  157. package/test/utils/mock/MockNeighborUpdateManager.ts +1 -2
  158. package/test/utils/mock/Transport.ts +2 -2
  159. package/test/utils/utils.ts +13 -12
  160. package/dist/src/logic/RemoteRandomGraphNode.js.map +0 -1
  161. package/dist/src/logic/StreamPartEntryPointDiscovery.js.map +0 -1
  162. package/dist/src/logic/neighbor-discovery/HandshakerServer.js.map +0 -1
  163. package/dist/src/logic/neighbor-discovery/NeighborUpdateManagerServer.js.map +0 -1
  164. package/dist/src/logic/neighbor-discovery/RemoteHandshaker.js.map +0 -1
  165. package/dist/src/logic/neighbor-discovery/RemoteNeighborUpdateManager.js.map +0 -1
  166. package/dist/src/logic/proxy/ProxyStreamConnectionClient.js.map +0 -1
  167. package/dist/src/logic/proxy/ProxyStreamConnectionServer.js.map +0 -1
  168. package/dist/src/logic/proxy/RemoteProxyServer.js.map +0 -1
  169. package/dist/src/logic/temporary-connection/RemoteTemporaryConnectionRpcServer.js.map +0 -1
  170. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcServer.js.map +0 -1
@@ -14,9 +14,9 @@ import {
14
14
  MessageID,
15
15
  } from '../proto/packages/trackerless-network/protos/NetworkRpc'
16
16
  import { NodeList } from './NodeList'
17
- import { NetworkRpcClient } from '../proto/packages/trackerless-network/protos/NetworkRpc.client'
18
- import { RemoteRandomGraphNode } from './RemoteRandomGraphNode'
19
- import { INetworkRpc } from '../proto/packages/trackerless-network/protos/NetworkRpc.server'
17
+ import { DeliveryRpcClient } from '../proto/packages/trackerless-network/protos/NetworkRpc.client'
18
+ import { DeliveryRpcRemote } from './DeliveryRpcRemote'
19
+ import { IDeliveryRpc } from '../proto/packages/trackerless-network/protos/NetworkRpc.server'
20
20
  import { DuplicateMessageDetector } from './DuplicateMessageDetector'
21
21
  import { Logger, addManagedEventListener } from '@streamr/utils'
22
22
  import { toProtoRpcClient } from '@streamr/proto-rpc'
@@ -24,13 +24,14 @@ import { IHandshaker } from './neighbor-discovery/Handshaker'
24
24
  import { Propagation } from './propagation/Propagation'
25
25
  import { INeighborFinder } from './neighbor-discovery/NeighborFinder'
26
26
  import { INeighborUpdateManager } from './neighbor-discovery/NeighborUpdateManager'
27
- import { StreamNodeServer } from './StreamNodeServer'
28
- import { ProxyStreamConnectionServer } from './proxy/ProxyStreamConnectionServer'
27
+ import { DeliveryRpcLocal } from './DeliveryRpcLocal'
28
+ import { ProxyConnectionRpcLocal } from './proxy/ProxyConnectionRpcLocal'
29
29
  import { IInspector } from './inspect/Inspector'
30
- import { TemporaryConnectionRpcServer } from './temporary-connection/TemporaryConnectionRpcServer'
30
+ import { TemporaryConnectionRpcLocal } from './temporary-connection/TemporaryConnectionRpcLocal'
31
31
  import { markAndCheckDuplicate } from './utils'
32
32
  import { NodeID, getNodeIdFromPeerDescriptor } from '../identifiers'
33
33
  import { ILayer1 } from './ILayer1'
34
+ import { StreamPartID } from '@streamr/protocol'
34
35
 
35
36
  export interface Events {
36
37
  message: (message: StreamMessage) => void
@@ -38,7 +39,7 @@ export interface Events {
38
39
  }
39
40
 
40
41
  export interface StrictRandomGraphNodeConfig {
41
- randomGraphId: string
42
+ streamPartId: StreamPartID
42
43
  layer1: ILayer1
43
44
  P2PTransport: ITransport
44
45
  connectionLocker: ConnectionLocker
@@ -53,33 +54,28 @@ export interface StrictRandomGraphNodeConfig {
53
54
  propagation: Propagation
54
55
  rpcCommunicator: ListeningRpcCommunicator
55
56
  numOfTargetNeighbors: number
56
- maxNumberOfContacts: number
57
- minPropagationTargets: number
58
- name: string
59
- acceptProxyConnections: boolean
60
- neighborUpdateInterval: number
61
57
  inspector: IInspector
62
- temporaryConnectionServer: TemporaryConnectionRpcServer
63
- proxyConnectionServer?: ProxyStreamConnectionServer
58
+ temporaryConnectionRpcLocal: TemporaryConnectionRpcLocal
59
+ proxyConnectionRpcLocal?: ProxyConnectionRpcLocal
64
60
  }
65
61
 
66
62
  const logger = new Logger(module)
67
63
 
68
64
  export class RandomGraphNode extends EventEmitter<Events> {
69
- private stopped = false
65
+
70
66
  private started = false
71
67
  private readonly duplicateDetectors: Map<string, DuplicateMessageDetector>
72
68
  private config: StrictRandomGraphNodeConfig
73
- private readonly server: INetworkRpc
69
+ private readonly deliveryRpcLocal: IDeliveryRpc
74
70
  private abortController: AbortController = new AbortController()
75
71
 
76
72
  constructor(config: StrictRandomGraphNodeConfig) {
77
73
  super()
78
74
  this.config = config
79
75
  this.duplicateDetectors = new Map()
80
- this.server = new StreamNodeServer({
76
+ this.deliveryRpcLocal = new DeliveryRpcLocal({
81
77
  ownPeerDescriptor: this.config.ownPeerDescriptor,
82
- randomGraphId: this.config.randomGraphId,
78
+ streamPartId: this.config.streamPartId,
83
79
  rpcCommunicator: this.config.rpcCommunicator,
84
80
  markAndCheckDuplicate: (msg: MessageID, prev?: MessageRef) => markAndCheckDuplicate(this.duplicateDetectors, msg, prev),
85
81
  broadcast: (message: StreamMessage, previousNode?: NodeID) => this.broadcast(message, previousNode),
@@ -87,15 +83,15 @@ export class RandomGraphNode extends EventEmitter<Events> {
87
83
  const contact = this.config.nearbyNodeView.get(senderId)
88
84
  || this.config.randomNodeView.get(senderId)
89
85
  || this.config.targetNeighbors.get(senderId)
90
- || this.config.proxyConnectionServer?.getConnection(senderId )?.remote
86
+ || this.config.proxyConnectionRpcLocal?.getConnection(senderId )?.remote
91
87
  // TODO: check integrity of notifier?
92
88
  if (contact) {
93
89
  this.config.layer1.removeContact(contact.getPeerDescriptor(), true)
94
90
  this.config.targetNeighbors.remove(contact.getPeerDescriptor())
95
91
  this.config.nearbyNodeView.remove(contact.getPeerDescriptor())
96
- this.config.connectionLocker.unlockConnection(contact.getPeerDescriptor(), this.config.randomGraphId)
92
+ this.config.connectionLocker.unlockConnection(contact.getPeerDescriptor(), this.config.streamPartId)
97
93
  this.config.neighborFinder.start([senderId])
98
- this.config.proxyConnectionServer?.removeConnection(senderId)
94
+ this.config.proxyConnectionRpcLocal?.removeConnection(senderId)
99
95
  }
100
96
  },
101
97
  markForInspection: (senderId: NodeID, messageId: MessageID) => this.config.inspector.markMessage(senderId, messageId)
@@ -108,25 +104,25 @@ export class RandomGraphNode extends EventEmitter<Events> {
108
104
  addManagedEventListener<any, any>(
109
105
  this.config.layer1 as any,
110
106
  'newContact',
111
- (peerDescriptor: PeerDescriptor, closestPeers: PeerDescriptor[]) => this.newContact(peerDescriptor, closestPeers),
107
+ (_peerDescriptor: PeerDescriptor, closestPeers: PeerDescriptor[]) => this.newContact(closestPeers),
112
108
  this.abortController.signal
113
109
  )
114
110
  addManagedEventListener<any, any>(
115
111
  this.config.layer1 as any,
116
112
  'contactRemoved',
117
- (peerDescriptor: PeerDescriptor, closestPeers: PeerDescriptor[]) => this.removedContact(peerDescriptor, closestPeers),
113
+ (_peerDescriptor: PeerDescriptor, closestPeers: PeerDescriptor[]) => this.removedContact(closestPeers),
118
114
  this.abortController.signal
119
115
  )
120
116
  addManagedEventListener<any, any>(
121
117
  this.config.layer1 as any,
122
118
  'newRandomContact',
123
- (peerDescriptor: PeerDescriptor, randomPeers: PeerDescriptor[]) => this.newRandomContact(peerDescriptor, randomPeers),
119
+ (_peerDescriptor: PeerDescriptor, randomPeers: PeerDescriptor[]) => this.newRandomContact(randomPeers),
124
120
  this.abortController.signal
125
121
  )
126
122
  addManagedEventListener<any, any>(
127
123
  this.config.layer1 as any,
128
124
  'randomContactRemoved',
129
- (peerDescriptor: PeerDescriptor, randomPeers: PeerDescriptor[]) => this.removedRandomContact(peerDescriptor, randomPeers),
125
+ (_peerDescriptor: PeerDescriptor, randomPeers: PeerDescriptor[]) => this.removedRandomContact(randomPeers),
130
126
  this.abortController.signal
131
127
  )
132
128
  addManagedEventListener<any, any>(
@@ -144,9 +140,9 @@ export class RandomGraphNode extends EventEmitter<Events> {
144
140
  },
145
141
  this.abortController.signal
146
142
  )
147
- if (this.config.proxyConnectionServer !== undefined) {
143
+ if (this.config.proxyConnectionRpcLocal !== undefined) {
148
144
  addManagedEventListener(
149
- this.config.proxyConnectionServer,
145
+ this.config.proxyConnectionRpcLocal,
150
146
  'newConnection',
151
147
  (id: NodeID) => this.config.propagation.onNeighborJoined(id),
152
148
  this.abortController.signal
@@ -154,7 +150,7 @@ export class RandomGraphNode extends EventEmitter<Events> {
154
150
  }
155
151
  const candidates = this.getNeighborCandidatesFromLayer1()
156
152
  if (candidates.length > 0) {
157
- this.newContact(candidates[0], candidates)
153
+ this.newContact(candidates)
158
154
  }
159
155
  this.config.neighborFinder.start()
160
156
  await this.config.neighborUpdateManager.start()
@@ -162,16 +158,16 @@ export class RandomGraphNode extends EventEmitter<Events> {
162
158
 
163
159
  private registerDefaultServerMethods(): void {
164
160
  this.config.rpcCommunicator.registerRpcNotification(StreamMessage, 'sendStreamMessage',
165
- (msg: StreamMessage, context) => this.server.sendStreamMessage(msg, context))
161
+ (msg: StreamMessage, context) => this.deliveryRpcLocal.sendStreamMessage(msg, context))
166
162
  this.config.rpcCommunicator.registerRpcNotification(LeaveStreamPartNotice, 'leaveStreamPartNotice',
167
- (req: LeaveStreamPartNotice, context) => this.server.leaveStreamPartNotice(req, context))
163
+ (req: LeaveStreamPartNotice, context) => this.deliveryRpcLocal.leaveStreamPartNotice(req, context))
168
164
  this.config.rpcCommunicator.registerRpcMethod(TemporaryConnectionRequest, TemporaryConnectionResponse, 'openConnection',
169
- (req: TemporaryConnectionRequest, context) => this.config.temporaryConnectionServer.openConnection(req, context))
165
+ (req: TemporaryConnectionRequest, context) => this.config.temporaryConnectionRpcLocal.openConnection(req, context))
170
166
  }
171
167
 
172
- private newContact(_newContact: PeerDescriptor, closestNodes: PeerDescriptor[]): void {
168
+ private newContact(closestNodes: PeerDescriptor[]): void {
173
169
  logger.trace(`New nearby contact found`)
174
- if (this.stopped) {
170
+ if (this.isStopped()) {
175
171
  return
176
172
  }
177
173
  this.updateNearbyNodeView(closestNodes)
@@ -180,9 +176,9 @@ export class RandomGraphNode extends EventEmitter<Events> {
180
176
  }
181
177
  }
182
178
 
183
- private removedContact(_removedContact: PeerDescriptor, closestNodes: PeerDescriptor[]): void {
179
+ private removedContact(closestNodes: PeerDescriptor[]): void {
184
180
  logger.trace(`Nearby contact removed`)
185
- if (this.stopped) {
181
+ if (this.isStopped()) {
186
182
  return
187
183
  }
188
184
  this.updateNearbyNodeView(closestNodes)
@@ -190,11 +186,11 @@ export class RandomGraphNode extends EventEmitter<Events> {
190
186
 
191
187
  private updateNearbyNodeView(nodes: PeerDescriptor[]) {
192
188
  this.config.nearbyNodeView.replaceAll(Array.from(nodes).map((descriptor) =>
193
- new RemoteRandomGraphNode(
189
+ new DeliveryRpcRemote(
194
190
  this.config.ownPeerDescriptor,
195
191
  descriptor,
196
- this.config.randomGraphId,
197
- toProtoRpcClient(new NetworkRpcClient(this.config.rpcCommunicator.getRpcClientTransport()))
192
+ this.config.streamPartId,
193
+ toProtoRpcClient(new DeliveryRpcClient(this.config.rpcCommunicator.getRpcClientTransport()))
198
194
  )
199
195
  ))
200
196
  for (const descriptor of this.config.layer1.getKBucketPeers()) {
@@ -202,26 +198,26 @@ export class RandomGraphNode extends EventEmitter<Events> {
202
198
  break
203
199
  }
204
200
  this.config.nearbyNodeView.add(
205
- new RemoteRandomGraphNode(
201
+ new DeliveryRpcRemote(
206
202
  this.config.ownPeerDescriptor,
207
203
  descriptor,
208
- this.config.randomGraphId,
209
- toProtoRpcClient(new NetworkRpcClient(this.config.rpcCommunicator.getRpcClientTransport()))
204
+ this.config.streamPartId,
205
+ toProtoRpcClient(new DeliveryRpcClient(this.config.rpcCommunicator.getRpcClientTransport()))
210
206
  )
211
207
  )
212
208
  }
213
209
  }
214
210
 
215
- private newRandomContact(_newDescriptor: PeerDescriptor, randomNodes: PeerDescriptor[]): void {
216
- if (this.stopped) {
211
+ private newRandomContact(randomNodes: PeerDescriptor[]): void {
212
+ if (this.isStopped()) {
217
213
  return
218
214
  }
219
215
  this.config.randomNodeView.replaceAll(randomNodes.map((descriptor) =>
220
- new RemoteRandomGraphNode(
216
+ new DeliveryRpcRemote(
221
217
  this.config.ownPeerDescriptor,
222
218
  descriptor,
223
- this.config.randomGraphId,
224
- toProtoRpcClient(new NetworkRpcClient(this.config.rpcCommunicator.getRpcClientTransport()))
219
+ this.config.streamPartId,
220
+ toProtoRpcClient(new DeliveryRpcClient(this.config.rpcCommunicator.getRpcClientTransport()))
225
221
  )
226
222
  ))
227
223
  if (this.config.targetNeighbors.size() < this.config.numOfTargetNeighbors) {
@@ -229,17 +225,17 @@ export class RandomGraphNode extends EventEmitter<Events> {
229
225
  }
230
226
  }
231
227
 
232
- private removedRandomContact(_removedDescriptor: PeerDescriptor, randomNodes: PeerDescriptor[]): void {
228
+ private removedRandomContact(randomNodes: PeerDescriptor[]): void {
233
229
  logger.trace(`New nearby contact found`)
234
- if (this.stopped) {
230
+ if (this.isStopped()) {
235
231
  return
236
232
  }
237
233
  this.config.randomNodeView.replaceAll(randomNodes.map((descriptor) =>
238
- new RemoteRandomGraphNode(
234
+ new DeliveryRpcRemote(
239
235
  this.config.ownPeerDescriptor,
240
236
  descriptor,
241
- this.config.randomGraphId,
242
- toProtoRpcClient(new NetworkRpcClient(this.config.rpcCommunicator.getRpcClientTransport()))
237
+ this.config.streamPartId,
238
+ toProtoRpcClient(new DeliveryRpcClient(this.config.rpcCommunicator.getRpcClientTransport()))
243
239
  )
244
240
  ))
245
241
  }
@@ -247,9 +243,9 @@ export class RandomGraphNode extends EventEmitter<Events> {
247
243
  private onNodeDisconnected(peerDescriptor: PeerDescriptor): void {
248
244
  if (this.config.targetNeighbors.hasNode(peerDescriptor)) {
249
245
  this.config.targetNeighbors.remove(peerDescriptor)
250
- this.config.connectionLocker.unlockConnection(peerDescriptor, this.config.randomGraphId)
246
+ this.config.connectionLocker.unlockConnection(peerDescriptor, this.config.streamPartId)
251
247
  this.config.neighborFinder.start([getNodeIdFromPeerDescriptor(peerDescriptor)])
252
- this.config.temporaryConnectionServer.removeNode(peerDescriptor)
248
+ this.config.temporaryConnectionRpcLocal.removeNode(peerDescriptor)
253
249
  }
254
250
  }
255
251
 
@@ -264,9 +260,9 @@ export class RandomGraphNode extends EventEmitter<Events> {
264
260
  return Array.from(uniqueNodes)
265
261
  }
266
262
 
267
- public hasProxyConnection(nodeId: NodeID): boolean {
268
- if (this.config.proxyConnectionServer) {
269
- return this.config.proxyConnectionServer.hasConnection(nodeId)
263
+ hasProxyConnection(nodeId: NodeID): boolean {
264
+ if (this.config.proxyConnectionRpcLocal) {
265
+ return this.config.proxyConnectionRpcLocal.hasConnection(nodeId)
270
266
  }
271
267
  return false
272
268
  }
@@ -275,9 +271,8 @@ export class RandomGraphNode extends EventEmitter<Events> {
275
271
  if (!this.started) {
276
272
  return
277
273
  }
278
- this.stopped = true
279
274
  this.abortController.abort()
280
- this.config.proxyConnectionServer?.stop()
275
+ this.config.proxyConnectionRpcLocal?.stop()
281
276
  this.config.targetNeighbors.getAll().map((remote) => remote.leaveStreamPartNotice())
282
277
  this.config.rpcCommunicator.stop()
283
278
  this.removeAllListeners()
@@ -303,11 +298,11 @@ export class RandomGraphNode extends EventEmitter<Events> {
303
298
 
304
299
  private getPropagationTargets(msg: StreamMessage): NodeID[] {
305
300
  let propagationTargets = this.config.targetNeighbors.getIds()
306
- if (this.config.proxyConnectionServer) {
307
- propagationTargets = propagationTargets.concat(this.config.proxyConnectionServer!.getPropagationTargets(msg))
301
+ if (this.config.proxyConnectionRpcLocal) {
302
+ propagationTargets = propagationTargets.concat(this.config.proxyConnectionRpcLocal!.getPropagationTargets(msg))
308
303
  }
309
304
  propagationTargets = propagationTargets.filter((target) => !this.config.inspector.isInspected(target ))
310
- propagationTargets = propagationTargets.concat(this.config.temporaryConnectionServer.getNodes().getIds())
305
+ propagationTargets = propagationTargets.concat(this.config.temporaryConnectionRpcLocal.getNodes().getIds())
311
306
  return propagationTargets
312
307
  }
313
308
 
@@ -320,7 +315,7 @@ export class RandomGraphNode extends EventEmitter<Events> {
320
315
  }
321
316
 
322
317
  getTargetNeighborIds(): NodeID[] {
323
- if (!this.started && this.stopped) {
318
+ if (!this.started && this.isStopped()) {
324
319
  return []
325
320
  }
326
321
  return this.config.targetNeighbors.getIds()
@@ -329,4 +324,8 @@ export class RandomGraphNode extends EventEmitter<Events> {
329
324
  getNearbyNodeView(): NodeList {
330
325
  return this.config.nearbyNodeView
331
326
  }
327
+
328
+ private isStopped() {
329
+ return this.abortController.signal.aborted
330
+ }
332
331
  }
@@ -20,9 +20,9 @@ import { ProxyDirection, StreamMessage } from '../proto/packages/trackerless-net
20
20
  import { ILayer0 } from './ILayer0'
21
21
  import { ILayer1 } from './ILayer1'
22
22
  import { RandomGraphNode } from './RandomGraphNode'
23
- import { NETWORK_SPLIT_AVOIDANCE_LIMIT, StreamPartEntryPointDiscovery } from './StreamPartEntryPointDiscovery'
23
+ import { NETWORK_SPLIT_AVOIDANCE_LIMIT, EntryPointDiscovery } from './EntryPointDiscovery'
24
24
  import { createRandomGraphNode } from './createRandomGraphNode'
25
- import { ProxyStreamConnectionClient } from './proxy/ProxyStreamConnectionClient'
25
+ import { ProxyClient } from './proxy/ProxyClient'
26
26
 
27
27
  export type StreamPartDelivery = {
28
28
  broadcast: (msg: StreamMessage) => void
@@ -31,10 +31,10 @@ export type StreamPartDelivery = {
31
31
  proxied: false
32
32
  layer1: ILayer1
33
33
  node: RandomGraphNode
34
- entryPointDiscovery: StreamPartEntryPointDiscovery
34
+ entryPointDiscovery: EntryPointDiscovery
35
35
  } | {
36
36
  proxied: true
37
- client: ProxyStreamConnectionClient
37
+ client: ProxyClient
38
38
  })
39
39
 
40
40
  export interface Events {
@@ -54,8 +54,6 @@ export interface StreamrNodeConfig {
54
54
  metricsContext?: MetricsContext
55
55
  streamPartitionNumOfNeighbors?: number
56
56
  streamPartitionMinPropagationTargets?: number
57
- nodeName?: string
58
- firstConnectionTimeout?: number
59
57
  acceptProxyConnections?: boolean
60
58
  }
61
59
 
@@ -66,9 +64,9 @@ export class StreamrNode extends EventEmitter<Events> {
66
64
  private layer0?: ILayer0
67
65
  private readonly metricsContext: MetricsContext
68
66
  private readonly metrics: Metrics
69
- public config: StreamrNodeConfig
70
- private readonly streamParts: Map<string, StreamPartDelivery>
71
- private readonly knownStreamPartEntryPoints: Map<string, PeerDescriptor[]> = new Map()
67
+ private readonly config: StreamrNodeConfig
68
+ private readonly streamParts: Map<StreamPartID, StreamPartDelivery>
69
+ private readonly knownStreamPartEntryPoints: Map<StreamPartID, PeerDescriptor[]> = new Map()
72
70
  private started = false
73
71
  private destroyed = false
74
72
 
@@ -102,7 +100,7 @@ export class StreamrNode extends EventEmitter<Events> {
102
100
  }
103
101
  logger.trace('Destroying StreamrNode...')
104
102
  this.destroyed = true
105
- this.streamParts.forEach((stream) => stream.stop())
103
+ this.streamParts.forEach((streamPart) => streamPart.stop())
106
104
  this.streamParts.clear()
107
105
  this.removeAllListeners()
108
106
  await this.layer0!.stop()
@@ -121,27 +119,26 @@ export class StreamrNode extends EventEmitter<Events> {
121
119
  }
122
120
 
123
121
  leaveStreamPart(streamPartId: StreamPartID): void {
124
- const stream = this.streamParts.get(streamPartId)
125
- if (stream) {
126
- stream.stop()
122
+ const streamPart = this.streamParts.get(streamPartId)
123
+ if (streamPart) {
124
+ streamPart.stop()
127
125
  this.streamParts.delete(streamPartId)
128
126
  }
129
127
  }
130
128
 
131
129
  joinStreamPart(streamPartId: StreamPartID): void {
132
130
  logger.debug(`Join stream part ${streamPartId}`)
133
- let stream = this.streamParts.get(streamPartId)
134
- if (stream !== undefined) {
131
+ let streamPart = this.streamParts.get(streamPartId)
132
+ if (streamPart !== undefined) {
135
133
  return
136
134
  }
137
135
  const layer1 = this.createLayer1Node(streamPartId, this.knownStreamPartEntryPoints.get(streamPartId) ?? [])
138
136
  const node = this.createRandomGraphNode(streamPartId, layer1)
139
- const entryPointDiscovery = new StreamPartEntryPointDiscovery({
137
+ const entryPointDiscovery = new EntryPointDiscovery({
140
138
  streamPartId,
141
139
  ownPeerDescriptor: this.getPeerDescriptor(),
142
140
  layer1,
143
141
  getEntryPointData: (key) => this.layer0!.getDataFromDht(key),
144
- getEntryPointDataViaNode: (key, node) => this.layer0!.findDataViaPeer(key, node),
145
142
  storeEntryPointData: (key, data) => this.layer0!.storeDataToDht(key, data),
146
143
  deleteEntryPointData: async (key) => {
147
144
  if (this.destroyed) {
@@ -150,7 +147,7 @@ export class StreamrNode extends EventEmitter<Events> {
150
147
  return this.layer0!.deleteDataFromDht(key)
151
148
  }
152
149
  })
153
- stream = {
150
+ streamPart = {
154
151
  proxied: false,
155
152
  layer1,
156
153
  node,
@@ -162,7 +159,7 @@ export class StreamrNode extends EventEmitter<Events> {
162
159
  layer1.stop()
163
160
  }
164
161
  }
165
- this.streamParts.set(streamPartId, stream)
162
+ this.streamParts.set(streamPartId, streamPart)
166
163
  node.on('message', (message: StreamMessage) => {
167
164
  this.emit('newMessage', message)
168
165
  })
@@ -170,28 +167,26 @@ export class StreamrNode extends EventEmitter<Events> {
170
167
  try {
171
168
  await this.startLayersAndJoinDht(streamPartId, entryPointDiscovery)
172
169
  } catch (err) {
173
- logger.warn(`Failed to join to stream ${streamPartId} with error: ${err}`)
170
+ logger.warn(`Failed to join to stream part ${streamPartId} with error: ${err}`)
174
171
  }
175
172
  })
176
173
  }
177
174
 
178
- private async startLayersAndJoinDht(streamPartId: StreamPartID, entryPointDiscovery: StreamPartEntryPointDiscovery): Promise<void> {
175
+ private async startLayersAndJoinDht(streamPartId: StreamPartID, entryPointDiscovery: EntryPointDiscovery): Promise<void> {
179
176
  logger.debug(`Start layers and join DHT for stream part ${streamPartId}`)
180
- const stream = this.streamParts.get(streamPartId)
181
- if ((stream === undefined) || stream.proxied) {
182
- // leaveStream has been called (or leaveStream called, and then setProxies called)
177
+ const streamPart = this.streamParts.get(streamPartId)
178
+ if ((streamPart === undefined) || streamPart.proxied) {
179
+ // leaveStreamPart has been called (or leaveStreamPart called, and then setProxies called)
183
180
  return
184
181
  }
185
- await stream.layer1.start()
186
- await stream.node.start()
182
+ await streamPart.layer1.start()
183
+ await streamPart.node.start()
187
184
  let entryPoints = this.knownStreamPartEntryPoints.get(streamPartId) ?? []
188
- const forwardingNode = this.layer0!.isJoinOngoing() ? this.layer0!.getKnownEntryPoints()[0] : undefined
189
185
  const discoveryResult = await entryPointDiscovery.discoverEntryPointsFromDht(
190
- entryPoints.length,
191
- forwardingNode
186
+ entryPoints.length
192
187
  )
193
188
  entryPoints = entryPoints.concat(discoveryResult.discoveredEntryPoints)
194
- await stream.layer1.joinDht(sampleSize(entryPoints, NETWORK_SPLIT_AVOIDANCE_LIMIT))
189
+ await streamPart.layer1.joinDht(sampleSize(entryPoints, NETWORK_SPLIT_AVOIDANCE_LIMIT))
195
190
  if (discoveryResult.entryPointsFromDht) {
196
191
  await entryPointDiscovery.storeSelfAsEntryPointIfNecessary(entryPoints.length)
197
192
  }
@@ -199,27 +194,25 @@ export class StreamrNode extends EventEmitter<Events> {
199
194
 
200
195
  private createLayer1Node = (streamPartId: StreamPartID, entryPoints: PeerDescriptor[]): ILayer1 => {
201
196
  return new DhtNode({
202
- transportLayer: this.layer0!,
197
+ transport: this.layer0!,
203
198
  serviceId: 'layer1::' + streamPartId,
204
199
  peerDescriptor: this.layer0!.getPeerDescriptor(),
205
200
  entryPoints,
206
201
  numberOfNodesPerKBucket: 4,
207
202
  rpcRequestTimeout: 5000,
208
- dhtJoinTimeout: 20000,
209
- nodeName: this.config.nodeName + ':layer1'
203
+ dhtJoinTimeout: 20000
210
204
  })
211
205
  }
212
206
 
213
207
  private createRandomGraphNode = (streamPartId: StreamPartID, layer1: ILayer1) => {
214
208
  return createRandomGraphNode({
215
- randomGraphId: streamPartId,
209
+ streamPartId,
216
210
  P2PTransport: this.P2PTransport!,
217
211
  layer1,
218
212
  connectionLocker: this.connectionLocker!,
219
213
  ownPeerDescriptor: this.layer0!.getPeerDescriptor(),
220
214
  minPropagationTargets: this.config.streamPartitionMinPropagationTargets,
221
215
  numOfTargetNeighbors: this.config.streamPartitionNumOfNeighbors,
222
- name: this.config.nodeName,
223
216
  acceptProxyConnections: this.config.acceptProxyConnections
224
217
  })
225
218
  }
@@ -236,51 +229,44 @@ export class StreamrNode extends EventEmitter<Events> {
236
229
  }
237
230
  const enable = (nodes.length > 0) && ((connectionCount === undefined) || (connectionCount > 0))
238
231
  if (enable) {
239
- let proxyClient: ProxyStreamConnectionClient
232
+ let client: ProxyClient
240
233
  const alreadyProxied = this.isProxiedStreamPart(streamPartId)
241
234
  if (alreadyProxied) {
242
- proxyClient = (this.streamParts.get(streamPartId)! as { client: ProxyStreamConnectionClient }).client
235
+ client = (this.streamParts.get(streamPartId)! as { client: ProxyClient }).client
243
236
  } else {
244
- proxyClient = this.createProxyStream(streamPartId, userId)
245
- await proxyClient.start()
237
+ client = this.createProxyClient(streamPartId)
238
+ this.streamParts.set(streamPartId, {
239
+ proxied: true,
240
+ client,
241
+ broadcast: (msg: StreamMessage) => client.broadcast(msg),
242
+ stop: () => client.stop()
243
+ })
244
+ client.on('message', (message: StreamMessage) => {
245
+ this.emit('newMessage', message)
246
+ })
247
+ await client.start()
246
248
  }
247
- await proxyClient.setProxies(streamPartId, nodes, direction, userId, connectionCount)
249
+ await client.setProxies(nodes, direction, userId, connectionCount)
248
250
  } else {
249
251
  this.streamParts.get(streamPartId)?.stop()
250
252
  this.streamParts.delete(streamPartId)
251
253
  }
252
254
  }
253
255
 
254
- private createProxyStream(streamPartId: StreamPartID, userId: EthereumAddress): ProxyStreamConnectionClient {
255
- const client = this.createProxyStreamConnectionClient(streamPartId, userId)
256
- this.streamParts.set(streamPartId, {
257
- proxied: true,
258
- client,
259
- broadcast: (msg: StreamMessage) => client.broadcast(msg),
260
- stop: () => client.stop()
261
- })
262
- client.on('message', (message: StreamMessage) => {
263
- this.emit('newMessage', message)
264
- })
265
- return client
266
- }
267
-
268
- private createProxyStreamConnectionClient(streamPartId: StreamPartID, userId: EthereumAddress): ProxyStreamConnectionClient {
269
- return new ProxyStreamConnectionClient({
256
+ private createProxyClient(streamPartId: StreamPartID): ProxyClient {
257
+ return new ProxyClient({
270
258
  P2PTransport: this.P2PTransport!,
271
259
  ownPeerDescriptor: this.layer0!.getPeerDescriptor(),
272
260
  streamPartId,
273
261
  connectionLocker: this.connectionLocker!,
274
- minPropagationTargets: this.config.streamPartitionMinPropagationTargets,
275
- nodeName: this.config.nodeName,
276
- userId
262
+ minPropagationTargets: this.config.streamPartitionMinPropagationTargets
277
263
  })
278
264
  }
279
265
 
280
266
  async inspect(peerDescriptor: PeerDescriptor, streamPartId: StreamPartID): Promise<boolean> {
281
- const stream = this.streamParts.get(streamPartId)
282
- if ((stream !== undefined) && !stream.proxied) {
283
- return stream.node.inspect(peerDescriptor)
267
+ const streamPart = this.streamParts.get(streamPartId)
268
+ if ((streamPart !== undefined) && !streamPart.proxied) {
269
+ return streamPart.node.inspect(peerDescriptor)
284
270
  }
285
271
  return false
286
272
  }
@@ -289,18 +275,18 @@ export class StreamrNode extends EventEmitter<Events> {
289
275
  this.knownStreamPartEntryPoints.set(streamPartId, entryPoints)
290
276
  }
291
277
 
292
- isProxiedStreamPart(streamId: string, direction?: ProxyDirection): boolean {
293
- const stream = this.streamParts.get(streamId)
294
- return (stream !== undefined)
295
- && stream.proxied
296
- && ((direction === undefined) || (stream.client.getDirection() === direction))
278
+ isProxiedStreamPart(streamPartId: StreamPartID, direction?: ProxyDirection): boolean {
279
+ const streamPart = this.streamParts.get(streamPartId)
280
+ return (streamPart !== undefined)
281
+ && streamPart.proxied
282
+ && ((direction === undefined) || (streamPart.client.getDirection() === direction))
297
283
  }
298
284
 
299
- getStream(streamPartId: StreamPartID): StreamPartDelivery | undefined {
285
+ getStreamPartDelivery(streamPartId: StreamPartID): StreamPartDelivery | undefined {
300
286
  return this.streamParts.get(streamPartId)
301
287
  }
302
288
 
303
- hasStream(streamPartId: StreamPartID): boolean {
289
+ hasStreamPart(streamPartId: StreamPartID): boolean {
304
290
  return this.streamParts.has(streamPartId)
305
291
  }
306
292
 
@@ -309,13 +295,13 @@ export class StreamrNode extends EventEmitter<Events> {
309
295
  }
310
296
 
311
297
  getNodeId(): NodeID {
312
- return this.layer0!.getNodeId().toKey() as unknown as NodeID
298
+ return getNodeIdFromPeerDescriptor(this.layer0!.getPeerDescriptor())
313
299
  }
314
300
 
315
301
  getNeighbors(streamPartId: StreamPartID): NodeID[] {
316
- const stream = this.streamParts.get(streamPartId)
317
- return (stream !== undefined) && (stream.proxied === false)
318
- ? stream.node.getTargetNeighborIds()
302
+ const streamPart = this.streamParts.get(streamPartId)
303
+ return (streamPart !== undefined) && (streamPart.proxied === false)
304
+ ? streamPart.node.getTargetNeighborIds()
319
305
  : []
320
306
  }
321
307