@@ -19,11 +19,11 @@ import { CID } from 'multiformats/cid'
19
19
import { DHTOperations } from './dht.js'
20
20
import { PubSubOperations } from './pubsub.js'
21
21
import { ErrorResponse , OkResponse } from './responses.js'
22
- import type { Connection , MultiaddrConnection , Stream } from '@libp2p/interface-connection '
23
- import type { DHT } from '@libp2p/interface-dht '
24
- import type { Libp2p } from '@libp2p/interface-libp2p '
25
- import type { PubSub } from '@libp2p/interface-pubsub '
26
- import type { Listener , Transport } from '@libp2p/interface-transport '
22
+ import type { GossipSub } from '@chainsafe/libp2p-gossipsub '
23
+ import type { Libp2p } from '@libp2p/interface'
24
+ import type { Connection , MultiaddrConnection , Stream } from '@libp2p/interface/connection '
25
+ import type { Listener , Transport } from '@libp2p/interface/transport '
26
+ import type { KadDHT } from '@libp2p/kad-dht '
27
27
import type { Multiaddr } from '@multiformats/multiaddr'
28
28
29
29
const LIMIT = 1 << 22 // 4MB
@@ -36,7 +36,7 @@ export interface OpenStream {
36
36
37
37
export interface DaemonInit {
38
38
multiaddr : Multiaddr
39
- libp2pNode : Libp2p < { dht : DHT , pubsub : PubSub } >
39
+ libp2pNode : Libp2p < { dht : KadDHT , pubsub : GossipSub } >
40
40
}
41
41
42
42
export interface Libp2pServer {
@@ -47,7 +47,7 @@ export interface Libp2pServer {
47
47
48
48
export class Server implements Libp2pServer {
49
49
private readonly multiaddr : Multiaddr
50
- private readonly libp2p : Libp2p < { dht : DHT , pubsub : PubSub } >
50
+ private readonly libp2p : Libp2p < { dht : KadDHT , pubsub : GossipSub } >
51
51
private readonly tcp : Transport
52
52
private readonly listener : Listener
53
53
private readonly dhtOperations ?: DHTOperations
@@ -103,13 +103,15 @@ export class Server implements Libp2pServer {
103
103
const { peer, proto } = request . streamOpen
104
104
const peerId = peerIdFromBytes ( peer )
105
105
const connection = await this . libp2p . dial ( peerId )
106
- const stream = await connection . newStream ( proto )
106
+ const stream = await connection . newStream ( proto , {
107
+ runOnTransientConnection : true
108
+ } )
107
109
108
110
return {
109
111
streamInfo : {
110
112
peer : peerId . toBytes ( ) ,
111
113
addr : connection . remoteAddr . bytes ,
112
- proto : stream . stat . protocol ?? ''
114
+ proto : stream . protocol ?? ''
113
115
} ,
114
116
connection : stream
115
117
}
@@ -142,7 +144,7 @@ export class Server implements Libp2pServer {
142
144
const message = StreamInfo . encode ( {
143
145
peer : connection . remotePeer . toBytes ( ) ,
144
146
addr : connection . remoteAddr . bytes ,
145
- proto : stream . stat . protocol ?? ''
147
+ proto : stream . protocol ?? ''
146
148
} )
147
149
const encodedMessage = lp . encode . single ( message )
148
150
@@ -178,6 +180,8 @@ export class Server implements Libp2pServer {
178
180
} )
179
181
}
180
182
} )
183
+ } , {
184
+ runOnTransientConnection : true
181
185
} )
182
186
}
183
187
@@ -521,7 +525,7 @@ export class Server implements Libp2pServer {
521
525
/**
522
526
* Creates a daemon from the provided Daemon Options
523
527
*/
524
- export const createServer = ( multiaddr : Multiaddr , libp2pNode : Libp2p < { dht : DHT , pubsub : PubSub } > ) : Libp2pServer => {
528
+ export const createServer = ( multiaddr : Multiaddr , libp2pNode : Libp2p < { dht : KadDHT , pubsub : GossipSub } > ) : Libp2pServer => {
525
529
const daemon = new Server ( {
526
530
multiaddr,
527
531
libp2pNode
0 commit comments