@waku/core 0.0.31-ce62600.0 → 0.0.31
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/CHANGELOG.md +29 -0
- package/bundle/{base_protocol-C6HnrRx8.js → base_protocol-C47QkJ2o.js} +22 -25
- package/bundle/{index-DnW8ifxc.js → index-tdQNdKHx.js} +62 -57
- package/bundle/index.js +381 -315
- package/bundle/lib/base_protocol.js +2 -2
- package/bundle/lib/message/version_0.js +2 -2
- package/bundle/{version_0-DQ9xsSLk.js → version_0-BrbNEwD-.js} +154 -308
- package/dist/.tsbuildinfo +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/base_protocol.d.ts +3 -4
- package/dist/lib/base_protocol.js +4 -8
- package/dist/lib/base_protocol.js.map +1 -1
- package/dist/lib/connection_manager.d.ts +9 -6
- package/dist/lib/connection_manager.js +70 -45
- package/dist/lib/connection_manager.js.map +1 -1
- package/dist/lib/filter/filter_rpc.js.map +1 -1
- package/dist/lib/filter/index.d.ts +4 -3
- package/dist/lib/filter/index.js +37 -35
- package/dist/lib/filter/index.js.map +1 -1
- package/dist/lib/health_manager.d.ts +14 -0
- package/dist/lib/health_manager.js +70 -0
- package/dist/lib/health_manager.js.map +1 -0
- package/dist/lib/keep_alive_manager.d.ts +13 -7
- package/dist/lib/keep_alive_manager.js +9 -9
- package/dist/lib/keep_alive_manager.js.map +1 -1
- package/dist/lib/light_push/index.d.ts +3 -2
- package/dist/lib/light_push/index.js +17 -3
- package/dist/lib/light_push/index.js.map +1 -1
- package/dist/lib/light_push/push_rpc.js.map +1 -1
- package/dist/lib/light_push/utils.d.ts +3 -0
- package/dist/lib/light_push/utils.js +26 -0
- package/dist/lib/light_push/utils.js.map +1 -0
- package/dist/lib/message/version_0.js.map +1 -1
- package/dist/lib/metadata/index.d.ts +2 -2
- package/dist/lib/metadata/index.js +26 -26
- package/dist/lib/metadata/index.js.map +1 -1
- package/dist/lib/store/index.d.ts +5 -44
- package/dist/lib/store/index.js +39 -45
- package/dist/lib/store/index.js.map +1 -1
- package/dist/lib/store/rpc.d.ts +22 -0
- package/dist/lib/store/rpc.js +74 -0
- package/dist/lib/store/rpc.js.map +1 -0
- package/dist/lib/stream_manager/index.d.ts +1 -0
- package/dist/lib/stream_manager/index.js +2 -0
- package/dist/lib/stream_manager/index.js.map +1 -0
- package/dist/lib/{stream_manager.js → stream_manager/stream_manager.js} +1 -1
- package/dist/lib/stream_manager/stream_manager.js.map +1 -0
- package/dist/lib/stream_manager/utils.d.ts +2 -0
- package/dist/lib/stream_manager/utils.js +19 -0
- package/dist/lib/stream_manager/utils.js.map +1 -0
- package/package.json +130 -1
- package/src/index.ts +3 -3
- package/src/lib/base_protocol.ts +7 -10
- package/src/lib/connection_manager.ts +100 -57
- package/src/lib/filter/filter_rpc.ts +21 -19
- package/src/lib/filter/index.ts +54 -56
- package/src/lib/health_manager.ts +90 -0
- package/src/lib/keep_alive_manager.ts +27 -18
- package/src/lib/light_push/index.ts +21 -11
- package/src/lib/light_push/push_rpc.ts +5 -5
- package/src/lib/light_push/utils.ts +31 -0
- package/src/lib/message/version_0.ts +17 -15
- package/src/lib/metadata/index.ts +43 -44
- package/src/lib/store/index.ts +54 -94
- package/src/lib/store/rpc.ts +92 -0
- package/src/lib/stream_manager/index.ts +1 -0
- package/src/lib/{stream_manager.ts → stream_manager/stream_manager.ts} +3 -2
- package/src/lib/stream_manager/utils.ts +22 -0
- package/dist/lib/store/history_rpc.d.ts +0 -27
- package/dist/lib/store/history_rpc.js +0 -72
- package/dist/lib/store/history_rpc.js.map +0 -1
- package/dist/lib/stream_manager.js.map +0 -1
- package/src/lib/store/history_rpc.ts +0 -93
- /package/dist/lib/{stream_manager.d.ts → stream_manager/stream_manager.d.ts} +0 -0
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"keep_alive_manager.js","sourceRoot":"","sources":["../../src/lib/keep_alive_manager.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"keep_alive_manager.js","sourceRoot":"","sources":["../../src/lib/keep_alive_manager.ts"],"names":[],"mappings":"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"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import type { Peer } from "@libp2p/interface";
|
2
|
-
import { type CoreProtocolResult, type IBaseProtocolCore, type IEncoder, type IMessage, type Libp2p,
|
2
|
+
import { type CoreProtocolResult, type IBaseProtocolCore, type IEncoder, type IMessage, type Libp2p, PubsubTopic } from "@waku/interfaces";
|
3
3
|
import { PushResponse } from "@waku/proto";
|
4
4
|
import { BaseProtocol } from "../base_protocol.js";
|
5
5
|
export declare const LightPushCodec = "/vac/waku/lightpush/2.0.0-beta1";
|
@@ -8,7 +8,8 @@ export { PushResponse };
|
|
8
8
|
* Implements the [Waku v2 Light Push protocol](https://rfc.vac.dev/spec/19/).
|
9
9
|
*/
|
10
10
|
export declare class LightPushCore extends BaseProtocol implements IBaseProtocolCore {
|
11
|
-
|
11
|
+
readonly pubsubTopics: PubsubTopic[];
|
12
|
+
constructor(pubsubTopics: PubsubTopic[], libp2p: Libp2p);
|
12
13
|
private preparePushMessage;
|
13
14
|
send(encoder: IEncoder, message: IMessage, peer: Peer): Promise<CoreProtocolResult>;
|
14
15
|
}
|
@@ -8,6 +8,7 @@ import { pipe } from "it-pipe";
|
|
8
8
|
import { Uint8ArrayList } from "uint8arraylist";
|
9
9
|
import { BaseProtocol } from "../base_protocol.js";
|
10
10
|
import { PushRpc } from "./push_rpc.js";
|
11
|
+
import { isRLNResponseError, matchRLNErrorMessage } from "./utils.js";
|
11
12
|
const log = new Logger("light-push");
|
12
13
|
export const LightPushCodec = "/vac/waku/lightpush/2.0.0-beta1";
|
13
14
|
export { PushResponse };
|
@@ -15,8 +16,10 @@ export { PushResponse };
|
|
15
16
|
* Implements the [Waku v2 Light Push protocol](https://rfc.vac.dev/spec/19/).
|
16
17
|
*/
|
17
18
|
export class LightPushCore extends BaseProtocol {
|
18
|
-
|
19
|
-
|
19
|
+
pubsubTopics;
|
20
|
+
constructor(pubsubTopics, libp2p) {
|
21
|
+
super(LightPushCodec, libp2p.components, log, pubsubTopics);
|
22
|
+
this.pubsubTopics = pubsubTopics;
|
20
23
|
}
|
21
24
|
async preparePushMessage(encoder, message) {
|
22
25
|
try {
|
@@ -109,7 +112,18 @@ export class LightPushCore extends BaseProtocol {
|
|
109
112
|
return {
|
110
113
|
success: null,
|
111
114
|
failure: {
|
112
|
-
error: ProtocolError.
|
115
|
+
error: ProtocolError.NO_RESPONSE,
|
116
|
+
peerId: peer.id
|
117
|
+
}
|
118
|
+
};
|
119
|
+
}
|
120
|
+
if (isRLNResponseError(response.info)) {
|
121
|
+
const rlnErrorCase = matchRLNErrorMessage(response.info);
|
122
|
+
log.error("Remote peer rejected the message: ", rlnErrorCase);
|
123
|
+
return {
|
124
|
+
success: null,
|
125
|
+
failure: {
|
126
|
+
error: rlnErrorCase,
|
113
127
|
peerId: peer.id
|
114
128
|
}
|
115
129
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/light_push/index.ts"],"names":[],"mappings":"AACA,OAAO,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/light_push/index.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"push_rpc.js","sourceRoot":"","sources":["../../../src/lib/light_push/push_rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAElC,MAAM,OAAO,OAAO;IACQ;IAA1B,YAA0B,KAAoB;QAApB,UAAK,GAAL,KAAK,CAAe;IAAG,CAAC;
|
1
|
+
{"version":3,"file":"push_rpc.js","sourceRoot":"","sources":["../../../src/lib/light_push/push_rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAElC,MAAM,OAAO,OAAO;IACQ;IAA1B,YAA0B,KAAoB;QAApB,UAAK,GAAL,KAAK,CAAe;IAAG,CAAC;IAE3C,MAAM,CAAC,aAAa,CACzB,OAA0B,EAC1B,WAAmB;QAEnB,OAAO,IAAI,OAAO,CAAC;YACjB,SAAS,EAAE,IAAI,EAAE;YACjB,OAAO,EAAE;gBACP,OAAO,EAAE,OAAO;gBAChB,WAAW,EAAE,WAAW;aACzB;YACD,QAAQ,EAAE,SAAS;SACpB,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,KAAqB;QACxC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAEM,MAAM;QACX,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAC5B,CAAC;IAED,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC7B,CAAC;CACF"}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
import { ProtocolError } from "@waku/interfaces";
|
2
|
+
// should match nwaku
|
3
|
+
// https://github.com/waku-org/nwaku/blob/c3cb06ac6c03f0f382d3941ea53b330f6a8dd127/waku/waku_rln_relay/rln_relay.nim#L309
|
4
|
+
// https://github.com/waku-org/nwaku/blob/c3cb06ac6c03f0f382d3941ea53b330f6a8dd127/tests/waku_rln_relay/rln/waku_rln_relay_utils.nim#L20
|
5
|
+
const RLN_GENERATION_PREFIX_ERROR = "could not generate rln-v2 proof";
|
6
|
+
export const isRLNResponseError = (info) => {
|
7
|
+
if (!info) {
|
8
|
+
return false;
|
9
|
+
}
|
10
|
+
return info.includes(RLN_GENERATION_PREFIX_ERROR);
|
11
|
+
};
|
12
|
+
export const matchRLNErrorMessage = (info) => {
|
13
|
+
const rlnErrorMap = {
|
14
|
+
[ProtocolError.RLN_IDENTITY_MISSING]: ProtocolError.RLN_IDENTITY_MISSING,
|
15
|
+
[ProtocolError.RLN_MEMBERSHIP_INDEX]: ProtocolError.RLN_MEMBERSHIP_INDEX,
|
16
|
+
[ProtocolError.RLN_LIMIT_MISSING]: ProtocolError.RLN_LIMIT_MISSING
|
17
|
+
};
|
18
|
+
const infoLowerCase = info.toLowerCase();
|
19
|
+
for (const errorKey in rlnErrorMap) {
|
20
|
+
if (infoLowerCase.includes(errorKey.toLowerCase())) {
|
21
|
+
return rlnErrorMap[errorKey];
|
22
|
+
}
|
23
|
+
}
|
24
|
+
return ProtocolError.RLN_PROOF_GENERATION;
|
25
|
+
};
|
26
|
+
//# sourceMappingURL=utils.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/lib/light_push/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,qBAAqB;AACrB,yHAAyH;AACzH,wIAAwI;AACxI,MAAM,2BAA2B,GAAG,iCAAiC,CAAC;AAEtE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAa,EAAW,EAAE;IAC3D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC;AACpD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAiB,EAAE;IAClE,MAAM,WAAW,GAAqC;QACpD,CAAC,aAAa,CAAC,oBAAoB,CAAC,EAAE,aAAa,CAAC,oBAAoB;QACxE,CAAC,aAAa,CAAC,oBAAoB,CAAC,EAAE,aAAa,CAAC,oBAAoB;QACxE,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAAE,aAAa,CAAC,iBAAiB;KACnE,CAAC;IAEF,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACzC,KAAK,MAAM,QAAQ,IAAI,WAAW,EAAE,CAAC;QACnC,IAAI,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACnD,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC,oBAAoB,CAAC;AAC5C,CAAC,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"version_0.js","sourceRoot":"","sources":["../../../src/lib/message/version_0.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,aAAa,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAC5C,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AAErC,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC;AACzB,OAAO,EAAE,KAAK,EAAE,CAAC;AAEjB,MAAM,OAAO,cAAc;IAEhB;IACG;IAFZ,YACS,WAAmB,EAChB,KAAwB;QAD3B,gBAAW,GAAX,WAAW,CAAQ;QAChB,UAAK,GAAL,KAAK,CAAmB;IACjC,CAAC;IAEJ,
|
1
|
+
{"version":3,"file":"version_0.js","sourceRoot":"","sources":["../../../src/lib/message/version_0.ts"],"names":[],"mappings":"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"}
|
@@ -1,3 +1,3 @@
|
|
1
|
-
import { type IMetadata, type Libp2pComponents,
|
1
|
+
import { type IMetadata, type Libp2pComponents, PubsubTopic } 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(pubsubTopics: PubsubTopic[]): (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, pubsubTopicsToShardInfo } 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,40 +9,22 @@ import { BaseProtocol } from "../base_protocol.js";
|
|
9
9
|
const log = new Logger("metadata");
|
10
10
|
export const MetadataCodec = "/vac/waku/metadata/1.0.0";
|
11
11
|
class Metadata extends BaseProtocol {
|
12
|
-
|
12
|
+
pubsubTopics;
|
13
13
|
libp2pComponents;
|
14
14
|
handshakesConfirmed = new Map();
|
15
|
-
constructor(
|
16
|
-
super(MetadataCodec, libp2p.components, log,
|
17
|
-
this.
|
15
|
+
constructor(pubsubTopics, libp2p) {
|
16
|
+
super(MetadataCodec, libp2p.components, log, pubsubTopics);
|
17
|
+
this.pubsubTopics = pubsubTopics;
|
18
18
|
this.libp2pComponents = libp2p;
|
19
19
|
void libp2p.registrar.handle(MetadataCodec, (streamData) => {
|
20
20
|
void this.onRequest(streamData);
|
21
21
|
});
|
22
22
|
}
|
23
|
-
/**
|
24
|
-
* Handle an incoming metadata request
|
25
|
-
*/
|
26
|
-
async onRequest(streamData) {
|
27
|
-
try {
|
28
|
-
const { stream, connection } = streamData;
|
29
|
-
const encodedShardInfo = proto_metadata.WakuMetadataResponse.encode(this.shardInfo);
|
30
|
-
const encodedResponse = await pipe([encodedShardInfo], lp.encode, stream, lp.decode, async (source) => await all(source));
|
31
|
-
const { error, shardInfo } = this.decodeMetadataResponse(encodedResponse);
|
32
|
-
if (error) {
|
33
|
-
return;
|
34
|
-
}
|
35
|
-
await this.savePeerShardInfo(connection.remotePeer, shardInfo);
|
36
|
-
}
|
37
|
-
catch (error) {
|
38
|
-
log.error("Error handling metadata request", error);
|
39
|
-
}
|
40
|
-
}
|
41
23
|
/**
|
42
24
|
* Make a metadata query to a peer
|
43
25
|
*/
|
44
26
|
async query(peerId) {
|
45
|
-
const request = proto_metadata.WakuMetadataRequest.encode(this.
|
27
|
+
const request = proto_metadata.WakuMetadataRequest.encode(pubsubTopicsToShardInfo(this.pubsubTopics));
|
46
28
|
const peer = await this.peerStore.get(peerId);
|
47
29
|
if (!peer) {
|
48
30
|
return {
|
@@ -85,6 +67,24 @@ class Metadata extends BaseProtocol {
|
|
85
67
|
}
|
86
68
|
return await this.query(peerId);
|
87
69
|
}
|
70
|
+
/**
|
71
|
+
* Handle an incoming metadata request
|
72
|
+
*/
|
73
|
+
async onRequest(streamData) {
|
74
|
+
try {
|
75
|
+
const { stream, connection } = streamData;
|
76
|
+
const encodedShardInfo = proto_metadata.WakuMetadataResponse.encode(pubsubTopicsToShardInfo(this.pubsubTopics));
|
77
|
+
const encodedResponse = await pipe([encodedShardInfo], lp.encode, stream, lp.decode, async (source) => await all(source));
|
78
|
+
const { error, shardInfo } = this.decodeMetadataResponse(encodedResponse);
|
79
|
+
if (error) {
|
80
|
+
return;
|
81
|
+
}
|
82
|
+
await this.savePeerShardInfo(connection.remotePeer, shardInfo);
|
83
|
+
}
|
84
|
+
catch (error) {
|
85
|
+
log.error("Error handling metadata request", error);
|
86
|
+
}
|
87
|
+
}
|
88
88
|
decodeMetadataResponse(encodedResponse) {
|
89
89
|
const bytes = new Uint8ArrayList();
|
90
90
|
encodedResponse.forEach((chunk) => {
|
@@ -113,7 +113,7 @@ class Metadata extends BaseProtocol {
|
|
113
113
|
this.handshakesConfirmed.set(peerId.toString(), shardInfo);
|
114
114
|
}
|
115
115
|
}
|
116
|
-
export function wakuMetadata(
|
117
|
-
return (components) => new Metadata(
|
116
|
+
export function wakuMetadata(pubsubTopics) {
|
117
|
+
return (components) => new Metadata(pubsubTopics, components);
|
118
118
|
}
|
119
119
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/metadata/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,aAAa,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/metadata/index.ts"],"names":[],"mappings":"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"}
|
@@ -1,48 +1,9 @@
|
|
1
1
|
import type { Peer } from "@libp2p/interface";
|
2
|
-
import {
|
2
|
+
import { IDecodedMessage, IDecoder, IStoreCore, Libp2p, PubsubTopic, QueryRequestParams } from "@waku/interfaces";
|
3
3
|
import { BaseProtocol } from "../base_protocol.js";
|
4
|
-
|
5
|
-
export declare const StoreCodec = "/vac/waku/store/2.0.0-beta4";
|
6
|
-
export { PageDirection, Params };
|
7
|
-
export interface TimeFilter {
|
8
|
-
startTime: Date;
|
9
|
-
endTime: Date;
|
10
|
-
}
|
11
|
-
export interface QueryOptions {
|
12
|
-
/**
|
13
|
-
* The direction in which pages are retrieved:
|
14
|
-
* - { @link PageDirection.BACKWARD }: Most recent page first.
|
15
|
-
* - { @link PageDirection.FORWARD }: Oldest page first.
|
16
|
-
*
|
17
|
-
* Note: This does not affect the ordering of messages with the page
|
18
|
-
* (the oldest message is always first).
|
19
|
-
*
|
20
|
-
* @default { @link PageDirection.BACKWARD }
|
21
|
-
*/
|
22
|
-
pageDirection?: PageDirection;
|
23
|
-
/**
|
24
|
-
* The number of message per page.
|
25
|
-
*
|
26
|
-
* @default { @link DefaultPageSize }
|
27
|
-
*/
|
28
|
-
pageSize?: number;
|
29
|
-
/**
|
30
|
-
* Retrieve messages with a timestamp within the provided values.
|
31
|
-
*/
|
32
|
-
timeFilter?: TimeFilter;
|
33
|
-
/**
|
34
|
-
* Cursor as an index to start a query from.
|
35
|
-
* The cursor index will be exclusive (i.e. the message at the cursor index will not be included in the result).
|
36
|
-
* If undefined, the query will start from the beginning or end of the history, depending on the page direction.
|
37
|
-
*/
|
38
|
-
cursor?: Cursor;
|
39
|
-
}
|
40
|
-
/**
|
41
|
-
* Implements the [Waku v2 Store protocol](https://rfc.vac.dev/spec/13/).
|
42
|
-
*
|
43
|
-
* The Waku Store protocol can be used to retrieved historical messages.
|
44
|
-
*/
|
4
|
+
export declare const StoreCodec = "/vac/waku/store-query/3.0.0";
|
45
5
|
export declare class StoreCore extends BaseProtocol implements IStoreCore {
|
46
|
-
|
47
|
-
|
6
|
+
readonly pubsubTopics: PubsubTopic[];
|
7
|
+
constructor(pubsubTopics: PubsubTopic[], libp2p: Libp2p);
|
8
|
+
queryPerPage<T extends IDecodedMessage>(queryOpts: QueryRequestParams, decoders: Map<string, IDecoder<T>>, peer: Peer): AsyncGenerator<Promise<T | undefined>[]>;
|
48
9
|
}
|
package/dist/lib/store/index.js
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
import { proto_store as proto } from "@waku/proto";
|
2
1
|
import { Logger } from "@waku/utils";
|
3
2
|
import all from "it-all";
|
4
3
|
import * as lp from "it-length-prefixed";
|
@@ -6,29 +5,26 @@ import { pipe } from "it-pipe";
|
|
6
5
|
import { Uint8ArrayList } from "uint8arraylist";
|
7
6
|
import { BaseProtocol } from "../base_protocol.js";
|
8
7
|
import { toProtoMessage } from "../to_proto_message.js";
|
9
|
-
import {
|
10
|
-
var HistoryError = proto.HistoryResponse.HistoryError;
|
8
|
+
import { DEFAULT_PAGE_SIZE, MAX_PAGE_SIZE, StoreQueryRequest, StoreQueryResponse } from "./rpc.js";
|
11
9
|
const log = new Logger("store");
|
12
|
-
export const StoreCodec = "/vac/waku/store/
|
13
|
-
export { PageDirection };
|
14
|
-
/**
|
15
|
-
* Implements the [Waku v2 Store protocol](https://rfc.vac.dev/spec/13/).
|
16
|
-
*
|
17
|
-
* The Waku Store protocol can be used to retrieved historical messages.
|
18
|
-
*/
|
10
|
+
export const StoreCodec = "/vac/waku/store-query/3.0.0";
|
19
11
|
export class StoreCore extends BaseProtocol {
|
20
|
-
|
21
|
-
|
12
|
+
pubsubTopics;
|
13
|
+
constructor(pubsubTopics, libp2p) {
|
14
|
+
super(StoreCodec, libp2p.components, log, pubsubTopics);
|
15
|
+
this.pubsubTopics = pubsubTopics;
|
22
16
|
}
|
23
17
|
async *queryPerPage(queryOpts, decoders, peer) {
|
24
18
|
if (queryOpts.contentTopics.toString() !==
|
25
19
|
Array.from(decoders.keys()).toString()) {
|
26
20
|
throw new Error("Internal error, the decoders should match the query's content topics");
|
27
21
|
}
|
28
|
-
let currentCursor = queryOpts.
|
22
|
+
let currentCursor = queryOpts.paginationCursor;
|
29
23
|
while (true) {
|
30
|
-
|
31
|
-
|
24
|
+
const storeQueryRequest = StoreQueryRequest.create({
|
25
|
+
...queryOpts,
|
26
|
+
paginationCursor: currentCursor
|
27
|
+
});
|
32
28
|
let stream;
|
33
29
|
try {
|
34
30
|
stream = await this.getStream(peer);
|
@@ -37,50 +33,48 @@ export class StoreCore extends BaseProtocol {
|
|
37
33
|
log.error("Failed to get stream", e);
|
38
34
|
break;
|
39
35
|
}
|
40
|
-
const res = await pipe([
|
36
|
+
const res = await pipe([storeQueryRequest.encode()], lp.encode, stream, lp.decode, async (source) => await all(source));
|
41
37
|
const bytes = new Uint8ArrayList();
|
42
38
|
res.forEach((chunk) => {
|
43
39
|
bytes.append(chunk);
|
44
40
|
});
|
45
|
-
const
|
46
|
-
if (!
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
if (response.error && response.error !== HistoryError.NONE) {
|
52
|
-
throw "History response contains an Error: " + response.error;
|
41
|
+
const storeQueryResponse = StoreQueryResponse.decode(bytes);
|
42
|
+
if (!storeQueryResponse.statusCode ||
|
43
|
+
storeQueryResponse.statusCode >= 300) {
|
44
|
+
const errorMessage = `Store query failed with status code: ${storeQueryResponse.statusCode}, description: ${storeQueryResponse.statusDesc}`;
|
45
|
+
log.error(errorMessage);
|
46
|
+
throw new Error(errorMessage);
|
53
47
|
}
|
54
|
-
if (!
|
55
|
-
log.warn("Stopping pagination due to
|
48
|
+
if (!storeQueryResponse.messages || !storeQueryResponse.messages.length) {
|
49
|
+
log.warn("Stopping pagination due to empty messages in response");
|
56
50
|
break;
|
57
51
|
}
|
58
|
-
log.
|
59
|
-
|
60
|
-
|
61
|
-
|
52
|
+
log.info(`${storeQueryResponse.messages.length} messages retrieved from store`);
|
53
|
+
const decodedMessages = storeQueryResponse.messages.map((protoMsg) => {
|
54
|
+
if (!protoMsg.message) {
|
55
|
+
return Promise.resolve(undefined);
|
56
|
+
}
|
57
|
+
const contentTopic = protoMsg.message.contentTopic;
|
58
|
+
if (contentTopic) {
|
62
59
|
const decoder = decoders.get(contentTopic);
|
63
60
|
if (decoder) {
|
64
|
-
return decoder.fromProtoObj(
|
61
|
+
return decoder.fromProtoObj(protoMsg.pubsubTopic || "", toProtoMessage(protoMsg.message));
|
65
62
|
}
|
66
63
|
}
|
67
64
|
return Promise.resolve(undefined);
|
68
65
|
});
|
69
|
-
|
70
|
-
if (
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
66
|
+
yield decodedMessages;
|
67
|
+
if (queryOpts.paginationForward) {
|
68
|
+
currentCursor =
|
69
|
+
storeQueryResponse.messages[storeQueryResponse.messages.length - 1]
|
70
|
+
.messageHash;
|
71
|
+
}
|
72
|
+
else {
|
73
|
+
currentCursor = storeQueryResponse.messages[0].messageHash;
|
75
74
|
}
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
if (
|
80
|
-
// Response page size smaller than query, meaning this is the last page
|
81
|
-
responsePageSize &&
|
82
|
-
queryPageSize &&
|
83
|
-
responsePageSize < queryPageSize) {
|
75
|
+
if (storeQueryResponse.messages.length > MAX_PAGE_SIZE &&
|
76
|
+
storeQueryResponse.messages.length <
|
77
|
+
(queryOpts.paginationLimit || DEFAULT_PAGE_SIZE)) {
|
84
78
|
break;
|
85
79
|
}
|
86
80
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/store/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/store/index.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import { QueryRequestParams } from "@waku/interfaces";
|
2
|
+
import { proto_store as proto } from "@waku/proto";
|
3
|
+
import type { Uint8ArrayList } from "uint8arraylist";
|
4
|
+
export declare const DEFAULT_PAGE_SIZE = 20;
|
5
|
+
export declare const MAX_PAGE_SIZE = 100;
|
6
|
+
export declare class StoreQueryRequest {
|
7
|
+
proto: proto.StoreQueryRequest;
|
8
|
+
constructor(proto: proto.StoreQueryRequest);
|
9
|
+
static create(params: QueryRequestParams): StoreQueryRequest;
|
10
|
+
static decode(bytes: Uint8ArrayList): StoreQueryRequest;
|
11
|
+
encode(): Uint8Array;
|
12
|
+
}
|
13
|
+
export declare class StoreQueryResponse {
|
14
|
+
proto: proto.StoreQueryResponse;
|
15
|
+
constructor(proto: proto.StoreQueryResponse);
|
16
|
+
static decode(bytes: Uint8ArrayList): StoreQueryResponse;
|
17
|
+
encode(): Uint8Array;
|
18
|
+
get statusCode(): number | undefined;
|
19
|
+
get statusDesc(): string | undefined;
|
20
|
+
get messages(): proto.WakuMessageKeyValue[];
|
21
|
+
get paginationCursor(): Uint8Array | undefined;
|
22
|
+
}
|
@@ -0,0 +1,74 @@
|
|
1
|
+
import { proto_store as proto } from "@waku/proto";
|
2
|
+
import { v4 as uuid } from "uuid";
|
3
|
+
// https://github.com/waku-org/nwaku/blob/7205f95cff9f49ca0bb762e8fd0bf56a6a7f3b3b/waku/waku_store/common.nim#L12
|
4
|
+
export const DEFAULT_PAGE_SIZE = 20;
|
5
|
+
export const MAX_PAGE_SIZE = 100;
|
6
|
+
const ONE_MILLION = 1_000000;
|
7
|
+
export class StoreQueryRequest {
|
8
|
+
proto;
|
9
|
+
constructor(proto) {
|
10
|
+
this.proto = proto;
|
11
|
+
}
|
12
|
+
static create(params) {
|
13
|
+
const request = new StoreQueryRequest({
|
14
|
+
...params,
|
15
|
+
requestId: uuid(),
|
16
|
+
timeStart: params.timeStart
|
17
|
+
? BigInt(params.timeStart.getTime() * ONE_MILLION)
|
18
|
+
: undefined,
|
19
|
+
timeEnd: params.timeEnd
|
20
|
+
? BigInt(params.timeEnd.getTime() * ONE_MILLION)
|
21
|
+
: undefined,
|
22
|
+
messageHashes: params.messageHashes || [],
|
23
|
+
paginationLimit: params.paginationLimit
|
24
|
+
? BigInt(params.paginationLimit)
|
25
|
+
: undefined
|
26
|
+
});
|
27
|
+
// Validate request parameters based on RFC
|
28
|
+
if ((params.pubsubTopic && !params.contentTopics) ||
|
29
|
+
(!params.pubsubTopic && params.contentTopics)) {
|
30
|
+
throw new Error("Both pubsubTopic and contentTopics must be set or unset");
|
31
|
+
}
|
32
|
+
if (params.messageHashes &&
|
33
|
+
(params.pubsubTopic ||
|
34
|
+
params.contentTopics ||
|
35
|
+
params.timeStart ||
|
36
|
+
params.timeEnd)) {
|
37
|
+
throw new Error("Message hash lookup queries cannot include content filter criteria");
|
38
|
+
}
|
39
|
+
return request;
|
40
|
+
}
|
41
|
+
static decode(bytes) {
|
42
|
+
const res = proto.StoreQueryRequest.decode(bytes);
|
43
|
+
return new StoreQueryRequest(res);
|
44
|
+
}
|
45
|
+
encode() {
|
46
|
+
return proto.StoreQueryRequest.encode(this.proto);
|
47
|
+
}
|
48
|
+
}
|
49
|
+
export class StoreQueryResponse {
|
50
|
+
proto;
|
51
|
+
constructor(proto) {
|
52
|
+
this.proto = proto;
|
53
|
+
}
|
54
|
+
static decode(bytes) {
|
55
|
+
const res = proto.StoreQueryResponse.decode(bytes);
|
56
|
+
return new StoreQueryResponse(res);
|
57
|
+
}
|
58
|
+
encode() {
|
59
|
+
return proto.StoreQueryResponse.encode(this.proto);
|
60
|
+
}
|
61
|
+
get statusCode() {
|
62
|
+
return this.proto.statusCode;
|
63
|
+
}
|
64
|
+
get statusDesc() {
|
65
|
+
return this.proto.statusDesc;
|
66
|
+
}
|
67
|
+
get messages() {
|
68
|
+
return this.proto.messages;
|
69
|
+
}
|
70
|
+
get paginationCursor() {
|
71
|
+
return this.proto.paginationCursor;
|
72
|
+
}
|
73
|
+
}
|
74
|
+
//# sourceMappingURL=rpc.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../../src/lib/store/rpc.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export { StreamManager } from "./stream_manager.js";
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/stream_manager/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
|