@waku/core 0.0.10 → 0.0.12
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 +85 -1
- package/README.md +2 -3
- package/bundle/browser-2f1afe46.js +726 -0
- package/bundle/index.js +9190 -12103
- package/bundle/lib/base_protocol.js +108 -0
- package/bundle/lib/message/topic_only_message.js +3 -2
- package/bundle/lib/message/version_0.js +3 -2
- package/bundle/peer_exchange-1229c8b0.js +4302 -0
- package/bundle/{topic_only_message-b1eddea1.js → topic_only_message-e8406994.js} +12 -8
- package/bundle/{version_0-862a05e0.js → version_0-e9a6cfb0.js} +35 -35
- package/dist/.tsbuildinfo +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/base_protocol.d.ts +21 -0
- package/dist/lib/base_protocol.js +33 -0
- package/dist/lib/base_protocol.js.map +1 -0
- package/dist/lib/connection_manager.d.ts +31 -0
- package/dist/lib/connection_manager.js +146 -0
- package/dist/lib/connection_manager.js.map +1 -0
- package/dist/lib/filter/filter_rpc.d.ts +8 -8
- package/dist/lib/filter/filter_rpc.js +6 -6
- package/dist/lib/filter/index.d.ts +5 -22
- package/dist/lib/filter/index.js +31 -86
- package/dist/lib/filter/index.js.map +1 -1
- package/dist/lib/group_by.d.ts +1 -1
- package/dist/lib/group_by.js.map +1 -1
- package/dist/lib/keep_alive_manager.d.ts +17 -0
- package/dist/lib/keep_alive_manager.js +62 -0
- package/dist/lib/keep_alive_manager.js.map +1 -0
- package/dist/lib/light_push/index.d.ts +3 -19
- package/dist/lib/light_push/index.js +14 -40
- package/dist/lib/light_push/index.js.map +1 -1
- package/dist/lib/light_push/push_rpc.d.ts +5 -5
- package/dist/lib/light_push/push_rpc.js +6 -6
- package/dist/lib/message/topic_only_message.d.ts +5 -3
- package/dist/lib/message/topic_only_message.js +8 -5
- package/dist/lib/message/topic_only_message.js.map +1 -1
- package/dist/lib/message/version_0.d.ts +12 -12
- package/dist/lib/message/version_0.js +29 -30
- package/dist/lib/message/version_0.js.map +1 -1
- package/dist/lib/predefined_bootstrap_nodes.js +1 -1
- package/dist/lib/predefined_bootstrap_nodes.js.map +1 -1
- package/dist/lib/relay/index.d.ts +4 -19
- package/dist/lib/relay/index.js +41 -26
- package/dist/lib/relay/index.js.map +1 -1
- package/dist/lib/relay/message_validator.d.ts +4 -0
- package/dist/lib/relay/message_validator.js +25 -0
- package/dist/lib/relay/message_validator.js.map +1 -0
- package/dist/lib/store/history_rpc.d.ts +4 -4
- package/dist/lib/store/history_rpc.js +9 -9
- package/dist/lib/store/history_rpc.js.map +1 -1
- package/dist/lib/store/index.d.ts +4 -26
- package/dist/lib/store/index.js +21 -40
- package/dist/lib/store/index.js.map +1 -1
- package/dist/lib/to_proto_message.js +3 -2
- package/dist/lib/to_proto_message.js.map +1 -1
- package/dist/lib/wait_for_remote_peer.js +12 -23
- package/dist/lib/wait_for_remote_peer.js.map +1 -1
- package/dist/lib/waku.d.ts +8 -15
- package/dist/lib/waku.js +34 -97
- package/dist/lib/waku.js.map +1 -1
- package/package.json +50 -61
- package/src/index.ts +11 -3
- package/src/lib/base_protocol.ts +47 -0
- package/src/lib/connection_manager.ts +220 -0
- package/src/lib/filter/filter_rpc.ts +10 -10
- package/src/lib/filter/index.ts +52 -147
- package/src/lib/group_by.ts +1 -1
- package/src/lib/keep_alive_manager.ts +89 -0
- package/src/lib/light_push/index.ts +18 -79
- package/src/lib/light_push/push_rpc.ts +9 -9
- package/src/lib/message/topic_only_message.ts +11 -5
- package/src/lib/message/version_0.ts +42 -37
- package/src/lib/predefined_bootstrap_nodes.ts +1 -1
- package/src/lib/relay/index.ts +64 -53
- package/src/lib/relay/message_validator.ts +35 -0
- package/src/lib/store/history_rpc.ts +12 -12
- package/src/lib/store/index.ts +31 -88
- package/src/lib/to_proto_message.ts +3 -2
- package/src/lib/wait_for_remote_peer.ts +13 -29
- package/src/lib/waku.ts +54 -136
- package/bundle/peer_exchange-df95c3a7.js +0 -11801
- package/dist/lib/random_subset.d.ts +0 -4
- package/dist/lib/random_subset.js +0 -25
- package/dist/lib/random_subset.js.map +0 -1
- package/src/lib/random_subset.ts +0 -30
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"message_validator.js","sourceRoot":"","sources":["../../../src/lib/relay/message_validator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,aAAa,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;AAEhC,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,OAAgB;IAEhB,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACpC,GAAG,CAAC,2BAA2B,IAAI,gBAAgB,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACpE,IAAI,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC;IAEzC,IAAI;QACF,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAE5D,IACE,CAAC,YAAY,CAAC,YAAY;YAC1B,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM;YACjC,CAAC,YAAY,CAAC,OAAO;YACrB,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,EAC5B;YACA,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC;SACtC;KACF;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC;KACtC;IAED,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAClC,GAAG,CAAC,qCAAqC,OAAO,GAAG,SAAS,IAAI,CAAC,CAAC;IAClE,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
@@ -13,15 +13,15 @@ export interface Params {
|
|
13
13
|
endTime?: Date;
|
14
14
|
cursor?: proto.Index;
|
15
15
|
}
|
16
|
-
export declare class
|
17
|
-
readonly proto: proto.
|
16
|
+
export declare class HistoryRpc {
|
17
|
+
readonly proto: proto.HistoryRpc;
|
18
18
|
private constructor();
|
19
19
|
get query(): proto.HistoryQuery | undefined;
|
20
20
|
get response(): proto.HistoryResponse | undefined;
|
21
21
|
/**
|
22
22
|
* Create History Query.
|
23
23
|
*/
|
24
|
-
static createQuery(params: Params):
|
25
|
-
decode(bytes: Uint8ArrayList):
|
24
|
+
static createQuery(params: Params): HistoryRpc;
|
25
|
+
decode(bytes: Uint8ArrayList): HistoryRpc;
|
26
26
|
encode(): Uint8Array;
|
27
27
|
}
|
@@ -6,7 +6,7 @@ export var PageDirection;
|
|
6
6
|
PageDirection["BACKWARD"] = "backward";
|
7
7
|
PageDirection["FORWARD"] = "forward";
|
8
8
|
})(PageDirection || (PageDirection = {}));
|
9
|
-
export class
|
9
|
+
export class HistoryRpc {
|
10
10
|
constructor(proto) {
|
11
11
|
this.proto = proto;
|
12
12
|
}
|
@@ -38,10 +38,10 @@ export class HistoryRPC {
|
|
38
38
|
// milliseconds 10^-3 to nanoseconds 10^-9
|
39
39
|
endTime = BigInt(params.endTime.valueOf()) * OneMillion;
|
40
40
|
}
|
41
|
-
return new
|
41
|
+
return new HistoryRpc({
|
42
42
|
requestId: uuid(),
|
43
43
|
query: {
|
44
|
-
|
44
|
+
pubsubTopic: params.pubSubTopic,
|
45
45
|
contentFilters,
|
46
46
|
pagingInfo,
|
47
47
|
startTime,
|
@@ -51,21 +51,21 @@ export class HistoryRPC {
|
|
51
51
|
});
|
52
52
|
}
|
53
53
|
decode(bytes) {
|
54
|
-
const res = proto.
|
55
|
-
return new
|
54
|
+
const res = proto.HistoryRpc.decode(bytes);
|
55
|
+
return new HistoryRpc(res);
|
56
56
|
}
|
57
57
|
encode() {
|
58
|
-
return proto.
|
58
|
+
return proto.HistoryRpc.encode(this.proto);
|
59
59
|
}
|
60
60
|
}
|
61
61
|
function directionToProto(pageDirection) {
|
62
62
|
switch (pageDirection) {
|
63
63
|
case PageDirection.BACKWARD:
|
64
|
-
return proto.PagingInfo.Direction.
|
64
|
+
return proto.PagingInfo.Direction.BACKWARD;
|
65
65
|
case PageDirection.FORWARD:
|
66
|
-
return proto.PagingInfo.Direction.
|
66
|
+
return proto.PagingInfo.Direction.FORWARD;
|
67
67
|
default:
|
68
|
-
return proto.PagingInfo.Direction.
|
68
|
+
return proto.PagingInfo.Direction.BACKWARD;
|
69
69
|
}
|
70
70
|
}
|
71
71
|
//# sourceMappingURL=history_rpc.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"history_rpc.js","sourceRoot":"","sources":["../../../src/lib/store/history_rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAElC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAS,CAAC,CAAC;AAErC,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,sCAAqB,CAAA;IACrB,oCAAmB,CAAA;AACrB,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAYD,MAAM,OAAO,UAAU;IACrB,YAAoC,KAAuB;QAAvB,UAAK,GAAL,KAAK,CAAkB;IAAG,CAAC;IAE/D,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,MAAc;QAC/B,MAAM,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE;YAC/D,OAAO,EAAE,YAAY,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAEzD,MAAM,UAAU,GAAG;YACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;YACjC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,SAAS;SACU,CAAC;QAEtB,IAAI,SAAS,EAAE,OAAO,CAAC;QACvB,IAAI,MAAM,CAAC,SAAS,EAAE;YACpB,0CAA0C;YAC1C,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;SAC7D;QAED,IAAI,MAAM,CAAC,OAAO,EAAE;YAClB,0CAA0C;YAC1C,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;SACzD;QACD,OAAO,IAAI,UAAU,CAAC;YACpB,SAAS,EAAE,IAAI,EAAE;YACjB,KAAK,EAAE;gBACL,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,cAAc;gBACd,UAAU;gBACV,SAAS;gBACT,OAAO;aACR;YACD,QAAQ,EAAE,SAAS;SACpB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAqB;QAC1B,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3C,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM;QACJ,OAAO,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;CACF;AAED,SAAS,gBAAgB,CACvB,aAA4B;IAE5B,QAAQ,aAAa,EAAE;QACrB,KAAK,aAAa,CAAC,QAAQ;YACzB,OAAO,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,
|
1
|
+
{"version":3,"file":"history_rpc.js","sourceRoot":"","sources":["../../../src/lib/store/history_rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAElC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAS,CAAC,CAAC;AAErC,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,sCAAqB,CAAA;IACrB,oCAAmB,CAAA;AACrB,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAYD,MAAM,OAAO,UAAU;IACrB,YAAoC,KAAuB;QAAvB,UAAK,GAAL,KAAK,CAAkB;IAAG,CAAC;IAE/D,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,MAAc;QAC/B,MAAM,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE;YAC/D,OAAO,EAAE,YAAY,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAEzD,MAAM,UAAU,GAAG;YACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;YACjC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,SAAS;SACU,CAAC;QAEtB,IAAI,SAAS,EAAE,OAAO,CAAC;QACvB,IAAI,MAAM,CAAC,SAAS,EAAE;YACpB,0CAA0C;YAC1C,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;SAC7D;QAED,IAAI,MAAM,CAAC,OAAO,EAAE;YAClB,0CAA0C;YAC1C,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;SACzD;QACD,OAAO,IAAI,UAAU,CAAC;YACpB,SAAS,EAAE,IAAI,EAAE;YACjB,KAAK,EAAE;gBACL,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,cAAc;gBACd,UAAU;gBACV,SAAS;gBACT,OAAO;aACR;YACD,QAAQ,EAAE,SAAS;SACpB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAqB;QAC1B,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3C,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM;QACJ,OAAO,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;CACF;AAED,SAAS,gBAAgB,CACvB,aAA4B;IAE5B,QAAQ,aAAa,EAAE;QACrB,KAAK,aAAa,CAAC,QAAQ;YACzB,OAAO,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC;QAC7C,KAAK,aAAa,CAAC,OAAO;YACxB,OAAO,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC;QAC5C;YACE,OAAO,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC;KAC9C;AACH,CAAC"}
|
@@ -1,26 +1,10 @@
|
|
1
|
-
import type {
|
1
|
+
import type { Libp2p } from "@libp2p/interface-libp2p";
|
2
2
|
import type { PeerId } from "@libp2p/interface-peer-id";
|
3
|
-
import
|
4
|
-
import { Cursor, IDecodedMessage, Index, IStore } from "@waku/interfaces";
|
3
|
+
import { Cursor, IDecodedMessage, IStore, ProtocolCreateOptions } from "@waku/interfaces";
|
5
4
|
import { PageDirection } from "./history_rpc.js";
|
6
5
|
export declare const StoreCodec = "/vac/waku/store/2.0.0-beta4";
|
7
6
|
export declare const DefaultPageSize = 10;
|
8
7
|
export { PageDirection };
|
9
|
-
export interface StoreComponents {
|
10
|
-
peerStore: PeerStore;
|
11
|
-
connectionManager: ConnectionManager;
|
12
|
-
}
|
13
|
-
export interface CreateOptions {
|
14
|
-
/**
|
15
|
-
* The PubSub Topic to use. Defaults to {@link DefaultPubSubTopic}.
|
16
|
-
*
|
17
|
-
* The usage of the default pubsub topic is recommended.
|
18
|
-
* See [Waku v2 Topic Usage Recommendations](https://rfc.vac.dev/spec/23/) for details.
|
19
|
-
*
|
20
|
-
* @default {@link DefaultPubSubTopic}
|
21
|
-
*/
|
22
|
-
pubSubTopic?: string;
|
23
|
-
}
|
24
8
|
export interface TimeFilter {
|
25
9
|
startTime: Date;
|
26
10
|
endTime: Date;
|
@@ -30,11 +14,6 @@ export interface QueryOptions {
|
|
30
14
|
* The peer to query. If undefined, a pseudo-random peer is selected from the connected Waku Store peers.
|
31
15
|
*/
|
32
16
|
peerId?: PeerId;
|
33
|
-
/**
|
34
|
-
* The pubsub topic to pass to the query.
|
35
|
-
* See [Waku v2 Topic Usage Recommendations](https://rfc.vac.dev/spec/23/).
|
36
|
-
*/
|
37
|
-
pubSubTopic?: string;
|
38
17
|
/**
|
39
18
|
* The direction in which pages are retrieved:
|
40
19
|
* - { @link PageDirection.BACKWARD }: Most recent page first.
|
@@ -63,6 +42,5 @@ export interface QueryOptions {
|
|
63
42
|
*/
|
64
43
|
cursor?: Cursor;
|
65
44
|
}
|
66
|
-
export declare function
|
67
|
-
export declare function
|
68
|
-
export declare function wakuStore(init?: Partial<CreateOptions>): (components: StoreComponents) => IStore;
|
45
|
+
export declare function createCursor(message: IDecodedMessage, pubsubTopic?: string): Promise<Cursor>;
|
46
|
+
export declare function wakuStore(init?: Partial<ProtocolCreateOptions>): (libp2p: Libp2p) => IStore;
|
package/dist/lib/store/index.js
CHANGED
@@ -1,15 +1,16 @@
|
|
1
1
|
import { sha256 } from "@noble/hashes/sha256";
|
2
|
-
import { concat, utf8ToBytes } from "@waku/byte-utils";
|
3
|
-
import { getPeersForProtocol, selectConnection, selectPeerForProtocol, } from "@waku/libp2p-utils";
|
4
2
|
import { proto_store as proto } from "@waku/proto";
|
3
|
+
import { isDefined } from "@waku/utils";
|
4
|
+
import { concat, utf8ToBytes } from "@waku/utils/bytes";
|
5
5
|
import debug from "debug";
|
6
6
|
import all from "it-all";
|
7
7
|
import * as lp from "it-length-prefixed";
|
8
8
|
import { pipe } from "it-pipe";
|
9
9
|
import { Uint8ArrayList } from "uint8arraylist";
|
10
|
+
import { BaseProtocol } from "../base_protocol.js";
|
10
11
|
import { DefaultPubSubTopic } from "../constants.js";
|
11
12
|
import { toProtoMessage } from "../to_proto_message.js";
|
12
|
-
import {
|
13
|
+
import { HistoryRpc, PageDirection } from "./history_rpc.js";
|
13
14
|
var HistoryError = proto.HistoryResponse.HistoryError;
|
14
15
|
const log = debug("waku:store");
|
15
16
|
export const StoreCodec = "/vac/waku/store/2.0.0-beta4";
|
@@ -20,10 +21,11 @@ export { PageDirection };
|
|
20
21
|
*
|
21
22
|
* The Waku Store protocol can be used to retrieved historical messages.
|
22
23
|
*/
|
23
|
-
class Store {
|
24
|
-
constructor(
|
25
|
-
|
26
|
-
this.
|
24
|
+
class Store extends BaseProtocol {
|
25
|
+
constructor(libp2p, options) {
|
26
|
+
super(StoreCodec, libp2p.peerStore, libp2p.getConnections.bind(libp2p));
|
27
|
+
this.libp2p = libp2p;
|
28
|
+
this.options = options ?? {};
|
27
29
|
}
|
28
30
|
/**
|
29
31
|
* Do a query to a Waku Store to retrieve historical/missed messages.
|
@@ -111,6 +113,7 @@ class Store {
|
|
111
113
|
* or if two decoders with the same content topic are passed.
|
112
114
|
*/
|
113
115
|
async *queryGenerator(decoders, options) {
|
116
|
+
const { pubSubTopic = DefaultPubSubTopic } = this.options;
|
114
117
|
let startTime, endTime;
|
115
118
|
if (options?.timeFilter) {
|
116
119
|
startTime = options.timeFilter.startTime;
|
@@ -125,7 +128,7 @@ class Store {
|
|
125
128
|
});
|
126
129
|
const contentTopics = decoders.map((dec) => dec.contentTopic);
|
127
130
|
const queryOpts = Object.assign({
|
128
|
-
pubSubTopic:
|
131
|
+
pubSubTopic: pubSubTopic,
|
129
132
|
pageDirection: PageDirection.BACKWARD,
|
130
133
|
pageSize: DefaultPageSize,
|
131
134
|
}, options, { contentTopics, startTime, endTime });
|
@@ -133,31 +136,13 @@ class Store {
|
|
133
136
|
...options,
|
134
137
|
peerId: options?.peerId?.toString(),
|
135
138
|
});
|
136
|
-
const
|
137
|
-
|
138
|
-
throw new Error("Failed to get a peer");
|
139
|
-
}
|
140
|
-
const { peer, protocol } = res;
|
141
|
-
const connections = this.components.connectionManager.getConnections(peer.id);
|
142
|
-
const connection = selectConnection(connections);
|
143
|
-
if (!connection)
|
144
|
-
throw "Failed to get a connection to the peer";
|
145
|
-
for await (const messages of paginate(connection, protocol, queryOpts, decodersAsMap, options?.cursor)) {
|
139
|
+
const peer = await this.getPeer(options?.peerId);
|
140
|
+
for await (const messages of paginate(this.newStream.bind(this, peer), queryOpts, decodersAsMap, options?.cursor)) {
|
146
141
|
yield messages;
|
147
142
|
}
|
148
143
|
}
|
149
|
-
/**
|
150
|
-
* Returns known peers from the address book (`libp2p.peerStore`) that support
|
151
|
-
* store protocol. Waku may or may not be currently connected to these peers.
|
152
|
-
*/
|
153
|
-
async peers() {
|
154
|
-
return getPeersForProtocol(this.components.peerStore, [StoreCodec]);
|
155
|
-
}
|
156
|
-
get peerStore() {
|
157
|
-
return this.components.peerStore;
|
158
|
-
}
|
159
144
|
}
|
160
|
-
async function* paginate(
|
145
|
+
async function* paginate(streamFactory, queryOpts, decoders, cursor) {
|
161
146
|
if (queryOpts.contentTopics.toString() !==
|
162
147
|
Array.from(decoders.keys()).toString()) {
|
163
148
|
throw new Error("Internal error, the decoders should match the query's content topics");
|
@@ -165,9 +150,9 @@ async function* paginate(connection, protocol, queryOpts, decoders, cursor) {
|
|
165
150
|
let currentCursor = cursor;
|
166
151
|
while (true) {
|
167
152
|
queryOpts.cursor = currentCursor;
|
168
|
-
const
|
169
|
-
|
170
|
-
|
153
|
+
const historyRpcQuery = HistoryRpc.createQuery(queryOpts);
|
154
|
+
log("Querying store peer", `for (${queryOpts.pubSubTopic})`, queryOpts.contentTopics);
|
155
|
+
const stream = await streamFactory();
|
171
156
|
const res = await pipe([historyRpcQuery.encode()], lp.encode(), stream, lp.decode(), async (source) => await all(source));
|
172
157
|
const bytes = new Uint8ArrayList();
|
173
158
|
res.forEach((chunk) => {
|
@@ -179,8 +164,7 @@ async function* paginate(connection, protocol, queryOpts, decoders, cursor) {
|
|
179
164
|
break;
|
180
165
|
}
|
181
166
|
const response = reply.response;
|
182
|
-
if (response.error &&
|
183
|
-
response.error !== HistoryError.ERROR_NONE_UNSPECIFIED) {
|
167
|
+
if (response.error && response.error !== HistoryError.NONE) {
|
184
168
|
throw "History response contains an Error: " + response.error;
|
185
169
|
}
|
186
170
|
if (!response.messages || !response.messages.length) {
|
@@ -193,7 +177,7 @@ async function* paginate(connection, protocol, queryOpts, decoders, cursor) {
|
|
193
177
|
if (typeof contentTopic !== "undefined") {
|
194
178
|
const decoder = decoders.get(contentTopic);
|
195
179
|
if (decoder) {
|
196
|
-
return decoder.fromProtoObj(toProtoMessage(protoMsg));
|
180
|
+
return decoder.fromProtoObj(queryOpts.pubSubTopic, toProtoMessage(protoMsg));
|
197
181
|
}
|
198
182
|
}
|
199
183
|
return Promise.resolve(undefined);
|
@@ -217,9 +201,6 @@ async function* paginate(connection, protocol, queryOpts, decoders, cursor) {
|
|
217
201
|
}
|
218
202
|
}
|
219
203
|
}
|
220
|
-
export function isDefined(msg) {
|
221
|
-
return !!msg;
|
222
|
-
}
|
223
204
|
export async function createCursor(message, pubsubTopic = DefaultPubSubTopic) {
|
224
205
|
if (!message ||
|
225
206
|
!message.timestamp ||
|
@@ -234,10 +215,10 @@ export async function createCursor(message, pubsubTopic = DefaultPubSubTopic) {
|
|
234
215
|
digest,
|
235
216
|
pubsubTopic,
|
236
217
|
senderTime: messageTime,
|
237
|
-
|
218
|
+
receiverTime: messageTime,
|
238
219
|
};
|
239
220
|
}
|
240
221
|
export function wakuStore(init = {}) {
|
241
|
-
return (
|
222
|
+
return (libp2p) => new Store(libp2p, init);
|
242
223
|
}
|
243
224
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/store/index.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/store/index.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"to_proto_message.js","sourceRoot":"","sources":["../../src/lib/to_proto_message.ts"],"names":[],"mappings":"AAGA,MAAM,YAAY,GAAkB;IAClC,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"to_proto_message.js","sourceRoot":"","sources":["../../src/lib/to_proto_message.ts"],"names":[],"mappings":"AAGA,MAAM,YAAY,GAAkB;IAClC,OAAO,EAAE,IAAI,UAAU,EAAE;IACzB,YAAY,EAAE,EAAE;IAChB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,SAAS;IACpB,IAAI,EAAE,SAAS;IACf,cAAc,EAAE,SAAS;IACzB,SAAS,EAAE,SAAS;CACrB,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,IAAsB;IACnD,OAAO,EAAE,GAAG,YAAY,EAAE,GAAG,IAAI,EAAE,CAAC;AACtC,CAAC"}
|
@@ -1,10 +1,6 @@
|
|
1
1
|
import { Protocols } from "@waku/interfaces";
|
2
|
-
import { PeerExchangeCodec } from "@waku/peer-exchange";
|
3
2
|
import debug from "debug";
|
4
3
|
import { pEvent } from "p-event";
|
5
|
-
import { FilterCodec } from "./filter/index.js";
|
6
|
-
import { LightPushCodec } from "./light_push/index.js";
|
7
|
-
import { StoreCodec } from "./store/index.js";
|
8
4
|
const log = debug("waku:wait-for-remote-peer");
|
9
5
|
/**
|
10
6
|
* Wait for a remote peer to be ready given the passed protocols.
|
@@ -38,22 +34,17 @@ export async function waitForRemotePeer(waku, protocols, timeoutMs) {
|
|
38
34
|
if (protocols.includes(Protocols.Store)) {
|
39
35
|
if (!waku.store)
|
40
36
|
throw new Error("Cannot wait for Store peer: protocol not mounted");
|
41
|
-
promises.push(waitForConnectedPeer(waku.store
|
37
|
+
promises.push(waitForConnectedPeer(waku.store));
|
42
38
|
}
|
43
39
|
if (protocols.includes(Protocols.LightPush)) {
|
44
40
|
if (!waku.lightPush)
|
45
41
|
throw new Error("Cannot wait for LightPush peer: protocol not mounted");
|
46
|
-
promises.push(waitForConnectedPeer(waku.lightPush
|
42
|
+
promises.push(waitForConnectedPeer(waku.lightPush));
|
47
43
|
}
|
48
44
|
if (protocols.includes(Protocols.Filter)) {
|
49
45
|
if (!waku.filter)
|
50
46
|
throw new Error("Cannot wait for Filter peer: protocol not mounted");
|
51
|
-
promises.push(waitForConnectedPeer(waku.filter
|
52
|
-
}
|
53
|
-
if (protocols.includes(Protocols.PeerExchange)) {
|
54
|
-
if (!waku.peerExchange)
|
55
|
-
throw new Error("Cannot wait for Peer Exchange peer: protocol not mounted");
|
56
|
-
promises.push(waitForConnectedPeer(waku.peerExchange, [PeerExchangeCodec]));
|
47
|
+
promises.push(waitForConnectedPeer(waku.filter));
|
57
48
|
}
|
58
49
|
if (timeoutMs) {
|
59
50
|
await rejectOnTimeout(Promise.all(promises), timeoutMs, "Timed out waiting for a remote peer.");
|
@@ -65,24 +56,22 @@ export async function waitForRemotePeer(waku, protocols, timeoutMs) {
|
|
65
56
|
/**
|
66
57
|
* Wait for a peer with the given protocol to be connected.
|
67
58
|
*/
|
68
|
-
async function waitForConnectedPeer(
|
69
|
-
const
|
59
|
+
async function waitForConnectedPeer(protocol) {
|
60
|
+
const codec = protocol.multicodec;
|
61
|
+
const peers = await protocol.peers();
|
70
62
|
if (peers.length) {
|
71
|
-
log(`${
|
63
|
+
log(`${codec} peer found: `, peers[0].id.toString());
|
72
64
|
return;
|
73
65
|
}
|
74
66
|
await new Promise((resolve) => {
|
75
67
|
const cb = (evt) => {
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
resolve();
|
81
|
-
break;
|
82
|
-
}
|
68
|
+
if (evt.detail.protocols.includes(codec)) {
|
69
|
+
log("Resolving for", codec, evt.detail.protocols);
|
70
|
+
protocol.peerStore.removeEventListener("change:protocols", cb);
|
71
|
+
resolve();
|
83
72
|
}
|
84
73
|
};
|
85
|
-
|
74
|
+
protocol.peerStore.addEventListener("change:protocols", cb);
|
86
75
|
});
|
87
76
|
}
|
88
77
|
/**
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"wait_for_remote_peer.js","sourceRoot":"","sources":["../../src/lib/wait_for_remote_peer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,
|
1
|
+
{"version":3,"file":"wait_for_remote_peer.js","sourceRoot":"","sources":["../../src/lib/wait_for_remote_peer.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/waku.d.ts
CHANGED
@@ -1,12 +1,10 @@
|
|
1
1
|
import type { Stream } from "@libp2p/interface-connection";
|
2
|
+
import type { Libp2p } from "@libp2p/interface-libp2p";
|
2
3
|
import type { PeerId } from "@libp2p/interface-peer-id";
|
3
4
|
import type { Multiaddr } from "@multiformats/multiaddr";
|
4
|
-
import type { IFilter, ILightPush,
|
5
|
+
import type { IFilter, ILightPush, IRelay, IStore, Waku } from "@waku/interfaces";
|
5
6
|
import { Protocols } from "@waku/interfaces";
|
6
|
-
import
|
7
|
-
import { FilterComponents } from "./filter/index.js";
|
8
|
-
import { LightPushComponents } from "./light_push/index.js";
|
9
|
-
import { StoreComponents } from "./store/index.js";
|
7
|
+
import { ConnectionManager } from "./connection_manager.js";
|
10
8
|
export declare const DefaultPingKeepAliveValueSecs = 0;
|
11
9
|
export declare const DefaultRelayKeepAliveValueSecs: number;
|
12
10
|
export declare const DefaultUserAgent = "js-waku";
|
@@ -15,19 +13,19 @@ export interface WakuOptions {
|
|
15
13
|
* Set keep alive frequency in seconds: Waku will send a `/ipfs/ping/1.0.0`
|
16
14
|
* request to each peer after the set number of seconds. Set to 0 to disable.
|
17
15
|
*
|
18
|
-
* @default {@link DefaultPingKeepAliveValueSecs}
|
16
|
+
* @default {@link @waku/core.DefaultPingKeepAliveValueSecs}
|
19
17
|
*/
|
20
18
|
pingKeepAlive?: number;
|
21
19
|
/**
|
22
20
|
* Set keep alive frequency in seconds: Waku will send a ping message over
|
23
21
|
* relay to each peer after the set number of seconds. Set to 0 to disable.
|
24
22
|
*
|
25
|
-
* @default {@link DefaultRelayKeepAliveValueSecs}
|
23
|
+
* @default {@link @waku/core.DefaultRelayKeepAliveValueSecs}
|
26
24
|
*/
|
27
25
|
relayKeepAlive?: number;
|
28
26
|
/**
|
29
27
|
* Set the user agent string to be used in identification of the node.
|
30
|
-
* @default {@link DefaultUserAgent}
|
28
|
+
* @default {@link @waku/core.DefaultUserAgent}
|
31
29
|
*/
|
32
30
|
userAgent?: string;
|
33
31
|
}
|
@@ -37,10 +35,8 @@ export declare class WakuNode implements Waku {
|
|
37
35
|
store?: IStore;
|
38
36
|
filter?: IFilter;
|
39
37
|
lightPush?: ILightPush;
|
40
|
-
|
41
|
-
|
42
|
-
private relayKeepAliveTimers;
|
43
|
-
constructor(options: WakuOptions, libp2p: Libp2p, store?: (components: StoreComponents) => IStore, lightPush?: (components: LightPushComponents) => ILightPush, filter?: (components: FilterComponents) => IFilter, peerExchange?: (components: PeerExchangeComponents) => IPeerExchange);
|
38
|
+
connectionManager: ConnectionManager;
|
39
|
+
constructor(options: WakuOptions, libp2p: Libp2p, store?: (libp2p: Libp2p) => IStore, lightPush?: (libp2p: Libp2p) => ILightPush, filter?: (libp2p: Libp2p) => IFilter);
|
44
40
|
/**
|
45
41
|
* Dials to the provided peer.
|
46
42
|
*
|
@@ -57,7 +53,4 @@ export declare class WakuNode implements Waku {
|
|
57
53
|
* @throws if libp2p is not listening on localhost.
|
58
54
|
*/
|
59
55
|
getLocalMultiaddrWithID(): string;
|
60
|
-
private startKeepAlive;
|
61
|
-
private stopKeepAlive;
|
62
|
-
private stopAllKeepAlives;
|
63
56
|
}
|