@streamr/trackerless-network 0.0.1-tatum.7 → 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 (69) hide show
  1. package/dist/package.json +6 -6
  2. package/dist/src/NetworkNode.js +1 -1
  3. package/dist/src/NetworkNode.js.map +1 -1
  4. package/dist/src/NetworkStack.d.ts +4 -3
  5. package/dist/src/NetworkStack.js +12 -12
  6. package/dist/src/NetworkStack.js.map +1 -1
  7. package/dist/src/logic/EntryPointDiscovery.d.ts +2 -2
  8. package/dist/src/logic/EntryPointDiscovery.js +4 -4
  9. package/dist/src/logic/EntryPointDiscovery.js.map +1 -1
  10. package/dist/src/logic/{ILayer0.d.ts → Layer0Node.d.ts} +5 -1
  11. package/dist/src/logic/{ILayer1.js → Layer0Node.js} +1 -1
  12. package/dist/src/logic/Layer0Node.js.map +1 -0
  13. package/dist/src/logic/{ILayer1.d.ts → Layer1Node.d.ts} +5 -5
  14. package/dist/src/logic/{ILayer0.js → Layer1Node.js} +1 -1
  15. package/dist/src/logic/Layer1Node.js.map +1 -0
  16. package/dist/src/logic/RandomGraphNode.d.ts +3 -3
  17. package/dist/src/logic/RandomGraphNode.js +9 -9
  18. package/dist/src/logic/RandomGraphNode.js.map +1 -1
  19. package/dist/src/logic/StreamrNode.d.ts +6 -6
  20. package/dist/src/logic/StreamrNode.js +29 -28
  21. package/dist/src/logic/StreamrNode.js.map +1 -1
  22. package/dist/src/logic/createRandomGraphNode.js +1 -1
  23. package/dist/src/logic/createRandomGraphNode.js.map +1 -1
  24. package/dist/src/logic/proxy/ProxyClient.d.ts +1 -1
  25. package/dist/src/logic/proxy/ProxyClient.js +2 -2
  26. package/dist/src/logic/proxy/ProxyClient.js.map +1 -1
  27. package/dist/src/proto/packages/dht/protos/DhtRpc.client.d.ts +10 -0
  28. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js +7 -0
  29. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js.map +1 -1
  30. package/dist/src/proto/packages/dht/protos/DhtRpc.d.ts +54 -114
  31. package/dist/src/proto/packages/dht/protos/DhtRpc.js +49 -47
  32. package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +1 -1
  33. package/dist/src/proto/packages/dht/protos/DhtRpc.server.d.ts +6 -0
  34. package/dist/test/benchmark/first-message.js +9 -7
  35. package/dist/test/benchmark/first-message.js.map +1 -1
  36. package/dist/test/utils/utils.d.ts +3 -2
  37. package/dist/test/utils/utils.js +4 -4
  38. package/dist/test/utils/utils.js.map +1 -1
  39. package/package.json +6 -6
  40. package/src/NetworkNode.ts +1 -1
  41. package/src/NetworkStack.ts +14 -13
  42. package/src/logic/EntryPointDiscovery.ts +6 -6
  43. package/src/logic/{ILayer0.ts → Layer0Node.ts} +5 -1
  44. package/src/logic/{ILayer1.ts → Layer1Node.ts} +5 -5
  45. package/src/logic/RandomGraphNode.ts +12 -12
  46. package/src/logic/StreamrNode.ts +35 -34
  47. package/src/logic/createRandomGraphNode.ts +1 -1
  48. package/src/logic/proxy/ProxyClient.ts +3 -3
  49. package/src/proto/packages/dht/protos/DhtRpc.client.ts +13 -0
  50. package/src/proto/packages/dht/protos/DhtRpc.server.ts +6 -0
  51. package/src/proto/packages/dht/protos/DhtRpc.ts +87 -160
  52. package/test/benchmark/first-message.ts +11 -9
  53. package/test/end-to-end/proxy-and-full-node.test.ts +4 -4
  54. package/test/end-to-end/random-graph-with-real-connections.test.ts +20 -15
  55. package/test/integration/Inspect.test.ts +1 -1
  56. package/test/integration/Propagation.test.ts +13 -12
  57. package/test/integration/RandomGraphNode-Layer1Node-Latencies.test.ts +13 -12
  58. package/test/integration/RandomGraphNode-Layer1Node.test.ts +13 -12
  59. package/test/integration/StreamrNode.test.ts +11 -10
  60. package/test/integration/joining-streams-on-offline-peers.test.ts +2 -2
  61. package/test/integration/stream-without-default-entrypoints.test.ts +1 -1
  62. package/test/unit/EntrypointDiscovery.test.ts +7 -7
  63. package/test/unit/RandomGraphNode.test.ts +10 -9
  64. package/test/unit/StreamrNode.test.ts +2 -2
  65. package/test/utils/mock/{MockLayer0.ts → MockLayer0Node.ts} +21 -5
  66. package/test/utils/mock/{MockLayer1.ts → MockLayer1Node.ts} +2 -2
  67. package/test/utils/utils.ts +6 -5
  68. package/dist/src/logic/ILayer0.js.map +0 -1
  69. package/dist/src/logic/ILayer1.js.map +0 -1
@@ -1,11 +1,15 @@
1
1
  import { DataEntry, ITransport, PeerDescriptor } from '@streamr/dht'
2
2
  import { Any } from '../proto/google/protobuf/any'
3
3
 
4
- export interface ILayer0 extends ITransport {
4
+ export interface Layer0Node extends ITransport {
5
+ joinDht(entryPointDescriptors: PeerDescriptor[]): Promise<void>
6
+ hasJoined(): boolean
5
7
  getPeerDescriptor(): PeerDescriptor
6
8
  getDataFromDht(key: Uint8Array): Promise<DataEntry[]>
7
9
  storeDataToDht(key: Uint8Array, data: Any): Promise<PeerDescriptor[]>
8
10
  deleteDataFromDht(key: Uint8Array): Promise<void>
9
11
  waitForNetworkConnectivity(): Promise<void>
12
+ getTransport(): ITransport
13
+ start(): Promise<void>
10
14
  stop(): Promise<void>
11
15
  }
@@ -1,16 +1,16 @@
1
1
  import { PeerDescriptor } from '@streamr/dht'
2
2
 
3
- export interface ILayer1Events {
3
+ export interface Layer1NodeEvents {
4
4
  newContact: (peerDescriptor: PeerDescriptor, closestPeers: PeerDescriptor[]) => void
5
5
  contactRemoved: (peerDescriptor: PeerDescriptor, closestPeers: PeerDescriptor[]) => void
6
6
  newRandomContact: (peerDescriptor: PeerDescriptor, randomPeers: PeerDescriptor[]) => void
7
7
  randomContactRemoved: (peerDescriptor: PeerDescriptor, randomPeers: PeerDescriptor[]) => void
8
8
  }
9
9
 
10
- export interface ILayer1 {
11
- on<T extends keyof ILayer1Events>(eventName: T, listener: (peerDescriptor: PeerDescriptor, peers: PeerDescriptor[]) => void): void
12
- once<T extends keyof ILayer1Events>(eventName: T, listener: (peerDescriptor: PeerDescriptor, peers: PeerDescriptor[]) => void): void
13
- off<T extends keyof ILayer1Events>(eventName: T, listener: (peerDescriptor: PeerDescriptor, peers: PeerDescriptor[]) => void): void
10
+ export interface Layer1Node {
11
+ on<T extends keyof Layer1NodeEvents>(eventName: T, listener: (peerDescriptor: PeerDescriptor, peers: PeerDescriptor[]) => void): void
12
+ once<T extends keyof Layer1NodeEvents>(eventName: T, listener: (peerDescriptor: PeerDescriptor, peers: PeerDescriptor[]) => void): void
13
+ off<T extends keyof Layer1NodeEvents>(eventName: T, listener: (peerDescriptor: PeerDescriptor, peers: PeerDescriptor[]) => void): void
14
14
  removeContact: (peerDescriptor: PeerDescriptor, removeFromOpenInternetPeers?: boolean) => void
15
15
  getClosestContacts: (maxCount?: number) => PeerDescriptor[]
16
16
  getKBucketPeers: () => PeerDescriptor[]
@@ -30,7 +30,7 @@ import { IInspector } from './inspect/Inspector'
30
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
34
  import { StreamPartID } from '@streamr/protocol'
35
35
 
36
36
  export interface Events {
@@ -40,8 +40,8 @@ export interface Events {
40
40
 
41
41
  export interface StrictRandomGraphNodeConfig {
42
42
  streamPartId: StreamPartID
43
- layer1: ILayer1
44
- P2PTransport: ITransport
43
+ layer1Node: Layer1Node
44
+ transport: ITransport
45
45
  connectionLocker: ConnectionLocker
46
46
  ownPeerDescriptor: PeerDescriptor
47
47
  nodeViewSize: number
@@ -86,7 +86,7 @@ export class RandomGraphNode extends EventEmitter<Events> {
86
86
  || this.config.proxyConnectionRpcLocal?.getConnection(senderId )?.remote
87
87
  // TODO: check integrity of notifier?
88
88
  if (contact) {
89
- this.config.layer1.removeContact(contact.getPeerDescriptor(), true)
89
+ this.config.layer1Node.removeContact(contact.getPeerDescriptor(), true)
90
90
  this.config.targetNeighbors.remove(contact.getPeerDescriptor())
91
91
  this.config.nearbyNodeView.remove(contact.getPeerDescriptor())
92
92
  this.config.connectionLocker.unlockConnection(contact.getPeerDescriptor(), this.config.streamPartId)
@@ -102,31 +102,31 @@ export class RandomGraphNode extends EventEmitter<Events> {
102
102
  this.started = true
103
103
  this.registerDefaultServerMethods()
104
104
  addManagedEventListener<any, any>(
105
- this.config.layer1 as any,
105
+ this.config.layer1Node as any,
106
106
  'newContact',
107
107
  (_peerDescriptor: PeerDescriptor, closestPeers: PeerDescriptor[]) => this.newContact(closestPeers),
108
108
  this.abortController.signal
109
109
  )
110
110
  addManagedEventListener<any, any>(
111
- this.config.layer1 as any,
111
+ this.config.layer1Node as any,
112
112
  'contactRemoved',
113
113
  (_peerDescriptor: PeerDescriptor, closestPeers: PeerDescriptor[]) => this.removedContact(closestPeers),
114
114
  this.abortController.signal
115
115
  )
116
116
  addManagedEventListener<any, any>(
117
- this.config.layer1 as any,
117
+ this.config.layer1Node as any,
118
118
  'newRandomContact',
119
119
  (_peerDescriptor: PeerDescriptor, randomPeers: PeerDescriptor[]) => this.newRandomContact(randomPeers),
120
120
  this.abortController.signal
121
121
  )
122
122
  addManagedEventListener<any, any>(
123
- this.config.layer1 as any,
123
+ this.config.layer1Node as any,
124
124
  'randomContactRemoved',
125
125
  (_peerDescriptor: PeerDescriptor, randomPeers: PeerDescriptor[]) => this.removedRandomContact(randomPeers),
126
126
  this.abortController.signal
127
127
  )
128
128
  addManagedEventListener<any, any>(
129
- this.config.P2PTransport as any,
129
+ this.config.transport as any,
130
130
  'disconnected',
131
131
  (peerDescriptor: PeerDescriptor) => this.onNodeDisconnected(peerDescriptor),
132
132
  this.abortController.signal
@@ -193,7 +193,7 @@ export class RandomGraphNode extends EventEmitter<Events> {
193
193
  toProtoRpcClient(new DeliveryRpcClient(this.config.rpcCommunicator.getRpcClientTransport()))
194
194
  )
195
195
  ))
196
- for (const descriptor of this.config.layer1.getKBucketPeers()) {
196
+ for (const descriptor of this.config.layer1Node.getKBucketPeers()) {
197
197
  if (this.config.nearbyNodeView.size() >= this.config.nodeViewSize) {
198
198
  break
199
199
  }
@@ -251,10 +251,10 @@ export class RandomGraphNode extends EventEmitter<Events> {
251
251
 
252
252
  private getNeighborCandidatesFromLayer1(): PeerDescriptor[] {
253
253
  const uniqueNodes = new Set<PeerDescriptor>()
254
- this.config.layer1.getClosestContacts(this.config.nodeViewSize).forEach((peer: PeerDescriptor) => {
254
+ this.config.layer1Node.getClosestContacts(this.config.nodeViewSize).forEach((peer: PeerDescriptor) => {
255
255
  uniqueNodes.add(peer)
256
256
  })
257
- this.config.layer1.getKBucketPeers().forEach((peer: PeerDescriptor) => {
257
+ this.config.layer1Node.getKBucketPeers().forEach((peer: PeerDescriptor) => {
258
258
  uniqueNodes.add(peer)
259
259
  })
260
260
  return Array.from(uniqueNodes)
@@ -17,8 +17,8 @@ import { EventEmitter } from 'eventemitter3'
17
17
  import { sampleSize } from 'lodash'
18
18
  import { NodeID, getNodeIdFromPeerDescriptor } from '../identifiers'
19
19
  import { ProxyDirection, StreamMessage } from '../proto/packages/trackerless-network/protos/NetworkRpc'
20
- import { ILayer0 } from './ILayer0'
21
- import { ILayer1 } from './ILayer1'
20
+ import { Layer0Node } from './Layer0Node'
21
+ import { Layer1Node } from './Layer1Node'
22
22
  import { RandomGraphNode } from './RandomGraphNode'
23
23
  import { NETWORK_SPLIT_AVOIDANCE_LIMIT, EntryPointDiscovery } from './EntryPointDiscovery'
24
24
  import { createRandomGraphNode } from './createRandomGraphNode'
@@ -29,7 +29,7 @@ export type StreamPartDelivery = {
29
29
  stop: () => void
30
30
  } & ({
31
31
  proxied: false
32
- layer1: ILayer1
32
+ layer1Node: Layer1Node
33
33
  node: RandomGraphNode
34
34
  entryPointDiscovery: EntryPointDiscovery
35
35
  } | {
@@ -59,9 +59,9 @@ export interface StreamrNodeConfig {
59
59
 
60
60
  // TODO rename class?
61
61
  export class StreamrNode extends EventEmitter<Events> {
62
- private P2PTransport?: ITransport
62
+ private transport?: ITransport
63
63
  private connectionLocker?: ConnectionLocker
64
- private layer0?: ILayer0
64
+ private layer0Node?: Layer0Node
65
65
  private readonly metricsContext: MetricsContext
66
66
  private readonly metrics: Metrics
67
67
  private readonly config: StreamrNodeConfig
@@ -82,14 +82,14 @@ export class StreamrNode extends EventEmitter<Events> {
82
82
  this.metricsContext.addMetrics('node', this.metrics)
83
83
  }
84
84
 
85
- async start(startedAndJoinedLayer0: ILayer0, transport: ITransport, connectionLocker: ConnectionLocker): Promise<void> {
85
+ async start(startedAndJoinedLayer0Node: Layer0Node, transport: ITransport, connectionLocker: ConnectionLocker): Promise<void> {
86
86
  if (this.started || this.destroyed) {
87
87
  return
88
88
  }
89
- logger.info(`Starting new StreamrNode with id ${getNodeIdFromPeerDescriptor(startedAndJoinedLayer0.getPeerDescriptor())}`)
89
+ logger.info(`Starting new StreamrNode with id ${getNodeIdFromPeerDescriptor(startedAndJoinedLayer0Node.getPeerDescriptor())}`)
90
90
  this.started = true
91
- this.layer0 = startedAndJoinedLayer0
92
- this.P2PTransport = transport
91
+ this.layer0Node = startedAndJoinedLayer0Node
92
+ this.transport = transport
93
93
  this.connectionLocker = connectionLocker
94
94
  cleanUp = () => this.destroy()
95
95
  }
@@ -103,10 +103,11 @@ export class StreamrNode extends EventEmitter<Events> {
103
103
  this.streamParts.forEach((streamPart) => streamPart.stop())
104
104
  this.streamParts.clear()
105
105
  this.removeAllListeners()
106
- await this.layer0!.stop()
107
- await this.P2PTransport!.stop()
108
- this.layer0 = undefined
109
- this.P2PTransport = undefined
106
+ // TODO stopping should be in NetworkStack#stop?
107
+ await this.layer0Node!.stop()
108
+ await this.transport!.stop()
109
+ this.layer0Node = undefined
110
+ this.transport = undefined
110
111
  this.connectionLocker = undefined
111
112
  }
112
113
 
@@ -132,31 +133,31 @@ export class StreamrNode extends EventEmitter<Events> {
132
133
  if (streamPart !== undefined) {
133
134
  return
134
135
  }
135
- const layer1 = this.createLayer1Node(streamPartId, this.knownStreamPartEntryPoints.get(streamPartId) ?? [])
136
- const node = this.createRandomGraphNode(streamPartId, layer1)
136
+ const layer1Node = this.createLayer1Node(streamPartId, this.knownStreamPartEntryPoints.get(streamPartId) ?? [])
137
+ const node = this.createRandomGraphNode(streamPartId, layer1Node)
137
138
  const entryPointDiscovery = new EntryPointDiscovery({
138
139
  streamPartId,
139
140
  ownPeerDescriptor: this.getPeerDescriptor(),
140
- layer1,
141
- getEntryPointData: (key) => this.layer0!.getDataFromDht(key),
142
- storeEntryPointData: (key, data) => this.layer0!.storeDataToDht(key, data),
141
+ layer1Node,
142
+ getEntryPointData: (key) => this.layer0Node!.getDataFromDht(key),
143
+ storeEntryPointData: (key, data) => this.layer0Node!.storeDataToDht(key, data),
143
144
  deleteEntryPointData: async (key) => {
144
145
  if (this.destroyed) {
145
146
  return
146
147
  }
147
- return this.layer0!.deleteDataFromDht(key)
148
+ return this.layer0Node!.deleteDataFromDht(key)
148
149
  }
149
150
  })
150
151
  streamPart = {
151
152
  proxied: false,
152
- layer1,
153
+ layer1Node,
153
154
  node,
154
155
  entryPointDiscovery,
155
156
  broadcast: (msg: StreamMessage) => node.broadcast(msg),
156
157
  stop: () => {
157
158
  entryPointDiscovery.destroy()
158
159
  node.stop()
159
- layer1.stop()
160
+ layer1Node.stop()
160
161
  }
161
162
  }
162
163
  this.streamParts.set(streamPartId, streamPart)
@@ -179,24 +180,24 @@ export class StreamrNode extends EventEmitter<Events> {
179
180
  // leaveStreamPart has been called (or leaveStreamPart called, and then setProxies called)
180
181
  return
181
182
  }
182
- await streamPart.layer1.start()
183
+ await streamPart.layer1Node.start()
183
184
  await streamPart.node.start()
184
185
  let entryPoints = this.knownStreamPartEntryPoints.get(streamPartId) ?? []
185
186
  const discoveryResult = await entryPointDiscovery.discoverEntryPointsFromDht(
186
187
  entryPoints.length
187
188
  )
188
189
  entryPoints = entryPoints.concat(discoveryResult.discoveredEntryPoints)
189
- await streamPart.layer1.joinDht(sampleSize(entryPoints, NETWORK_SPLIT_AVOIDANCE_LIMIT))
190
+ await streamPart.layer1Node.joinDht(sampleSize(entryPoints, NETWORK_SPLIT_AVOIDANCE_LIMIT))
190
191
  if (discoveryResult.entryPointsFromDht) {
191
192
  await entryPointDiscovery.storeSelfAsEntryPointIfNecessary(entryPoints.length)
192
193
  }
193
194
  }
194
195
 
195
- private createLayer1Node = (streamPartId: StreamPartID, entryPoints: PeerDescriptor[]): ILayer1 => {
196
+ private createLayer1Node = (streamPartId: StreamPartID, entryPoints: PeerDescriptor[]): Layer1Node => {
196
197
  return new DhtNode({
197
- transport: this.layer0!,
198
+ transport: this.layer0Node!,
198
199
  serviceId: 'layer1::' + streamPartId,
199
- peerDescriptor: this.layer0!.getPeerDescriptor(),
200
+ peerDescriptor: this.layer0Node!.getPeerDescriptor(),
200
201
  entryPoints,
201
202
  numberOfNodesPerKBucket: 4,
202
203
  rpcRequestTimeout: 5000,
@@ -204,13 +205,13 @@ export class StreamrNode extends EventEmitter<Events> {
204
205
  })
205
206
  }
206
207
 
207
- private createRandomGraphNode = (streamPartId: StreamPartID, layer1: ILayer1) => {
208
+ private createRandomGraphNode = (streamPartId: StreamPartID, layer1Node: Layer1Node) => {
208
209
  return createRandomGraphNode({
209
210
  streamPartId,
210
- P2PTransport: this.P2PTransport!,
211
- layer1,
211
+ transport: this.transport!,
212
+ layer1Node,
212
213
  connectionLocker: this.connectionLocker!,
213
- ownPeerDescriptor: this.layer0!.getPeerDescriptor(),
214
+ ownPeerDescriptor: this.layer0Node!.getPeerDescriptor(),
214
215
  minPropagationTargets: this.config.streamPartitionMinPropagationTargets,
215
216
  numOfTargetNeighbors: this.config.streamPartitionNumOfNeighbors,
216
217
  acceptProxyConnections: this.config.acceptProxyConnections
@@ -255,8 +256,8 @@ export class StreamrNode extends EventEmitter<Events> {
255
256
 
256
257
  private createProxyClient(streamPartId: StreamPartID): ProxyClient {
257
258
  return new ProxyClient({
258
- P2PTransport: this.P2PTransport!,
259
- ownPeerDescriptor: this.layer0!.getPeerDescriptor(),
259
+ transport: this.transport!,
260
+ ownPeerDescriptor: this.layer0Node!.getPeerDescriptor(),
260
261
  streamPartId,
261
262
  connectionLocker: this.connectionLocker!,
262
263
  minPropagationTargets: this.config.streamPartitionMinPropagationTargets
@@ -291,11 +292,11 @@ export class StreamrNode extends EventEmitter<Events> {
291
292
  }
292
293
 
293
294
  getPeerDescriptor(): PeerDescriptor {
294
- return this.layer0!.getPeerDescriptor()
295
+ return this.layer0Node!.getPeerDescriptor()
295
296
  }
296
297
 
297
298
  getNodeId(): NodeID {
298
- return getNodeIdFromPeerDescriptor(this.layer0!.getPeerDescriptor())
299
+ return getNodeIdFromPeerDescriptor(this.layer0Node!.getPeerDescriptor())
299
300
  }
300
301
 
301
302
  getNeighbors(streamPartId: StreamPartID): NodeID[] {
@@ -28,7 +28,7 @@ const createConfigWithDefaults = (config: RandomGraphNodeConfig): StrictRandomGr
28
28
  const ownNodeId = getNodeIdFromPeerDescriptor(config.ownPeerDescriptor)
29
29
  const rpcCommunicator = config.rpcCommunicator ?? new ListeningRpcCommunicator(
30
30
  formStreamPartDeliveryServiceId(config.streamPartId),
31
- config.P2PTransport
31
+ config.transport
32
32
  )
33
33
  const numOfTargetNeighbors = config.numOfTargetNeighbors ?? 4
34
34
  const maxNumberOfContacts = config.maxNumberOfContacts ?? 20
@@ -43,7 +43,7 @@ export const retry = async <T>(task: () => Promise<T>, description: string, abor
43
43
  }
44
44
 
45
45
  interface ProxyClientConfig {
46
- P2PTransport: ITransport
46
+ transport: ITransport
47
47
  ownPeerDescriptor: PeerDescriptor
48
48
  streamPartId: StreamPartID
49
49
  connectionLocker: ConnectionLocker
@@ -76,7 +76,7 @@ export class ProxyClient extends EventEmitter {
76
76
  constructor(config: ProxyClientConfig) {
77
77
  super()
78
78
  this.config = config
79
- this.rpcCommunicator = new ListeningRpcCommunicator(formStreamPartDeliveryServiceId(config.streamPartId), config.P2PTransport)
79
+ this.rpcCommunicator = new ListeningRpcCommunicator(formStreamPartDeliveryServiceId(config.streamPartId), config.transport)
80
80
  this.targetNeighbors = new NodeList(getNodeIdFromPeerDescriptor(this.config.ownPeerDescriptor), 1000)
81
81
  this.deliveryRpcLocal = new DeliveryRpcLocal({
82
82
  ownPeerDescriptor: this.config.ownPeerDescriptor,
@@ -241,7 +241,7 @@ export class ProxyClient extends EventEmitter {
241
241
  async start(): Promise<void> {
242
242
  this.registerDefaultServerMethods()
243
243
  addManagedEventListener<any, any>(
244
- this.config.P2PTransport as any,
244
+ this.config.transport as any,
245
245
  'disconnected',
246
246
  (peerDescriptor: PeerDescriptor) => this.onNodeDisconnected(peerDescriptor),
247
247
  this.abortController.signal
@@ -2,6 +2,8 @@
2
2
  // @generated from protobuf file "packages/dht/protos/DhtRpc.proto" (package "dht", syntax proto3)
3
3
  // tslint:disable
4
4
  import { ExternalApiService } from "./DhtRpc";
5
+ import type { ExternalStoreDataResponse } from "./DhtRpc";
6
+ import type { ExternalStoreDataRequest } from "./DhtRpc";
5
7
  import type { FindDataResponse } from "./DhtRpc";
6
8
  import type { FindDataRequest } from "./DhtRpc";
7
9
  import { ConnectionLocker } from "./DhtRpc";
@@ -353,6 +355,10 @@ export interface IExternalApiServiceClient {
353
355
  * @generated from protobuf rpc: findData(dht.FindDataRequest) returns (dht.FindDataResponse);
354
356
  */
355
357
  findData(input: FindDataRequest, options?: RpcOptions): UnaryCall<FindDataRequest, FindDataResponse>;
358
+ /**
359
+ * @generated from protobuf rpc: externalStoreData(dht.ExternalStoreDataRequest) returns (dht.ExternalStoreDataResponse);
360
+ */
361
+ externalStoreData(input: ExternalStoreDataRequest, options?: RpcOptions): UnaryCall<ExternalStoreDataRequest, ExternalStoreDataResponse>;
356
362
  }
357
363
  /**
358
364
  * @generated from protobuf service dht.ExternalApiService
@@ -370,4 +376,11 @@ export class ExternalApiServiceClient implements IExternalApiServiceClient, Serv
370
376
  const method = this.methods[0], opt = this._transport.mergeOptions(options);
371
377
  return stackIntercept<FindDataRequest, FindDataResponse>("unary", this._transport, method, opt, input);
372
378
  }
379
+ /**
380
+ * @generated from protobuf rpc: externalStoreData(dht.ExternalStoreDataRequest) returns (dht.ExternalStoreDataResponse);
381
+ */
382
+ externalStoreData(input: ExternalStoreDataRequest, options?: RpcOptions): UnaryCall<ExternalStoreDataRequest, ExternalStoreDataResponse> {
383
+ const method = this.methods[1], opt = this._transport.mergeOptions(options);
384
+ return stackIntercept<ExternalStoreDataRequest, ExternalStoreDataResponse>("unary", this._transport, method, opt, input);
385
+ }
373
386
  }
@@ -1,6 +1,8 @@
1
1
  // @generated by protobuf-ts 2.9.1 with parameter server_generic,generate_dependencies,long_type_number
2
2
  // @generated from protobuf file "packages/dht/protos/DhtRpc.proto" (package "dht", syntax proto3)
3
3
  // tslint:disable
4
+ import { ExternalStoreDataResponse } from "./DhtRpc";
5
+ import { ExternalStoreDataRequest } from "./DhtRpc";
4
6
  import { FindDataResponse } from "./DhtRpc";
5
7
  import { FindDataRequest } from "./DhtRpc";
6
8
  import { DisconnectNoticeResponse } from "./DhtRpc";
@@ -145,4 +147,8 @@ export interface IExternalApiService<T = ServerCallContext> {
145
147
  * @generated from protobuf rpc: findData(dht.FindDataRequest) returns (dht.FindDataResponse);
146
148
  */
147
149
  findData(request: FindDataRequest, context: T): Promise<FindDataResponse>;
150
+ /**
151
+ * @generated from protobuf rpc: externalStoreData(dht.ExternalStoreDataRequest) returns (dht.ExternalStoreDataResponse);
152
+ */
153
+ externalStoreData(request: ExternalStoreDataRequest, context: T): Promise<ExternalStoreDataResponse>;
148
154
  }