@streamr/trackerless-network 0.0.1-tatum.5 → 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 (177) 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/EntryPointDiscovery.d.ts +35 -0
  16. package/dist/src/logic/EntryPointDiscovery.js +145 -0
  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/ILayer1.d.ts +2 -2
  20. package/dist/src/logic/NodeList.d.ts +10 -10
  21. package/dist/src/logic/NodeList.js +2 -2
  22. package/dist/src/logic/NodeList.js.map +1 -1
  23. package/dist/src/logic/RandomGraphNode.d.ts +8 -12
  24. package/dist/src/logic/RandomGraphNode.js +47 -46
  25. package/dist/src/logic/RandomGraphNode.js.map +1 -1
  26. package/dist/src/logic/StreamrNode.d.ts +9 -11
  27. package/dist/src/logic/StreamrNode.js +72 -75
  28. package/dist/src/logic/StreamrNode.js.map +1 -1
  29. package/dist/src/logic/createRandomGraphNode.d.ts +6 -1
  30. package/dist/src/logic/createRandomGraphNode.js +17 -23
  31. package/dist/src/logic/createRandomGraphNode.js.map +1 -1
  32. package/dist/src/logic/formStreamPartDeliveryServiceId.d.ts +2 -0
  33. package/dist/src/logic/formStreamPartDeliveryServiceId.js +8 -0
  34. package/dist/src/logic/formStreamPartDeliveryServiceId.js.map +1 -0
  35. package/dist/src/logic/inspect/Inspector.d.ts +3 -2
  36. package/dist/src/logic/inspect/Inspector.js +5 -5
  37. package/dist/src/logic/inspect/Inspector.js.map +1 -1
  38. package/dist/src/logic/neighbor-discovery/{HandshakerServer.d.ts → HandshakeRpcLocal.d.ts} +10 -10
  39. package/dist/src/logic/neighbor-discovery/{HandshakerServer.js → HandshakeRpcLocal.js} +13 -13
  40. package/dist/src/logic/neighbor-discovery/HandshakeRpcLocal.js.map +1 -0
  41. package/dist/src/logic/neighbor-discovery/{RemoteHandshaker.d.ts → HandshakeRpcRemote.d.ts} +1 -1
  42. package/dist/src/logic/neighbor-discovery/{RemoteHandshaker.js → HandshakeRpcRemote.js} +8 -7
  43. package/dist/src/logic/neighbor-discovery/HandshakeRpcRemote.js.map +1 -0
  44. package/dist/src/logic/neighbor-discovery/Handshaker.d.ts +8 -7
  45. package/dist/src/logic/neighbor-discovery/Handshaker.js +23 -24
  46. package/dist/src/logic/neighbor-discovery/Handshaker.js.map +1 -1
  47. package/dist/src/logic/neighbor-discovery/NeighborFinder.d.ts +1 -1
  48. package/dist/src/logic/neighbor-discovery/NeighborFinder.js +5 -5
  49. package/dist/src/logic/neighbor-discovery/NeighborFinder.js.map +1 -1
  50. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.d.ts +3 -2
  51. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js +7 -7
  52. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js.map +1 -1
  53. package/dist/src/logic/neighbor-discovery/{NeighborUpdateManagerServer.d.ts → NeighborUpdateRpcLocal.d.ts} +6 -6
  54. package/dist/src/logic/neighbor-discovery/{NeighborUpdateManagerServer.js → NeighborUpdateRpcLocal.js} +11 -11
  55. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.js.map +1 -0
  56. package/dist/src/logic/neighbor-discovery/{RemoteNeighborUpdateManager.d.ts → NeighborUpdateRpcRemote.d.ts} +1 -1
  57. package/dist/src/logic/neighbor-discovery/{RemoteNeighborUpdateManager.js → NeighborUpdateRpcRemote.js} +5 -5
  58. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcRemote.js.map +1 -0
  59. package/dist/src/logic/propagation/Propagation.js +2 -2
  60. package/dist/src/logic/propagation/Propagation.js.map +1 -1
  61. package/dist/src/logic/proxy/{ProxyStreamConnectionClient.d.ts → ProxyClient.d.ts} +8 -12
  62. package/dist/src/logic/proxy/{ProxyStreamConnectionClient.js → ProxyClient.js} +28 -29
  63. package/dist/src/logic/proxy/ProxyClient.js.map +1 -0
  64. package/dist/src/logic/proxy/{ProxyStreamConnectionServer.d.ts → ProxyConnectionRpcLocal.d.ts} +5 -7
  65. package/dist/src/logic/proxy/{ProxyStreamConnectionServer.js → ProxyConnectionRpcLocal.js} +6 -12
  66. package/dist/src/logic/proxy/ProxyConnectionRpcLocal.js.map +1 -0
  67. package/dist/src/logic/proxy/{RemoteProxyServer.d.ts → ProxyConnectionRpcRemote.d.ts} +1 -1
  68. package/dist/src/logic/proxy/{RemoteProxyServer.js → ProxyConnectionRpcRemote.js} +4 -4
  69. package/dist/src/logic/proxy/ProxyConnectionRpcRemote.js.map +1 -0
  70. package/dist/src/logic/temporary-connection/{TemporaryConnectionRpcServer.d.ts → TemporaryConnectionRpcLocal.d.ts} +5 -4
  71. package/dist/src/logic/temporary-connection/{TemporaryConnectionRpcServer.js → TemporaryConnectionRpcLocal.js} +6 -6
  72. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.js.map +1 -0
  73. package/dist/src/logic/temporary-connection/{RemoteTemporaryConnectionRpcServer.d.ts → TemporaryConnectionRpcRemote.d.ts} +1 -1
  74. package/dist/src/logic/temporary-connection/{RemoteTemporaryConnectionRpcServer.js → TemporaryConnectionRpcRemote.js} +4 -4
  75. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcRemote.js.map +1 -0
  76. package/dist/src/proto/packages/dht/protos/DhtRpc.d.ts +0 -4
  77. package/dist/src/proto/packages/dht/protos/DhtRpc.js +1 -2
  78. package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +1 -1
  79. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.d.ts +4 -4
  80. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.js +7 -7
  81. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.js.map +1 -1
  82. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.d.ts +10 -10
  83. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.js +7 -7
  84. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.js.map +1 -1
  85. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.server.d.ts +2 -2
  86. package/dist/test/benchmark/first-message.js +10 -13
  87. package/dist/test/benchmark/first-message.js.map +1 -1
  88. package/dist/test/utils/utils.d.ts +5 -5
  89. package/dist/test/utils/utils.js +14 -14
  90. package/dist/test/utils/utils.js.map +1 -1
  91. package/package.json +10 -8
  92. package/protos/NetworkRpc.proto +5 -5
  93. package/src/NetworkNode.ts +1 -1
  94. package/src/NetworkStack.ts +20 -62
  95. package/src/identifiers.ts +3 -3
  96. package/src/logic/{StreamNodeServer.ts → DeliveryRpcLocal.ts} +8 -7
  97. package/src/logic/{RemoteRandomGraphNode.ts → DeliveryRpcRemote.ts} +3 -3
  98. package/src/logic/EntryPointDiscovery.ts +181 -0
  99. package/src/logic/ILayer0.ts +3 -6
  100. package/src/logic/ILayer1.ts +2 -5
  101. package/src/logic/NodeList.ts +12 -12
  102. package/src/logic/RandomGraphNode.ts +67 -69
  103. package/src/logic/StreamrNode.ts +78 -90
  104. package/src/logic/createRandomGraphNode.ts +28 -26
  105. package/src/logic/formStreamPartDeliveryServiceId.ts +5 -0
  106. package/src/logic/inspect/Inspector.ts +8 -7
  107. package/src/logic/neighbor-discovery/{HandshakerServer.ts → HandshakeRpcLocal.ts} +20 -20
  108. package/src/logic/neighbor-discovery/{RemoteHandshaker.ts → HandshakeRpcRemote.ts} +6 -5
  109. package/src/logic/neighbor-discovery/Handshaker.ts +38 -38
  110. package/src/logic/neighbor-discovery/NeighborFinder.ts +6 -6
  111. package/src/logic/neighbor-discovery/NeighborUpdateManager.ts +15 -12
  112. package/src/logic/neighbor-discovery/{NeighborUpdateManagerServer.ts → NeighborUpdateRpcLocal.ts} +17 -17
  113. package/src/logic/neighbor-discovery/{RemoteNeighborUpdateManager.ts → NeighborUpdateRpcRemote.ts} +2 -2
  114. package/src/logic/propagation/Propagation.ts +2 -2
  115. package/src/logic/proxy/{ProxyStreamConnectionClient.ts → ProxyClient.ts} +33 -37
  116. package/src/logic/proxy/{ProxyStreamConnectionServer.ts → ProxyConnectionRpcLocal.ts} +10 -19
  117. package/src/logic/proxy/{RemoteProxyServer.ts → ProxyConnectionRpcRemote.ts} +1 -1
  118. package/src/logic/temporary-connection/{TemporaryConnectionRpcServer.ts → TemporaryConnectionRpcLocal.ts} +11 -10
  119. package/src/logic/temporary-connection/{RemoteTemporaryConnectionRpcServer.ts → TemporaryConnectionRpcRemote.ts} +1 -1
  120. package/src/proto/packages/dht/protos/DhtRpc.ts +1 -6
  121. package/src/proto/packages/trackerless-network/protos/NetworkRpc.client.ts +8 -8
  122. package/src/proto/packages/trackerless-network/protos/NetworkRpc.server.ts +2 -2
  123. package/src/proto/packages/trackerless-network/protos/NetworkRpc.ts +14 -14
  124. package/test/benchmark/first-message.ts +10 -13
  125. package/test/end-to-end/inspect.test.ts +12 -12
  126. package/test/end-to-end/proxy-and-full-node.test.ts +13 -14
  127. package/test/end-to-end/proxy-connections.test.ts +10 -12
  128. package/test/end-to-end/proxy-key-exchange.test.ts +12 -13
  129. package/test/end-to-end/random-graph-with-real-connections.test.ts +7 -7
  130. package/test/end-to-end/webrtc-full-node-network.test.ts +8 -8
  131. package/test/end-to-end/websocket-full-node-network.test.ts +8 -10
  132. package/test/integration/{RemoteRandomGraphNode.test.ts → DeliveryRpcRemote.test.ts} +17 -14
  133. package/test/integration/{RemoteHandshaker.test.ts → HandshakeRpcRemote.test.ts} +10 -9
  134. package/test/integration/Handshakes.test.ts +23 -20
  135. package/test/integration/Inspect.test.ts +3 -2
  136. package/test/integration/{RemoteNeighborUpdateManager.test.ts → NeighborUpdateRpcRemote.test.ts} +12 -10
  137. package/test/integration/NetworkNode.test.ts +9 -8
  138. package/test/integration/NetworkRpc.test.ts +5 -7
  139. package/test/integration/NetworkStack.test.ts +13 -15
  140. package/test/integration/Propagation.test.ts +2 -2
  141. package/test/integration/RandomGraphNode-Layer1Node-Latencies.test.ts +10 -8
  142. package/test/integration/RandomGraphNode-Layer1Node.test.ts +17 -17
  143. package/test/integration/StreamrNode.test.ts +5 -3
  144. package/test/integration/joining-streams-on-offline-peers.test.ts +16 -18
  145. package/test/integration/stream-without-default-entrypoints.test.ts +11 -13
  146. package/test/unit/{StreamNodeServer.test.ts → DeliveryRpcLocal.test.ts} +8 -8
  147. package/test/unit/EntrypointDiscovery.test.ts +132 -0
  148. package/test/unit/{HandshakerServer.test.ts → HandshakeRpcLocal.test.ts} +26 -24
  149. package/test/unit/Handshaker.test.ts +10 -8
  150. package/test/unit/Inspector.test.ts +4 -3
  151. package/test/unit/NeighborFinder.test.ts +5 -5
  152. package/test/unit/NodeList.test.ts +22 -13
  153. package/test/unit/{RemoteProxyServer.test.ts → ProxyConnectionRpcRemote.test.ts} +4 -4
  154. package/test/unit/RandomGraphNode.test.ts +12 -11
  155. package/test/unit/StreamMessageTranslator.test.ts +10 -9
  156. package/test/unit/StreamrNode.test.ts +8 -8
  157. package/test/utils/mock/MockLayer0.ts +7 -26
  158. package/test/utils/mock/MockLayer1.ts +6 -13
  159. package/test/utils/mock/MockNeighborFinder.ts +1 -2
  160. package/test/utils/mock/MockNeighborUpdateManager.ts +1 -2
  161. package/test/utils/mock/Transport.ts +2 -2
  162. package/test/utils/utils.ts +13 -13
  163. package/dist/src/logic/RemoteRandomGraphNode.js.map +0 -1
  164. package/dist/src/logic/StreamPartEntryPointDiscovery.d.ts +0 -39
  165. package/dist/src/logic/StreamPartEntryPointDiscovery.js +0 -194
  166. package/dist/src/logic/StreamPartEntryPointDiscovery.js.map +0 -1
  167. package/dist/src/logic/neighbor-discovery/HandshakerServer.js.map +0 -1
  168. package/dist/src/logic/neighbor-discovery/NeighborUpdateManagerServer.js.map +0 -1
  169. package/dist/src/logic/neighbor-discovery/RemoteHandshaker.js.map +0 -1
  170. package/dist/src/logic/neighbor-discovery/RemoteNeighborUpdateManager.js.map +0 -1
  171. package/dist/src/logic/proxy/ProxyStreamConnectionClient.js.map +0 -1
  172. package/dist/src/logic/proxy/ProxyStreamConnectionServer.js.map +0 -1
  173. package/dist/src/logic/proxy/RemoteProxyServer.js.map +0 -1
  174. package/dist/src/logic/temporary-connection/RemoteTemporaryConnectionRpcServer.js.map +0 -1
  175. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcServer.js.map +0 -1
  176. package/src/logic/StreamPartEntryPointDiscovery.ts +0 -240
  177. package/test/unit/StreamPartEntrypointDiscovery.test.ts +0 -164
@@ -1,7 +1,6 @@
1
1
  import { EventEmitter } from 'eventemitter3'
2
2
  import {
3
3
  PeerDescriptor,
4
- DhtPeer,
5
4
  ListeningRpcCommunicator,
6
5
  ITransport,
7
6
  ConnectionLocker
@@ -15,9 +14,9 @@ import {
15
14
  MessageID,
16
15
  } from '../proto/packages/trackerless-network/protos/NetworkRpc'
17
16
  import { NodeList } from './NodeList'
18
- import { NetworkRpcClient } from '../proto/packages/trackerless-network/protos/NetworkRpc.client'
19
- import { RemoteRandomGraphNode } from './RemoteRandomGraphNode'
20
- 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'
21
20
  import { DuplicateMessageDetector } from './DuplicateMessageDetector'
22
21
  import { Logger, addManagedEventListener } from '@streamr/utils'
23
22
  import { toProtoRpcClient } from '@streamr/proto-rpc'
@@ -25,13 +24,14 @@ import { IHandshaker } from './neighbor-discovery/Handshaker'
25
24
  import { Propagation } from './propagation/Propagation'
26
25
  import { INeighborFinder } from './neighbor-discovery/NeighborFinder'
27
26
  import { INeighborUpdateManager } from './neighbor-discovery/NeighborUpdateManager'
28
- import { StreamNodeServer } from './StreamNodeServer'
29
- import { ProxyStreamConnectionServer } from './proxy/ProxyStreamConnectionServer'
27
+ import { DeliveryRpcLocal } from './DeliveryRpcLocal'
28
+ import { ProxyConnectionRpcLocal } from './proxy/ProxyConnectionRpcLocal'
30
29
  import { IInspector } from './inspect/Inspector'
31
- import { TemporaryConnectionRpcServer } from './temporary-connection/TemporaryConnectionRpcServer'
30
+ import { TemporaryConnectionRpcLocal } from './temporary-connection/TemporaryConnectionRpcLocal'
32
31
  import { markAndCheckDuplicate } from './utils'
33
32
  import { NodeID, getNodeIdFromPeerDescriptor } from '../identifiers'
34
33
  import { ILayer1 } from './ILayer1'
34
+ import { StreamPartID } from '@streamr/protocol'
35
35
 
36
36
  export interface Events {
37
37
  message: (message: StreamMessage) => void
@@ -39,7 +39,7 @@ export interface Events {
39
39
  }
40
40
 
41
41
  export interface StrictRandomGraphNodeConfig {
42
- randomGraphId: string
42
+ streamPartId: StreamPartID
43
43
  layer1: ILayer1
44
44
  P2PTransport: ITransport
45
45
  connectionLocker: ConnectionLocker
@@ -54,49 +54,44 @@ export interface StrictRandomGraphNodeConfig {
54
54
  propagation: Propagation
55
55
  rpcCommunicator: ListeningRpcCommunicator
56
56
  numOfTargetNeighbors: number
57
- maxNumberOfContacts: number
58
- minPropagationTargets: number
59
- name: string
60
- acceptProxyConnections: boolean
61
- neighborUpdateInterval: number
62
57
  inspector: IInspector
63
- temporaryConnectionServer: TemporaryConnectionRpcServer
64
- proxyConnectionServer?: ProxyStreamConnectionServer
58
+ temporaryConnectionRpcLocal: TemporaryConnectionRpcLocal
59
+ proxyConnectionRpcLocal?: ProxyConnectionRpcLocal
65
60
  }
66
61
 
67
62
  const logger = new Logger(module)
68
63
 
69
64
  export class RandomGraphNode extends EventEmitter<Events> {
70
- private stopped = false
65
+
71
66
  private started = false
72
67
  private readonly duplicateDetectors: Map<string, DuplicateMessageDetector>
73
68
  private config: StrictRandomGraphNodeConfig
74
- private readonly server: INetworkRpc
69
+ private readonly deliveryRpcLocal: IDeliveryRpc
75
70
  private abortController: AbortController = new AbortController()
76
71
 
77
72
  constructor(config: StrictRandomGraphNodeConfig) {
78
73
  super()
79
74
  this.config = config
80
75
  this.duplicateDetectors = new Map()
81
- this.server = new StreamNodeServer({
76
+ this.deliveryRpcLocal = new DeliveryRpcLocal({
82
77
  ownPeerDescriptor: this.config.ownPeerDescriptor,
83
- randomGraphId: this.config.randomGraphId,
78
+ streamPartId: this.config.streamPartId,
84
79
  rpcCommunicator: this.config.rpcCommunicator,
85
80
  markAndCheckDuplicate: (msg: MessageID, prev?: MessageRef) => markAndCheckDuplicate(this.duplicateDetectors, msg, prev),
86
81
  broadcast: (message: StreamMessage, previousNode?: NodeID) => this.broadcast(message, previousNode),
87
82
  onLeaveNotice: (senderId: NodeID) => {
88
- const contact = this.config.nearbyNodeView.getNeighborById(senderId)
89
- || this.config.randomNodeView.getNeighborById(senderId)
90
- || this.config.targetNeighbors.getNeighborById(senderId)
91
- || this.config.proxyConnectionServer?.getConnection(senderId )?.remote
83
+ const contact = this.config.nearbyNodeView.get(senderId)
84
+ || this.config.randomNodeView.get(senderId)
85
+ || this.config.targetNeighbors.get(senderId)
86
+ || this.config.proxyConnectionRpcLocal?.getConnection(senderId )?.remote
92
87
  // TODO: check integrity of notifier?
93
88
  if (contact) {
94
89
  this.config.layer1.removeContact(contact.getPeerDescriptor(), true)
95
90
  this.config.targetNeighbors.remove(contact.getPeerDescriptor())
96
91
  this.config.nearbyNodeView.remove(contact.getPeerDescriptor())
97
- this.config.connectionLocker.unlockConnection(contact.getPeerDescriptor(), this.config.randomGraphId)
92
+ this.config.connectionLocker.unlockConnection(contact.getPeerDescriptor(), this.config.streamPartId)
98
93
  this.config.neighborFinder.start([senderId])
99
- this.config.proxyConnectionServer?.removeConnection(senderId)
94
+ this.config.proxyConnectionRpcLocal?.removeConnection(senderId)
100
95
  }
101
96
  },
102
97
  markForInspection: (senderId: NodeID, messageId: MessageID) => this.config.inspector.markMessage(senderId, messageId)
@@ -109,25 +104,25 @@ export class RandomGraphNode extends EventEmitter<Events> {
109
104
  addManagedEventListener<any, any>(
110
105
  this.config.layer1 as any,
111
106
  'newContact',
112
- (peerDescriptor: PeerDescriptor, closestPeers: PeerDescriptor[]) => this.newContact(peerDescriptor, closestPeers),
107
+ (_peerDescriptor: PeerDescriptor, closestPeers: PeerDescriptor[]) => this.newContact(closestPeers),
113
108
  this.abortController.signal
114
109
  )
115
110
  addManagedEventListener<any, any>(
116
111
  this.config.layer1 as any,
117
112
  'contactRemoved',
118
- (peerDescriptor: PeerDescriptor, closestPeers: PeerDescriptor[]) => this.removedContact(peerDescriptor, closestPeers),
113
+ (_peerDescriptor: PeerDescriptor, closestPeers: PeerDescriptor[]) => this.removedContact(closestPeers),
119
114
  this.abortController.signal
120
115
  )
121
116
  addManagedEventListener<any, any>(
122
117
  this.config.layer1 as any,
123
118
  'newRandomContact',
124
- (peerDescriptor: PeerDescriptor, randomPeers: PeerDescriptor[]) => this.newRandomContact(peerDescriptor, randomPeers),
119
+ (_peerDescriptor: PeerDescriptor, randomPeers: PeerDescriptor[]) => this.newRandomContact(randomPeers),
125
120
  this.abortController.signal
126
121
  )
127
122
  addManagedEventListener<any, any>(
128
123
  this.config.layer1 as any,
129
124
  'randomContactRemoved',
130
- (peerDescriptor: PeerDescriptor, randomPeers: PeerDescriptor[]) => this.removedRandomContact(peerDescriptor, randomPeers),
125
+ (_peerDescriptor: PeerDescriptor, randomPeers: PeerDescriptor[]) => this.removedRandomContact(randomPeers),
131
126
  this.abortController.signal
132
127
  )
133
128
  addManagedEventListener<any, any>(
@@ -145,9 +140,9 @@ export class RandomGraphNode extends EventEmitter<Events> {
145
140
  },
146
141
  this.abortController.signal
147
142
  )
148
- if (this.config.proxyConnectionServer !== undefined) {
143
+ if (this.config.proxyConnectionRpcLocal !== undefined) {
149
144
  addManagedEventListener(
150
- this.config.proxyConnectionServer,
145
+ this.config.proxyConnectionRpcLocal,
151
146
  'newConnection',
152
147
  (id: NodeID) => this.config.propagation.onNeighborJoined(id),
153
148
  this.abortController.signal
@@ -155,7 +150,7 @@ export class RandomGraphNode extends EventEmitter<Events> {
155
150
  }
156
151
  const candidates = this.getNeighborCandidatesFromLayer1()
157
152
  if (candidates.length > 0) {
158
- this.newContact(candidates[0], candidates)
153
+ this.newContact(candidates)
159
154
  }
160
155
  this.config.neighborFinder.start()
161
156
  await this.config.neighborUpdateManager.start()
@@ -163,16 +158,16 @@ export class RandomGraphNode extends EventEmitter<Events> {
163
158
 
164
159
  private registerDefaultServerMethods(): void {
165
160
  this.config.rpcCommunicator.registerRpcNotification(StreamMessage, 'sendStreamMessage',
166
- (msg: StreamMessage, context) => this.server.sendStreamMessage(msg, context))
161
+ (msg: StreamMessage, context) => this.deliveryRpcLocal.sendStreamMessage(msg, context))
167
162
  this.config.rpcCommunicator.registerRpcNotification(LeaveStreamPartNotice, 'leaveStreamPartNotice',
168
- (req: LeaveStreamPartNotice, context) => this.server.leaveStreamPartNotice(req, context))
163
+ (req: LeaveStreamPartNotice, context) => this.deliveryRpcLocal.leaveStreamPartNotice(req, context))
169
164
  this.config.rpcCommunicator.registerRpcMethod(TemporaryConnectionRequest, TemporaryConnectionResponse, 'openConnection',
170
- (req: TemporaryConnectionRequest, context) => this.config.temporaryConnectionServer.openConnection(req, context))
165
+ (req: TemporaryConnectionRequest, context) => this.config.temporaryConnectionRpcLocal.openConnection(req, context))
171
166
  }
172
167
 
173
- private newContact(_newContact: PeerDescriptor, closestNodes: PeerDescriptor[]): void {
168
+ private newContact(closestNodes: PeerDescriptor[]): void {
174
169
  logger.trace(`New nearby contact found`)
175
- if (this.stopped) {
170
+ if (this.isStopped()) {
176
171
  return
177
172
  }
178
173
  this.updateNearbyNodeView(closestNodes)
@@ -181,9 +176,9 @@ export class RandomGraphNode extends EventEmitter<Events> {
181
176
  }
182
177
  }
183
178
 
184
- private removedContact(_removedContact: PeerDescriptor, closestNodes: PeerDescriptor[]): void {
179
+ private removedContact(closestNodes: PeerDescriptor[]): void {
185
180
  logger.trace(`Nearby contact removed`)
186
- if (this.stopped) {
181
+ if (this.isStopped()) {
187
182
  return
188
183
  }
189
184
  this.updateNearbyNodeView(closestNodes)
@@ -191,11 +186,11 @@ export class RandomGraphNode extends EventEmitter<Events> {
191
186
 
192
187
  private updateNearbyNodeView(nodes: PeerDescriptor[]) {
193
188
  this.config.nearbyNodeView.replaceAll(Array.from(nodes).map((descriptor) =>
194
- new RemoteRandomGraphNode(
189
+ new DeliveryRpcRemote(
195
190
  this.config.ownPeerDescriptor,
196
191
  descriptor,
197
- this.config.randomGraphId,
198
- toProtoRpcClient(new NetworkRpcClient(this.config.rpcCommunicator.getRpcClientTransport()))
192
+ this.config.streamPartId,
193
+ toProtoRpcClient(new DeliveryRpcClient(this.config.rpcCommunicator.getRpcClientTransport()))
199
194
  )
200
195
  ))
201
196
  for (const descriptor of this.config.layer1.getKBucketPeers()) {
@@ -203,26 +198,26 @@ export class RandomGraphNode extends EventEmitter<Events> {
203
198
  break
204
199
  }
205
200
  this.config.nearbyNodeView.add(
206
- new RemoteRandomGraphNode(
201
+ new DeliveryRpcRemote(
207
202
  this.config.ownPeerDescriptor,
208
203
  descriptor,
209
- this.config.randomGraphId,
210
- toProtoRpcClient(new NetworkRpcClient(this.config.rpcCommunicator.getRpcClientTransport()))
204
+ this.config.streamPartId,
205
+ toProtoRpcClient(new DeliveryRpcClient(this.config.rpcCommunicator.getRpcClientTransport()))
211
206
  )
212
207
  )
213
208
  }
214
209
  }
215
210
 
216
- private newRandomContact(_newDescriptor: PeerDescriptor, randomNodes: PeerDescriptor[]): void {
217
- if (this.stopped) {
211
+ private newRandomContact(randomNodes: PeerDescriptor[]): void {
212
+ if (this.isStopped()) {
218
213
  return
219
214
  }
220
215
  this.config.randomNodeView.replaceAll(randomNodes.map((descriptor) =>
221
- new RemoteRandomGraphNode(
216
+ new DeliveryRpcRemote(
222
217
  this.config.ownPeerDescriptor,
223
218
  descriptor,
224
- this.config.randomGraphId,
225
- toProtoRpcClient(new NetworkRpcClient(this.config.rpcCommunicator.getRpcClientTransport()))
219
+ this.config.streamPartId,
220
+ toProtoRpcClient(new DeliveryRpcClient(this.config.rpcCommunicator.getRpcClientTransport()))
226
221
  )
227
222
  ))
228
223
  if (this.config.targetNeighbors.size() < this.config.numOfTargetNeighbors) {
@@ -230,17 +225,17 @@ export class RandomGraphNode extends EventEmitter<Events> {
230
225
  }
231
226
  }
232
227
 
233
- private removedRandomContact(_removedDescriptor: PeerDescriptor, randomNodes: PeerDescriptor[]): void {
228
+ private removedRandomContact(randomNodes: PeerDescriptor[]): void {
234
229
  logger.trace(`New nearby contact found`)
235
- if (this.stopped) {
230
+ if (this.isStopped()) {
236
231
  return
237
232
  }
238
233
  this.config.randomNodeView.replaceAll(randomNodes.map((descriptor) =>
239
- new RemoteRandomGraphNode(
234
+ new DeliveryRpcRemote(
240
235
  this.config.ownPeerDescriptor,
241
236
  descriptor,
242
- this.config.randomGraphId,
243
- toProtoRpcClient(new NetworkRpcClient(this.config.rpcCommunicator.getRpcClientTransport()))
237
+ this.config.streamPartId,
238
+ toProtoRpcClient(new DeliveryRpcClient(this.config.rpcCommunicator.getRpcClientTransport()))
244
239
  )
245
240
  ))
246
241
  }
@@ -248,16 +243,16 @@ export class RandomGraphNode extends EventEmitter<Events> {
248
243
  private onNodeDisconnected(peerDescriptor: PeerDescriptor): void {
249
244
  if (this.config.targetNeighbors.hasNode(peerDescriptor)) {
250
245
  this.config.targetNeighbors.remove(peerDescriptor)
251
- this.config.connectionLocker.unlockConnection(peerDescriptor, this.config.randomGraphId)
246
+ this.config.connectionLocker.unlockConnection(peerDescriptor, this.config.streamPartId)
252
247
  this.config.neighborFinder.start([getNodeIdFromPeerDescriptor(peerDescriptor)])
253
- this.config.temporaryConnectionServer.removeNode(peerDescriptor)
248
+ this.config.temporaryConnectionRpcLocal.removeNode(peerDescriptor)
254
249
  }
255
250
  }
256
251
 
257
252
  private getNeighborCandidatesFromLayer1(): PeerDescriptor[] {
258
253
  const uniqueNodes = new Set<PeerDescriptor>()
259
- this.config.layer1.getNeighborList().getClosestContacts(this.config.nodeViewSize).forEach((contact: DhtPeer) => {
260
- uniqueNodes.add(contact.getPeerDescriptor())
254
+ this.config.layer1.getClosestContacts(this.config.nodeViewSize).forEach((peer: PeerDescriptor) => {
255
+ uniqueNodes.add(peer)
261
256
  })
262
257
  this.config.layer1.getKBucketPeers().forEach((peer: PeerDescriptor) => {
263
258
  uniqueNodes.add(peer)
@@ -265,9 +260,9 @@ export class RandomGraphNode extends EventEmitter<Events> {
265
260
  return Array.from(uniqueNodes)
266
261
  }
267
262
 
268
- public hasProxyConnection(nodeId: NodeID): boolean {
269
- if (this.config.proxyConnectionServer) {
270
- return this.config.proxyConnectionServer.hasConnection(nodeId)
263
+ hasProxyConnection(nodeId: NodeID): boolean {
264
+ if (this.config.proxyConnectionRpcLocal) {
265
+ return this.config.proxyConnectionRpcLocal.hasConnection(nodeId)
271
266
  }
272
267
  return false
273
268
  }
@@ -276,10 +271,9 @@ export class RandomGraphNode extends EventEmitter<Events> {
276
271
  if (!this.started) {
277
272
  return
278
273
  }
279
- this.stopped = true
280
274
  this.abortController.abort()
281
- this.config.proxyConnectionServer?.stop()
282
- this.config.targetNeighbors.getNodes().map((remote) => remote.leaveStreamPartNotice())
275
+ this.config.proxyConnectionRpcLocal?.stop()
276
+ this.config.targetNeighbors.getAll().map((remote) => remote.leaveStreamPartNotice())
283
277
  this.config.rpcCommunicator.stop()
284
278
  this.removeAllListeners()
285
279
  this.config.nearbyNodeView.stop()
@@ -304,11 +298,11 @@ export class RandomGraphNode extends EventEmitter<Events> {
304
298
 
305
299
  private getPropagationTargets(msg: StreamMessage): NodeID[] {
306
300
  let propagationTargets = this.config.targetNeighbors.getIds()
307
- if (this.config.proxyConnectionServer) {
308
- propagationTargets = propagationTargets.concat(this.config.proxyConnectionServer!.getPropagationTargets(msg))
301
+ if (this.config.proxyConnectionRpcLocal) {
302
+ propagationTargets = propagationTargets.concat(this.config.proxyConnectionRpcLocal!.getPropagationTargets(msg))
309
303
  }
310
304
  propagationTargets = propagationTargets.filter((target) => !this.config.inspector.isInspected(target ))
311
- propagationTargets = propagationTargets.concat(this.config.temporaryConnectionServer.getNodes().getIds())
305
+ propagationTargets = propagationTargets.concat(this.config.temporaryConnectionRpcLocal.getNodes().getIds())
312
306
  return propagationTargets
313
307
  }
314
308
 
@@ -321,7 +315,7 @@ export class RandomGraphNode extends EventEmitter<Events> {
321
315
  }
322
316
 
323
317
  getTargetNeighborIds(): NodeID[] {
324
- if (!this.started && this.stopped) {
318
+ if (!this.started && this.isStopped()) {
325
319
  return []
326
320
  }
327
321
  return this.config.targetNeighbors.getIds()
@@ -330,4 +324,8 @@ export class RandomGraphNode extends EventEmitter<Events> {
330
324
  getNearbyNodeView(): NodeList {
331
325
  return this.config.nearbyNodeView
332
326
  }
327
+
328
+ private isStopped() {
329
+ return this.abortController.signal.aborted
330
+ }
333
331
  }