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

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 (186) hide show
  1. package/dist/package.json +10 -8
  2. package/dist/src/NetworkNode.js +2 -2
  3. package/dist/src/NetworkNode.js.map +1 -1
  4. package/dist/src/NetworkStack.d.ts +5 -6
  5. package/dist/src/NetworkStack.js +27 -56
  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} +10 -12
  16. package/dist/src/logic/{StreamPartEntryPointDiscovery.js → EntryPointDiscovery.js} +18 -40
  17. package/dist/src/logic/EntryPointDiscovery.js.map +1 -0
  18. package/dist/src/logic/Layer0Node.d.ts +14 -0
  19. package/dist/src/logic/{ILayer1.js → Layer0Node.js} +1 -1
  20. package/dist/src/logic/Layer0Node.js.map +1 -0
  21. package/dist/src/logic/{ILayer1.d.ts → Layer1Node.d.ts} +5 -5
  22. package/dist/src/logic/{ILayer0.js → Layer1Node.js} +1 -1
  23. package/dist/src/logic/Layer1Node.js.map +1 -0
  24. package/dist/src/logic/NodeList.d.ts +10 -10
  25. package/dist/src/logic/NodeList.js.map +1 -1
  26. package/dist/src/logic/RandomGraphNode.d.ts +11 -15
  27. package/dist/src/logic/RandomGraphNode.js +46 -45
  28. package/dist/src/logic/RandomGraphNode.js.map +1 -1
  29. package/dist/src/logic/StreamrNode.d.ts +15 -18
  30. package/dist/src/logic/StreamrNode.js +78 -87
  31. package/dist/src/logic/StreamrNode.js.map +1 -1
  32. package/dist/src/logic/createRandomGraphNode.d.ts +6 -1
  33. package/dist/src/logic/createRandomGraphNode.js +17 -23
  34. package/dist/src/logic/createRandomGraphNode.js.map +1 -1
  35. package/dist/src/logic/formStreamPartDeliveryServiceId.d.ts +2 -0
  36. package/dist/src/logic/formStreamPartDeliveryServiceId.js +8 -0
  37. package/dist/src/logic/formStreamPartDeliveryServiceId.js.map +1 -0
  38. package/dist/src/logic/inspect/Inspector.d.ts +3 -2
  39. package/dist/src/logic/inspect/Inspector.js +5 -5
  40. package/dist/src/logic/inspect/Inspector.js.map +1 -1
  41. package/dist/src/logic/neighbor-discovery/{HandshakerServer.d.ts → HandshakeRpcLocal.d.ts} +10 -10
  42. package/dist/src/logic/neighbor-discovery/{HandshakerServer.js → HandshakeRpcLocal.js} +13 -13
  43. package/dist/src/logic/neighbor-discovery/HandshakeRpcLocal.js.map +1 -0
  44. package/dist/src/logic/neighbor-discovery/{RemoteHandshaker.d.ts → HandshakeRpcRemote.d.ts} +1 -1
  45. package/dist/src/logic/neighbor-discovery/{RemoteHandshaker.js → HandshakeRpcRemote.js} +8 -7
  46. package/dist/src/logic/neighbor-discovery/HandshakeRpcRemote.js.map +1 -0
  47. package/dist/src/logic/neighbor-discovery/Handshaker.d.ts +8 -7
  48. package/dist/src/logic/neighbor-discovery/Handshaker.js +23 -24
  49. package/dist/src/logic/neighbor-discovery/Handshaker.js.map +1 -1
  50. package/dist/src/logic/neighbor-discovery/NeighborFinder.d.ts +1 -1
  51. package/dist/src/logic/neighbor-discovery/NeighborFinder.js +1 -1
  52. package/dist/src/logic/neighbor-discovery/NeighborFinder.js.map +1 -1
  53. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.d.ts +3 -2
  54. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js +5 -5
  55. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js.map +1 -1
  56. package/dist/src/logic/neighbor-discovery/{NeighborUpdateManagerServer.d.ts → NeighborUpdateRpcLocal.d.ts} +6 -6
  57. package/dist/src/logic/neighbor-discovery/{NeighborUpdateManagerServer.js → NeighborUpdateRpcLocal.js} +9 -9
  58. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.js.map +1 -0
  59. package/dist/src/logic/neighbor-discovery/{RemoteNeighborUpdateManager.d.ts → NeighborUpdateRpcRemote.d.ts} +1 -1
  60. package/dist/src/logic/neighbor-discovery/{RemoteNeighborUpdateManager.js → NeighborUpdateRpcRemote.js} +5 -5
  61. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcRemote.js.map +1 -0
  62. package/dist/src/logic/propagation/Propagation.js +2 -2
  63. package/dist/src/logic/propagation/Propagation.js.map +1 -1
  64. package/dist/src/logic/proxy/{ProxyStreamConnectionClient.d.ts → ProxyClient.d.ts} +7 -10
  65. package/dist/src/logic/proxy/{ProxyStreamConnectionClient.js → ProxyClient.js} +24 -22
  66. package/dist/src/logic/proxy/ProxyClient.js.map +1 -0
  67. package/dist/src/logic/proxy/{ProxyStreamConnectionServer.d.ts → ProxyConnectionRpcLocal.d.ts} +5 -5
  68. package/dist/src/logic/proxy/{ProxyStreamConnectionServer.js → ProxyConnectionRpcLocal.js} +6 -6
  69. package/dist/src/logic/proxy/ProxyConnectionRpcLocal.js.map +1 -0
  70. package/dist/src/logic/proxy/{RemoteProxyServer.d.ts → ProxyConnectionRpcRemote.d.ts} +1 -1
  71. package/dist/src/logic/proxy/{RemoteProxyServer.js → ProxyConnectionRpcRemote.js} +4 -4
  72. package/dist/src/logic/proxy/ProxyConnectionRpcRemote.js.map +1 -0
  73. package/dist/src/logic/temporary-connection/{TemporaryConnectionRpcServer.d.ts → TemporaryConnectionRpcLocal.d.ts} +5 -4
  74. package/dist/src/logic/temporary-connection/{TemporaryConnectionRpcServer.js → TemporaryConnectionRpcLocal.js} +6 -6
  75. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.js.map +1 -0
  76. package/dist/src/logic/temporary-connection/{RemoteTemporaryConnectionRpcServer.d.ts → TemporaryConnectionRpcRemote.d.ts} +1 -1
  77. package/dist/src/logic/temporary-connection/{RemoteTemporaryConnectionRpcServer.js → TemporaryConnectionRpcRemote.js} +4 -4
  78. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcRemote.js.map +1 -0
  79. package/dist/src/proto/packages/dht/protos/DhtRpc.client.d.ts +10 -0
  80. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js +7 -0
  81. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js.map +1 -1
  82. package/dist/src/proto/packages/dht/protos/DhtRpc.d.ts +54 -118
  83. package/dist/src/proto/packages/dht/protos/DhtRpc.js +50 -49
  84. package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +1 -1
  85. package/dist/src/proto/packages/dht/protos/DhtRpc.server.d.ts +6 -0
  86. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.d.ts +4 -4
  87. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.js +7 -7
  88. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.js.map +1 -1
  89. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.d.ts +10 -10
  90. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.js +7 -7
  91. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.js.map +1 -1
  92. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.server.d.ts +2 -2
  93. package/dist/test/benchmark/first-message.js +16 -17
  94. package/dist/test/benchmark/first-message.js.map +1 -1
  95. package/dist/test/utils/utils.d.ts +7 -6
  96. package/dist/test/utils/utils.js +18 -17
  97. package/dist/test/utils/utils.js.map +1 -1
  98. package/package.json +10 -8
  99. package/protos/NetworkRpc.proto +5 -5
  100. package/src/NetworkNode.ts +2 -2
  101. package/src/NetworkStack.ts +31 -72
  102. package/src/identifiers.ts +3 -3
  103. package/src/logic/{StreamNodeServer.ts → DeliveryRpcLocal.ts} +8 -7
  104. package/src/logic/{RemoteRandomGraphNode.ts → DeliveryRpcRemote.ts} +3 -3
  105. package/src/logic/{StreamPartEntryPointDiscovery.ts → EntryPointDiscovery.ts} +24 -48
  106. package/src/logic/Layer0Node.ts +15 -0
  107. package/src/logic/{ILayer1.ts → Layer1Node.ts} +5 -5
  108. package/src/logic/NodeList.ts +12 -12
  109. package/src/logic/RandomGraphNode.ts +73 -74
  110. package/src/logic/StreamrNode.ts +90 -103
  111. package/src/logic/createRandomGraphNode.ts +28 -26
  112. package/src/logic/formStreamPartDeliveryServiceId.ts +5 -0
  113. package/src/logic/inspect/Inspector.ts +8 -7
  114. package/src/logic/neighbor-discovery/{HandshakerServer.ts → HandshakeRpcLocal.ts} +20 -20
  115. package/src/logic/neighbor-discovery/{RemoteHandshaker.ts → HandshakeRpcRemote.ts} +6 -5
  116. package/src/logic/neighbor-discovery/Handshaker.ts +38 -38
  117. package/src/logic/neighbor-discovery/NeighborFinder.ts +2 -2
  118. package/src/logic/neighbor-discovery/NeighborUpdateManager.ts +13 -10
  119. package/src/logic/neighbor-discovery/{NeighborUpdateManagerServer.ts → NeighborUpdateRpcLocal.ts} +15 -15
  120. package/src/logic/neighbor-discovery/{RemoteNeighborUpdateManager.ts → NeighborUpdateRpcRemote.ts} +2 -2
  121. package/src/logic/propagation/Propagation.ts +2 -2
  122. package/src/logic/proxy/{ProxyStreamConnectionClient.ts → ProxyClient.ts} +29 -29
  123. package/src/logic/proxy/{ProxyStreamConnectionServer.ts → ProxyConnectionRpcLocal.ts} +10 -11
  124. package/src/logic/proxy/{RemoteProxyServer.ts → ProxyConnectionRpcRemote.ts} +1 -1
  125. package/src/logic/temporary-connection/{TemporaryConnectionRpcServer.ts → TemporaryConnectionRpcLocal.ts} +11 -10
  126. package/src/logic/temporary-connection/{RemoteTemporaryConnectionRpcServer.ts → TemporaryConnectionRpcRemote.ts} +1 -1
  127. package/src/proto/packages/dht/protos/DhtRpc.client.ts +13 -0
  128. package/src/proto/packages/dht/protos/DhtRpc.server.ts +6 -0
  129. package/src/proto/packages/dht/protos/DhtRpc.ts +88 -166
  130. package/src/proto/packages/trackerless-network/protos/NetworkRpc.client.ts +8 -8
  131. package/src/proto/packages/trackerless-network/protos/NetworkRpc.server.ts +2 -2
  132. package/src/proto/packages/trackerless-network/protos/NetworkRpc.ts +14 -14
  133. package/test/benchmark/first-message.ts +19 -20
  134. package/test/end-to-end/inspect.test.ts +12 -12
  135. package/test/end-to-end/proxy-and-full-node.test.ts +17 -18
  136. package/test/end-to-end/proxy-connections.test.ts +9 -11
  137. package/test/end-to-end/proxy-key-exchange.test.ts +12 -13
  138. package/test/end-to-end/random-graph-with-real-connections.test.ts +27 -22
  139. package/test/end-to-end/webrtc-full-node-network.test.ts +8 -8
  140. package/test/end-to-end/websocket-full-node-network.test.ts +8 -10
  141. package/test/integration/{RemoteRandomGraphNode.test.ts → DeliveryRpcRemote.test.ts} +17 -14
  142. package/test/integration/{RemoteHandshaker.test.ts → HandshakeRpcRemote.test.ts} +10 -9
  143. package/test/integration/Handshakes.test.ts +23 -20
  144. package/test/integration/Inspect.test.ts +4 -3
  145. package/test/integration/{RemoteNeighborUpdateManager.test.ts → NeighborUpdateRpcRemote.test.ts} +12 -10
  146. package/test/integration/NetworkNode.test.ts +9 -8
  147. package/test/integration/NetworkRpc.test.ts +5 -7
  148. package/test/integration/NetworkStack.test.ts +13 -15
  149. package/test/integration/Propagation.test.ts +14 -13
  150. package/test/integration/RandomGraphNode-Layer1Node-Latencies.test.ts +23 -20
  151. package/test/integration/RandomGraphNode-Layer1Node.test.ts +30 -29
  152. package/test/integration/StreamrNode.test.ts +16 -13
  153. package/test/integration/joining-streams-on-offline-peers.test.ts +16 -18
  154. package/test/integration/stream-without-default-entrypoints.test.ts +12 -14
  155. package/test/unit/{StreamNodeServer.test.ts → DeliveryRpcLocal.test.ts} +8 -8
  156. package/test/unit/{StreamPartEntrypointDiscovery.test.ts → EntrypointDiscovery.test.ts} +27 -44
  157. package/test/unit/{HandshakerServer.test.ts → HandshakeRpcLocal.test.ts} +26 -24
  158. package/test/unit/Handshaker.test.ts +10 -8
  159. package/test/unit/Inspector.test.ts +4 -3
  160. package/test/unit/NeighborFinder.test.ts +5 -5
  161. package/test/unit/NodeList.test.ts +22 -13
  162. package/test/unit/{RemoteProxyServer.test.ts → ProxyConnectionRpcRemote.test.ts} +4 -4
  163. package/test/unit/RandomGraphNode.test.ts +15 -13
  164. package/test/unit/StreamMessageTranslator.test.ts +10 -9
  165. package/test/unit/StreamrNode.test.ts +10 -10
  166. package/test/utils/mock/{MockLayer0.ts → MockLayer0Node.ts} +23 -26
  167. package/test/utils/mock/{MockLayer1.ts → MockLayer1Node.ts} +5 -10
  168. package/test/utils/mock/MockNeighborFinder.ts +1 -2
  169. package/test/utils/mock/MockNeighborUpdateManager.ts +1 -2
  170. package/test/utils/mock/Transport.ts +2 -2
  171. package/test/utils/utils.ts +18 -16
  172. package/dist/src/logic/ILayer0.d.ts +0 -13
  173. package/dist/src/logic/ILayer0.js.map +0 -1
  174. package/dist/src/logic/ILayer1.js.map +0 -1
  175. package/dist/src/logic/RemoteRandomGraphNode.js.map +0 -1
  176. package/dist/src/logic/StreamPartEntryPointDiscovery.js.map +0 -1
  177. package/dist/src/logic/neighbor-discovery/HandshakerServer.js.map +0 -1
  178. package/dist/src/logic/neighbor-discovery/NeighborUpdateManagerServer.js.map +0 -1
  179. package/dist/src/logic/neighbor-discovery/RemoteHandshaker.js.map +0 -1
  180. package/dist/src/logic/neighbor-discovery/RemoteNeighborUpdateManager.js.map +0 -1
  181. package/dist/src/logic/proxy/ProxyStreamConnectionClient.js.map +0 -1
  182. package/dist/src/logic/proxy/ProxyStreamConnectionServer.js.map +0 -1
  183. package/dist/src/logic/proxy/RemoteProxyServer.js.map +0 -1
  184. package/dist/src/logic/temporary-connection/RemoteTemporaryConnectionRpcServer.js.map +0 -1
  185. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcServer.js.map +0 -1
  186. package/src/logic/ILayer0.ts +0 -14
@@ -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
- import { ILayer1 } from './ILayer1'
33
+ import { Layer1Node } from './Layer1Node'
34
+ import { StreamPartID } from '@streamr/protocol'
34
35
 
35
36
  export interface Events {
36
37
  message: (message: StreamMessage) => void
@@ -38,9 +39,9 @@ export interface Events {
38
39
  }
39
40
 
40
41
  export interface StrictRandomGraphNodeConfig {
41
- randomGraphId: string
42
- layer1: ILayer1
43
- P2PTransport: ITransport
42
+ streamPartId: StreamPartID
43
+ layer1Node: Layer1Node
44
+ transport: ITransport
44
45
  connectionLocker: ConnectionLocker
45
46
  ownPeerDescriptor: PeerDescriptor
46
47
  nodeViewSize: number
@@ -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
- this.config.layer1.removeContact(contact.getPeerDescriptor(), true)
89
+ this.config.layer1Node.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)
@@ -106,31 +102,31 @@ export class RandomGraphNode extends EventEmitter<Events> {
106
102
  this.started = true
107
103
  this.registerDefaultServerMethods()
108
104
  addManagedEventListener<any, any>(
109
- this.config.layer1 as any,
105
+ this.config.layer1Node 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
- this.config.layer1 as any,
111
+ this.config.layer1Node 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
- this.config.layer1 as any,
117
+ this.config.layer1Node 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
- this.config.layer1 as any,
123
+ this.config.layer1Node 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>(
133
- this.config.P2PTransport as any,
129
+ this.config.transport as any,
134
130
  'disconnected',
135
131
  (peerDescriptor: PeerDescriptor) => this.onNodeDisconnected(peerDescriptor),
136
132
  this.abortController.signal
@@ -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,38 +186,38 @@ 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
- for (const descriptor of this.config.layer1.getKBucketPeers()) {
196
+ for (const descriptor of this.config.layer1Node.getKBucketPeers()) {
201
197
  if (this.config.nearbyNodeView.size() >= this.config.nodeViewSize) {
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,26 +243,26 @@ 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
 
256
252
  private getNeighborCandidatesFromLayer1(): PeerDescriptor[] {
257
253
  const uniqueNodes = new Set<PeerDescriptor>()
258
- this.config.layer1.getClosestContacts(this.config.nodeViewSize).forEach((peer: PeerDescriptor) => {
254
+ this.config.layer1Node.getClosestContacts(this.config.nodeViewSize).forEach((peer: PeerDescriptor) => {
259
255
  uniqueNodes.add(peer)
260
256
  })
261
- this.config.layer1.getKBucketPeers().forEach((peer: PeerDescriptor) => {
257
+ this.config.layer1Node.getKBucketPeers().forEach((peer: PeerDescriptor) => {
262
258
  uniqueNodes.add(peer)
263
259
  })
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
  }