mirror of
https://github.com/waku-org/nwaku.git
synced 2025-02-12 15:06:38 +00:00
deploy: c0d858af1dd0b98e989cdabbfcb65a3c309de25c
This commit is contained in:
parent
271ae58b27
commit
fe7b3adca8
@ -44,10 +44,10 @@ The `chat2` application can retrieve historical chat messages from a node suppor
|
||||
./build/chat2 --storenode:/ip4/134.209.139.210/tcp/30303/p2p/16Uiu2HAmPLe7Mzm8TsYUubgCAW1aJoeFScxrLj8ppHFivPo97bUZ
|
||||
```
|
||||
|
||||
Alternatively, the `chat2` application will select a random `storenode` for you from the test fleet if the `store` option is set to `true` and `storenode` left unspecified.
|
||||
Alternatively, the `chat2` application will select a random `storenode` for you from the test fleet if `storenode` left unspecified.
|
||||
|
||||
```
|
||||
./build/chat2 --store:true
|
||||
./build/chat2
|
||||
```
|
||||
|
||||
> *NOTE: Currently (Mar 3, 2021) the only node in the test fleet that provides reliable store functionality is `/ip4/134.209.139.210/tcp/30303/p2p/16Uiu2HAmPLe7Mzm8TsYUubgCAW1aJoeFScxrLj8ppHFivPo97bUZ`. We're working on fixing this.*
|
||||
|
@ -20,8 +20,11 @@ Run two nodes and connect them:
|
||||
./build/wakunode2 --ports-shift:1 --staticnode:/ip4/0.0.0.0/tcp/60000/p2p/16Uiu2HAmF4tuht6fmna6uDqoSMgFqhUrdaVR6VQRyGr6sCpfS2jp --storenode:/ip4/0.0.0.0/tcp/60000/p2p/16Uiu2HAmF4tuht6fmna6uDqoSMgFqhUrdaVR6VQRyGr6sCpfS2jp
|
||||
```
|
||||
|
||||
When passing the flag `dbpath` with a path, messages are persisted and stored in a database called `store` under the specified path.
|
||||
When none is passed, messages are not persisted and are only stored in-memory.
|
||||
When flag `persist-messages` is passed messages are going to be persisted in-memory.
|
||||
If additionally flag `dbpath` is passed with a path, messages are persisted and stored in a database called `store` under the specified path.
|
||||
If flag `persist-messages` is not passed, messages are not persisted and stored at all.
|
||||
|
||||
|
||||
|
||||
You should see your nodes connecting.
|
||||
|
||||
|
@ -278,7 +278,7 @@ proc processInput(rfd: AsyncFD, rng: ref BrHmacDrbgContext) {.async.} =
|
||||
node.mountSwap()
|
||||
|
||||
if (conf.storenode != "") or (conf.store == true):
|
||||
node.mountStore()
|
||||
node.mountStore(persistMessages = conf.persistmessages)
|
||||
|
||||
var storenode: string
|
||||
|
||||
|
@ -225,7 +225,7 @@ procSuite "Waku v2 JSON-RPC API":
|
||||
key = wakunode2.PrivateKey.random(ECDSA, rng[]).get()
|
||||
peer = PeerInfo.init(key)
|
||||
|
||||
node.mountStore()
|
||||
node.mountStore(persistMessages = true)
|
||||
let
|
||||
subscription = node.wakuStore.subscription()
|
||||
|
||||
@ -518,7 +518,7 @@ procSuite "Waku v2 JSON-RPC API":
|
||||
|
||||
node.mountFilter()
|
||||
node.mountSwap()
|
||||
node.mountStore()
|
||||
node.mountStore(persistMessages = true)
|
||||
|
||||
# Create and set some peers
|
||||
let
|
||||
|
@ -101,7 +101,7 @@ procSuite "Peer Manager":
|
||||
|
||||
node.mountFilter()
|
||||
node.mountSwap()
|
||||
node.mountStore()
|
||||
node.mountStore(persistMessages = true)
|
||||
|
||||
node.wakuFilter.setPeer(filterPeer)
|
||||
node.wakuSwap.setPeer(swapPeer)
|
||||
|
@ -62,10 +62,10 @@ procSuite "Waku SWAP Accounting":
|
||||
# Start nodes and mount protocols
|
||||
await node1.start()
|
||||
node1.mountSwap()
|
||||
node1.mountStore()
|
||||
node1.mountStore(persistMessages = true)
|
||||
await node2.start()
|
||||
node2.mountSwap()
|
||||
node2.mountStore()
|
||||
node2.mountStore(persistMessages = true)
|
||||
|
||||
await node2.subscriptions.notify("/waku/2/default-waku/proto", message)
|
||||
|
||||
@ -108,10 +108,10 @@ procSuite "Waku SWAP Accounting":
|
||||
# Start nodes and mount protocols
|
||||
await node1.start()
|
||||
node1.mountSwap()
|
||||
node1.mountStore()
|
||||
node1.mountStore(persistMessages = true)
|
||||
await node2.start()
|
||||
node2.mountSwap()
|
||||
node2.mountStore()
|
||||
node2.mountStore(persistMessages = true)
|
||||
|
||||
await node2.subscriptions.notify("/waku/2/default-waku/proto", message)
|
||||
|
||||
|
@ -225,9 +225,9 @@ procSuite "WakuNode":
|
||||
var completionFut = newFuture[bool]()
|
||||
|
||||
await node1.start()
|
||||
node1.mountStore()
|
||||
node1.mountStore(persistMessages = true)
|
||||
await node2.start()
|
||||
node2.mountStore()
|
||||
node2.mountStore(persistMessages = true)
|
||||
|
||||
await node2.subscriptions.notify("/waku/2/default-waku/proto", message)
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
# libtool - Provide generalized library-building support services.
|
||||
# Generated automatically by config.status (libbacktrace) version-unused
|
||||
# Libtool was configured on host fv-az182-872:
|
||||
# Libtool was configured on host fv-az199-718:
|
||||
# NOTE: Changes made to this file will be lost: look at ltmain.sh.
|
||||
#
|
||||
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
|
||||
|
@ -114,8 +114,13 @@ type
|
||||
|
||||
store* {.
|
||||
desc: "Flag whether to start store protocol",
|
||||
defaultValue: false
|
||||
defaultValue: true
|
||||
name: "store" }: bool
|
||||
|
||||
persistmessages* {.
|
||||
desc: "Enable message persistence: true|false",
|
||||
defaultValue: false
|
||||
name: "persist-messages" }: bool
|
||||
|
||||
filter* {.
|
||||
desc: "Flag whether to start filter protocol",
|
||||
|
@ -219,7 +219,7 @@ when isMainModule:
|
||||
|
||||
# Mount configured Waku v2 protocols
|
||||
if conf.store:
|
||||
mountStore(bridge.nodev2)
|
||||
mountStore(bridge.nodev2, persistMessages = conf.persistmessages)
|
||||
|
||||
if conf.filter:
|
||||
mountFilter(bridge.nodev2)
|
||||
|
@ -53,9 +53,14 @@ type
|
||||
defaultValue: ""
|
||||
name: "storenode" }: string
|
||||
|
||||
persistmessages* {.
|
||||
desc: "Enable message persistence: true|false",
|
||||
defaultValue: false
|
||||
name: "persist-messages" }: bool
|
||||
|
||||
store* {.
|
||||
desc: "Enable store protocol: true|false",
|
||||
defaultValue: false
|
||||
defaultValue: true
|
||||
name: "store" }: bool
|
||||
|
||||
filter* {.
|
||||
|
@ -394,7 +394,7 @@ proc mountSwap*(node: WakuNode) =
|
||||
# NYI - Do we need this?
|
||||
#node.subscriptions.subscribe(WakuSwapCodec, node.wakuSwap.subscription())
|
||||
|
||||
proc mountStore*(node: WakuNode, store: MessageStore = nil) =
|
||||
proc mountStore*(node: WakuNode, store: MessageStore = nil, persistMessages: bool) =
|
||||
info "mounting store"
|
||||
|
||||
if node.wakuSwap.isNil:
|
||||
@ -405,7 +405,8 @@ proc mountStore*(node: WakuNode, store: MessageStore = nil) =
|
||||
node.wakuStore = WakuStore.init(node.peerManager, node.rng, store, node.wakuSwap)
|
||||
|
||||
node.switch.mount(node.wakuStore)
|
||||
node.subscriptions.subscribe(WakuStoreCodec, node.wakuStore.subscription())
|
||||
if persistMessages:
|
||||
node.subscriptions.subscribe(WakuStoreCodec, node.wakuStore.subscription())
|
||||
|
||||
proc mountRlnRelay*(node: WakuNode, ethClientAddress: Option[string] = none(string), ethAccountAddress: Option[Address] = none(Address), membershipContractAddress: Option[Address] = none(Address)) {.async.} =
|
||||
# TODO return a bool value to indicate the success of the call
|
||||
@ -678,7 +679,7 @@ when isMainModule:
|
||||
if (conf.storenode != "") or (conf.store):
|
||||
var store: WakuMessageStore
|
||||
|
||||
if not sqliteDatabase.isNil:
|
||||
if (not sqliteDatabase.isNil) and conf.persistmessages:
|
||||
let res = WakuMessageStore.init(sqliteDatabase)
|
||||
if res.isErr:
|
||||
warn "failed to init WakuMessageStore", err = res.error
|
||||
@ -686,7 +687,7 @@ when isMainModule:
|
||||
else:
|
||||
store = res.value
|
||||
|
||||
mountStore(node, store)
|
||||
mountStore(node, store, conf.persistmessages)
|
||||
|
||||
if conf.storenode != "":
|
||||
setStorePeer(node, conf.storenode)
|
||||
|
Loading…
x
Reference in New Issue
Block a user