libp2p 1.6.0 → 1.6.1

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 { CodeError } from '@libp2p/interface';
2
- import { PeerSet } from '@libp2p/peer-collections';
2
+ import { createScalableCuckooFilter } from '@libp2p/utils/filters';
3
3
  import merge from 'it-merge';
4
4
  import parallel from 'it-parallel';
5
5
  import { codes, messages } from './errors.js';
@@ -55,7 +55,7 @@ export class DefaultPeerRouting {
55
55
  throw new CodeError('No peer routers available', codes.ERR_NO_ROUTERS_AVAILABLE);
56
56
  }
57
57
  const self = this;
58
- const seen = new PeerSet();
58
+ const seen = createScalableCuckooFilter(1024);
59
59
  for await (const peer of parallel(async function* () {
60
60
  const source = merge(...self.routers.map(router => router.getClosestPeers(key, options)));
61
61
  for await (let peer of source) {
@@ -87,10 +87,10 @@ export class DefaultPeerRouting {
87
87
  });
88
88
  }
89
89
  // deduplicate peers
90
- if (seen.has(peer.id)) {
90
+ if (seen.has(peer.id.toBytes())) {
91
91
  continue;
92
92
  }
93
- seen.add(peer.id);
93
+ seen.add(peer.id.toBytes());
94
94
  yield peer;
95
95
  }
96
96
  }
@@ -1 +1 @@
1
- {"version":3,"file":"peer-routing.js","sourceRoot":"","sources":["../../src/peer-routing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"peer-routing.js","sourceRoot":"","sources":["../../src/peer-routing.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"random-walk.d.ts","sourceRoot":"","sources":["../../src/random-walk.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAmB,MAAM,mBAAmB,CAAA;AAKtE,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAU,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAChH,OAAO,KAAK,EAAE,UAAU,IAAI,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAEnF,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,WAAW,CAAA;IACxB,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,UAAU,gBAAgB;IACxB,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;IAClC,YAAY,EAAE,WAAW,CAAC,KAAK,CAAC,CAAA;CACjC;AAED,qBAAa,UAAW,SAAQ,iBAAiB,CAAC,gBAAgB,CAAE,YAAW,mBAAmB,EAAE,SAAS;IAC3G,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,kBAAkB,CAAiB;IAC3C,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,CAAuB;gBAE3B,UAAU,EAAE,oBAAoB;IAa7C,KAAK,IAAK,IAAI;IAKd,IAAI,IAAK,IAAI;IAIL,IAAI,CAAE,OAAO,CAAC,EAAE,YAAY,GAAG,cAAc,CAAC,QAAQ,CAAC;IAmC/D,OAAO,CAAC,SAAS;CAoDlB"}
1
+ {"version":3,"file":"random-walk.d.ts","sourceRoot":"","sources":["../../src/random-walk.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAmB,MAAM,mBAAmB,CAAA;AAKtE,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAU,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAChH,OAAO,KAAK,EAAE,UAAU,IAAI,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAEnF,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,WAAW,CAAA;IACxB,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,UAAU,gBAAgB;IACxB,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;IAClC,YAAY,EAAE,WAAW,CAAC,KAAK,CAAC,CAAA;CACjC;AAED,qBAAa,UAAW,SAAQ,iBAAiB,CAAC,gBAAgB,CAAE,YAAW,mBAAmB,EAAE,SAAS;IAC3G,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,kBAAkB,CAAiB;IAC3C,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,CAAuB;gBAE3B,UAAU,EAAE,oBAAoB;IAa7C,KAAK,IAAK,IAAI;IAKd,IAAI,IAAK,IAAI;IAIL,IAAI,CAAE,OAAO,CAAC,EAAE,YAAY,GAAG,cAAc,CAAC,QAAQ,CAAC;IAmC/D,OAAO,CAAC,SAAS;CAkElB"}
@@ -74,9 +74,14 @@ export class RandomWalk extends TypedEventEmitter {
74
74
  // find peers until no more consumers are interested
75
75
  while (this.walkers > 0) {
76
76
  try {
77
- for await (const peer of this.peerRouting.getClosestPeers(randomBytes(32), { signal })) {
77
+ const data = randomBytes(32);
78
+ let s = Date.now();
79
+ for await (const peer of this.peerRouting.getClosestPeers(data, { signal })) {
80
+ if (signal.aborted) {
81
+ this.log('aborting walk');
82
+ }
78
83
  signal.throwIfAborted();
79
- this.log('found peer %p', peer.id);
84
+ this.log('found peer %p after %dms for %d walkers', peer.id, Date.now() - s, this.walkers);
80
85
  found++;
81
86
  this.safeDispatchEvent('walk:peer', {
82
87
  detail: peer
@@ -84,9 +89,12 @@ export class RandomWalk extends TypedEventEmitter {
84
89
  // if we only have one consumer, pause the query until they request
85
90
  // another random peer or they signal they are no longer interested
86
91
  if (this.walkers === 1 && this.needNext != null) {
92
+ this.log('wait for need next');
87
93
  await raceSignal(this.needNext.promise, signal);
88
94
  }
95
+ s = Date.now();
89
96
  }
97
+ this.log('walk iteration for %b and %d walkers finished, found %d peers', data, this.walkers, found);
90
98
  }
91
99
  catch (err) {
92
100
  this.log.error('randomwalk errored', err);
@@ -95,6 +103,7 @@ export class RandomWalk extends TypedEventEmitter {
95
103
  });
96
104
  }
97
105
  }
106
+ this.log('no walkers left, ended walk');
98
107
  })
99
108
  .catch(err => {
100
109
  this.log.error('randomwalk errored', err);
@@ -1 +1 @@
1
- {"version":3,"file":"random-walk.js","sourceRoot":"","sources":["../../src/random-walk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"random-walk.js","sourceRoot":"","sources":["../../src/random-walk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,MAAM,EAAE,EAAwB,MAAM,SAAS,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAcxC,MAAM,OAAO,UAAW,SAAQ,iBAAmC;IAChD,WAAW,CAAa;IACxB,GAAG,CAAQ;IACpB,OAAO,CAAS;IAChB,OAAO,CAAQ;IACf,kBAAkB,CAAiB;IACnC,cAAc,CAAkB;IAChC,QAAQ,CAAwB;IAExC,YAAa,UAAgC;QAC3C,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAA;QAC/D,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAA;QACzC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAA;QAChB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QAEpB,yDAAyD;QACzD,IAAI,CAAC,kBAAkB,GAAG,IAAI,eAAe,EAAE,CAAA;QAC/C,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAC3D,CAAC;IAED,KAAK;QACH,IAAI,CAAC,kBAAkB,GAAG,IAAI,eAAe,EAAE,CAAA;QAC/C,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAC3D,CAAC;IAED,IAAI;QACF,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAA;IACjC,CAAC;IAED,KAAK,CAAC,CAAE,IAAI,CAAE,OAAsB;QAClC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,6DAA6D;YAC7D,IAAI,CAAC,SAAS,EAAE,CAAA;QAClB,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAA;QACd,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;QAC3E,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAEjC,IAAI,CAAC;YACH,OAAO,IAAI,EAAE,CAAC;gBACZ,2DAA2D;gBAC3D,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAA;gBACxB,IAAI,CAAC,QAAQ,GAAG,MAAM,EAAE,CAAA;gBAExB,2CAA2C;gBAC3C,MAAM,KAAK,GAAG,MAAM,SAAS,CAAwB,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE;oBAC9E,UAAU,EAAE,YAAY;iBACzB,CAAC,CAAA;gBAEF,MAAM,KAAK,CAAC,MAAM,CAAA;YACpB,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,KAAK,EAAE,CAAA;YACd,IAAI,CAAC,OAAO,EAAE,CAAA;YAEd,oDAAoD;YACpD,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,CAAA;gBAC5B,IAAI,CAAC,cAAc,GAAG,SAAS,CAAA;YACjC,CAAC;QACH,CAAC;IACH,CAAC;IAEO,SAAS;QACf,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QAEnB,yEAAyE;QACzE,eAAe;QACf,IAAI,CAAC,cAAc,GAAG,IAAI,eAAe,EAAE,CAAA;QAC3C,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;QAErD,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAA;QACtF,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAEjC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACxB,IAAI,KAAK,GAAG,CAAC,CAAA;QAEb,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YAChC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;YAEtB,oDAAoD;YACpD,OAAO,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,CAAC,CAAA;oBAC5B,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;oBAElB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;wBAC5E,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;4BACnB,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;wBAC3B,CAAC;wBAED,MAAM,CAAC,cAAc,EAAE,CAAA;wBAEvB,IAAI,CAAC,GAAG,CAAC,yCAAyC,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;wBAC1F,KAAK,EAAE,CAAA;wBACP,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE;4BAClC,MAAM,EAAE,IAAI;yBACb,CAAC,CAAA;wBAEF,mEAAmE;wBACnE,mEAAmE;wBACnE,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;4BAChD,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;4BAC9B,MAAM,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;wBACjD,CAAC;wBAED,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;oBAChB,CAAC;oBAED,IAAI,CAAC,GAAG,CAAC,+DAA+D,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;gBACtG,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAA;oBAEzC,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;wBACnC,MAAM,EAAE,GAAG;qBACZ,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAA;QACzC,CAAC,CAAC;aACC,KAAK,CAAC,GAAG,CAAC,EAAE;YACX,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAA;QAC3C,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,GAAG,CAAC,0CAA0C,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAA;YAC/E,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACtB,CAAC,CAAC,CAAA;IACN,CAAC;CACF"}
@@ -1,3 +1,3 @@
1
- export declare const version = "1.6.0";
1
+ export declare const version = "1.6.1";
2
2
  export declare const name = "libp2p";
3
3
  //# sourceMappingURL=version.d.ts.map
@@ -1,3 +1,3 @@
1
- export const version = '1.6.0';
1
+ export const version = '1.6.1';
2
2
  export const name = 'libp2p';
3
3
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "libp2p",
3
- "version": "1.6.0",
3
+ "version": "1.6.1",
4
4
  "description": "JavaScript implementation of libp2p, a modular peer to peer network stack",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/libp2p#readme",
@@ -85,16 +85,16 @@
85
85
  "test:webkit": "aegir test -t browser -f \"./dist/test/**/*.spec.js\" -- --browser webkit"
86
86
  },
87
87
  "dependencies": {
88
- "@libp2p/crypto": "^4.1.2",
89
- "@libp2p/interface": "^1.4.0",
90
- "@libp2p/interface-internal": "^1.2.2",
91
- "@libp2p/logger": "^4.0.13",
92
- "@libp2p/multistream-select": "^5.1.10",
93
- "@libp2p/peer-collections": "^5.2.2",
94
- "@libp2p/peer-id": "^4.1.2",
95
- "@libp2p/peer-id-factory": "^4.1.2",
96
- "@libp2p/peer-store": "^10.0.19",
97
- "@libp2p/utils": "^5.4.2",
88
+ "@libp2p/crypto": "^4.1.3",
89
+ "@libp2p/interface": "^1.4.1",
90
+ "@libp2p/interface-internal": "^1.2.3",
91
+ "@libp2p/logger": "^4.0.14",
92
+ "@libp2p/multistream-select": "^5.1.11",
93
+ "@libp2p/peer-collections": "^5.2.3",
94
+ "@libp2p/peer-id": "^4.1.3",
95
+ "@libp2p/peer-id-factory": "^4.1.3",
96
+ "@libp2p/peer-store": "^10.0.20",
97
+ "@libp2p/utils": "^5.4.3",
98
98
  "@multiformats/dns": "^1.0.6",
99
99
  "@multiformats/multiaddr": "^12.2.3",
100
100
  "@multiformats/multiaddr-matcher": "^1.2.1",
@@ -112,15 +112,15 @@
112
112
  },
113
113
  "devDependencies": {
114
114
  "@chainsafe/libp2p-yamux": "^6.0.2",
115
- "@libp2p/circuit-relay-v2": "^1.0.24",
116
- "@libp2p/identify": "^2.0.2",
117
- "@libp2p/interface-compliance-tests": "^5.4.5",
118
- "@libp2p/mplex": "^10.0.24",
119
- "@libp2p/plaintext": "^1.0.24",
120
- "@libp2p/tcp": "^9.0.26",
121
- "@libp2p/websockets": "^8.0.24",
115
+ "@libp2p/circuit-relay-v2": "^1.0.25",
116
+ "@libp2p/identify": "^2.0.3",
117
+ "@libp2p/interface-compliance-tests": "^5.4.6",
118
+ "@libp2p/mplex": "^10.0.25",
119
+ "@libp2p/plaintext": "^1.0.25",
120
+ "@libp2p/tcp": "^9.0.27",
121
+ "@libp2p/websockets": "^8.0.25",
122
122
  "@multiformats/mafmt": "^12.1.6",
123
- "aegir": "^42.2.11",
123
+ "aegir": "^43.0.1",
124
124
  "delay": "^6.0.0",
125
125
  "it-all": "^3.0.6",
126
126
  "it-drain": "^3.0.7",
@@ -1,5 +1,5 @@
1
1
  import { CodeError } from '@libp2p/interface'
2
- import { PeerSet } from '@libp2p/peer-collections'
2
+ import { createScalableCuckooFilter } from '@libp2p/utils/filters'
3
3
  import merge from 'it-merge'
4
4
  import parallel from 'it-parallel'
5
5
  import { codes, messages } from './errors.js'
@@ -79,7 +79,7 @@ export class DefaultPeerRouting implements PeerRouting {
79
79
  }
80
80
 
81
81
  const self = this
82
- const seen = new PeerSet()
82
+ const seen = createScalableCuckooFilter(1024)
83
83
 
84
84
  for await (const peer of parallel(
85
85
  async function * () {
@@ -119,11 +119,11 @@ export class DefaultPeerRouting implements PeerRouting {
119
119
  }
120
120
 
121
121
  // deduplicate peers
122
- if (seen.has(peer.id)) {
122
+ if (seen.has(peer.id.toBytes())) {
123
123
  continue
124
124
  }
125
125
 
126
- seen.add(peer.id)
126
+ seen.add(peer.id.toBytes())
127
127
 
128
128
  yield peer
129
129
  }
@@ -103,10 +103,17 @@ export class RandomWalk extends TypedEventEmitter<RandomWalkEvents> implements R
103
103
  // find peers until no more consumers are interested
104
104
  while (this.walkers > 0) {
105
105
  try {
106
- for await (const peer of this.peerRouting.getClosestPeers(randomBytes(32), { signal })) {
106
+ const data = randomBytes(32)
107
+ let s = Date.now()
108
+
109
+ for await (const peer of this.peerRouting.getClosestPeers(data, { signal })) {
110
+ if (signal.aborted) {
111
+ this.log('aborting walk')
112
+ }
113
+
107
114
  signal.throwIfAborted()
108
115
 
109
- this.log('found peer %p', peer.id)
116
+ this.log('found peer %p after %dms for %d walkers', peer.id, Date.now() - s, this.walkers)
110
117
  found++
111
118
  this.safeDispatchEvent('walk:peer', {
112
119
  detail: peer
@@ -115,9 +122,14 @@ export class RandomWalk extends TypedEventEmitter<RandomWalkEvents> implements R
115
122
  // if we only have one consumer, pause the query until they request
116
123
  // another random peer or they signal they are no longer interested
117
124
  if (this.walkers === 1 && this.needNext != null) {
125
+ this.log('wait for need next')
118
126
  await raceSignal(this.needNext.promise, signal)
119
127
  }
128
+
129
+ s = Date.now()
120
130
  }
131
+
132
+ this.log('walk iteration for %b and %d walkers finished, found %d peers', data, this.walkers, found)
121
133
  } catch (err) {
122
134
  this.log.error('randomwalk errored', err)
123
135
 
@@ -126,6 +138,8 @@ export class RandomWalk extends TypedEventEmitter<RandomWalkEvents> implements R
126
138
  })
127
139
  }
128
140
  }
141
+
142
+ this.log('no walkers left, ended walk')
129
143
  })
130
144
  .catch(err => {
131
145
  this.log.error('randomwalk errored', err)
package/src/version.ts CHANGED
@@ -1,2 +1,2 @@
1
- export const version = '1.6.0'
1
+ export const version = '1.6.1'
2
2
  export const name = 'libp2p'