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.
- package/dist/index.min.js +16 -16
- package/dist/src/peer-routing.js +4 -4
- package/dist/src/peer-routing.js.map +1 -1
- package/dist/src/random-walk.d.ts.map +1 -1
- package/dist/src/random-walk.js +11 -2
- package/dist/src/random-walk.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/package.json +19 -19
- package/src/peer-routing.ts +4 -4
- package/src/random-walk.ts +16 -2
- package/src/version.ts +1 -1
package/dist/src/peer-routing.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CodeError } from '@libp2p/interface';
|
|
2
|
-
import {
|
|
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 =
|
|
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":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,
|
|
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;
|
|
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"}
|
package/dist/src/random-walk.js
CHANGED
|
@@ -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
|
-
|
|
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":"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"}
|
package/dist/src/version.d.ts
CHANGED
package/dist/src/version.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "libp2p",
|
|
3
|
-
"version": "1.6.
|
|
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.
|
|
89
|
-
"@libp2p/interface": "^1.4.
|
|
90
|
-
"@libp2p/interface-internal": "^1.2.
|
|
91
|
-
"@libp2p/logger": "^4.0.
|
|
92
|
-
"@libp2p/multistream-select": "^5.1.
|
|
93
|
-
"@libp2p/peer-collections": "^5.2.
|
|
94
|
-
"@libp2p/peer-id": "^4.1.
|
|
95
|
-
"@libp2p/peer-id-factory": "^4.1.
|
|
96
|
-
"@libp2p/peer-store": "^10.0.
|
|
97
|
-
"@libp2p/utils": "^5.4.
|
|
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.
|
|
116
|
-
"@libp2p/identify": "^2.0.
|
|
117
|
-
"@libp2p/interface-compliance-tests": "^5.4.
|
|
118
|
-
"@libp2p/mplex": "^10.0.
|
|
119
|
-
"@libp2p/plaintext": "^1.0.
|
|
120
|
-
"@libp2p/tcp": "^9.0.
|
|
121
|
-
"@libp2p/websockets": "^8.0.
|
|
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": "^
|
|
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",
|
package/src/peer-routing.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CodeError } from '@libp2p/interface'
|
|
2
|
-
import {
|
|
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 =
|
|
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
|
}
|
package/src/random-walk.ts
CHANGED
|
@@ -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
|
-
|
|
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.
|
|
1
|
+
export const version = '1.6.1'
|
|
2
2
|
export const name = 'libp2p'
|