@libp2p/utils 6.5.0 → 6.5.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/src/filters/bloom-filter.js +3 -3
- package/dist/src/filters/bloom-filter.js.map +1 -1
- package/dist/src/filters/hashes.d.ts +0 -1
- package/dist/src/filters/hashes.d.ts.map +1 -1
- package/dist/src/filters/hashes.js +0 -9
- package/dist/src/filters/hashes.js.map +1 -1
- package/package.json +5 -7
- package/src/filters/bloom-filter.ts +3 -3
- package/src/filters/hashes.ts +0 -10
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// ported from xxbloom - https://github.com/ceejbot/xxbloom/blob/master/LICENSE
|
|
2
2
|
import { randomBytes } from '@libp2p/crypto';
|
|
3
|
-
import mur from 'murmurhash3js-revisited';
|
|
4
3
|
import { Uint8ArrayList } from 'uint8arraylist';
|
|
5
4
|
import { alloc } from 'uint8arrays/alloc';
|
|
6
5
|
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
|
|
6
|
+
import { fnv1a } from './hashes.js';
|
|
7
7
|
const LN2_SQUARED = Math.LN2 * Math.LN2;
|
|
8
8
|
export class BloomFilter {
|
|
9
9
|
seeds;
|
|
@@ -27,7 +27,7 @@ export class BloomFilter {
|
|
|
27
27
|
item = uint8ArrayFromString(item);
|
|
28
28
|
}
|
|
29
29
|
for (let i = 0; i < this.seeds.length; i++) {
|
|
30
|
-
const hash =
|
|
30
|
+
const hash = fnv1a.hash(item, this.seeds[i]);
|
|
31
31
|
const bit = hash % this.bits;
|
|
32
32
|
this.setbit(bit);
|
|
33
33
|
}
|
|
@@ -42,7 +42,7 @@ export class BloomFilter {
|
|
|
42
42
|
item = uint8ArrayFromString(item);
|
|
43
43
|
}
|
|
44
44
|
for (let i = 0; i < this.seeds.length; i++) {
|
|
45
|
-
const hash =
|
|
45
|
+
const hash = fnv1a.hash(item, this.seeds[i]);
|
|
46
46
|
const bit = hash % this.bits;
|
|
47
47
|
const isSet = this.getbit(bit);
|
|
48
48
|
if (!isSet) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bloom-filter.js","sourceRoot":"","sources":["../../../src/filters/bloom-filter.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"bloom-filter.js","sourceRoot":"","sources":["../../../src/filters/bloom-filter.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAGnC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;AAQvC,MAAM,OAAO,WAAW;IACN,KAAK,CAAU;IACf,IAAI,CAAQ;IACrB,MAAM,CAAY;IAEzB,YAAa,UAA8B,EAAE;QAC3C,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;QAC5B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAA;QACjD,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAA;QAChC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAA;IAC/C,CAAC;IAED;;OAEG;IACH,GAAG,CAAE,IAAyB;QAC5B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,IAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAA;QACnC,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YAC5C,MAAM,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;YAE5B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAClB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAE,IAAyB;QAC5B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,IAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAA;QACnC,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YAC5C,MAAM,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;YAE5B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAE9B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACrB,CAAC;IAED,MAAM,CAAE,GAAW;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;QAC/B,MAAM,KAAK,GAAG,GAAG,GAAG,CAAC,CAAA;QAErB,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC/B,QAAQ,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,CAAA;QAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAA;IAC7B,CAAC;IAED,MAAM,CAAE,GAAW;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;QAC/B,MAAM,KAAK,GAAG,GAAG,GAAG,CAAC,CAAA;QAErB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACjC,OAAO,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,CAAA;IAC1C,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAE,SAAiB,EAAE,YAAoB,KAAK;IAC7E,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;IAC3C,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,CAAA;AAC9B,CAAC;AAED,SAAS,QAAQ,CAAE,SAAiB,EAAE,YAAoB,KAAK;IAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,CAAA;IAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;IAExD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;AACzB,CAAC;AAED,SAAS,aAAa,CAAE,KAAa;IACnC,IAAI,GAAmB,CAAA;IACvB,IAAI,CAAS,CAAA;IACb,MAAM,KAAK,GAAG,EAAE,CAAA;IAEhB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,GAAG,GAAG,IAAI,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;QACxC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QAEjC,sDAAsD;QACtD,kCAAkC;QAClC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACvB,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1B,CAAC,EAAE,CAAA;gBACH,MAAK;YACP,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC"}
|
|
@@ -2,7 +2,6 @@ export interface Hash {
|
|
|
2
2
|
hash(input: Uint8Array, seed: number): number;
|
|
3
3
|
hashV(input: Uint8Array, seed: number): Uint8Array;
|
|
4
4
|
}
|
|
5
|
-
export declare const murmur3: Hash;
|
|
6
5
|
export declare const fnv1a: Hash;
|
|
7
6
|
export declare function numberToBuffer(num: bigint | number): Uint8Array;
|
|
8
7
|
//# sourceMappingURL=hashes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hashes.d.ts","sourceRoot":"","sources":["../../../src/filters/hashes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hashes.d.ts","sourceRoot":"","sources":["../../../src/filters/hashes.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,IAAI;IACnB,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IAC7C,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;CACnD;AAED,eAAO,MAAM,KAAK,EAAE,IASnB,CAAA;AAED,wBAAgB,cAAc,CAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAQhE"}
|
|
@@ -1,14 +1,5 @@
|
|
|
1
1
|
import fnv1aHash from '@sindresorhus/fnv1a';
|
|
2
|
-
import mur from 'murmurhash3js-revisited';
|
|
3
2
|
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
|
|
4
|
-
export const murmur3 = {
|
|
5
|
-
hash: (input, seed) => {
|
|
6
|
-
return mur.x86.hash32(input, seed);
|
|
7
|
-
},
|
|
8
|
-
hashV: (input, seed) => {
|
|
9
|
-
return numberToBuffer(murmur3.hash(input, seed));
|
|
10
|
-
}
|
|
11
|
-
};
|
|
12
3
|
export const fnv1a = {
|
|
13
4
|
hash: (input) => {
|
|
14
5
|
return Number(fnv1aHash(input, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hashes.js","sourceRoot":"","sources":["../../../src/filters/hashes.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,qBAAqB,CAAA;AAC3C,OAAO,
|
|
1
|
+
{"version":3,"file":"hashes.js","sourceRoot":"","sources":["../../../src/filters/hashes.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,qBAAqB,CAAA;AAC3C,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAO5E,MAAM,CAAC,MAAM,KAAK,GAAS;IACzB,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;QACd,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE;YAC7B,IAAI,EAAE,EAAE;SACT,CAAC,CAAC,CAAA;IACL,CAAC;IACD,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;IAChD,CAAC;CACF,CAAA;AAED,MAAM,UAAU,cAAc,CAAE,GAAoB;IAClD,IAAI,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IAE1B,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,GAAG,GAAG,IAAI,GAAG,EAAE,CAAA;IACjB,CAAC;IAED,OAAO,oBAAoB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;AAC5C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/utils",
|
|
3
|
-
"version": "6.5.
|
|
3
|
+
"version": "6.5.1",
|
|
4
4
|
"description": "Package to aggregate shared logic and dependencies for the libp2p ecosystem",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/utils#readme",
|
|
@@ -181,12 +181,11 @@
|
|
|
181
181
|
"dependencies": {
|
|
182
182
|
"@chainsafe/is-ip": "^2.0.2",
|
|
183
183
|
"@chainsafe/netmask": "^2.0.0",
|
|
184
|
-
"@libp2p/crypto": "^5.0.
|
|
185
|
-
"@libp2p/interface": "^2.
|
|
186
|
-
"@libp2p/logger": "^5.1.
|
|
184
|
+
"@libp2p/crypto": "^5.0.11",
|
|
185
|
+
"@libp2p/interface": "^2.5.0",
|
|
186
|
+
"@libp2p/logger": "^5.1.8",
|
|
187
187
|
"@multiformats/multiaddr": "^12.3.3",
|
|
188
188
|
"@sindresorhus/fnv1a": "^3.1.0",
|
|
189
|
-
"@types/murmurhash3js-revisited": "^3.0.3",
|
|
190
189
|
"any-signal": "^4.1.1",
|
|
191
190
|
"delay": "^6.0.0",
|
|
192
191
|
"get-iterator": "^2.0.1",
|
|
@@ -195,7 +194,6 @@
|
|
|
195
194
|
"it-pipe": "^3.0.1",
|
|
196
195
|
"it-pushable": "^3.2.3",
|
|
197
196
|
"it-stream-types": "^2.0.2",
|
|
198
|
-
"murmurhash3js-revisited": "^3.0.0",
|
|
199
197
|
"netmask": "^2.0.2",
|
|
200
198
|
"p-defer": "^4.0.1",
|
|
201
199
|
"race-event": "^1.3.0",
|
|
@@ -204,7 +202,7 @@
|
|
|
204
202
|
"uint8arrays": "^5.1.0"
|
|
205
203
|
},
|
|
206
204
|
"devDependencies": {
|
|
207
|
-
"@libp2p/peer-id": "^5.0.
|
|
205
|
+
"@libp2p/peer-id": "^5.0.12",
|
|
208
206
|
"@types/netmask": "^2.0.5",
|
|
209
207
|
"aegir": "^45.0.5",
|
|
210
208
|
"benchmark": "^2.1.4",
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// ported from xxbloom - https://github.com/ceejbot/xxbloom/blob/master/LICENSE
|
|
2
2
|
import { randomBytes } from '@libp2p/crypto'
|
|
3
|
-
import mur from 'murmurhash3js-revisited'
|
|
4
3
|
import { Uint8ArrayList } from 'uint8arraylist'
|
|
5
4
|
import { alloc } from 'uint8arrays/alloc'
|
|
6
5
|
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'
|
|
6
|
+
import { fnv1a } from './hashes.js'
|
|
7
7
|
import type { Filter } from './index.js'
|
|
8
8
|
|
|
9
9
|
const LN2_SQUARED = Math.LN2 * Math.LN2
|
|
@@ -39,7 +39,7 @@ export class BloomFilter implements Filter {
|
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
for (let i = 0; i < this.seeds.length; i++) {
|
|
42
|
-
const hash =
|
|
42
|
+
const hash = fnv1a.hash(item, this.seeds[i])
|
|
43
43
|
const bit = hash % this.bits
|
|
44
44
|
|
|
45
45
|
this.setbit(bit)
|
|
@@ -57,7 +57,7 @@ export class BloomFilter implements Filter {
|
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
for (let i = 0; i < this.seeds.length; i++) {
|
|
60
|
-
const hash =
|
|
60
|
+
const hash = fnv1a.hash(item, this.seeds[i])
|
|
61
61
|
const bit = hash % this.bits
|
|
62
62
|
|
|
63
63
|
const isSet = this.getbit(bit)
|
package/src/filters/hashes.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import fnv1aHash from '@sindresorhus/fnv1a'
|
|
2
|
-
import mur from 'murmurhash3js-revisited'
|
|
3
2
|
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'
|
|
4
3
|
|
|
5
4
|
export interface Hash {
|
|
@@ -7,15 +6,6 @@ export interface Hash {
|
|
|
7
6
|
hashV(input: Uint8Array, seed: number): Uint8Array
|
|
8
7
|
}
|
|
9
8
|
|
|
10
|
-
export const murmur3: Hash = {
|
|
11
|
-
hash: (input, seed) => {
|
|
12
|
-
return mur.x86.hash32(input, seed)
|
|
13
|
-
},
|
|
14
|
-
hashV: (input, seed) => {
|
|
15
|
-
return numberToBuffer(murmur3.hash(input, seed))
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
|
|
19
9
|
export const fnv1a: Hash = {
|
|
20
10
|
hash: (input) => {
|
|
21
11
|
return Number(fnv1aHash(input, {
|