@waku/core 0.0.26-7eb3375.0 → 0.0.27
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 +56 -0
- package/bundle/base_protocol-LhsIWF3-.js +308 -0
- package/bundle/{browser-9a6558bb.js → browser-BQyFvtq6.js} +579 -699
- package/bundle/index-8YyfzF9R.js +650 -0
- package/bundle/index.js +3076 -21759
- package/bundle/lib/base_protocol.js +3 -3
- package/bundle/lib/message/version_0.js +3 -3
- package/bundle/lib/predefined_bootstrap_nodes.js +1 -1
- package/bundle/{version_0-7190df43.js → version_0-FXfzO8Km.js} +1368 -2459
- package/dist/.tsbuildinfo +1 -1
- package/dist/index.d.ts +2 -5
- package/dist/index.js +2 -5
- package/dist/index.js.map +1 -1
- package/dist/lib/base_protocol.d.ts +14 -10
- package/dist/lib/base_protocol.js +38 -16
- package/dist/lib/base_protocol.js.map +1 -1
- package/dist/lib/connection_manager.d.ts +2 -2
- package/dist/lib/connection_manager.js +16 -6
- package/dist/lib/connection_manager.js.map +1 -1
- package/dist/lib/filter/index.d.ts +1 -1
- package/dist/lib/filter/index.js +146 -85
- package/dist/lib/filter/index.js.map +1 -1
- package/dist/lib/filterPeers.d.ts +8 -5
- package/dist/lib/filterPeers.js +12 -5
- package/dist/lib/filterPeers.js.map +1 -1
- package/dist/lib/keep_alive_manager.d.ts +2 -3
- package/dist/lib/keep_alive_manager.js +2 -2
- package/dist/lib/keep_alive_manager.js.map +1 -1
- package/dist/lib/light_push/index.js +3 -7
- package/dist/lib/light_push/index.js.map +1 -1
- package/dist/lib/message/version_0.d.ts +3 -3
- package/dist/lib/message/version_0.js +5 -6
- package/dist/lib/message/version_0.js.map +1 -1
- package/dist/lib/metadata/index.d.ts +3 -0
- package/dist/lib/metadata/index.js +81 -0
- package/dist/lib/metadata/index.js.map +1 -0
- package/dist/lib/predefined_bootstrap_nodes.js.map +1 -1
- package/dist/lib/store/history_rpc.js.map +1 -1
- package/dist/lib/store/index.js +1 -4
- package/dist/lib/store/index.js.map +1 -1
- package/dist/lib/stream_manager.d.ts +2 -2
- package/dist/lib/stream_manager.js.map +1 -1
- package/dist/lib/wait_for_remote_peer.d.ts +1 -1
- package/dist/lib/wait_for_remote_peer.js +40 -10
- package/dist/lib/wait_for_remote_peer.js.map +1 -1
- package/package.json +129 -1
- package/src/index.ts +3 -6
- package/src/lib/base_protocol.ts +71 -24
- package/src/lib/connection_manager.ts +17 -10
- package/src/lib/filter/index.ts +237 -139
- package/src/lib/filterPeers.ts +15 -7
- package/src/lib/keep_alive_manager.ts +4 -5
- package/src/lib/light_push/index.ts +11 -11
- package/src/lib/message/version_0.ts +16 -8
- package/src/lib/metadata/index.ts +142 -0
- package/src/lib/store/index.ts +3 -7
- package/src/lib/stream_manager.ts +2 -3
- package/src/lib/wait_for_remote_peer.ts +58 -12
- package/bundle/base_protocol-46017f51.js +0 -468
- package/bundle/index-7581d519.js +0 -31
- package/dist/lib/constants.d.ts +0 -4
- package/dist/lib/constants.js +0 -5
- package/dist/lib/constants.js.map +0 -1
- package/dist/lib/waku.d.ts +0 -57
- package/dist/lib/waku.js +0 -124
- package/dist/lib/waku.js.map +0 -1
- package/src/lib/constants.ts +0 -4
- package/src/lib/waku.ts +0 -204
package/dist/lib/waku.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"waku.js","sourceRoot":"","sources":["../../src/lib/waku.ts"],"names":[],"mappings":"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"}
|
package/src/lib/constants.ts
DELETED
package/src/lib/waku.ts
DELETED
@@ -1,204 +0,0 @@
|
|
1
|
-
import type { Stream } from "@libp2p/interface/connection";
|
2
|
-
import { isPeerId, PeerId } from "@libp2p/interface/peer-id";
|
3
|
-
import { multiaddr, Multiaddr, MultiaddrInput } from "@multiformats/multiaddr";
|
4
|
-
import type {
|
5
|
-
IFilter,
|
6
|
-
ILightPush,
|
7
|
-
IRelay,
|
8
|
-
IStore,
|
9
|
-
Libp2p,
|
10
|
-
PubsubTopic,
|
11
|
-
Waku
|
12
|
-
} from "@waku/interfaces";
|
13
|
-
import { Protocols } from "@waku/interfaces";
|
14
|
-
import { Logger } from "@waku/utils";
|
15
|
-
|
16
|
-
import { ConnectionManager } from "./connection_manager.js";
|
17
|
-
|
18
|
-
export const DefaultPingKeepAliveValueSecs = 5 * 60;
|
19
|
-
export const DefaultRelayKeepAliveValueSecs = 5 * 60;
|
20
|
-
export const DefaultUserAgent = "js-waku";
|
21
|
-
|
22
|
-
const log = new Logger("waku");
|
23
|
-
|
24
|
-
export interface WakuOptions {
|
25
|
-
/**
|
26
|
-
* Set keep alive frequency in seconds: Waku will send a `/ipfs/ping/1.0.0`
|
27
|
-
* request to each peer after the set number of seconds. Set to 0 to disable.
|
28
|
-
*
|
29
|
-
* @default {@link @waku/core.DefaultPingKeepAliveValueSecs}
|
30
|
-
*/
|
31
|
-
pingKeepAlive?: number;
|
32
|
-
/**
|
33
|
-
* Set keep alive frequency in seconds: Waku will send a ping message over
|
34
|
-
* relay to each peer after the set number of seconds. Set to 0 to disable.
|
35
|
-
*
|
36
|
-
* @default {@link @waku/core.DefaultRelayKeepAliveValueSecs}
|
37
|
-
*/
|
38
|
-
relayKeepAlive?: number;
|
39
|
-
/**
|
40
|
-
* Set the user agent string to be used in identification of the node.
|
41
|
-
* @default {@link @waku/core.DefaultUserAgent}
|
42
|
-
*/
|
43
|
-
userAgent?: string;
|
44
|
-
}
|
45
|
-
|
46
|
-
export class WakuNode implements Waku {
|
47
|
-
public libp2p: Libp2p;
|
48
|
-
public relay?: IRelay;
|
49
|
-
public store?: IStore;
|
50
|
-
public filter?: IFilter;
|
51
|
-
public lightPush?: ILightPush;
|
52
|
-
public connectionManager: ConnectionManager;
|
53
|
-
|
54
|
-
constructor(
|
55
|
-
options: WakuOptions,
|
56
|
-
public readonly pubsubTopics: PubsubTopic[],
|
57
|
-
libp2p: Libp2p,
|
58
|
-
store?: (libp2p: Libp2p) => IStore,
|
59
|
-
lightPush?: (libp2p: Libp2p) => ILightPush,
|
60
|
-
filter?: (libp2p: Libp2p) => IFilter,
|
61
|
-
relay?: (libp2p: Libp2p) => IRelay
|
62
|
-
) {
|
63
|
-
this.libp2p = libp2p;
|
64
|
-
|
65
|
-
if (store) {
|
66
|
-
this.store = store(libp2p);
|
67
|
-
}
|
68
|
-
if (filter) {
|
69
|
-
this.filter = filter(libp2p);
|
70
|
-
}
|
71
|
-
if (lightPush) {
|
72
|
-
this.lightPush = lightPush(libp2p);
|
73
|
-
}
|
74
|
-
|
75
|
-
if (relay) {
|
76
|
-
this.relay = relay(libp2p);
|
77
|
-
}
|
78
|
-
|
79
|
-
const pingKeepAlive =
|
80
|
-
options.pingKeepAlive || DefaultPingKeepAliveValueSecs;
|
81
|
-
const relayKeepAlive = this.relay
|
82
|
-
? options.relayKeepAlive || DefaultRelayKeepAliveValueSecs
|
83
|
-
: 0;
|
84
|
-
|
85
|
-
const peerId = this.libp2p.peerId.toString();
|
86
|
-
|
87
|
-
this.connectionManager = ConnectionManager.create(
|
88
|
-
peerId,
|
89
|
-
libp2p,
|
90
|
-
{ pingKeepAlive, relayKeepAlive },
|
91
|
-
pubsubTopics,
|
92
|
-
this.relay
|
93
|
-
);
|
94
|
-
|
95
|
-
log.info(
|
96
|
-
"Waku node created",
|
97
|
-
peerId,
|
98
|
-
`relay: ${!!this.relay}, store: ${!!this.store}, light push: ${!!this
|
99
|
-
.lightPush}, filter: ${!!this.filter}`
|
100
|
-
);
|
101
|
-
}
|
102
|
-
|
103
|
-
/**
|
104
|
-
* Dials to the provided peer.
|
105
|
-
*
|
106
|
-
* @param peer The peer to dial
|
107
|
-
* @param protocols Waku protocols we expect from the peer; Defaults to mounted protocols
|
108
|
-
*/
|
109
|
-
async dial(
|
110
|
-
peer: PeerId | MultiaddrInput,
|
111
|
-
protocols?: Protocols[]
|
112
|
-
): Promise<Stream> {
|
113
|
-
const _protocols = protocols ?? [];
|
114
|
-
const peerId = mapToPeerIdOrMultiaddr(peer);
|
115
|
-
|
116
|
-
if (typeof protocols === "undefined") {
|
117
|
-
this.relay && _protocols.push(Protocols.Relay);
|
118
|
-
this.store && _protocols.push(Protocols.Store);
|
119
|
-
this.filter && _protocols.push(Protocols.Filter);
|
120
|
-
this.lightPush && _protocols.push(Protocols.LightPush);
|
121
|
-
}
|
122
|
-
|
123
|
-
const codecs: string[] = [];
|
124
|
-
if (_protocols.includes(Protocols.Relay)) {
|
125
|
-
if (this.relay) {
|
126
|
-
this.relay.gossipSub.multicodecs.forEach((codec: string) =>
|
127
|
-
codecs.push(codec)
|
128
|
-
);
|
129
|
-
} else {
|
130
|
-
log.error(
|
131
|
-
"Relay codec not included in dial codec: protocol not mounted locally"
|
132
|
-
);
|
133
|
-
}
|
134
|
-
}
|
135
|
-
if (_protocols.includes(Protocols.Store)) {
|
136
|
-
if (this.store) {
|
137
|
-
codecs.push(this.store.multicodec);
|
138
|
-
} else {
|
139
|
-
log.error(
|
140
|
-
"Store codec not included in dial codec: protocol not mounted locally"
|
141
|
-
);
|
142
|
-
}
|
143
|
-
}
|
144
|
-
if (_protocols.includes(Protocols.LightPush)) {
|
145
|
-
if (this.lightPush) {
|
146
|
-
codecs.push(this.lightPush.multicodec);
|
147
|
-
} else {
|
148
|
-
log.error(
|
149
|
-
"Light Push codec not included in dial codec: protocol not mounted locally"
|
150
|
-
);
|
151
|
-
}
|
152
|
-
}
|
153
|
-
if (_protocols.includes(Protocols.Filter)) {
|
154
|
-
if (this.filter) {
|
155
|
-
codecs.push(this.filter.multicodec);
|
156
|
-
} else {
|
157
|
-
log.error(
|
158
|
-
"Filter codec not included in dial codec: protocol not mounted locally"
|
159
|
-
);
|
160
|
-
}
|
161
|
-
}
|
162
|
-
|
163
|
-
log.info(`Dialing to ${peerId.toString()} with protocols ${_protocols}`);
|
164
|
-
|
165
|
-
return this.libp2p.dialProtocol(peerId, codecs);
|
166
|
-
}
|
167
|
-
|
168
|
-
async start(): Promise<void> {
|
169
|
-
await this.libp2p.start();
|
170
|
-
}
|
171
|
-
|
172
|
-
async stop(): Promise<void> {
|
173
|
-
this.connectionManager.stop();
|
174
|
-
await this.libp2p.stop();
|
175
|
-
}
|
176
|
-
|
177
|
-
isStarted(): boolean {
|
178
|
-
return this.libp2p.isStarted();
|
179
|
-
}
|
180
|
-
|
181
|
-
isConnected(): boolean {
|
182
|
-
return this.connectionManager.isConnected();
|
183
|
-
}
|
184
|
-
|
185
|
-
/**
|
186
|
-
* Return the local multiaddr with peer id on which libp2p is listening.
|
187
|
-
*
|
188
|
-
* @throws if libp2p is not listening on localhost.
|
189
|
-
*/
|
190
|
-
getLocalMultiaddrWithID(): string {
|
191
|
-
const localMultiaddr = this.libp2p
|
192
|
-
.getMultiaddrs()
|
193
|
-
.find((addr) => addr.toString().match(/127\.0\.0\.1/));
|
194
|
-
if (!localMultiaddr || localMultiaddr.toString() === "") {
|
195
|
-
throw "Not listening on localhost";
|
196
|
-
}
|
197
|
-
return localMultiaddr + "/p2p/" + this.libp2p.peerId.toString();
|
198
|
-
}
|
199
|
-
}
|
200
|
-
function mapToPeerIdOrMultiaddr(
|
201
|
-
peerId: PeerId | MultiaddrInput
|
202
|
-
): PeerId | Multiaddr {
|
203
|
-
return isPeerId(peerId) ? peerId : multiaddr(peerId);
|
204
|
-
}
|