mirror of
https://github.com/logos-messaging/docs.waku.org.git
synced 2026-05-23 16:49:34 +00:00
add store config
This commit is contained in:
parent
efc53adcf2
commit
1d6a015ce9
@ -60,6 +60,7 @@
|
|||||||
"nwakunode",
|
"nwakunode",
|
||||||
"tlsv",
|
"tlsv",
|
||||||
"rustup",
|
"rustup",
|
||||||
|
"storenode",
|
||||||
],
|
],
|
||||||
"flagWords": [],
|
"flagWords": [],
|
||||||
"ignorePaths": [
|
"ignorePaths": [
|
||||||
|
|||||||
@ -66,7 +66,7 @@ The `ephemeral` option allows you to specify whether your messages should be per
|
|||||||
```js
|
```js
|
||||||
const encoder = createEncoder({
|
const encoder = createEncoder({
|
||||||
contentTopic: contentTopic, // message content topic
|
contentTopic: contentTopic, // message content topic
|
||||||
ephemeral: true, // allows messages to be stored or not
|
ephemeral: true, // allows messages to be persisted or not
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@ -15,22 +15,59 @@ To join the Waku Network, nodes must [bootstrap](/overview/reference/glossary#bo
|
|||||||
|
|
||||||
## Configure a Domain Name
|
## Configure a Domain Name
|
||||||
|
|
||||||
You can set up an IPv4 DNS domain name that resolves to the public IPv4 address of a node. This allows the node's publicly announced multiaddrs to use the `/dns4` scheme.
|
You can set up an IPv4 DNS domain name that resolves to the public IPv4 address of a node using the `dns4-domain-name` option. This allows the node's publicly announced multiaddrs to use the `/dns4` scheme.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./build/wakunode2 --dns4-domain-name=[DOMAIN NAME]
|
./build/wakunode2 --dns4-domain-name=[DOMAIN NAME]
|
||||||
```
|
```
|
||||||
|
|
||||||
:::info
|
|
||||||
This example describes configuring a domain name that resolves to your node's IP address and is unrelated to [DNS Discovery](/overview/concepts/dns-discovery).
|
|
||||||
:::
|
|
||||||
|
|
||||||
For example, consider the domain name `node.example.com`, which resolves to a `nwaku` node:
|
For example, consider the domain name `node.example.com`, which resolves to a `nwaku` node:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./build/wakunode2 --dns4-domain-name=node.example.com
|
./build/wakunode2 --dns4-domain-name=node.example.com
|
||||||
```
|
```
|
||||||
|
|
||||||
:::info
|
|
||||||
Nodes with a domain name and secure WebSocket configured will generate a discoverable ENR with `/wss` multiaddr and `/dns4` domain name, essential for verifying domain certificates when connecting securely.
|
Nodes with a domain name and secure WebSocket configured will generate a discoverable ENR with `/wss` multiaddr and `/dns4` domain name, essential for verifying domain certificates when connecting securely.
|
||||||
:::
|
|
||||||
|
:::info
|
||||||
|
This example describes configuring a domain name that resolves to your node's IP address and is unrelated to [DNS Discovery](/overview/concepts/dns-discovery).
|
||||||
|
:::
|
||||||
|
|
||||||
|
## Configure Store Protocol and Message Store
|
||||||
|
|
||||||
|
To enable `nwaku` to be a [store service node](/overview/concepts/protocols#store), use the following configuration options:
|
||||||
|
|
||||||
|
- `store`: Enables `Waku Store` protocol on the node (disabled by default).
|
||||||
|
- `store-message-retention-policy`: Retention policy of the store node (how long messages will be persisted). Two different retention policies are supported:
|
||||||
|
- Time retention policy: `time:<duration-in-seconds>` (e.g., `time:14400`)
|
||||||
|
- Capacity retention policy: `capacity:<messages-count>` (e.g, `capacity:25000`)
|
||||||
|
- Set this option to an empty string to disable the retention policy.
|
||||||
|
- `store-message-db-url`: Database connection URL for persisting messages in the [SQLAlchemy database URL format](https://docs.sqlalchemy.org/en/20/core/engines.html#database-urls). Setting this option to an empty string will instruct the node to use the fallback in-memory message store.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./build/wakunode2 \
|
||||||
|
--store=true \
|
||||||
|
--store-message-retention-policy=[MESSAGE RETENTION POLICY] \
|
||||||
|
--store-message-db-url=[DATABASE CONNECTION URL]
|
||||||
|
```
|
||||||
|
|
||||||
|
For example, consider a `nwaku` node that is configured to be a `Store` protocol and retain messages received in the last `15,000` seconds:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./build/wakunode2 \
|
||||||
|
--store=true \
|
||||||
|
--store-message-retention-policy=time:15000 \
|
||||||
|
--store-message-db-url=sqlite://store.sqlite3
|
||||||
|
```
|
||||||
|
|
||||||
|
You can configure `nwaku` as a `Waku Store` client using the `storenode` option. This allows the node to query peers for historical messages but not store any message itself.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./build/wakunode2 --storenode=[STORE PEER MULTIADDR]
|
||||||
|
```
|
||||||
|
|
||||||
|
For example, consider a `nwaku` node that does not persist messages but can query peers for historical messages:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./build/wakunode2 --storenode=/dns4/node-01.ac-cn-hongkong-c.wakuv2.prod.statusim.net/tcp/30303/p2p/16Uiu2HAm4v86W3bmT1BiH6oSPzcsSr24iDQpSN5Qa992BCjjwgrD
|
||||||
|
```
|
||||||
@ -38,7 +38,7 @@ docker run [OPTIONS] [IMAGE] [ARG...]
|
|||||||
Run `nwaku` using the most typical configuration:
|
Run `nwaku` using the most typical configuration:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker run -i -t -p 60000:60000 -p 9000:9000/udp statusteam/nim-waku:v0.19.0 \
|
docker run -i -t -p 60000:60000 -p 9000:9000/udp statusteam/nim-waku:v0.20.0 \
|
||||||
--dns-discovery=true \
|
--dns-discovery=true \
|
||||||
--dns-discovery-url=enrtree://AOGECG2SPND25EEFMAJ5WF3KSGJNSGV356DSTL2YVLLZWIV6SAYBM@prod.waku.nodes.status.im \
|
--dns-discovery-url=enrtree://AOGECG2SPND25EEFMAJ5WF3KSGJNSGV356DSTL2YVLLZWIV6SAYBM@prod.waku.nodes.status.im \
|
||||||
--discv5-discovery=true \
|
--discv5-discovery=true \
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user