@waku/core 0.0.37-7a9850d.0 → 0.0.37-c24842a.0
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/bundle/index.js +4852 -904
- package/bundle/lib/message/version_0.js +1 -1
- package/bundle/{version_0-9DPFjcJG.js → version_0-BHaZD8Qu.js} +485 -60
- package/dist/.tsbuildinfo +1 -1
- package/dist/lib/connection_manager/connection_limiter.d.ts +46 -0
- package/dist/lib/connection_manager/connection_limiter.js +177 -0
- package/dist/lib/connection_manager/connection_limiter.js.map +1 -0
- package/dist/lib/connection_manager/connection_manager.d.ts +18 -106
- package/dist/lib/connection_manager/connection_manager.js +95 -512
- package/dist/lib/connection_manager/connection_manager.js.map +1 -1
- package/dist/lib/connection_manager/dialer.d.ts +34 -0
- package/dist/lib/connection_manager/dialer.js +135 -0
- package/dist/lib/connection_manager/dialer.js.map +1 -0
- package/dist/lib/connection_manager/discovery_dialer.d.ts +26 -0
- package/dist/lib/connection_manager/discovery_dialer.js +68 -0
- package/dist/lib/connection_manager/discovery_dialer.js.map +1 -0
- package/dist/lib/connection_manager/keep_alive_manager.d.ts +17 -7
- package/dist/lib/connection_manager/keep_alive_manager.js +110 -74
- package/dist/lib/connection_manager/keep_alive_manager.js.map +1 -1
- package/dist/lib/connection_manager/network_monitor.d.ts +36 -0
- package/dist/lib/connection_manager/network_monitor.js +81 -0
- package/dist/lib/connection_manager/network_monitor.js.map +1 -0
- package/dist/lib/connection_manager/shard_reader.d.ts +28 -0
- package/dist/lib/connection_manager/shard_reader.js +70 -0
- package/dist/lib/connection_manager/shard_reader.js.map +1 -0
- package/dist/lib/connection_manager/utils.d.ts +16 -1
- package/dist/lib/connection_manager/utils.js +23 -0
- package/dist/lib/connection_manager/utils.js.map +1 -1
- package/dist/lib/filter/filter.d.ts +2 -3
- package/dist/lib/filter/filter.js +5 -25
- package/dist/lib/filter/filter.js.map +1 -1
- package/dist/lib/light_push/light_push.d.ts +2 -3
- package/dist/lib/light_push/light_push.js +1 -3
- package/dist/lib/light_push/light_push.js.map +1 -1
- package/dist/lib/metadata/metadata.d.ts +2 -2
- package/dist/lib/metadata/metadata.js +14 -8
- package/dist/lib/metadata/metadata.js.map +1 -1
- package/package.json +1 -1
- package/src/lib/connection_manager/connection_limiter.ts +292 -0
- package/src/lib/connection_manager/connection_manager.ts +112 -673
- package/src/lib/connection_manager/dialer.ts +192 -0
- package/src/lib/connection_manager/discovery_dialer.ts +104 -0
- package/src/lib/connection_manager/keep_alive_manager.ts +154 -87
- package/src/lib/connection_manager/network_monitor.ts +112 -0
- package/src/lib/connection_manager/shard_reader.ts +134 -0
- package/src/lib/connection_manager/utils.ts +27 -1
- package/src/lib/filter/filter.ts +3 -28
- package/src/lib/light_push/light_push.ts +1 -5
- package/src/lib/metadata/metadata.ts +13 -12
@@ -0,0 +1,36 @@
|
|
1
|
+
import { IWakuEventEmitter, Libp2p } from "@waku/interfaces";
|
2
|
+
type NetworkMonitorConstructorOptions = {
|
3
|
+
libp2p: Libp2p;
|
4
|
+
events: IWakuEventEmitter;
|
5
|
+
};
|
6
|
+
interface INetworkMonitor {
|
7
|
+
start(): void;
|
8
|
+
stop(): void;
|
9
|
+
isConnected(): boolean;
|
10
|
+
isP2PConnected(): boolean;
|
11
|
+
isBrowserConnected(): boolean;
|
12
|
+
}
|
13
|
+
export declare class NetworkMonitor implements INetworkMonitor {
|
14
|
+
private readonly libp2p;
|
15
|
+
private readonly events;
|
16
|
+
private isNetworkConnected;
|
17
|
+
constructor(options: NetworkMonitorConstructorOptions);
|
18
|
+
start(): void;
|
19
|
+
stop(): void;
|
20
|
+
/**
|
21
|
+
* Returns true if the node is connected to the network via libp2p and browser.
|
22
|
+
*/
|
23
|
+
isConnected(): boolean;
|
24
|
+
/**
|
25
|
+
* Returns true if the node is connected to the network via libp2p.
|
26
|
+
*/
|
27
|
+
isP2PConnected(): boolean;
|
28
|
+
/**
|
29
|
+
* Returns true if the node is connected to the network via browser.
|
30
|
+
*/
|
31
|
+
isBrowserConnected(): boolean;
|
32
|
+
private onConnectedEvent;
|
33
|
+
private onDisconnectedEvent;
|
34
|
+
private dispatchNetworkEvent;
|
35
|
+
}
|
36
|
+
export {};
|
@@ -0,0 +1,81 @@
|
|
1
|
+
export class NetworkMonitor {
|
2
|
+
libp2p;
|
3
|
+
events;
|
4
|
+
isNetworkConnected = false;
|
5
|
+
constructor(options) {
|
6
|
+
this.libp2p = options.libp2p;
|
7
|
+
this.events = options.events;
|
8
|
+
this.onConnectedEvent = this.onConnectedEvent.bind(this);
|
9
|
+
this.onDisconnectedEvent = this.onDisconnectedEvent.bind(this);
|
10
|
+
this.dispatchNetworkEvent = this.dispatchNetworkEvent.bind(this);
|
11
|
+
}
|
12
|
+
start() {
|
13
|
+
this.libp2p.addEventListener("peer:connect", this.onConnectedEvent);
|
14
|
+
this.libp2p.addEventListener("peer:disconnect", this.onDisconnectedEvent);
|
15
|
+
try {
|
16
|
+
globalThis.addEventListener("online", this.dispatchNetworkEvent);
|
17
|
+
globalThis.addEventListener("offline", this.dispatchNetworkEvent);
|
18
|
+
}
|
19
|
+
catch (err) {
|
20
|
+
// ignore
|
21
|
+
}
|
22
|
+
}
|
23
|
+
stop() {
|
24
|
+
this.libp2p.removeEventListener("peer:connect", this.onConnectedEvent);
|
25
|
+
this.libp2p.removeEventListener("peer:disconnect", this.onDisconnectedEvent);
|
26
|
+
try {
|
27
|
+
globalThis.removeEventListener("online", this.dispatchNetworkEvent);
|
28
|
+
globalThis.removeEventListener("offline", this.dispatchNetworkEvent);
|
29
|
+
}
|
30
|
+
catch (err) {
|
31
|
+
// ignore
|
32
|
+
}
|
33
|
+
}
|
34
|
+
/**
|
35
|
+
* Returns true if the node is connected to the network via libp2p and browser.
|
36
|
+
*/
|
37
|
+
isConnected() {
|
38
|
+
if (!this.isBrowserConnected()) {
|
39
|
+
return false;
|
40
|
+
}
|
41
|
+
return this.isP2PConnected();
|
42
|
+
}
|
43
|
+
/**
|
44
|
+
* Returns true if the node is connected to the network via libp2p.
|
45
|
+
*/
|
46
|
+
isP2PConnected() {
|
47
|
+
return this.isNetworkConnected;
|
48
|
+
}
|
49
|
+
/**
|
50
|
+
* Returns true if the node is connected to the network via browser.
|
51
|
+
*/
|
52
|
+
isBrowserConnected() {
|
53
|
+
try {
|
54
|
+
if (globalThis?.navigator && !globalThis?.navigator?.onLine) {
|
55
|
+
return false;
|
56
|
+
}
|
57
|
+
}
|
58
|
+
catch (err) {
|
59
|
+
// ignore
|
60
|
+
}
|
61
|
+
return true;
|
62
|
+
}
|
63
|
+
onConnectedEvent() {
|
64
|
+
if (!this.isNetworkConnected) {
|
65
|
+
this.isNetworkConnected = true;
|
66
|
+
this.dispatchNetworkEvent();
|
67
|
+
}
|
68
|
+
}
|
69
|
+
onDisconnectedEvent() {
|
70
|
+
if (this.isNetworkConnected && this.libp2p.getConnections().length === 0) {
|
71
|
+
this.isNetworkConnected = false;
|
72
|
+
this.dispatchNetworkEvent();
|
73
|
+
}
|
74
|
+
}
|
75
|
+
dispatchNetworkEvent() {
|
76
|
+
this.events.dispatchEvent(new CustomEvent("waku:connection", {
|
77
|
+
detail: this.isConnected()
|
78
|
+
}));
|
79
|
+
}
|
80
|
+
}
|
81
|
+
//# sourceMappingURL=network_monitor.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"network_monitor.js","sourceRoot":"","sources":["../../../src/lib/connection_manager/network_monitor.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
import type { PeerId } from "@libp2p/interface";
|
2
|
+
import type { NetworkConfig, PubsubTopic, SingleShardInfo } from "@waku/interfaces";
|
3
|
+
import { Libp2p } from "libp2p";
|
4
|
+
type ShardReaderConstructorOptions = {
|
5
|
+
libp2p: Libp2p;
|
6
|
+
networkConfig: NetworkConfig;
|
7
|
+
};
|
8
|
+
interface IShardReader {
|
9
|
+
hasShardInfo(id: PeerId): Promise<boolean>;
|
10
|
+
isPeerOnNetwork(id: PeerId): Promise<boolean>;
|
11
|
+
isPeerOnShard(id: PeerId, shard: SingleShardInfo): Promise<boolean>;
|
12
|
+
isPeerOnTopic(id: PeerId, pubsubTopic: PubsubTopic): Promise<boolean>;
|
13
|
+
}
|
14
|
+
/**
|
15
|
+
* This class is responsible for reading the shard info from the libp2p peer store or from the current node's network config.
|
16
|
+
*/
|
17
|
+
export declare class ShardReader implements IShardReader {
|
18
|
+
private readonly libp2p;
|
19
|
+
private readonly staticShard;
|
20
|
+
constructor(options: ShardReaderConstructorOptions);
|
21
|
+
isPeerOnNetwork(id: PeerId): Promise<boolean>;
|
22
|
+
hasShardInfo(id: PeerId): Promise<boolean>;
|
23
|
+
isPeerOnTopic(id: PeerId, pubsubTopic: PubsubTopic): Promise<boolean>;
|
24
|
+
isPeerOnShard(id: PeerId, shard: SingleShardInfo): Promise<boolean>;
|
25
|
+
private getShardInfo;
|
26
|
+
private getStaticShardFromNetworkConfig;
|
27
|
+
}
|
28
|
+
export {};
|
@@ -0,0 +1,70 @@
|
|
1
|
+
import { contentTopicToShardIndex, decodeRelayShard, Logger, pubsubTopicToSingleShardInfo } from "@waku/utils";
|
2
|
+
const log = new Logger("shard-reader");
|
3
|
+
/**
|
4
|
+
* This class is responsible for reading the shard info from the libp2p peer store or from the current node's network config.
|
5
|
+
*/
|
6
|
+
export class ShardReader {
|
7
|
+
libp2p;
|
8
|
+
staticShard;
|
9
|
+
constructor(options) {
|
10
|
+
this.libp2p = options.libp2p;
|
11
|
+
this.staticShard = this.getStaticShardFromNetworkConfig(options.networkConfig);
|
12
|
+
}
|
13
|
+
async isPeerOnNetwork(id) {
|
14
|
+
const shardInfo = await this.getShardInfo(id);
|
15
|
+
if (!shardInfo) {
|
16
|
+
return false;
|
17
|
+
}
|
18
|
+
const clusterMatch = shardInfo.clusterId === this.staticShard.clusterId;
|
19
|
+
const shardOverlap = this.staticShard.shards.some((s) => shardInfo.shards.includes(s));
|
20
|
+
return clusterMatch && shardOverlap;
|
21
|
+
}
|
22
|
+
async hasShardInfo(id) {
|
23
|
+
const shardInfo = await this.getShardInfo(id);
|
24
|
+
return !!shardInfo;
|
25
|
+
}
|
26
|
+
async isPeerOnTopic(id, pubsubTopic) {
|
27
|
+
try {
|
28
|
+
const shardInfo = pubsubTopicToSingleShardInfo(pubsubTopic);
|
29
|
+
return await this.isPeerOnShard(id, shardInfo);
|
30
|
+
}
|
31
|
+
catch (error) {
|
32
|
+
log.error(`Error comparing pubsub topic ${pubsubTopic} with shard info for ${id}`, error);
|
33
|
+
return false;
|
34
|
+
}
|
35
|
+
}
|
36
|
+
async isPeerOnShard(id, shard) {
|
37
|
+
const peerShardInfo = await this.getShardInfo(id);
|
38
|
+
if (!peerShardInfo || shard.shard === undefined) {
|
39
|
+
return false;
|
40
|
+
}
|
41
|
+
return (peerShardInfo.clusterId === shard.clusterId &&
|
42
|
+
peerShardInfo.shards.includes(shard.shard));
|
43
|
+
}
|
44
|
+
async getShardInfo(id) {
|
45
|
+
try {
|
46
|
+
const peer = await this.libp2p.peerStore.get(id);
|
47
|
+
const shardInfoBytes = peer.metadata.get("shardInfo");
|
48
|
+
if (!shardInfoBytes) {
|
49
|
+
return undefined;
|
50
|
+
}
|
51
|
+
const decodedShardInfo = decodeRelayShard(shardInfoBytes);
|
52
|
+
return decodedShardInfo;
|
53
|
+
}
|
54
|
+
catch (error) {
|
55
|
+
log.error(`Error getting shard info for ${id}`, error);
|
56
|
+
return undefined;
|
57
|
+
}
|
58
|
+
}
|
59
|
+
getStaticShardFromNetworkConfig(networkConfig) {
|
60
|
+
if ("shards" in networkConfig) {
|
61
|
+
return networkConfig;
|
62
|
+
}
|
63
|
+
const shards = networkConfig.contentTopics.map((topic) => contentTopicToShardIndex(topic));
|
64
|
+
return {
|
65
|
+
clusterId: networkConfig.clusterId,
|
66
|
+
shards
|
67
|
+
};
|
68
|
+
}
|
69
|
+
}
|
70
|
+
//# sourceMappingURL=shard_reader.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"shard_reader.js","sourceRoot":"","sources":["../../../src/lib/connection_manager/shard_reader.ts"],"names":[],"mappings":"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"}
|
@@ -1,7 +1,22 @@
|
|
1
|
-
import type
|
1
|
+
import { type Peer, type PeerId } from "@libp2p/interface";
|
2
|
+
import { Multiaddr, MultiaddrInput } from "@multiformats/multiaddr";
|
2
3
|
/**
|
3
4
|
* Reads peer's metadata and retrieves ping value.
|
4
5
|
* @param peer Peer or null
|
5
6
|
* @returns -1 if no ping attached, otherwise returns ping value
|
6
7
|
*/
|
7
8
|
export declare const getPeerPing: (peer: Peer | null) => number;
|
9
|
+
/**
|
10
|
+
* Maps a PeerId or MultiaddrInput to a PeerId or Multiaddr.
|
11
|
+
* @param input - The PeerId or MultiaddrInput to map.
|
12
|
+
* @returns The PeerId or Multiaddr.
|
13
|
+
* @throws {Error} If the input is not a valid PeerId or MultiaddrInput.
|
14
|
+
*/
|
15
|
+
export declare const mapToPeerIdOrMultiaddr: (input: PeerId | MultiaddrInput) => PeerId | Multiaddr;
|
16
|
+
/**
|
17
|
+
* Maps a PeerId or MultiaddrInput to a PeerId.
|
18
|
+
* @param input - The PeerId or MultiaddrInput to map.
|
19
|
+
* @returns The PeerId.
|
20
|
+
* @throws {Error} If the input is not a valid PeerId or MultiaddrInput.
|
21
|
+
*/
|
22
|
+
export declare const mapToPeerId: (input: PeerId | MultiaddrInput) => PeerId;
|
@@ -1,3 +1,6 @@
|
|
1
|
+
import { isPeerId } from "@libp2p/interface";
|
2
|
+
import { peerIdFromString } from "@libp2p/peer-id";
|
3
|
+
import { multiaddr } from "@multiformats/multiaddr";
|
1
4
|
import { bytesToUtf8 } from "@waku/utils/bytes";
|
2
5
|
/**
|
3
6
|
* Reads peer's metadata and retrieves ping value.
|
@@ -19,4 +22,24 @@ export const getPeerPing = (peer) => {
|
|
19
22
|
return -1;
|
20
23
|
}
|
21
24
|
};
|
25
|
+
/**
|
26
|
+
* Maps a PeerId or MultiaddrInput to a PeerId or Multiaddr.
|
27
|
+
* @param input - The PeerId or MultiaddrInput to map.
|
28
|
+
* @returns The PeerId or Multiaddr.
|
29
|
+
* @throws {Error} If the input is not a valid PeerId or MultiaddrInput.
|
30
|
+
*/
|
31
|
+
export const mapToPeerIdOrMultiaddr = (input) => {
|
32
|
+
return isPeerId(input) ? input : multiaddr(input);
|
33
|
+
};
|
34
|
+
/**
|
35
|
+
* Maps a PeerId or MultiaddrInput to a PeerId.
|
36
|
+
* @param input - The PeerId or MultiaddrInput to map.
|
37
|
+
* @returns The PeerId.
|
38
|
+
* @throws {Error} If the input is not a valid PeerId or MultiaddrInput.
|
39
|
+
*/
|
40
|
+
export const mapToPeerId = (input) => {
|
41
|
+
return isPeerId(input)
|
42
|
+
? input
|
43
|
+
: peerIdFromString(multiaddr(input).getPeerId());
|
44
|
+
};
|
22
45
|
//# sourceMappingURL=utils.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/lib/connection_manager/utils.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/lib/connection_manager/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAA0B,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAa,SAAS,EAAkB,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAiB,EAAU,EAAE;IACvD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAExC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC;QAED,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;AACH,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,KAA8B,EACV,EAAE;IACtB,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACpD,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAA8B,EAAU,EAAE;IACpE,OAAO,QAAQ,CAAC,KAAK,CAAC;QACpB,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,SAAS,EAAG,CAAC,CAAC;AACtD,CAAC,CAAC"}
|
@@ -7,11 +7,10 @@ export declare const FilterCodecs: {
|
|
7
7
|
};
|
8
8
|
type IncomingMessageHandler = (pubsubTopic: PubsubTopic, wakuMessage: WakuMessage, peerIdStr: string) => Promise<void>;
|
9
9
|
export declare class FilterCore {
|
10
|
-
|
10
|
+
private handleIncomingMessage;
|
11
11
|
private streamManager;
|
12
|
-
private static handleIncomingMessage?;
|
13
12
|
readonly multicodec: string;
|
14
|
-
constructor(handleIncomingMessage: IncomingMessageHandler,
|
13
|
+
constructor(handleIncomingMessage: IncomingMessageHandler, libp2p: Libp2p);
|
15
14
|
subscribe(pubsubTopic: PubsubTopic, peerId: PeerId, contentTopics: ContentTopic[]): Promise<CoreProtocolResult>;
|
16
15
|
unsubscribe(pubsubTopic: PubsubTopic, peerId: PeerId, contentTopics: ContentTopic[]): Promise<CoreProtocolResult>;
|
17
16
|
unsubscribeAll(pubsubTopic: PubsubTopic, peerId: PeerId): Promise<CoreProtocolResult>;
|
@@ -5,38 +5,18 @@ import * as lp from "it-length-prefixed";
|
|
5
5
|
import { pipe } from "it-pipe";
|
6
6
|
import { StreamManager } from "../stream_manager/index.js";
|
7
7
|
import { FilterPushRpc, FilterSubscribeResponse, FilterSubscribeRpc } from "./filter_rpc.js";
|
8
|
-
const log = new Logger("filter
|
8
|
+
const log = new Logger("filter-core");
|
9
9
|
export const FilterCodecs = {
|
10
10
|
SUBSCRIBE: "/vac/waku/filter-subscribe/2.0.0-beta1",
|
11
11
|
PUSH: "/vac/waku/filter-push/2.0.0-beta1"
|
12
12
|
};
|
13
13
|
export class FilterCore {
|
14
|
-
|
14
|
+
handleIncomingMessage;
|
15
15
|
streamManager;
|
16
|
-
static handleIncomingMessage;
|
17
16
|
multicodec = FilterCodecs.SUBSCRIBE;
|
18
|
-
constructor(handleIncomingMessage,
|
19
|
-
this.
|
17
|
+
constructor(handleIncomingMessage, libp2p) {
|
18
|
+
this.handleIncomingMessage = handleIncomingMessage;
|
20
19
|
this.streamManager = new StreamManager(FilterCodecs.SUBSCRIBE, libp2p.components);
|
21
|
-
// TODO(weboko): remove when @waku/sdk 0.0.33 is released
|
22
|
-
const prevHandler = FilterCore.handleIncomingMessage;
|
23
|
-
FilterCore.handleIncomingMessage = !prevHandler
|
24
|
-
? handleIncomingMessage
|
25
|
-
: async (pubsubTopic, message, peerIdStr) => {
|
26
|
-
try {
|
27
|
-
await prevHandler(pubsubTopic, message, peerIdStr);
|
28
|
-
}
|
29
|
-
catch (e) {
|
30
|
-
log.error("Previous FilterCore incoming message handler failed ", e);
|
31
|
-
}
|
32
|
-
try {
|
33
|
-
await handleIncomingMessage(pubsubTopic, message, peerIdStr);
|
34
|
-
}
|
35
|
-
catch (e) {
|
36
|
-
log.error("Present FilterCore incoming message handler failed ", e);
|
37
|
-
}
|
38
|
-
return;
|
39
|
-
};
|
40
20
|
libp2p
|
41
21
|
.handle(FilterCodecs.PUSH, this.onRequest.bind(this), {
|
42
22
|
maxInboundStreams: 100
|
@@ -216,7 +196,7 @@ export class FilterCore {
|
|
216
196
|
log.error("Pubsub topic missing from push message");
|
217
197
|
return;
|
218
198
|
}
|
219
|
-
await
|
199
|
+
await this.handleIncomingMessage(pubsubTopic, wakuMessage, connection.remotePeer.toString());
|
220
200
|
}
|
221
201
|
}).then(() => {
|
222
202
|
log.info("Receiving pipe closed.");
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../src/lib/filter/filter.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,aAAa,EAEd,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,GAAG,MAAM,QAAQ,CAAC;AACzB,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG/B,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,OAAO,EACL,aAAa,EACb,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,
|
1
|
+
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../src/lib/filter/filter.ts"],"names":[],"mappings":"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"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import type { PeerId } from "@libp2p/interface";
|
2
|
-
import { type CoreProtocolResult, type IEncoder, type IMessage, type Libp2p
|
2
|
+
import { type CoreProtocolResult, type IEncoder, type IMessage, type Libp2p } from "@waku/interfaces";
|
3
3
|
import { PushResponse } from "@waku/proto";
|
4
4
|
export declare const LightPushCodec = "/vac/waku/lightpush/2.0.0-beta1";
|
5
5
|
export { PushResponse };
|
@@ -7,10 +7,9 @@ export { PushResponse };
|
|
7
7
|
* Implements the [Waku v2 Light Push protocol](https://rfc.vac.dev/spec/19/).
|
8
8
|
*/
|
9
9
|
export declare class LightPushCore {
|
10
|
-
readonly pubsubTopics: PubsubTopic[];
|
11
10
|
private readonly streamManager;
|
12
11
|
readonly multicodec = "/vac/waku/lightpush/2.0.0-beta1";
|
13
|
-
constructor(
|
12
|
+
constructor(libp2p: Libp2p);
|
14
13
|
private preparePushMessage;
|
15
14
|
send(encoder: IEncoder, message: IMessage, peerId: PeerId): Promise<CoreProtocolResult>;
|
16
15
|
}
|
@@ -16,11 +16,9 @@ export { PushResponse };
|
|
16
16
|
* Implements the [Waku v2 Light Push protocol](https://rfc.vac.dev/spec/19/).
|
17
17
|
*/
|
18
18
|
export class LightPushCore {
|
19
|
-
pubsubTopics;
|
20
19
|
streamManager;
|
21
20
|
multicodec = LightPushCodec;
|
22
|
-
constructor(
|
23
|
-
this.pubsubTopics = pubsubTopics;
|
21
|
+
constructor(libp2p) {
|
24
22
|
this.streamManager = new StreamManager(LightPushCodec, libp2p.components);
|
25
23
|
}
|
26
24
|
async preparePushMessage(encoder, message) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"light_push.js","sourceRoot":"","sources":["../../../src/lib/light_push/light_push.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,aAAa,
|
1
|
+
{"version":3,"file":"light_push.js","sourceRoot":"","sources":["../../../src/lib/light_push/light_push.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,aAAa,EAEd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,GAAG,MAAM,QAAQ,CAAC;AACzB,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC;AAErC,MAAM,CAAC,MAAM,cAAc,GAAG,iCAAiC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,CAAC;AAIxB;;GAEG;AACH,MAAM,OAAO,aAAa;IACP,aAAa,CAAgB;IAE9B,UAAU,GAAG,cAAc,CAAC;IAE5C,YAAmB,MAAc;QAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,cAAc,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAC5E,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,OAAiB,EACjB,OAAiB;QAEjB,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrD,GAAG,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;gBAC9D,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,aAAa,EAAE,CAAC;YAC7D,CAAC;YAED,IAAI,CAAC,CAAC,MAAM,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;gBACrD,GAAG,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;gBACxE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,YAAY,EAAE,CAAC;YAC5D,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACvD,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,GAAG,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;gBAC7D,OAAO;oBACL,KAAK,EAAE,IAAI;oBACX,KAAK,EAAE,aAAa,CAAC,aAAa;iBACnC,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,YAAY,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;YACvE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;YAEnD,OAAO;gBACL,KAAK,EAAE,IAAI;gBACX,KAAK,EAAE,aAAa,CAAC,YAAY;aAClC,CAAC;QACJ,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,IAAI,CACf,OAAiB,EACjB,OAAiB,EACjB,MAAc;QAEd,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CACtE,OAAO,EACP,OAAO,CACR,CAAC;QAEF,IAAI,gBAAgB,IAAI,CAAC,KAAK,EAAE,CAAC;YAC/B,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE;oBACP,KAAK,EAAE,gBAAgB;oBACvB,MAAM;iBACP;aACF,CAAC;QACJ,CAAC;QAED,IAAI,MAAc,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;YACzC,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE;oBACP,KAAK,EAAE,aAAa,CAAC,mBAAmB;oBACxC,MAAM,EAAE,MAAM;iBACf;aACF,CAAC;QACJ,CAAC;QAED,IAAI,GAAiC,CAAC;QACtC,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,IAAI,CACd,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAChB,EAAE,CAAC,MAAM,EACT,MAAM,EACN,EAAE,CAAC,MAAM,EACT,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,CACpC,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,6CAA6C;YAC7C,GAAG,CAAC,KAAK,CAAC,wCAAwC,EAAE,GAAG,CAAC,CAAC;YACzD,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE;oBACP,KAAK,EAAE,aAAa,CAAC,cAAc;oBACnC,MAAM,EAAE,MAAM;iBACf;aACF,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,cAAc,EAAE,CAAC;QACnC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACpB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,IAAI,QAAkC,CAAC;QACvC,IAAI,CAAC;YACH,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;QAC5C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;YAC9C,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE;oBACP,KAAK,EAAE,aAAa,CAAC,aAAa;oBAClC,MAAM,EAAE,MAAM;iBACf;aACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,GAAG,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;YACvD,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE;oBACP,KAAK,EAAE,aAAa,CAAC,WAAW;oBAChC,MAAM,EAAE,MAAM;iBACf;aACF,CAAC;QACJ,CAAC;QAED,IAAI,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,GAAG,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;YAC/C,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE;oBACP,KAAK,EAAE,aAAa,CAAC,oBAAoB;oBACzC,MAAM,EAAE,MAAM;iBACf;aACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;YACxB,GAAG,CAAC,KAAK,CAAC,oCAAoC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC/D,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE;oBACP,KAAK,EAAE,aAAa,CAAC,oBAAoB;oBACzC,MAAM,EAAE,MAAM;iBACf;aACF,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC5C,CAAC;CACF"}
|
@@ -1,3 +1,3 @@
|
|
1
|
-
import { type IMetadata, type Libp2pComponents
|
1
|
+
import { type ClusterId, type IMetadata, type Libp2pComponents } from "@waku/interfaces";
|
2
2
|
export declare const MetadataCodec = "/vac/waku/metadata/1.0.0";
|
3
|
-
export declare function wakuMetadata(
|
3
|
+
export declare function wakuMetadata(clusterId: ClusterId): (components: Libp2pComponents) => IMetadata;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { ProtocolError } from "@waku/interfaces";
|
2
2
|
import { proto_metadata } from "@waku/proto";
|
3
|
-
import { encodeRelayShard, Logger
|
3
|
+
import { encodeRelayShard, Logger } from "@waku/utils";
|
4
4
|
import all from "it-all";
|
5
5
|
import * as lp from "it-length-prefixed";
|
6
6
|
import { pipe } from "it-pipe";
|
@@ -9,13 +9,13 @@ import { StreamManager } from "../stream_manager/index.js";
|
|
9
9
|
const log = new Logger("metadata");
|
10
10
|
export const MetadataCodec = "/vac/waku/metadata/1.0.0";
|
11
11
|
class Metadata {
|
12
|
-
|
12
|
+
clusterId;
|
13
13
|
streamManager;
|
14
14
|
libp2pComponents;
|
15
15
|
handshakesConfirmed = new Map();
|
16
16
|
multicodec = MetadataCodec;
|
17
|
-
constructor(
|
18
|
-
this.
|
17
|
+
constructor(clusterId, libp2p) {
|
18
|
+
this.clusterId = clusterId;
|
19
19
|
this.streamManager = new StreamManager(MetadataCodec, libp2p);
|
20
20
|
this.libp2pComponents = libp2p;
|
21
21
|
void libp2p.registrar.handle(MetadataCodec, (streamData) => {
|
@@ -26,7 +26,10 @@ class Metadata {
|
|
26
26
|
* Make a metadata query to a peer
|
27
27
|
*/
|
28
28
|
async query(peerId) {
|
29
|
-
const request = proto_metadata.WakuMetadataRequest.encode(
|
29
|
+
const request = proto_metadata.WakuMetadataRequest.encode({
|
30
|
+
clusterId: this.clusterId,
|
31
|
+
shards: [] // Only services node need to provide shards
|
32
|
+
});
|
30
33
|
const peer = await this.libp2pComponents.peerStore.get(peerId);
|
31
34
|
if (!peer) {
|
32
35
|
return {
|
@@ -75,7 +78,10 @@ class Metadata {
|
|
75
78
|
async onRequest(streamData) {
|
76
79
|
try {
|
77
80
|
const { stream, connection } = streamData;
|
78
|
-
const encodedShardInfo = proto_metadata.WakuMetadataResponse.encode(
|
81
|
+
const encodedShardInfo = proto_metadata.WakuMetadataResponse.encode({
|
82
|
+
clusterId: this.clusterId,
|
83
|
+
shards: [] // Only service nodes need to provide shards
|
84
|
+
});
|
79
85
|
const encodedResponse = await pipe([encodedShardInfo], lp.encode, stream, lp.decode, async (source) => await all(source));
|
80
86
|
const { error, shardInfo } = this.decodeMetadataResponse(encodedResponse);
|
81
87
|
if (error) {
|
@@ -115,7 +121,7 @@ class Metadata {
|
|
115
121
|
this.handshakesConfirmed.set(peerId.toString(), shardInfo);
|
116
122
|
}
|
117
123
|
}
|
118
|
-
export function wakuMetadata(
|
119
|
-
return (components) => new Metadata(
|
124
|
+
export function wakuMetadata(clusterId) {
|
125
|
+
return (components) => new Metadata(clusterId, components);
|
120
126
|
}
|
121
127
|
//# sourceMappingURL=metadata.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../src/lib/metadata/metadata.ts"],"names":[],"mappings":"AAEA,OAAO,
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../src/lib/metadata/metadata.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"name":"@waku/core","version":"0.0.37-
|
1
|
+
{"name":"@waku/core","version":"0.0.37-c24842a.0","description":"TypeScript implementation of the Waku v2 protocol","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./lib/message/version_0":{"types":"./dist/lib/message/version_0.d.ts","import":"./dist/lib/message/version_0.js"}},"typesVersions":{"*":{"lib/*":["dist/lib/*"],"constants/*":["dist/constants/*"]}},"type":"module","homepage":"https://github.com/waku-org/js-waku/tree/master/packages/core#readme","repository":{"type":"git","url":"https://github.com/waku-org/js-waku.git"},"bugs":{"url":"https://github.com/waku-org/js-waku/issues"},"license":"MIT OR Apache-2.0","keywords":["waku","decentralised","communication","web3","ethereum","dapps"],"scripts":{"build":"run-s build:**","build:esm":"tsc","build:bundle":"rollup --config rollup.config.js","fix":"run-s fix:*","fix:lint":"eslint src *.js --fix","check":"run-s check:*","check:tsc":"tsc -p tsconfig.dev.json","check:lint":"eslint src *.js","check:spelling":"cspell \"{README.md,src/**/*.ts}\"","test":"NODE_ENV=test run-s test:*","test:node":"NODE_ENV=test TS_NODE_PROJECT=./tsconfig.dev.json mocha","test:browser":"NODE_ENV=test karma start karma.conf.cjs","watch:build":"tsc -p tsconfig.json -w","watch:test":"mocha --watch","prepublish":"npm run build","reset-hard":"git clean -dfx -e .idea && git reset --hard && npm i && npm run build"},"engines":{"node":">=22"},"dependencies":{"@waku/enr":"0.0.31-c24842a.0","@waku/interfaces":"0.0.32-c24842a.0","@libp2p/ping":"2.0.35","@waku/proto":"0.0.12-c24842a.0","@waku/utils":"0.0.25-c24842a.0","debug":"^4.3.4","@noble/hashes":"^1.3.2","it-all":"^3.0.4","it-length-prefixed":"^9.0.4","it-pipe":"^3.0.1","uint8arraylist":"^2.4.3","uuid":"^9.0.0"},"devDependencies":{"@libp2p/peer-id":"5.1.7","@libp2p/interface":"2.10.4","@multiformats/multiaddr":"^12.0.0","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-json":"^6.0.0","@rollup/plugin-node-resolve":"^15.2.3","@types/chai":"^4.3.11","@types/debug":"^4.1.12","@types/mocha":"^10.0.6","@types/uuid":"^9.0.8","@waku/build-utils":"*","chai":"^4.3.10","sinon":"^18.0.0","cspell":"^8.6.1","fast-check":"^3.19.0","ignore-loader":"^0.1.2","isomorphic-fetch":"^3.0.0","mocha":"^10.3.0","npm-run-all":"^4.1.5","process":"^0.11.10","rollup":"^4.12.0"},"peerDependencies":{"@multiformats/multiaddr":"^12.0.0","libp2p":"2.8.11"},"peerDependenciesMeta":{"@multiformats/multiaddr":{"optional":true},"libp2p":{"optional":true}},"files":["dist","bundle","src/**/*.ts","!**/*.spec.*","!**/*.json","CHANGELOG.md","LICENSE","README.md"]}
|