@waku/core 0.0.21 → 0.0.23
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 +48 -0
- package/bundle/base_protocol-84d9b670.js +1198 -0
- package/bundle/index.js +1163 -1281
- package/bundle/lib/base_protocol.js +2 -116
- package/bundle/lib/message/version_0.js +1 -1
- package/bundle/lib/predefined_bootstrap_nodes.js +6 -6
- package/bundle/{version_0-86411fdf.js → version_0-74b4b9db.js} +875 -794
- package/dist/.tsbuildinfo +1 -0
- package/dist/index.d.ts +6 -5
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/dist/lib/base_protocol.d.ts +18 -5
- package/dist/lib/base_protocol.js +25 -8
- package/dist/lib/base_protocol.js.map +1 -1
- package/dist/lib/connection_manager.d.ts +3 -5
- package/dist/lib/connection_manager.js +53 -45
- package/dist/lib/connection_manager.js.map +1 -1
- package/dist/lib/filter/filter_rpc.js +4 -4
- package/dist/lib/filter/index.d.ts +4 -0
- package/dist/lib/filter/index.js +24 -27
- package/dist/lib/filter/index.js.map +1 -1
- package/dist/lib/filterPeers.d.ts +10 -0
- package/dist/lib/filterPeers.js +31 -0
- package/dist/lib/filterPeers.js.map +1 -0
- package/dist/lib/keep_alive_manager.d.ts +4 -6
- package/dist/lib/keep_alive_manager.js +27 -8
- package/dist/lib/keep_alive_manager.js.map +1 -1
- package/dist/lib/light_push/index.js +62 -33
- package/dist/lib/light_push/index.js.map +1 -1
- package/dist/lib/light_push/push_rpc.js +2 -2
- package/dist/lib/message/version_0.d.ts +1 -1
- package/dist/lib/message/version_0.js +3 -3
- package/dist/lib/message/version_0.js.map +1 -1
- package/dist/lib/predefined_bootstrap_nodes.js +6 -6
- package/dist/lib/store/history_rpc.js +3 -3
- package/dist/lib/store/index.d.ts +0 -5
- package/dist/lib/store/index.js +54 -37
- package/dist/lib/store/index.js.map +1 -1
- package/dist/lib/stream_manager.d.ts +15 -0
- package/dist/lib/stream_manager.js +53 -0
- package/dist/lib/stream_manager.js.map +1 -0
- package/dist/lib/to_proto_message.js +1 -1
- package/dist/lib/waku.d.ts +2 -2
- package/dist/lib/waku.js +1 -1
- package/package.json +16 -22
- package/src/index.ts +7 -13
- package/src/lib/base_protocol.ts +49 -18
- package/src/lib/connection_manager.ts +82 -66
- package/src/lib/filter/filter_rpc.ts +4 -4
- package/src/lib/filter/index.ts +32 -39
- package/src/lib/filterPeers.ts +43 -0
- package/src/lib/keep_alive_manager.ts +34 -14
- package/src/lib/light_push/index.ts +103 -47
- package/src/lib/light_push/push_rpc.ts +2 -2
- package/src/lib/message/version_0.ts +8 -5
- package/src/lib/predefined_bootstrap_nodes.ts +7 -7
- package/src/lib/store/history_rpc.ts +4 -4
- package/src/lib/store/index.ts +70 -51
- package/src/lib/stream_manager.ts +69 -0
- package/src/lib/to_proto_message.ts +1 -1
- package/src/lib/wait_for_remote_peer.ts +1 -1
- package/src/lib/waku.ts +3 -3
@@ -37,7 +37,7 @@ export class FilterSubscribeRpc {
|
|
37
37
|
requestId: uuid(),
|
38
38
|
filterSubscribeType: proto.FilterSubscribeRequest.FilterSubscribeType.SUBSCRIBE,
|
39
39
|
pubsubTopic,
|
40
|
-
contentTopics
|
40
|
+
contentTopics
|
41
41
|
});
|
42
42
|
}
|
43
43
|
static createUnsubscribeRequest(pubsubTopic, contentTopics) {
|
@@ -45,7 +45,7 @@ export class FilterSubscribeRpc {
|
|
45
45
|
requestId: uuid(),
|
46
46
|
filterSubscribeType: proto.FilterSubscribeRequest.FilterSubscribeType.UNSUBSCRIBE,
|
47
47
|
pubsubTopic,
|
48
|
-
contentTopics
|
48
|
+
contentTopics
|
49
49
|
});
|
50
50
|
}
|
51
51
|
static createUnsubscribeAllRequest(pubsubTopic) {
|
@@ -53,7 +53,7 @@ export class FilterSubscribeRpc {
|
|
53
53
|
requestId: uuid(),
|
54
54
|
filterSubscribeType: proto.FilterSubscribeRequest.FilterSubscribeType.UNSUBSCRIBE_ALL,
|
55
55
|
pubsubTopic,
|
56
|
-
contentTopics: []
|
56
|
+
contentTopics: []
|
57
57
|
});
|
58
58
|
}
|
59
59
|
static createSubscriberPingRequest() {
|
@@ -61,7 +61,7 @@ export class FilterSubscribeRpc {
|
|
61
61
|
requestId: uuid(),
|
62
62
|
filterSubscribeType: proto.FilterSubscribeRequest.FilterSubscribeType.SUBSCRIBER_PING,
|
63
63
|
pubsubTopic: "",
|
64
|
-
contentTopics: []
|
64
|
+
contentTopics: []
|
65
65
|
});
|
66
66
|
}
|
67
67
|
static decode(bytes) {
|
package/dist/lib/filter/index.js
CHANGED
@@ -5,11 +5,11 @@ import * as lp from "it-length-prefixed";
|
|
5
5
|
import { pipe } from "it-pipe";
|
6
6
|
import { BaseProtocol } from "../base_protocol.js";
|
7
7
|
import { DefaultPubSubTopic } from "../constants.js";
|
8
|
-
import { FilterPushRpc, FilterSubscribeResponse, FilterSubscribeRpc
|
8
|
+
import { FilterPushRpc, FilterSubscribeResponse, FilterSubscribeRpc } from "./filter_rpc.js";
|
9
9
|
const log = debug("waku:filter:v2");
|
10
|
-
const FilterCodecs = {
|
10
|
+
export const FilterCodecs = {
|
11
11
|
SUBSCRIBE: "/vac/waku/filter-subscribe/2.0.0-beta1",
|
12
|
-
PUSH: "/vac/waku/filter-push/2.0.0-beta1"
|
12
|
+
PUSH: "/vac/waku/filter-push/2.0.0-beta1"
|
13
13
|
};
|
14
14
|
class Subscription {
|
15
15
|
peer;
|
@@ -52,7 +52,7 @@ class Subscription {
|
|
52
52
|
// Decoder that decode to different implementations of `IDecodedMessage`
|
53
53
|
const subscriptionCallback = {
|
54
54
|
decoders,
|
55
|
-
callback
|
55
|
+
callback
|
56
56
|
};
|
57
57
|
// The callback and decoder may override previous values, this is on
|
58
58
|
// purpose as the user may call `subscribe` to refresh the subscription
|
@@ -117,6 +117,7 @@ class Subscription {
|
|
117
117
|
class Filter extends BaseProtocol {
|
118
118
|
options;
|
119
119
|
activeSubscriptions = new Map();
|
120
|
+
NUM_PEERS_PROTOCOL = 1;
|
120
121
|
getActiveSubscription(pubSubTopic, peerIdStr) {
|
121
122
|
return this.activeSubscriptions.get(`${pubSubTopic}_${peerIdStr}`);
|
122
123
|
}
|
@@ -132,15 +133,18 @@ class Filter extends BaseProtocol {
|
|
132
133
|
this.activeSubscriptions = new Map();
|
133
134
|
this.options = options ?? {};
|
134
135
|
}
|
135
|
-
async createSubscription(pubSubTopic
|
136
|
+
async createSubscription(pubSubTopic) {
|
136
137
|
const _pubSubTopic = pubSubTopic ?? this.options.pubSubTopic ?? DefaultPubSubTopic;
|
137
|
-
const peer = await this.
|
138
|
+
const peer = (await this.getPeers({
|
139
|
+
maxBootstrapPeers: 1,
|
140
|
+
numPeers: this.NUM_PEERS_PROTOCOL
|
141
|
+
}))[0];
|
138
142
|
const subscription = this.getActiveSubscription(_pubSubTopic, peer.id.toString()) ??
|
139
|
-
this.setActiveSubscription(_pubSubTopic, peer.id.toString(), new Subscription(_pubSubTopic, peer, this.
|
143
|
+
this.setActiveSubscription(_pubSubTopic, peer.id.toString(), new Subscription(_pubSubTopic, peer, this.getStream.bind(this, peer)));
|
140
144
|
return subscription;
|
141
145
|
}
|
142
|
-
toSubscriptionIterator(decoders
|
143
|
-
return toAsyncIterator(this, decoders
|
146
|
+
toSubscriptionIterator(decoders) {
|
147
|
+
return toAsyncIterator(this, decoders);
|
144
148
|
}
|
145
149
|
/**
|
146
150
|
* This method is used to satisfy the `IReceiver` interface.
|
@@ -157,8 +161,8 @@ class Filter extends BaseProtocol {
|
|
157
161
|
* This method should not be used directly.
|
158
162
|
* Instead, use `createSubscription` to create a new subscription.
|
159
163
|
*/
|
160
|
-
async subscribe(decoders, callback
|
161
|
-
const subscription = await this.createSubscription(
|
164
|
+
async subscribe(decoders, callback) {
|
165
|
+
const subscription = await this.createSubscription();
|
162
166
|
await subscription.subscribe(decoders, callback);
|
163
167
|
const contentTopics = Array.from(groupByContentTopic(Array.isArray(decoders) ? decoders : [decoders]).keys());
|
164
168
|
return async () => {
|
@@ -209,22 +213,15 @@ async function pushMessage(subscriptionCallback, pubSubTopic, message) {
|
|
209
213
|
log("Message has no content topic, skipping");
|
210
214
|
return;
|
211
215
|
}
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
log("Not able to decode message");
|
222
|
-
continue;
|
223
|
-
}
|
224
|
-
// This is just to prevent more decoding attempt
|
225
|
-
// TODO: Could be better if we were to abort promises
|
226
|
-
didDecodeMsg = Boolean(decoded);
|
227
|
-
await callback(decoded);
|
216
|
+
try {
|
217
|
+
const decodePromises = decoders.map((dec) => dec
|
218
|
+
.fromProtoObj(pubSubTopic, message)
|
219
|
+
.then((decoded) => decoded || Promise.reject("Decoding failed")));
|
220
|
+
const decodedMessage = await Promise.any(decodePromises);
|
221
|
+
await callback(decodedMessage);
|
222
|
+
}
|
223
|
+
catch (e) {
|
224
|
+
log("Error decoding message", e);
|
228
225
|
}
|
229
226
|
}
|
230
227
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/filter/index.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/filter/index.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { Peer } from "@libp2p/interface/peer-store";
|
2
|
+
/**
|
3
|
+
* Retrieves a list of peers based on the specified criteria.
|
4
|
+
*
|
5
|
+
* @param peers - The list of peers to filter from.
|
6
|
+
* @param numPeers - The total number of peers to retrieve. If 0, all peers are returned.
|
7
|
+
* @param maxBootstrapPeers - The maximum number of bootstrap peers to retrieve.
|
8
|
+
* @returns A Promise that resolves to an array of peers based on the specified criteria.
|
9
|
+
*/
|
10
|
+
export declare function filterPeers(peers: Peer[], numPeers: number, maxBootstrapPeers: number): Promise<Peer[]>;
|
@@ -0,0 +1,31 @@
|
|
1
|
+
import { Tags } from "@waku/interfaces";
|
2
|
+
/**
|
3
|
+
* Retrieves a list of peers based on the specified criteria.
|
4
|
+
*
|
5
|
+
* @param peers - The list of peers to filter from.
|
6
|
+
* @param numPeers - The total number of peers to retrieve. If 0, all peers are returned.
|
7
|
+
* @param maxBootstrapPeers - The maximum number of bootstrap peers to retrieve.
|
8
|
+
* @returns A Promise that resolves to an array of peers based on the specified criteria.
|
9
|
+
*/
|
10
|
+
export async function filterPeers(peers, numPeers, maxBootstrapPeers) {
|
11
|
+
// Collect the bootstrap peers up to the specified maximum
|
12
|
+
const bootstrapPeers = peers
|
13
|
+
.filter((peer) => peer.tags.has(Tags.BOOTSTRAP))
|
14
|
+
.slice(0, maxBootstrapPeers);
|
15
|
+
// Collect non-bootstrap peers
|
16
|
+
const nonBootstrapPeers = peers.filter((peer) => !peer.tags.has(Tags.BOOTSTRAP));
|
17
|
+
// If numPeers is 0, return all peers
|
18
|
+
if (numPeers === 0) {
|
19
|
+
return [...bootstrapPeers, ...nonBootstrapPeers];
|
20
|
+
}
|
21
|
+
// Initialize the list of selected peers with the bootstrap peers
|
22
|
+
const selectedPeers = [...bootstrapPeers];
|
23
|
+
// Fill up to numPeers with remaining random peers if needed
|
24
|
+
while (selectedPeers.length < numPeers && nonBootstrapPeers.length > 0) {
|
25
|
+
const randomIndex = Math.floor(Math.random() * nonBootstrapPeers.length);
|
26
|
+
const randomPeer = nonBootstrapPeers.splice(randomIndex, 1)[0];
|
27
|
+
selectedPeers.push(randomPeer);
|
28
|
+
}
|
29
|
+
return selectedPeers;
|
30
|
+
}
|
31
|
+
//# sourceMappingURL=filterPeers.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"filterPeers.js","sourceRoot":"","sources":["../../src/lib/filterPeers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,KAAa,EACb,QAAgB,EAChB,iBAAyB;IAEzB,0DAA0D;IAC1D,MAAM,cAAc,GAAG,KAAK;SACzB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC/C,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;IAE/B,8BAA8B;IAC9B,MAAM,iBAAiB,GAAG,KAAK,CAAC,MAAM,CACpC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CACzC,CAAC;IAEF,qCAAqC;IACrC,IAAI,QAAQ,KAAK,CAAC,EAAE;QAClB,OAAO,CAAC,GAAG,cAAc,EAAE,GAAG,iBAAiB,CAAC,CAAC;KAClD;IAED,iEAAiE;IACjE,MAAM,aAAa,GAAW,CAAC,GAAG,cAAc,CAAC,CAAC;IAElD,4DAA4D;IAC5D,OAAO,aAAa,CAAC,MAAM,GAAG,QAAQ,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;QACtE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACzE,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAChC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC"}
|
@@ -1,18 +1,16 @@
|
|
1
|
-
import type { PeerId } from "@libp2p/interface
|
1
|
+
import type { PeerId } from "@libp2p/interface/peer-id";
|
2
|
+
import type { PeerStore } from "@libp2p/interface/peer-store";
|
2
3
|
import type { IRelay } from "@waku/interfaces";
|
4
|
+
import type { KeepAliveOptions } from "@waku/interfaces";
|
3
5
|
import type { PingService } from "libp2p/ping";
|
4
6
|
export declare const RelayPingContentTopic = "/relay-ping/1/ping/null";
|
5
|
-
export interface KeepAliveOptions {
|
6
|
-
pingKeepAlive: number;
|
7
|
-
relayKeepAlive: number;
|
8
|
-
}
|
9
7
|
export declare class KeepAliveManager {
|
10
8
|
private pingKeepAliveTimers;
|
11
9
|
private relayKeepAliveTimers;
|
12
10
|
private options;
|
13
11
|
private relay?;
|
14
12
|
constructor(options: KeepAliveOptions, relay?: IRelay);
|
15
|
-
start(peerId: PeerId, libp2pPing: PingService): void;
|
13
|
+
start(peerId: PeerId, libp2pPing: PingService, peerStore: PeerStore): void;
|
16
14
|
stop(peerId: PeerId): void;
|
17
15
|
stopAll(): void;
|
18
16
|
}
|
@@ -1,5 +1,6 @@
|
|
1
|
+
import { utf8ToBytes } from "@waku/utils/bytes";
|
1
2
|
import debug from "debug";
|
2
|
-
import { createEncoder } from "
|
3
|
+
import { createEncoder } from "./message/version_0.js";
|
3
4
|
export const RelayPingContentTopic = "/relay-ping/1/ping/null";
|
4
5
|
const log = debug("waku:keep-alive");
|
5
6
|
export class KeepAliveManager {
|
@@ -13,16 +14,34 @@ export class KeepAliveManager {
|
|
13
14
|
this.options = options;
|
14
15
|
this.relay = relay;
|
15
16
|
}
|
16
|
-
start(peerId, libp2pPing) {
|
17
|
-
// Just in case a timer already
|
17
|
+
start(peerId, libp2pPing, peerStore) {
|
18
|
+
// Just in case a timer already exists for this peer
|
18
19
|
this.stop(peerId);
|
19
20
|
const { pingKeepAlive: pingPeriodSecs, relayKeepAlive: relayPeriodSecs } = this.options;
|
20
21
|
const peerIdStr = peerId.toString();
|
21
22
|
if (pingPeriodSecs !== 0) {
|
22
23
|
const interval = setInterval(() => {
|
23
|
-
|
24
|
-
|
25
|
-
|
24
|
+
void (async () => {
|
25
|
+
try {
|
26
|
+
// ping the peer for keep alive
|
27
|
+
// also update the peer store with the latency
|
28
|
+
const ping = await libp2pPing.ping(peerId);
|
29
|
+
log(`Ping succeeded (${peerIdStr})`, ping);
|
30
|
+
try {
|
31
|
+
await peerStore.patch(peerId, {
|
32
|
+
metadata: {
|
33
|
+
ping: utf8ToBytes(ping.toString())
|
34
|
+
}
|
35
|
+
});
|
36
|
+
}
|
37
|
+
catch (e) {
|
38
|
+
log("Failed to update ping", e);
|
39
|
+
}
|
40
|
+
}
|
41
|
+
catch (e) {
|
42
|
+
log(`Ping failed (${peerIdStr})`, e);
|
43
|
+
}
|
44
|
+
})();
|
26
45
|
}, pingPeriodSecs * 1000);
|
27
46
|
this.pingKeepAliveTimers.set(peerIdStr, interval);
|
28
47
|
}
|
@@ -30,7 +49,7 @@ export class KeepAliveManager {
|
|
30
49
|
if (relay && relayPeriodSecs !== 0) {
|
31
50
|
const encoder = createEncoder({
|
32
51
|
contentTopic: RelayPingContentTopic,
|
33
|
-
ephemeral: true
|
52
|
+
ephemeral: true
|
34
53
|
});
|
35
54
|
const interval = setInterval(() => {
|
36
55
|
log("Sending Waku Relay ping message");
|
@@ -55,7 +74,7 @@ export class KeepAliveManager {
|
|
55
74
|
stopAll() {
|
56
75
|
for (const timer of [
|
57
76
|
...Object.values(this.pingKeepAliveTimers),
|
58
|
-
...Object.values(this.relayKeepAliveTimers)
|
77
|
+
...Object.values(this.relayKeepAliveTimers)
|
59
78
|
]) {
|
60
79
|
clearInterval(timer);
|
61
80
|
}
|
@@ -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,4 +1,4 @@
|
|
1
|
-
import { SendError
|
1
|
+
import { SendError } from "@waku/interfaces";
|
2
2
|
import { PushResponse } from "@waku/proto";
|
3
3
|
import { isSizeValid } from "@waku/utils";
|
4
4
|
import debug from "debug";
|
@@ -17,60 +17,89 @@ export { PushResponse };
|
|
17
17
|
*/
|
18
18
|
class LightPush extends BaseProtocol {
|
19
19
|
options;
|
20
|
+
NUM_PEERS_PROTOCOL = 1;
|
20
21
|
constructor(libp2p, options) {
|
21
22
|
super(LightPushCodec, libp2p.components);
|
22
23
|
this.options = options || {};
|
23
24
|
}
|
24
|
-
async
|
25
|
-
const { pubSubTopic = DefaultPubSubTopic } = this.options;
|
26
|
-
const peer = await this.getPeer(opts?.peerId);
|
27
|
-
const stream = await this.newStream(peer);
|
28
|
-
const recipients = [];
|
29
|
-
let error = undefined;
|
25
|
+
async preparePushMessage(encoder, message, pubSubTopic) {
|
30
26
|
try {
|
31
27
|
if (!isSizeValid(message.payload)) {
|
32
|
-
log("Failed to send waku light push: message is bigger
|
33
|
-
return {
|
34
|
-
recipients,
|
35
|
-
error: SendError.SIZE_TOO_BIG,
|
36
|
-
};
|
28
|
+
log("Failed to send waku light push: message is bigger than 1MB");
|
29
|
+
return { query: null, error: SendError.SIZE_TOO_BIG };
|
37
30
|
}
|
38
31
|
const protoMessage = await encoder.toProtoObj(message);
|
39
32
|
if (!protoMessage) {
|
40
33
|
log("Failed to encode to protoMessage, aborting push");
|
41
34
|
return {
|
42
|
-
|
43
|
-
error: SendError.ENCODE_FAILED
|
35
|
+
query: null,
|
36
|
+
error: SendError.ENCODE_FAILED
|
44
37
|
};
|
45
38
|
}
|
46
39
|
const query = PushRpc.createRequest(protoMessage, pubSubTopic);
|
47
|
-
|
40
|
+
return { query, error: null };
|
41
|
+
}
|
42
|
+
catch (error) {
|
43
|
+
log("Failed to prepare push message", error);
|
44
|
+
return {
|
45
|
+
query: null,
|
46
|
+
error: SendError.GENERIC_FAIL
|
47
|
+
};
|
48
|
+
}
|
49
|
+
}
|
50
|
+
async send(encoder, message) {
|
51
|
+
const { pubSubTopic = DefaultPubSubTopic } = this.options;
|
52
|
+
const recipients = [];
|
53
|
+
const { query, error: preparationError } = await this.preparePushMessage(encoder, message, pubSubTopic);
|
54
|
+
if (preparationError || !query) {
|
55
|
+
return {
|
56
|
+
recipients,
|
57
|
+
errors: [preparationError]
|
58
|
+
};
|
59
|
+
}
|
60
|
+
const peers = await this.getPeers({
|
61
|
+
maxBootstrapPeers: 1,
|
62
|
+
numPeers: this.NUM_PEERS_PROTOCOL
|
63
|
+
});
|
64
|
+
const promises = peers.map(async (peer) => {
|
65
|
+
let error;
|
66
|
+
const stream = await this.getStream(peer);
|
48
67
|
try {
|
49
|
-
const
|
50
|
-
|
51
|
-
bytes
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
68
|
+
const res = await pipe([query.encode()], lp.encode, stream, lp.decode, async (source) => await all(source));
|
69
|
+
try {
|
70
|
+
const bytes = new Uint8ArrayList();
|
71
|
+
res.forEach((chunk) => {
|
72
|
+
bytes.append(chunk);
|
73
|
+
});
|
74
|
+
const response = PushRpc.decode(bytes).response;
|
75
|
+
if (response?.isSuccess) {
|
76
|
+
recipients.some((recipient) => recipient.equals(peer.id)) ||
|
77
|
+
recipients.push(peer.id);
|
78
|
+
}
|
79
|
+
else {
|
80
|
+
log("No response in PushRPC");
|
81
|
+
error = SendError.NO_RPC_RESPONSE;
|
82
|
+
}
|
56
83
|
}
|
57
|
-
|
58
|
-
log("
|
59
|
-
error = SendError.
|
84
|
+
catch (err) {
|
85
|
+
log("Failed to decode push reply", err);
|
86
|
+
error = SendError.DECODE_FAILED;
|
60
87
|
}
|
61
88
|
}
|
62
89
|
catch (err) {
|
63
|
-
log("Failed to
|
64
|
-
error = SendError.
|
90
|
+
log("Failed to send waku light push request", err);
|
91
|
+
error = SendError.GENERIC_FAIL;
|
65
92
|
}
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
93
|
+
return { recipients, error };
|
94
|
+
});
|
95
|
+
const results = await Promise.allSettled(promises);
|
96
|
+
const errors = results
|
97
|
+
.filter((result) => result.status === "fulfilled")
|
98
|
+
.map((result) => result.value.error)
|
99
|
+
.filter((error) => error !== undefined);
|
71
100
|
return {
|
72
|
-
error,
|
73
101
|
recipients,
|
102
|
+
errors
|
74
103
|
};
|
75
104
|
}
|
76
105
|
}
|
@@ -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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"}
|
@@ -32,7 +32,7 @@ export declare class Encoder implements IEncoder {
|
|
32
32
|
* { @link @waku/interfaces.Relay.send } to automatically encode outgoing
|
33
33
|
* messages.
|
34
34
|
*/
|
35
|
-
export declare function createEncoder({ contentTopic, ephemeral, metaSetter
|
35
|
+
export declare function createEncoder({ contentTopic, ephemeral, metaSetter }: EncoderOptions): Encoder;
|
36
36
|
export declare class Decoder implements IDecoder<DecodedMessage> {
|
37
37
|
contentTopic: string;
|
38
38
|
constructor(contentTopic: string);
|
@@ -74,7 +74,7 @@ export class Encoder {
|
|
74
74
|
timestamp: BigInt(timestamp.valueOf()) * OneMillion,
|
75
75
|
meta: undefined,
|
76
76
|
rateLimitProof: message.rateLimitProof,
|
77
|
-
ephemeral: this.ephemeral
|
77
|
+
ephemeral: this.ephemeral
|
78
78
|
};
|
79
79
|
if (this.metaSetter) {
|
80
80
|
const meta = this.metaSetter(protoMessage);
|
@@ -92,7 +92,7 @@ export class Encoder {
|
|
92
92
|
* { @link @waku/interfaces.Relay.send } to automatically encode outgoing
|
93
93
|
* messages.
|
94
94
|
*/
|
95
|
-
export function createEncoder({ contentTopic, ephemeral, metaSetter
|
95
|
+
export function createEncoder({ contentTopic, ephemeral, metaSetter }) {
|
96
96
|
return new Encoder(contentTopic, ephemeral, metaSetter);
|
97
97
|
}
|
98
98
|
export class Decoder {
|
@@ -113,7 +113,7 @@ export class Decoder {
|
|
113
113
|
timestamp: protoMessage.timestamp ?? undefined,
|
114
114
|
meta: protoMessage.meta ?? undefined,
|
115
115
|
rateLimitProof: protoMessage.rateLimitProof ?? undefined,
|
116
|
-
ephemeral: protoMessage.ephemeral ?? false
|
116
|
+
ephemeral: protoMessage.ephemeral ?? false
|
117
117
|
});
|
118
118
|
}
|
119
119
|
async fromProtoObj(pubSubTopic, proto) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"version_0.js","sourceRoot":"","sources":["../../../src/lib/message/version_0.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,aAAa,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,GAAG,GAAG,KAAK,CAAC,wBAAwB,CAAC,CAAC;AAC5C,MAAM,UAAU,GAAG,MAAM,CAAC,OAAS,CAAC,CAAC;AAErC,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC;AACzB,OAAO,EAAE,KAAK,EAAE,CAAC;AAEjB,MAAM,OAAO,cAAc;
|
1
|
+
{"version":3,"file":"version_0.js","sourceRoot":"","sources":["../../../src/lib/message/version_0.ts"],"names":[],"mappings":"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"}
|
@@ -39,16 +39,16 @@ export const fleets = {
|
|
39
39
|
"waku-websocket": {
|
40
40
|
"node-01.ac-cn-hongkong-c.wakuv2.prod": "/dns4/node-01.ac-cn-hongkong-c.wakuv2.prod.statusim.net/tcp/8000/wss/p2p/16Uiu2HAm4v86W3bmT1BiH6oSPzcsSr24iDQpSN5Qa992BCjjwgrD",
|
41
41
|
"node-01.do-ams3.wakuv2.prod": "/dns4/node-01.do-ams3.wakuv2.prod.statusim.net/tcp/8000/wss/p2p/16Uiu2HAmL5okWopX7NqZWBUKVqW8iUxCEmd5GMHLVPwCgzYzQv3e",
|
42
|
-
"node-01.gc-us-central1-a.wakuv2.prod": "/dns4/node-01.gc-us-central1-a.wakuv2.prod.statusim.net/tcp/8000/wss/p2p/16Uiu2HAmVkKntsECaYfefR1V2yCR79CegLATuTPE6B9TxgxBiiiA"
|
43
|
-
}
|
42
|
+
"node-01.gc-us-central1-a.wakuv2.prod": "/dns4/node-01.gc-us-central1-a.wakuv2.prod.statusim.net/tcp/8000/wss/p2p/16Uiu2HAmVkKntsECaYfefR1V2yCR79CegLATuTPE6B9TxgxBiiiA"
|
43
|
+
}
|
44
44
|
},
|
45
45
|
"wakuv2.test": {
|
46
46
|
"waku-websocket": {
|
47
47
|
"node-01.ac-cn-hongkong-c.wakuv2.test": "/dns4/node-01.ac-cn-hongkong-c.wakuv2.test.statusim.net/tcp/8000/wss/p2p/16Uiu2HAkvWiyFsgRhuJEb9JfjYxEkoHLgnUQmr1N5mKWnYjxYRVm",
|
48
48
|
"node-01.do-ams3.wakuv2.test": "/dns4/node-01.do-ams3.wakuv2.test.statusim.net/tcp/8000/wss/p2p/16Uiu2HAmPLe7Mzm8TsYUubgCAW1aJoeFScxrLj8ppHFivPo97bUZ",
|
49
|
-
"node-01.gc-us-central1-a.wakuv2.test": "/dns4/node-01.gc-us-central1-a.wakuv2.test.statusim.net/tcp/8000/wss/p2p/16Uiu2HAmJb2e28qLXxT5kZxVUUoJt72EMzNGXB47Rxx5hw3q4YjS"
|
50
|
-
}
|
51
|
-
}
|
52
|
-
}
|
49
|
+
"node-01.gc-us-central1-a.wakuv2.test": "/dns4/node-01.gc-us-central1-a.wakuv2.test.statusim.net/tcp/8000/wss/p2p/16Uiu2HAmJb2e28qLXxT5kZxVUUoJt72EMzNGXB47Rxx5hw3q4YjS"
|
50
|
+
}
|
51
|
+
}
|
52
|
+
}
|
53
53
|
};
|
54
54
|
//# sourceMappingURL=predefined_bootstrap_nodes.js.map
|
@@ -28,7 +28,7 @@ export class HistoryRpc {
|
|
28
28
|
const pagingInfo = {
|
29
29
|
pageSize: BigInt(params.pageSize),
|
30
30
|
cursor: params.cursor,
|
31
|
-
direction
|
31
|
+
direction
|
32
32
|
};
|
33
33
|
let startTime, endTime;
|
34
34
|
if (params.startTime) {
|
@@ -46,9 +46,9 @@ export class HistoryRpc {
|
|
46
46
|
contentFilters,
|
47
47
|
pagingInfo,
|
48
48
|
startTime,
|
49
|
-
endTime
|
49
|
+
endTime
|
50
50
|
},
|
51
|
-
response: undefined
|
51
|
+
response: undefined
|
52
52
|
});
|
53
53
|
}
|
54
54
|
decode(bytes) {
|
@@ -1,4 +1,3 @@
|
|
1
|
-
import type { PeerId } from "@libp2p/interface-peer-id";
|
2
1
|
import { Cursor, IDecodedMessage, IStore, Libp2p, ProtocolCreateOptions } from "@waku/interfaces";
|
3
2
|
import { PageDirection } from "./history_rpc.js";
|
4
3
|
export declare const StoreCodec = "/vac/waku/store/2.0.0-beta4";
|
@@ -9,10 +8,6 @@ export interface TimeFilter {
|
|
9
8
|
endTime: Date;
|
10
9
|
}
|
11
10
|
export interface QueryOptions {
|
12
|
-
/**
|
13
|
-
* The peer to query. If undefined, a pseudo-random peer is selected from the connected Waku Store peers.
|
14
|
-
*/
|
15
|
-
peerId?: PeerId;
|
16
11
|
/**
|
17
12
|
* The direction in which pages are retrieved:
|
18
13
|
* - { @link PageDirection.BACKWARD }: Most recent page first.
|