@libp2p/daemon-server 8.0.6 → 9.0.0-049bfa0fa

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.
@@ -1,5 +1,5 @@
1
1
  import { Request, DHTRequest, PeerstoreRequest, PSRequest, StreamInfo } from '@libp2p/daemon-protocol';
2
- import type { GossipSub } from '@chainsafe/libp2p-gossipsub';
2
+ import type { GossipSub } from '@libp2p/gossipsub';
3
3
  import type { Libp2p, Connection, MultiaddrConnection, Stream } from '@libp2p/interface';
4
4
  import type { KadDHT } from '@libp2p/kad-dht';
5
5
  import type { Multiaddr } from '@multiformats/multiaddr';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,OAAO,EAEP,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,UAAU,EACX,MAAM,yBAAyB,CAAA;AAehC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,EAAuB,MAAM,mBAAmB,CAAA;AAC7G,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAKxD,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,UAAU,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,SAAS,CAAA;IACpB,UAAU,EAAE,MAAM,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,SAAS,CAAA;KAAE,CAAC,CAAA;CACvD;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACrB,YAAY,IAAI,SAAS,CAAA;CAC1B;AAED,qBAAa,MAAO,YAAW,YAAY;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4C;IACnE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAW;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAe;IAC9C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAkB;gBAEvC,IAAI,EAAE,UAAU;IAsB7B;;OAEG;IACG,OAAO,CAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IAkBrD;;OAEG;IACG,UAAU,CAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IA0BxD;;;;OAIG;IACG,qBAAqB,CAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAiE7D;;OAEG;IACH,OAAO,IAAK,IAAI;IAOhB,OAAO,IAAK,IAAI;IAMhB;;OAEG;IACG,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAM7B,YAAY,IAAK,SAAS;IAU1B;;OAEG;IACG,IAAI,CAAE,OAAO;;KAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAW7C,sBAAsB,CAAE,OAAO,EAAE,gBAAgB,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;IAwBvG;;OAEG;IACK,mBAAmB,CAAE,OAAO,EAAE,SAAS,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;IAwC7F;;OAEG;IACK,gBAAgB,CAAE,OAAO,EAAE,UAAU,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;IAiE3F;;OAEG;IACH,gBAAgB,CAAE,MAAM,EAAE,mBAAmB,GAAG,IAAI;CA2JrD;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,WAAW,SAAS,EAAE,YAAY,MAAM,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC,KAAG,YAO3G,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,OAAO,EAEP,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,UAAU,EACX,MAAM,yBAAyB,CAAA;AAchC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,EAAuB,MAAM,mBAAmB,CAAA;AAC7G,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAKxD,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,UAAU,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,SAAS,CAAA;IACpB,UAAU,EAAE,MAAM,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,SAAS,CAAA;KAAE,CAAC,CAAA;CACvD;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACrB,YAAY,IAAI,SAAS,CAAA;CAC1B;AAED,qBAAa,MAAO,YAAW,YAAY;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4C;IACnE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAW;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAe;IAC9C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAkB;gBAEvC,IAAI,EAAE,UAAU;IAsB7B;;OAEG;IACG,OAAO,CAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IAkBrD;;OAEG;IACG,UAAU,CAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IA0BxD;;;;OAIG;IACG,qBAAqB,CAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAgE7D;;OAEG;IACH,OAAO,IAAK,IAAI;IAOhB,OAAO,IAAK,IAAI;IAMhB;;OAEG;IACG,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAM7B,YAAY,IAAK,SAAS;IAU1B;;OAEG;IACG,IAAI,CAAE,OAAO;;KAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAW7C,sBAAsB,CAAE,OAAO,EAAE,gBAAgB,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;IAwBvG;;OAEG;IACK,mBAAmB,CAAE,OAAO,EAAE,SAAS,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;IAwC7F;;OAEG;IACK,gBAAgB,CAAE,OAAO,EAAE,UAAU,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;IAiE3F;;OAEG;IACH,gBAAgB,CAAE,MAAM,EAAE,mBAAmB,GAAG,IAAI;CAyKrD;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,WAAW,SAAS,EAAE,YAAY,MAAM,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC,KAAG,YAO3G,CAAA"}
package/dist/src/index.js CHANGED
@@ -4,13 +4,12 @@ import { PassThroughUpgrader } from '@libp2p/daemon-protocol/upgrader';
4
4
  import { defaultLogger, logger } from '@libp2p/logger';
5
5
  import { peerIdFromMultihash } from '@libp2p/peer-id';
6
6
  import { tcp } from '@libp2p/tcp';
7
- import { multiaddr, protocols } from '@multiformats/multiaddr';
7
+ import { pbStream, lpStream, pipe } from '@libp2p/utils';
8
+ import { CODE_P2P, multiaddr } from '@multiformats/multiaddr';
8
9
  import * as lp from 'it-length-prefixed';
9
- import { lpStream } from 'it-length-prefixed-stream';
10
- import { pipe } from 'it-pipe';
11
- import { pbStream } from 'it-protobuf-stream';
12
10
  import { CID } from 'multiformats/cid';
13
11
  import * as Digest from 'multiformats/hashes/digest';
12
+ import { pEvent } from 'p-event';
14
13
  import { DHTOperations } from './dht.js';
15
14
  import { PubSubOperations } from './pubsub.js';
16
15
  import { ErrorResponse, OkResponse } from './responses.js';
@@ -69,7 +68,7 @@ export class Server {
69
68
  const peerId = peerIdFromMultihash(Digest.decode(peer));
70
69
  log('openStream - dial %p', peerId);
71
70
  const connection = await this.libp2p.dial(peerId);
72
- log('openStream - open stream for protocol %s', proto);
71
+ log('openStream - open stream for protocol(s) %s', proto);
73
72
  const stream = await connection.newStream(proto, {
74
73
  runOnLimitedConnection: true
75
74
  });
@@ -94,16 +93,17 @@ export class Server {
94
93
  const protocols = request.streamHandler.proto;
95
94
  const addr = multiaddr(request.streamHandler.addr);
96
95
  let conn;
97
- log('registerStreamHandler - handle %s', protocols);
98
- await this.libp2p.handle(protocols, ({ connection, stream }) => {
99
- Promise.resolve()
100
- .then(async () => {
96
+ log('registerStreamHandler - handle %s at %a', protocols, addr);
97
+ await this.libp2p.handle(protocols, async (stream, connection) => {
98
+ try {
99
+ log('open stream for protocol %o to %a', protocols, addr);
100
+ const signal = AbortSignal.timeout(10_000);
101
101
  // Connect the client socket with the libp2p connection
102
102
  // @ts-expect-error because we use a passthrough upgrader,
103
103
  // this is actually a MultiaddrConnection and not a Connection
104
104
  conn = await this.tcp.dial(addr, {
105
105
  upgrader: new PassThroughUpgrader(),
106
- signal: AbortSignal.timeout(10_000)
106
+ signal
107
107
  });
108
108
  const message = StreamInfo.encode({
109
109
  peer: connection.remotePeer.toMultihash().bytes,
@@ -112,31 +112,29 @@ export class Server {
112
112
  });
113
113
  const encodedMessage = lp.encode.single(message);
114
114
  // Tell the client about the new connection
115
+ if (!conn.send(encodedMessage)) {
116
+ await pEvent(conn, 'drain', {
117
+ rejectionEvents: [
118
+ 'close'
119
+ ],
120
+ signal
121
+ });
122
+ }
115
123
  // And then begin piping the client and peer connection
116
- await pipe((async function* () {
117
- yield encodedMessage;
118
- yield* stream.source;
119
- }()), async function* (source) {
120
- for await (const list of source) {
121
- // convert Uint8ArrayList to Uint8Arrays for the socket
122
- yield* list;
123
- }
124
- }, conn, stream.sink);
125
- })
126
- .catch(async (err) => {
124
+ await pipe(stream, conn, stream);
125
+ }
126
+ catch (err) {
127
127
  log.error(err);
128
- if (conn != null) {
129
- await conn.close(err);
128
+ conn?.abort(err);
129
+ }
130
+ finally {
131
+ try {
132
+ await conn?.close();
130
133
  }
131
- })
132
- .finally(() => {
133
- if (conn != null) {
134
- conn.close()
135
- .catch(err => {
136
- log.error(err);
137
- });
134
+ catch (err) {
135
+ conn?.abort(err);
138
136
  }
139
- });
137
+ }
140
138
  }, {
141
139
  runOnLimitedConnection: true
142
140
  });
@@ -311,7 +309,7 @@ export class Server {
311
309
  handleConnection(maConn) {
312
310
  void Promise.resolve().then(async () => {
313
311
  const daemon = this;
314
- const pb = pbStream(maConn, {
312
+ let pb = pbStream(maConn, {
315
313
  maxDataLength: LIMIT
316
314
  });
317
315
  const request = await pb.read(Request);
@@ -332,7 +330,7 @@ export class Server {
332
330
  type: Response.Type.OK,
333
331
  identify: {
334
332
  id: daemon.libp2p.peerId.toMultihash().bytes,
335
- addrs: daemon.libp2p.getMultiaddrs().map(ma => ma.decapsulateCode(protocols('p2p').code)).map(m => m.bytes)
333
+ addrs: daemon.libp2p.getMultiaddrs().map(ma => ma.decapsulateCode(CODE_P2P)).map(m => m.bytes)
336
334
  }
337
335
  }, Response);
338
336
  break;
@@ -419,6 +417,15 @@ export class Server {
419
417
  }
420
418
  catch (err) {
421
419
  log.error(err);
420
+ // recreate pb stream in case the original was unwrapped already
421
+ const conn = pb.unwrap();
422
+ if (conn.status !== 'open') {
423
+ // cannot write error message as connection is closed
424
+ return;
425
+ }
426
+ pb = pbStream(conn, {
427
+ maxDataLength: LIMIT
428
+ });
422
429
  await pb.write({
423
430
  type: Response.Type.ERROR,
424
431
  error: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { GossipSub } from '@chainsafe/libp2p-gossipsub';
1
+ import type { GossipSub } from '@libp2p/gossipsub';
2
2
  export interface PubSubOperationsInit {
3
3
  pubsub: GossipSub;
4
4
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pubsub.d.ts","sourceRoot":"","sources":["../../src/pubsub.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAI5D,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,SAAS,CAAA;CAClB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;gBAErB,IAAI,EAAE,oBAAoB;IAM/B,SAAS,IAAK,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;IAczD,SAAS,CAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;IAqCtE,OAAO,CAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;IAUtF,SAAS,CAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;CAa/E"}
1
+ {"version":3,"file":"pubsub.d.ts","sourceRoot":"","sources":["../../src/pubsub.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAIlD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,SAAS,CAAA;CAClB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;gBAErB,IAAI,EAAE,oBAAoB;IAM/B,SAAS,IAAK,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;IAczD,SAAS,CAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;IAqCtE,OAAO,CAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;IAUtF,SAAS,CAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;CAa/E"}
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@libp2p/daemon-server",
3
- "version": "8.0.6",
3
+ "version": "9.0.0-049bfa0fa",
4
4
  "description": "API server for libp2p-daemon instances",
5
5
  "license": "Apache-2.0 OR MIT",
6
- "homepage": "https://github.com/libp2p/js-libp2p-daemon/tree/main/packages/libp2p-daemon-server#readme",
6
+ "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/libp2p-daemon-server#readme",
7
7
  "repository": {
8
8
  "type": "git",
9
- "url": "git+https://github.com/libp2p/js-libp2p-daemon.git"
9
+ "url": "git+https://github.com/libp2p/js-libp2p.git"
10
10
  },
11
11
  "bugs": {
12
- "url": "https://github.com/libp2p/js-libp2p-daemon/issues"
12
+ "url": "https://github.com/libp2p/js-libp2p/issues"
13
13
  },
14
14
  "publishConfig": {
15
15
  "access": "public",
@@ -32,99 +32,6 @@
32
32
  "import": "./dist/src/index.js"
33
33
  }
34
34
  },
35
- "release": {
36
- "branches": [
37
- "main"
38
- ],
39
- "plugins": [
40
- [
41
- "@semantic-release/commit-analyzer",
42
- {
43
- "preset": "conventionalcommits",
44
- "releaseRules": [
45
- {
46
- "breaking": true,
47
- "release": "major"
48
- },
49
- {
50
- "revert": true,
51
- "release": "patch"
52
- },
53
- {
54
- "type": "feat",
55
- "release": "minor"
56
- },
57
- {
58
- "type": "fix",
59
- "release": "patch"
60
- },
61
- {
62
- "type": "docs",
63
- "release": "patch"
64
- },
65
- {
66
- "type": "test",
67
- "release": "patch"
68
- },
69
- {
70
- "type": "deps",
71
- "release": "patch"
72
- },
73
- {
74
- "scope": "no-release",
75
- "release": false
76
- }
77
- ]
78
- }
79
- ],
80
- [
81
- "@semantic-release/release-notes-generator",
82
- {
83
- "preset": "conventionalcommits",
84
- "presetConfig": {
85
- "types": [
86
- {
87
- "type": "feat",
88
- "section": "Features"
89
- },
90
- {
91
- "type": "fix",
92
- "section": "Bug Fixes"
93
- },
94
- {
95
- "type": "chore",
96
- "section": "Trivial Changes"
97
- },
98
- {
99
- "type": "docs",
100
- "section": "Documentation"
101
- },
102
- {
103
- "type": "deps",
104
- "section": "Dependencies"
105
- },
106
- {
107
- "type": "test",
108
- "section": "Tests"
109
- }
110
- ]
111
- }
112
- }
113
- ],
114
- "@semantic-release/changelog",
115
- "@semantic-release/npm",
116
- "@semantic-release/github",
117
- [
118
- "@semantic-release/git",
119
- {
120
- "assets": [
121
- "CHANGELOG.md",
122
- "package.json"
123
- ]
124
- }
125
- ]
126
- ]
127
- },
128
35
  "scripts": {
129
36
  "clean": "aegir clean",
130
37
  "lint": "aegir lint",
@@ -132,30 +39,28 @@
132
39
  "build": "aegir build",
133
40
  "pretest": "npm run build",
134
41
  "test": "aegir test -t node",
135
- "test:node": "aegir test -t node",
136
- "release": "aegir release"
42
+ "test:node": "aegir test -t node"
137
43
  },
138
44
  "dependencies": {
139
- "@chainsafe/libp2p-gossipsub": "^14.1.1",
140
- "@libp2p/crypto": "^5.1.7",
141
- "@libp2p/daemon-protocol": "^7.0.0",
142
- "@libp2p/interface": "^2.10.5",
143
- "@libp2p/kad-dht": "^15.1.10",
144
- "@libp2p/logger": "^5.1.21",
145
- "@libp2p/peer-id": "^5.1.8",
146
- "@libp2p/tcp": "^10.1.18",
147
- "@multiformats/multiaddr": "^12.5.1",
45
+ "@libp2p/gossipsub": "15.0.0-049bfa0fa",
46
+ "@libp2p/crypto": "5.1.9-049bfa0fa",
47
+ "@libp2p/daemon-protocol": "8.0.0-049bfa0fa",
48
+ "@libp2p/interface": "3.0.0-049bfa0fa",
49
+ "@libp2p/kad-dht": "16.0.0-049bfa0fa",
50
+ "@libp2p/logger": "6.0.0-049bfa0fa",
51
+ "@libp2p/peer-id": "6.0.0-049bfa0fa",
52
+ "@libp2p/tcp": "11.0.0-049bfa0fa",
53
+ "@libp2p/utils": "7.0.0-049bfa0fa",
54
+ "@multiformats/multiaddr": "^13.0.1",
148
55
  "it-drain": "^3.0.10",
149
56
  "it-length-prefixed": "^10.0.1",
150
- "it-length-prefixed-stream": "^2.0.3",
151
- "it-pipe": "^3.0.1",
152
- "it-protobuf-stream": "^2.0.3",
153
57
  "it-pushable": "^3.2.3",
154
58
  "multiformats": "^13.4.0",
59
+ "p-event": "^6.0.1",
155
60
  "uint8arrays": "^5.1.0"
156
61
  },
157
62
  "devDependencies": {
158
- "aegir": "^47.0.21",
63
+ "aegir": "^47.0.22",
159
64
  "sinon-ts": "^2.0.0"
160
65
  }
161
66
  }
package/src/index.ts CHANGED
@@ -12,17 +12,16 @@ import { PassThroughUpgrader } from '@libp2p/daemon-protocol/upgrader'
12
12
  import { defaultLogger, logger } from '@libp2p/logger'
13
13
  import { peerIdFromMultihash } from '@libp2p/peer-id'
14
14
  import { tcp } from '@libp2p/tcp'
15
- import { multiaddr, protocols } from '@multiformats/multiaddr'
15
+ import { pbStream, lpStream, pipe } from '@libp2p/utils'
16
+ import { CODE_P2P, multiaddr } from '@multiformats/multiaddr'
16
17
  import * as lp from 'it-length-prefixed'
17
- import { lpStream } from 'it-length-prefixed-stream'
18
- import { pipe } from 'it-pipe'
19
- import { pbStream } from 'it-protobuf-stream'
20
18
  import { CID } from 'multiformats/cid'
21
19
  import * as Digest from 'multiformats/hashes/digest'
20
+ import { pEvent } from 'p-event'
22
21
  import { DHTOperations } from './dht.js'
23
22
  import { PubSubOperations } from './pubsub.js'
24
23
  import { ErrorResponse, OkResponse } from './responses.js'
25
- import type { GossipSub } from '@chainsafe/libp2p-gossipsub'
24
+ import type { GossipSub } from '@libp2p/gossipsub'
26
25
  import type { Libp2p, Connection, MultiaddrConnection, Stream, Listener, Transport } from '@libp2p/interface'
27
26
  import type { KadDHT } from '@libp2p/kad-dht'
28
27
  import type { Multiaddr } from '@multiformats/multiaddr'
@@ -111,7 +110,7 @@ export class Server implements Libp2pServer {
111
110
  log('openStream - dial %p', peerId)
112
111
  const connection = await this.libp2p.dial(peerId)
113
112
 
114
- log('openStream - open stream for protocol %s', proto)
113
+ log('openStream - open stream for protocol(s) %s', proto)
115
114
  const stream = await connection.newStream(proto, {
116
115
  runOnLimitedConnection: true
117
116
  })
@@ -140,57 +139,56 @@ export class Server implements Libp2pServer {
140
139
  const addr = multiaddr(request.streamHandler.addr)
141
140
  let conn: MultiaddrConnection
142
141
 
143
- log('registerStreamHandler - handle %s', protocols)
144
- await this.libp2p.handle(protocols, ({ connection, stream }) => {
145
- Promise.resolve()
146
- .then(async () => {
147
- // Connect the client socket with the libp2p connection
148
- // @ts-expect-error because we use a passthrough upgrader,
149
- // this is actually a MultiaddrConnection and not a Connection
150
- conn = await this.tcp.dial(addr, {
151
- upgrader: new PassThroughUpgrader(),
152
- signal: AbortSignal.timeout(10_000)
153
- })
142
+ log('registerStreamHandler - handle %s at %a', protocols, addr)
143
+ await this.libp2p.handle(protocols, async (stream, connection) => {
144
+ try {
145
+ log('open stream for protocol %o to %a', protocols, addr)
154
146
 
155
- const message = StreamInfo.encode({
156
- peer: connection.remotePeer.toMultihash().bytes,
157
- addr: connection.remoteAddr.bytes,
158
- proto: stream.protocol ?? ''
159
- })
160
- const encodedMessage = lp.encode.single(message)
161
-
162
- // Tell the client about the new connection
163
- // And then begin piping the client and peer connection
164
- await pipe(
165
- (async function * () {
166
- yield encodedMessage
167
- yield * stream.source
168
- }()),
169
- async function * (source) {
170
- for await (const list of source) {
171
- // convert Uint8ArrayList to Uint8Arrays for the socket
172
- yield * list
173
- }
174
- },
175
- conn,
176
- stream.sink
177
- )
178
- })
179
- .catch(async err => {
180
- log.error(err)
147
+ const signal = AbortSignal.timeout(10_000)
181
148
 
182
- if (conn != null) {
183
- await conn.close(err)
184
- }
149
+ // Connect the client socket with the libp2p connection
150
+ // @ts-expect-error because we use a passthrough upgrader,
151
+ // this is actually a MultiaddrConnection and not a Connection
152
+ conn = await this.tcp.dial(addr, {
153
+ upgrader: new PassThroughUpgrader(),
154
+ signal
185
155
  })
186
- .finally(() => {
187
- if (conn != null) {
188
- conn.close()
189
- .catch(err => {
190
- log.error(err)
191
- })
192
- }
156
+
157
+ const message = StreamInfo.encode({
158
+ peer: connection.remotePeer.toMultihash().bytes,
159
+ addr: connection.remoteAddr.bytes,
160
+ proto: stream.protocol ?? ''
193
161
  })
162
+ const encodedMessage = lp.encode.single(message)
163
+
164
+ // Tell the client about the new connection
165
+ if (!conn.send(encodedMessage)) {
166
+ await pEvent(conn, 'drain', {
167
+ rejectionEvents: [
168
+ 'close'
169
+ ],
170
+ signal
171
+ })
172
+ }
173
+
174
+ // And then begin piping the client and peer connection
175
+
176
+ await pipe(
177
+ stream,
178
+ conn,
179
+ stream
180
+ )
181
+ } catch (err: any) {
182
+ log.error(err)
183
+
184
+ conn?.abort(err)
185
+ } finally {
186
+ try {
187
+ await conn?.close()
188
+ } catch (err: any) {
189
+ conn?.abort(err)
190
+ }
191
+ }
194
192
  }, {
195
193
  runOnLimitedConnection: true
196
194
  })
@@ -387,7 +385,7 @@ export class Server implements Libp2pServer {
387
385
  void Promise.resolve().then(async () => {
388
386
  const daemon = this
389
387
 
390
- const pb = pbStream(maConn, {
388
+ let pb = pbStream(maConn, {
391
389
  maxDataLength: LIMIT
392
390
  })
393
391
 
@@ -411,7 +409,7 @@ export class Server implements Libp2pServer {
411
409
  type: Response.Type.OK,
412
410
  identify: {
413
411
  id: daemon.libp2p.peerId.toMultihash().bytes,
414
- addrs: daemon.libp2p.getMultiaddrs().map(ma => ma.decapsulateCode(protocols('p2p').code)).map(m => m.bytes)
412
+ addrs: daemon.libp2p.getMultiaddrs().map(ma => ma.decapsulateCode(CODE_P2P)).map(m => m.bytes)
415
413
  }
416
414
  }, Response)
417
415
 
@@ -456,6 +454,7 @@ export class Server implements Libp2pServer {
456
454
  const stream = pb.unwrap()
457
455
 
458
456
  // then pipe the connection to the client
457
+
459
458
  await pipe(
460
459
  stream,
461
460
  response.connection,
@@ -523,6 +522,19 @@ export class Server implements Libp2pServer {
523
522
  }
524
523
  } catch (err: any) {
525
524
  log.error(err)
525
+
526
+ // recreate pb stream in case the original was unwrapped already
527
+ const conn = pb.unwrap()
528
+
529
+ if (conn.status !== 'open') {
530
+ // cannot write error message as connection is closed
531
+ return
532
+ }
533
+
534
+ pb = pbStream(conn, {
535
+ maxDataLength: LIMIT
536
+ })
537
+
526
538
  await pb.write({
527
539
  type: Response.Type.ERROR,
528
540
  error: {
package/src/pubsub.ts CHANGED
@@ -8,7 +8,7 @@ import { logger } from '@libp2p/logger'
8
8
  import { pushable } from 'it-pushable'
9
9
  import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'
10
10
  import { ErrorResponse, OkResponse } from './responses.js'
11
- import type { GossipSub } from '@chainsafe/libp2p-gossipsub'
11
+ import type { GossipSub } from '@libp2p/gossipsub'
12
12
 
13
13
  const log = logger('libp2p:daemon-server:pubsub')
14
14
 
@@ -1,12 +0,0 @@
1
- {
2
- "Server": "https://libp2p.github.io/js-libp2p-daemon/classes/_libp2p_daemon-server.Server.html",
3
- ".:Server": "https://libp2p.github.io/js-libp2p-daemon/classes/_libp2p_daemon-server.Server.html",
4
- "DaemonInit": "https://libp2p.github.io/js-libp2p-daemon/interfaces/_libp2p_daemon-server.DaemonInit.html",
5
- ".:DaemonInit": "https://libp2p.github.io/js-libp2p-daemon/interfaces/_libp2p_daemon-server.DaemonInit.html",
6
- "Libp2pServer": "https://libp2p.github.io/js-libp2p-daemon/interfaces/_libp2p_daemon-server.Libp2pServer.html",
7
- ".:Libp2pServer": "https://libp2p.github.io/js-libp2p-daemon/interfaces/_libp2p_daemon-server.Libp2pServer.html",
8
- "OpenStream": "https://libp2p.github.io/js-libp2p-daemon/interfaces/_libp2p_daemon-server.OpenStream.html",
9
- ".:OpenStream": "https://libp2p.github.io/js-libp2p-daemon/interfaces/_libp2p_daemon-server.OpenStream.html",
10
- "createServer": "https://libp2p.github.io/js-libp2p-daemon/functions/_libp2p_daemon-server.createServer.html",
11
- ".:createServer": "https://libp2p.github.io/js-libp2p-daemon/functions/_libp2p_daemon-server.createServer.html"
12
- }