Skip to content

Commit 92eebfa

Browse files
authoredJul 31, 2023
feat!: close streams gracefully (#213)
- Updates all libp2p related deps - Stream close methods are now async BREAKING CHANGE: stream close methods are now asyc, requires libp2p@0.46.x or later
1 parent 7414a71 commit 92eebfa

21 files changed

+127
-126
lines changed
 

‎package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
"release": "aegir run release"
3939
},
4040
"dependencies": {
41-
"aegir": "^39.0.10"
41+
"aegir": "^40.0.2"
4242
},
4343
"workspaces": [
4444
"packages/*"

‎packages/libp2p-daemon-client/package.json

+14-25
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,6 @@
1414
"keywords": [
1515
"libp2p"
1616
],
17-
"engines": {
18-
"node": ">=16.0.0",
19-
"npm": ">=7.0.0"
20-
},
2117
"type": "module",
2218
"types": "./dist/src/index.d.ts",
2319
"files": [
@@ -134,33 +130,26 @@
134130
"release": "aegir release"
135131
},
136132
"dependencies": {
133+
"@chainsafe/libp2p-gossipsub": "^9.0.0",
137134
"@libp2p/daemon-protocol": "^4.0.0",
138-
"@libp2p/interface-connection": "^5.0.1",
139-
"@libp2p/interface-peer-id": "^2.0.0",
140-
"@libp2p/interface-peer-info": "^1.0.1",
141-
"@libp2p/interface-transport": "^4.0.0",
142-
"@libp2p/interfaces": "^3.2.0",
143-
"@libp2p/logger": "^2.0.0",
144-
"@libp2p/peer-id": "^2.0.0",
145-
"@libp2p/tcp": "^7.0.1",
146-
"@multiformats/multiaddr": "^12.0.0",
135+
"@libp2p/interface": "^0.1.0",
136+
"@libp2p/kad-dht": "^10.0.0",
137+
"@libp2p/logger": "^3.0.0",
138+
"@libp2p/peer-id": "^3.0.0",
139+
"@libp2p/tcp": "^8.0.0",
140+
"@multiformats/multiaddr": "^12.1.3",
147141
"it-stream-types": "^2.0.1",
148-
"multiformats": "^11.0.0",
149-
"uint8arraylist": "^2.3.2"
142+
"multiformats": "^12.0.1",
143+
"uint8arraylist": "^2.4.3"
150144
},
151145
"devDependencies": {
152146
"@libp2p/daemon-server": "^5.0.0",
153-
"@libp2p/interface-dht": "^2.0.0",
154-
"@libp2p/interface-libp2p": "3.0.0",
155-
"@libp2p/interface-mocks": "^11.0.0",
156-
"@libp2p/interface-peer-store": "^2.0.0",
157-
"@libp2p/interface-pubsub": "^4.0.0",
158-
"@types/sinon": "^10.0.14",
159-
"aegir": "^39.0.10",
147+
"@libp2p/interface-compliance-tests": "^4.0.0",
148+
"aegir": "^40.0.1",
160149
"it-all": "^3.0.1",
161-
"it-pipe": "^3.0.0",
162-
"sinon": "^15.0.1",
150+
"it-pipe": "^3.0.1",
151+
"sinon": "^15.1.2",
163152
"sinon-ts": "^1.0.0",
164-
"uint8arrays": "^4.0.2"
153+
"uint8arrays": "^4.0.4"
165154
}
166155
}

‎packages/libp2p-daemon-client/src/dht.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ import {
44
DHTRequest,
55
DHTResponse
66
} from '@libp2p/daemon-protocol'
7-
import { isPeerId, type PeerId } from '@libp2p/interface-peer-id'
8-
import { CodeError } from '@libp2p/interfaces/errors'
7+
import { CodeError } from '@libp2p/interface/errors'
8+
import { isPeerId, type PeerId } from '@libp2p/interface/peer-id'
99
import { peerIdFromBytes } from '@libp2p/peer-id'
1010
import { multiaddr } from '@multiformats/multiaddr'
1111
import { CID } from 'multiformats/cid'
1212
import type { DaemonClient } from './index.js'
13-
import type { PeerInfo } from '@libp2p/interface-peer-info'
13+
import type { PeerInfo } from '@libp2p/interface/peer-info'
1414

1515
export class DHT {
1616
private readonly client: DaemonClient

‎packages/libp2p-daemon-client/src/index.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
import { type PSMessage, Request, Response, StreamInfo } from '@libp2p/daemon-protocol'
22
import { StreamHandler } from '@libp2p/daemon-protocol/stream-handler'
33
import { passThroughUpgrader } from '@libp2p/daemon-protocol/upgrader'
4-
import { isPeerId, type PeerId } from '@libp2p/interface-peer-id'
5-
import { CodeError } from '@libp2p/interfaces/errors'
4+
import { CodeError } from '@libp2p/interface/errors'
5+
import { isPeerId, type PeerId } from '@libp2p/interface/peer-id'
66
import { logger } from '@libp2p/logger'
77
import { peerIdFromBytes } from '@libp2p/peer-id'
88
import { tcp } from '@libp2p/tcp'
99
import { multiaddr, isMultiaddr } from '@multiformats/multiaddr'
1010
import { DHT } from './dht.js'
1111
import { Pubsub } from './pubsub.js'
12-
import type { MultiaddrConnection } from '@libp2p/interface-connection'
13-
import type { PeerInfo } from '@libp2p/interface-peer-info'
14-
import type { Transport } from '@libp2p/interface-transport'
12+
import type { MultiaddrConnection } from '@libp2p/interface/connection'
13+
import type { PeerInfo } from '@libp2p/interface/peer-info'
14+
import type { Transport } from '@libp2p/interface/transport'
1515
import type { Multiaddr } from '@multiformats/multiaddr'
1616
import type { Duplex, Source } from 'it-stream-types'
1717
import type { CID } from 'multiformats/cid'

‎packages/libp2p-daemon-client/src/pubsub.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ import {
44
PSRequest,
55
PSMessage
66
} from '@libp2p/daemon-protocol'
7-
import { CodeError } from '@libp2p/interfaces/errors'
7+
import { CodeError } from '@libp2p/interface/errors'
88
import { peerIdFromBytes } from '@libp2p/peer-id'
99
import type { DaemonClient, Subscription } from './index.js'
10-
import type { PeerId } from '@libp2p/interface-peer-id'
10+
import type { PeerId } from '@libp2p/interface/peer-id'
1111

1212
export class Pubsub {
1313
private readonly client: DaemonClient

‎packages/libp2p-daemon-client/test/dht.spec.ts

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* eslint-env mocha */
22

33
import { createServer, type Libp2pServer } from '@libp2p/daemon-server'
4-
import { type DualDHT, type ValueEvent, type FinalPeerEvent, type PeerResponseEvent, MessageType, EventTypes, type DHT } from '@libp2p/interface-dht'
4+
import { type DualKadDHT, type ValueEvent, type FinalPeerEvent, type PeerResponseEvent, MessageType, EventTypes, type KadDHT } from '@libp2p/kad-dht'
55
import { peerIdFromString } from '@libp2p/peer-id'
66
import { multiaddr } from '@multiformats/multiaddr'
77
import { expect } from 'aegir/chai'
@@ -11,8 +11,8 @@ import sinon from 'sinon'
1111
import { type StubbedInstance, stubInterface } from 'sinon-ts'
1212
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'
1313
import { createClient, type DaemonClient } from '../src/index.js'
14-
import type { Libp2p } from '@libp2p/interface-libp2p'
15-
import type { PubSub } from '@libp2p/interface-pubsub'
14+
import type { GossipSub } from '@chainsafe/libp2p-gossipsub'
15+
import type { Libp2p } from '@libp2p/interface'
1616

1717
const defaultMultiaddr = multiaddr('/ip4/0.0.0.0/tcp/12345')
1818

@@ -23,14 +23,14 @@ function match (cid: CID): sinon.SinonMatcher {
2323
describe('daemon dht client', function () {
2424
this.timeout(30e3)
2525

26-
let libp2p: StubbedInstance<Libp2p<{ dht: DHT, pubsub: PubSub }>>
26+
let libp2p: StubbedInstance<Libp2p<{ dht: KadDHT, pubsub: GossipSub }>>
2727
let server: Libp2pServer
2828
let client: DaemonClient
29-
let dht: StubbedInstance<DualDHT>
29+
let dht: StubbedInstance<DualKadDHT>
3030

3131
beforeEach(async function () {
32-
dht = stubInterface<DualDHT>()
33-
libp2p = stubInterface<Libp2p<{ dht: DHT, pubsub: PubSub }>>()
32+
dht = stubInterface<DualKadDHT>()
33+
libp2p = stubInterface<Libp2p<{ dht: KadDHT, pubsub: GossipSub }>>()
3434
libp2p.services.dht = dht
3535

3636
server = createServer(defaultMultiaddr, libp2p)

‎packages/libp2p-daemon-client/test/index.spec.ts

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
11
/* eslint-env mocha */
22

33
import { createServer, type Libp2pServer } from '@libp2p/daemon-server'
4-
import { mockConnection, mockDuplex, mockMultiaddrConnection } from '@libp2p/interface-mocks'
5-
import { isPeerId } from '@libp2p/interface-peer-id'
4+
import { isPeerId } from '@libp2p/interface/peer-id'
5+
import { mockConnection, mockDuplex, mockMultiaddrConnection } from '@libp2p/interface-compliance-tests/mocks'
66
import { peerIdFromString } from '@libp2p/peer-id'
77
import { multiaddr } from '@multiformats/multiaddr'
88
import { expect } from 'aegir/chai'
99
import sinon from 'sinon'
1010
import { type StubbedInstance, stubInterface } from 'sinon-ts'
1111
import { createClient, type DaemonClient } from '../src/index.js'
12-
import type { DHT } from '@libp2p/interface-dht'
13-
import type { Libp2p } from '@libp2p/interface-libp2p'
14-
import type { PeerStore } from '@libp2p/interface-peer-store'
15-
import type { PubSub } from '@libp2p/interface-pubsub'
12+
import type { GossipSub } from '@chainsafe/libp2p-gossipsub'
13+
import type { Libp2p } from '@libp2p/interface'
14+
import type { PeerStore } from '@libp2p/interface/peer-store'
15+
import type { KadDHT } from '@libp2p/kad-dht'
1616

1717
const defaultMultiaddr = multiaddr('/ip4/0.0.0.0/tcp/0')
1818

1919
describe('daemon client', function () {
2020
this.timeout(30e3)
2121

22-
let libp2p: StubbedInstance<Libp2p<{ dht: DHT, pubsub: PubSub }>>
22+
let libp2p: StubbedInstance<Libp2p<{ dht: KadDHT, pubsub: GossipSub }>>
2323
let server: Libp2pServer
2424
let client: DaemonClient
2525

2626
beforeEach(async function () {
27-
libp2p = stubInterface<Libp2p<{ dht: DHT, pubsub: PubSub }>>()
27+
libp2p = stubInterface<Libp2p<{ dht: KadDHT, pubsub: GossipSub }>>()
2828
libp2p.peerStore = stubInterface<PeerStore>()
2929

3030
server = createServer(defaultMultiaddr, libp2p)

‎packages/libp2p-daemon-client/test/pubsub.spec.ts

+7-7
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,23 @@ import sinon from 'sinon'
88
import { type StubbedInstance, stubInterface } from 'sinon-ts'
99
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'
1010
import { createClient, type DaemonClient } from '../src/index.js'
11-
import type { DHT } from '@libp2p/interface-dht'
12-
import type { Libp2p } from '@libp2p/interface-libp2p'
13-
import type { PubSub } from '@libp2p/interface-pubsub'
11+
import type { GossipSub } from '@chainsafe/libp2p-gossipsub'
12+
import type { Libp2p } from '@libp2p/interface'
13+
import type { KadDHT } from '@libp2p/kad-dht'
1414

1515
const defaultMultiaddr = multiaddr('/ip4/0.0.0.0/tcp/12345')
1616

1717
describe('daemon pubsub client', function () {
1818
this.timeout(30e3)
1919

20-
let libp2p: StubbedInstance<Libp2p<{ dht: DHT, pubsub: PubSub }>>
20+
let libp2p: StubbedInstance<Libp2p<{ dht: KadDHT, pubsub: GossipSub }>>
2121
let server: Libp2pServer
2222
let client: DaemonClient
23-
let pubsub: StubbedInstance<PubSub>
23+
let pubsub: StubbedInstance<GossipSub>
2424

2525
beforeEach(async function () {
26-
pubsub = stubInterface<PubSub>()
27-
libp2p = stubInterface<Libp2p<{ dht: DHT, pubsub: PubSub }>>()
26+
pubsub = stubInterface<GossipSub>()
27+
libp2p = stubInterface<Libp2p<{ dht: KadDHT, pubsub: GossipSub }>>()
2828
libp2p.services.pubsub = pubsub
2929

3030
server = createServer(defaultMultiaddr, libp2p)

‎packages/libp2p-daemon-client/test/stream.spec.ts

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* eslint-env mocha */
22

33
import { createServer, type Libp2pServer } from '@libp2p/daemon-server'
4-
import { mockRegistrar, connectionPair } from '@libp2p/interface-mocks'
4+
import { mockRegistrar, connectionPair } from '@libp2p/interface-compliance-tests/mocks'
55
import { peerIdFromString } from '@libp2p/peer-id'
66
import { multiaddr } from '@multiformats/multiaddr'
77
import { expect } from 'aegir/chai'
@@ -12,22 +12,22 @@ import { type StubbedInstance, stubInterface } from 'sinon-ts'
1212
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'
1313
import { toString as uint8ArrayToString } from 'uint8arrays/to-string'
1414
import { createClient, type DaemonClient } from '../src/index.js'
15-
import type { DHT } from '@libp2p/interface-dht'
16-
import type { Libp2p } from '@libp2p/interface-libp2p'
17-
import type { PeerStore } from '@libp2p/interface-peer-store'
18-
import type { PubSub } from '@libp2p/interface-pubsub'
15+
import type { GossipSub } from '@chainsafe/libp2p-gossipsub'
16+
import type { Libp2p } from '@libp2p/interface'
17+
import type { PeerStore } from '@libp2p/interface/peer-store'
18+
import type { KadDHT } from '@libp2p/kad-dht'
1919

2020
const defaultMultiaddr = multiaddr('/ip4/0.0.0.0/tcp/0')
2121

2222
describe('daemon stream client', function () {
2323
this.timeout(50e3)
2424

25-
let libp2p: StubbedInstance<Libp2p<{ dht: DHT, pubsub: PubSub }>>
25+
let libp2p: StubbedInstance<Libp2p<{ dht: KadDHT, pubsub: GossipSub }>>
2626
let server: Libp2pServer
2727
let client: DaemonClient
2828

2929
beforeEach(async function () {
30-
libp2p = stubInterface<Libp2p<{ dht: DHT, pubsub: PubSub }>>()
30+
libp2p = stubInterface<Libp2p<{ dht: KadDHT, pubsub: GossipSub }>>()
3131
libp2p.peerStore = stubInterface<PeerStore>()
3232

3333
server = createServer(defaultMultiaddr, libp2p)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"entryPoints": [
3+
"./src/index.ts"
4+
]
5+
}

‎packages/libp2p-daemon-protocol/package.json

+5-8
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,6 @@
1212
"bugs": {
1313
"url": "https://github.com/libp2p/js-libp2p-daemon/issues"
1414
},
15-
"engines": {
16-
"node": ">=16.0.0",
17-
"npm": ">=7.0.0"
18-
},
1915
"type": "module",
2016
"types": "./dist/src/index.d.ts",
2117
"typesVersions": {
@@ -157,13 +153,14 @@
157153
"release": "aegir release"
158154
},
159155
"dependencies": {
160-
"@libp2p/interface-transport": "^4.0.0",
161-
"it-handshake": "^4.0.0",
156+
"@libp2p/interface": "^0.1.0",
157+
"@libp2p/logger": "^3.0.0",
158+
"it-handshake": "^4.1.3",
162159
"protons-runtime": "^5.0.0",
163-
"uint8arraylist": "^2.3.2"
160+
"uint8arraylist": "^2.4.3"
164161
},
165162
"devDependencies": {
166-
"aegir": "^39.0.10",
163+
"aegir": "^40.0.1",
167164
"protons": "^7.0.2"
168165
}
169166
}

‎packages/libp2p-daemon-protocol/src/upgrader.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { Upgrader } from '@libp2p/interface-transport'
1+
import type { Upgrader } from '@libp2p/interface/transport'
22

33
export const passThroughUpgrader: Upgrader = {
44
// @ts-expect-error should return a connection
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"entryPoints": [
3+
"./src/index.ts",
4+
"./src/stream-handler.ts",
5+
"./src/upgrader.ts"
6+
]
7+
}

‎packages/libp2p-daemon-server/package.json

+14-21
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,6 @@
1414
"keywords": [
1515
"libp2p"
1616
],
17-
"engines": {
18-
"node": ">=16.0.0",
19-
"npm": ">=7.0.0"
20-
},
2117
"type": "module",
2218
"types": "./dist/src/index.d.ts",
2319
"files": [
@@ -138,26 +134,23 @@
138134
"release": "aegir release"
139135
},
140136
"dependencies": {
137+
"@chainsafe/libp2p-gossipsub": "^9.0.0",
141138
"@libp2p/daemon-protocol": "^4.0.0",
142-
"@libp2p/interface-connection": "^5.0.1",
143-
"@libp2p/interface-dht": "^2.0.0",
144-
"@libp2p/interface-libp2p": "^3.0.0",
145-
"@libp2p/interface-peer-id": "^2.0.0",
146-
"@libp2p/interface-pubsub": "^4.0.0",
147-
"@libp2p/interface-transport": "^4.0.0",
148-
"@libp2p/logger": "^2.0.0",
149-
"@libp2p/peer-id": "^2.0.0",
150-
"@libp2p/tcp": "^7.0.1",
151-
"@multiformats/multiaddr": "^12.0.0",
152-
"it-drain": "^3.0.1",
153-
"it-length-prefixed": "^9.0.0",
154-
"it-pipe": "^3.0.0",
155-
"it-pushable": "^3.0.0",
156-
"multiformats": "^11.0.0",
157-
"uint8arrays": "^4.0.2"
139+
"@libp2p/interface": "^0.1.0",
140+
"@libp2p/kad-dht": "^10.0.0",
141+
"@libp2p/logger": "^3.0.0",
142+
"@libp2p/peer-id": "^3.0.0",
143+
"@libp2p/tcp": "^8.0.0",
144+
"@multiformats/multiaddr": "^12.1.3",
145+
"it-drain": "^3.0.2",
146+
"it-length-prefixed": "^9.0.1",
147+
"it-pipe": "^3.0.1",
148+
"it-pushable": "^3.2.0",
149+
"multiformats": "^12.0.1",
150+
"uint8arrays": "^4.0.4"
158151
},
159152
"devDependencies": {
160-
"aegir": "^39.0.10",
153+
"aegir": "^40.0.1",
161154
"sinon-ts": "^1.0.0"
162155
}
163156
}

‎packages/libp2p-daemon-server/src/dht.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,18 @@ import {
66
import { logger } from '@libp2p/logger'
77
import drain from 'it-drain'
88
import { ErrorResponse, OkResponse } from './responses.js'
9-
import type { DHT } from '@libp2p/interface-dht'
10-
import type { PeerId } from '@libp2p/interface-peer-id'
9+
import type { PeerId } from '@libp2p/interface/peer-id'
10+
import type { KadDHT } from '@libp2p/kad-dht'
1111
import type { CID } from 'multiformats/cid'
1212

1313
const log = logger('libp2p:daemon-server:dht')
1414

1515
export interface DHTOperationsInit {
16-
dht: DHT
16+
dht: KadDHT
1717
}
1818

1919
export class DHTOperations {
20-
private readonly dht: DHT
20+
private readonly dht: KadDHT
2121

2222
constructor (init: DHTOperationsInit) {
2323
const { dht } = init

‎packages/libp2p-daemon-server/src/index.ts

+15-11
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@ import { CID } from 'multiformats/cid'
1919
import { DHTOperations } from './dht.js'
2020
import { PubSubOperations } from './pubsub.js'
2121
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'
2727
import type { Multiaddr } from '@multiformats/multiaddr'
2828

2929
const LIMIT = 1 << 22 // 4MB
@@ -36,7 +36,7 @@ export interface OpenStream {
3636

3737
export interface DaemonInit {
3838
multiaddr: Multiaddr
39-
libp2pNode: Libp2p<{ dht: DHT, pubsub: PubSub }>
39+
libp2pNode: Libp2p<{ dht: KadDHT, pubsub: GossipSub }>
4040
}
4141

4242
export interface Libp2pServer {
@@ -47,7 +47,7 @@ export interface Libp2pServer {
4747

4848
export class Server implements Libp2pServer {
4949
private readonly multiaddr: Multiaddr
50-
private readonly libp2p: Libp2p<{ dht: DHT, pubsub: PubSub }>
50+
private readonly libp2p: Libp2p<{ dht: KadDHT, pubsub: GossipSub }>
5151
private readonly tcp: Transport
5252
private readonly listener: Listener
5353
private readonly dhtOperations?: DHTOperations
@@ -103,13 +103,15 @@ export class Server implements Libp2pServer {
103103
const { peer, proto } = request.streamOpen
104104
const peerId = peerIdFromBytes(peer)
105105
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+
})
107109

108110
return {
109111
streamInfo: {
110112
peer: peerId.toBytes(),
111113
addr: connection.remoteAddr.bytes,
112-
proto: stream.stat.protocol ?? ''
114+
proto: stream.protocol ?? ''
113115
},
114116
connection: stream
115117
}
@@ -142,7 +144,7 @@ export class Server implements Libp2pServer {
142144
const message = StreamInfo.encode({
143145
peer: connection.remotePeer.toBytes(),
144146
addr: connection.remoteAddr.bytes,
145-
proto: stream.stat.protocol ?? ''
147+
proto: stream.protocol ?? ''
146148
})
147149
const encodedMessage = lp.encode.single(message)
148150

@@ -178,6 +180,8 @@ export class Server implements Libp2pServer {
178180
})
179181
}
180182
})
183+
}, {
184+
runOnTransientConnection: true
181185
})
182186
}
183187

@@ -521,7 +525,7 @@ export class Server implements Libp2pServer {
521525
/**
522526
* Creates a daemon from the provided Daemon Options
523527
*/
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 => {
525529
const daemon = new Server({
526530
multiaddr,
527531
libp2pNode

‎packages/libp2p-daemon-server/src/pubsub.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,16 @@ import { logger } from '@libp2p/logger'
77
import { pushable } from 'it-pushable'
88
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'
99
import { ErrorResponse, OkResponse } from './responses.js'
10-
import type { PubSub } from '@libp2p/interface-pubsub'
10+
import type { GossipSub } from '@chainsafe/libp2p-gossipsub'
1111

1212
const log = logger('libp2p:daemon-server:pubsub')
1313

1414
export interface PubSubOperationsInit {
15-
pubsub: PubSub
15+
pubsub: GossipSub
1616
}
1717

1818
export class PubSubOperations {
19-
private readonly pubsub: PubSub
19+
private readonly pubsub: GossipSub
2020

2121
constructor (init: PubSubOperationsInit) {
2222
const { pubsub } = init

‎packages/libp2p-daemon-server/test/index.spec.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@ import { multiaddr } from '@multiformats/multiaddr'
55
import { expect } from 'aegir/chai'
66
import { stubInterface } from 'sinon-ts'
77
import { createServer } from '../src/index.js'
8-
import type { DHT } from '@libp2p/interface-dht'
9-
import type { Libp2p } from '@libp2p/interface-libp2p'
10-
import type { PubSub } from '@libp2p/interface-pubsub'
8+
import type { GossipSub } from '@chainsafe/libp2p-gossipsub'
9+
import type { Libp2p } from '@libp2p/interface'
10+
import type { KadDHT } from '@libp2p/kad-dht'
1111

1212
const ma = multiaddr('/ip4/0.0.0.0/tcp/0')
1313

1414
describe('server', () => {
1515
it('should start', async () => {
16-
const libp2p = stubInterface<Libp2p<{ dht: DHT, pubsub: PubSub }>>()
16+
const libp2p = stubInterface<Libp2p<{ dht: KadDHT, pubsub: GossipSub }>>()
1717

1818
const server = createServer(ma, libp2p)
1919

@@ -25,7 +25,7 @@ describe('server', () => {
2525
})
2626

2727
it('should stop', async () => {
28-
const libp2p = stubInterface<Libp2p<{ dht: DHT, pubsub: PubSub }>>()
28+
const libp2p = stubInterface<Libp2p<{ dht: KadDHT, pubsub: GossipSub }>>()
2929

3030
const server = createServer(ma, libp2p)
3131

@@ -36,7 +36,7 @@ describe('server', () => {
3636
})
3737

3838
it('should return multiaddrs', async () => {
39-
const libp2p = stubInterface<Libp2p<{ dht: DHT, pubsub: PubSub }>>()
39+
const libp2p = stubInterface<Libp2p<{ dht: KadDHT, pubsub: GossipSub }>>()
4040

4141
const server = createServer(ma, libp2p)
4242

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"entryPoints": [
3+
"./src/index.ts"
4+
]
5+
}

‎packages/libp2p-daemon/package.json

+3-7
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,6 @@
1414
"keywords": [
1515
"libp2p"
1616
],
17-
"engines": {
18-
"node": ">=16.0.0",
19-
"npm": ">=7.0.0"
20-
},
2117
"bin": {
2218
"jsp2pd": "dist/src/index.js"
2319
},
@@ -137,13 +133,13 @@
137133
},
138134
"dependencies": {
139135
"@libp2p/daemon-server": "^5.0.0",
140-
"@multiformats/multiaddr": "^12.0.0",
136+
"@multiformats/multiaddr": "^12.1.3",
141137
"es-main": "^1.0.2",
142138
"yargs": "^17.3.1",
143139
"yargs-promise": "^1.1.0"
144140
},
145141
"devDependencies": {
146-
"aegir": "^39.0.10",
147-
"sinon": "^15.0.1"
142+
"aegir": "^40.0.1",
143+
"sinon": "^15.1.2"
148144
}
149145
}

‎packages/libp2p-daemon/typedoc.json

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"entryPoints": [
3+
"./src/index.ts"
4+
]
5+
}

0 commit comments

Comments
 (0)
Please sign in to comment.