mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-01-05 23:43:07 +00:00
feat: deprecate tree_path and rlnDB (#3577)
This commit is contained in:
parent
04fdf0a8c1
commit
3c9b355879
@ -567,7 +567,6 @@ proc processInput(rfd: AsyncFD, rng: ref HmacDrbgContext) {.async.} =
|
|||||||
),
|
),
|
||||||
userMessageLimit: conf.rlnRelayUserMessageLimit,
|
userMessageLimit: conf.rlnRelayUserMessageLimit,
|
||||||
epochSizeSec: conf.rlnEpochSizeSec,
|
epochSizeSec: conf.rlnEpochSizeSec,
|
||||||
treePath: conf.rlnRelayTreePath,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
waitFor node.mountRlnRelay(rlnConf, spamHandler = some(spamHandler))
|
waitFor node.mountRlnRelay(rlnConf, spamHandler = some(spamHandler))
|
||||||
|
|||||||
@ -283,12 +283,6 @@ type
|
|||||||
name: "rln-relay-epoch-sec"
|
name: "rln-relay-epoch-sec"
|
||||||
.}: uint64
|
.}: uint64
|
||||||
|
|
||||||
rlnRelayTreePath* {.
|
|
||||||
desc: "Path to the RLN merkle tree sled db (https://github.com/spacejam/sled)",
|
|
||||||
defaultValue: "",
|
|
||||||
name: "rln-relay-tree-path"
|
|
||||||
.}: string
|
|
||||||
|
|
||||||
# NOTE: Keys are different in nim-libp2p
|
# NOTE: Keys are different in nim-libp2p
|
||||||
proc parseCmdArg*(T: type crypto.PrivateKey, p: string): T =
|
proc parseCmdArg*(T: type crypto.PrivateKey, p: string): T =
|
||||||
try:
|
try:
|
||||||
|
|||||||
@ -29,7 +29,6 @@ The following options are available:
|
|||||||
--rln-relay Enable spam protection through rln-relay: true|false [=true].
|
--rln-relay Enable spam protection through rln-relay: true|false [=true].
|
||||||
--rln-relay-dynamic Enable waku-rln-relay with on-chain dynamic group management: true|false
|
--rln-relay-dynamic Enable waku-rln-relay with on-chain dynamic group management: true|false
|
||||||
[=true].
|
[=true].
|
||||||
--rln-relay-tree-path Path to the RLN merkle tree sled db (https://github.com/spacejam/sled).
|
|
||||||
--rln-relay-eth-client-address HTTP address of an Ethereum testnet client e.g., http://localhost:8540/
|
--rln-relay-eth-client-address HTTP address of an Ethereum testnet client e.g., http://localhost:8540/
|
||||||
[=http://localhost:8540/].
|
[=http://localhost:8540/].
|
||||||
--rln-relay-eth-contract-address Address of membership contract on an Ethereum testnet.
|
--rln-relay-eth-contract-address Address of membership contract on an Ethereum testnet.
|
||||||
|
|||||||
@ -640,7 +640,6 @@ when isMainModule:
|
|||||||
credIndex: some(uint(0)),
|
credIndex: some(uint(0)),
|
||||||
ethContractAddress: conf.rlnRelayEthContractAddress,
|
ethContractAddress: conf.rlnRelayEthContractAddress,
|
||||||
ethClientUrls: conf.ethClientUrls.mapIt(string(it)),
|
ethClientUrls: conf.ethClientUrls.mapIt(string(it)),
|
||||||
treePath: conf.rlnRelayTreePath,
|
|
||||||
epochSizeSec: conf.rlnEpochSizeSec,
|
epochSizeSec: conf.rlnEpochSizeSec,
|
||||||
creds: none(RlnRelayCreds),
|
creds: none(RlnRelayCreds),
|
||||||
onFatalErrorAction: onFatalErrorAction,
|
onFatalErrorAction: onFatalErrorAction,
|
||||||
|
|||||||
@ -80,12 +80,6 @@ type NetworkMonitorConf* = object
|
|||||||
name: "rln-relay-dynamic"
|
name: "rln-relay-dynamic"
|
||||||
.}: bool
|
.}: bool
|
||||||
|
|
||||||
rlnRelayTreePath* {.
|
|
||||||
desc: "Path to the RLN merkle tree sled db (https://github.com/spacejam/sled)",
|
|
||||||
defaultValue: "",
|
|
||||||
name: "rln-relay-tree-path"
|
|
||||||
.}: string
|
|
||||||
|
|
||||||
ethClientUrls* {.
|
ethClientUrls* {.
|
||||||
desc:
|
desc:
|
||||||
"HTTP address of an Ethereum testnet client e.g., http://localhost:8540/. Argument may be repeated.",
|
"HTTP address of an Ethereum testnet client e.g., http://localhost:8540/. Argument may be repeated.",
|
||||||
|
|||||||
@ -61,7 +61,6 @@ fi
|
|||||||
|
|
||||||
if [ "${CLUSTER_ID}" -eq 1 ]; then
|
if [ "${CLUSTER_ID}" -eq 1 ]; then
|
||||||
RLN_RELAY_CRED_PATH=--rln-relay-cred-path=${RLN_RELAY_CRED_PATH:-/keystore/keystore.json}
|
RLN_RELAY_CRED_PATH=--rln-relay-cred-path=${RLN_RELAY_CRED_PATH:-/keystore/keystore.json}
|
||||||
RLN_TREE_PATH=--rln-relay-tree-path="/etc/rln_tree"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "${RLN_RELAY_CRED_PASSWORD}" ]; then
|
if [ -n "${RLN_RELAY_CRED_PASSWORD}" ]; then
|
||||||
|
|||||||
@ -10,7 +10,6 @@ import
|
|||||||
libp2p/crypto/crypto
|
libp2p/crypto/crypto
|
||||||
import
|
import
|
||||||
../../tools/rln_keystore_generator/rln_keystore_generator,
|
../../tools/rln_keystore_generator/rln_keystore_generator,
|
||||||
../../tools/rln_db_inspector/rln_db_inspector,
|
|
||||||
waku/[
|
waku/[
|
||||||
common/logging,
|
common/logging,
|
||||||
factory/external_config,
|
factory/external_config,
|
||||||
@ -48,9 +47,6 @@ when isMainModule:
|
|||||||
of generateRlnKeystore:
|
of generateRlnKeystore:
|
||||||
let conf = wakuNodeConf.toKeystoreGeneratorConf()
|
let conf = wakuNodeConf.toKeystoreGeneratorConf()
|
||||||
doRlnKeystoreGenerator(conf)
|
doRlnKeystoreGenerator(conf)
|
||||||
of inspectRlnDb:
|
|
||||||
let conf = wakuNodeConf.toInspectRlnDbConf()
|
|
||||||
doInspectRlnDb(conf)
|
|
||||||
of noCommand:
|
of noCommand:
|
||||||
let conf = wakuNodeConf.toWakuConf().valueOr:
|
let conf = wakuNodeConf.toWakuConf().valueOr:
|
||||||
error "Waku configuration failed", error = error
|
error "Waku configuration failed", error = error
|
||||||
|
|||||||
@ -1,36 +0,0 @@
|
|||||||
# rln-db-inspector
|
|
||||||
|
|
||||||
This document describes how to run and use the `rln-db-inspector` tool.
|
|
||||||
It is meant to be used to debug and fetch the metadata stored in the RLN tree db.
|
|
||||||
|
|
||||||
## Pre-requisites
|
|
||||||
|
|
||||||
1. An existing RLN tree db
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
1. First, we compile the binary
|
|
||||||
|
|
||||||
```bash
|
|
||||||
make -j16 wakunode2
|
|
||||||
```
|
|
||||||
This command will fetch the rln static library and link it automatically.
|
|
||||||
|
|
||||||
|
|
||||||
2. Define the arguments you wish to use
|
|
||||||
|
|
||||||
```bash
|
|
||||||
export RLN_TREE_DB_PATH="xxx"
|
|
||||||
```
|
|
||||||
|
|
||||||
3. Run the db inspector
|
|
||||||
|
|
||||||
```bash
|
|
||||||
./build/wakunode2 inspectRlnDb \
|
|
||||||
--rln-relay-tree-path:$RLN_TREE_DB_PATH
|
|
||||||
```
|
|
||||||
|
|
||||||
What this does is -
|
|
||||||
a. loads the tree db from the path provided
|
|
||||||
b. Logs out the metadata, including, number of leaves set, past 5 merkle roots, last synced block number
|
|
||||||
|
|
||||||
@ -64,7 +64,6 @@ suite "Waku external config - apply preset":
|
|||||||
preset: "twn",
|
preset: "twn",
|
||||||
relay: true,
|
relay: true,
|
||||||
ethClientUrls: @["http://someaddress".EthRpcUrl],
|
ethClientUrls: @["http://someaddress".EthRpcUrl],
|
||||||
rlnRelayTreePath: "/tmp/sometreepath",
|
|
||||||
)
|
)
|
||||||
|
|
||||||
## When
|
## When
|
||||||
@ -149,7 +148,6 @@ suite "Waku external config - apply preset":
|
|||||||
clusterId: 1.uint16,
|
clusterId: 1.uint16,
|
||||||
relay: true,
|
relay: true,
|
||||||
ethClientUrls: @["http://someaddress".EthRpcUrl],
|
ethClientUrls: @["http://someaddress".EthRpcUrl],
|
||||||
rlnRelayTreePath: "/tmp/sometreepath",
|
|
||||||
)
|
)
|
||||||
|
|
||||||
## When
|
## When
|
||||||
|
|||||||
@ -27,7 +27,6 @@ suite "Waku Conf - build with cluster conf":
|
|||||||
builder.rlnRelayConf.withEthClientUrls(@["https://my_eth_rpc_url/"])
|
builder.rlnRelayConf.withEthClientUrls(@["https://my_eth_rpc_url/"])
|
||||||
builder.withNetworkConf(networkConf)
|
builder.withNetworkConf(networkConf)
|
||||||
builder.withRelay(true)
|
builder.withRelay(true)
|
||||||
builder.rlnRelayConf.withTreePath("/tmp/test-tree-path")
|
|
||||||
|
|
||||||
## When
|
## When
|
||||||
let resConf = builder.build()
|
let resConf = builder.build()
|
||||||
@ -180,7 +179,6 @@ suite "Waku Conf - build with cluster conf":
|
|||||||
builder.rlnRelayConf.withEthContractAddress(contractAddress)
|
builder.rlnRelayConf.withEthContractAddress(contractAddress)
|
||||||
builder.withNetworkConf(networkConf)
|
builder.withNetworkConf(networkConf)
|
||||||
builder.withRelay(true)
|
builder.withRelay(true)
|
||||||
builder.rlnRelayConf.withTreePath("/tmp/test")
|
|
||||||
|
|
||||||
## When
|
## When
|
||||||
let resConf = builder.build()
|
let resConf = builder.build()
|
||||||
|
|||||||
@ -138,11 +138,7 @@ suite "RLN Proofs as a Lightpush Service":
|
|||||||
manager = waitFor setupOnchainGroupManager()
|
manager = waitFor setupOnchainGroupManager()
|
||||||
|
|
||||||
# mount rln-relay
|
# mount rln-relay
|
||||||
let wakuRlnConfig = getWakuRlnConfig(
|
let wakuRlnConfig = getWakuRlnConfig(manager = manager, index = MembershipIndex(1))
|
||||||
manager = manager,
|
|
||||||
treePath = genTempPath("rln_tree", "wakunode_1"),
|
|
||||||
index = MembershipIndex(1),
|
|
||||||
)
|
|
||||||
|
|
||||||
await allFutures(server.start(), client.start())
|
await allFutures(server.start(), client.start())
|
||||||
await server.start()
|
await server.start()
|
||||||
|
|||||||
@ -132,11 +132,7 @@ suite "RLN Proofs as a Lightpush Service":
|
|||||||
manager = waitFor setupOnchainGroupManager()
|
manager = waitFor setupOnchainGroupManager()
|
||||||
|
|
||||||
# mount rln-relay
|
# mount rln-relay
|
||||||
let wakuRlnConfig = getWakuRlnConfig(
|
let wakuRlnConfig = getWakuRlnConfig(manager = manager, index = MembershipIndex(1))
|
||||||
manager = manager,
|
|
||||||
treePath = genTempPath("rln_tree", "wakunode_1"),
|
|
||||||
index = MembershipIndex(1),
|
|
||||||
)
|
|
||||||
|
|
||||||
await allFutures(server.start(), client.start())
|
await allFutures(server.start(), client.start())
|
||||||
await server.start()
|
await server.start()
|
||||||
|
|||||||
@ -86,7 +86,6 @@ proc getWakuRlnConfigOnChain*(
|
|||||||
credIndex: some(credIndex),
|
credIndex: some(credIndex),
|
||||||
ethContractAddress: rlnRelayEthContractAddress,
|
ethContractAddress: rlnRelayEthContractAddress,
|
||||||
ethClientAddress: ethClientAddress.get(EthClient),
|
ethClientAddress: ethClientAddress.get(EthClient),
|
||||||
treePath: genTempPath("rln_tree", "wakunode_" & $credIndex),
|
|
||||||
epochSizeSec: 1,
|
epochSizeSec: 1,
|
||||||
onFatalErrorAction: fatalErrorHandler.get(fatalErrorVoidHandler),
|
onFatalErrorAction: fatalErrorHandler.get(fatalErrorVoidHandler),
|
||||||
# If these are used, initialisation fails with "failed to mount WakuRlnRelay: could not initialize the group manager: the commitment does not have a membership"
|
# If these are used, initialisation fails with "failed to mount WakuRlnRelay: could not initialize the group manager: the commitment does not have a membership"
|
||||||
@ -228,7 +227,6 @@ suite "Waku RlnRelay - End to End - Static":
|
|||||||
dynamic: true,
|
dynamic: true,
|
||||||
credIndex: some(0.uint),
|
credIndex: some(0.uint),
|
||||||
userMessageLimit: 111,
|
userMessageLimit: 111,
|
||||||
treepath: genTempPath("rln_tree", "wakunode_0"),
|
|
||||||
ethClientAddress: EthClient,
|
ethClientAddress: EthClient,
|
||||||
ethContractAddress: $contractAddress,
|
ethContractAddress: $contractAddress,
|
||||||
chainId: 1337,
|
chainId: 1337,
|
||||||
|
|||||||
@ -42,12 +42,7 @@ proc newTestWakuRelay*(switch = newTestSwitch()): Future[WakuRelay] {.async.} =
|
|||||||
|
|
||||||
proc setupRln*(node: WakuNode, identifier: uint) {.async.} =
|
proc setupRln*(node: WakuNode, identifier: uint) {.async.} =
|
||||||
await node.mountRlnRelay(
|
await node.mountRlnRelay(
|
||||||
WakuRlnConfig(
|
WakuRlnConfig(dynamic: false, credIndex: some(identifier), epochSizeSec: 1)
|
||||||
dynamic: false,
|
|
||||||
credIndex: some(identifier),
|
|
||||||
treePath: genTempPath("rln_tree", "wakunode_" & $identifier),
|
|
||||||
epochSizeSec: 1,
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
proc subscribeToContentTopicWithHandler*(
|
proc subscribeToContentTopicWithHandler*(
|
||||||
|
|||||||
@ -8,7 +8,7 @@ import
|
|||||||
]
|
]
|
||||||
|
|
||||||
proc createRLNInstanceWrapper*(): RLNResult =
|
proc createRLNInstanceWrapper*(): RLNResult =
|
||||||
return createRlnInstance(tree_path = genTempPath("rln_tree", "waku_rln_relay"))
|
return createRlnInstance()
|
||||||
|
|
||||||
proc unsafeAppendRLNProof*(
|
proc unsafeAppendRLNProof*(
|
||||||
rlnPeer: WakuRLNRelay, msg: var WakuMessage, epoch: Epoch, messageId: MessageId
|
rlnPeer: WakuRLNRelay, msg: var WakuMessage, epoch: Epoch, messageId: MessageId
|
||||||
@ -39,7 +39,6 @@ proc getWakuRlnConfig*(
|
|||||||
manager: OnchainGroupManager,
|
manager: OnchainGroupManager,
|
||||||
userMessageLimit: uint64 = 1,
|
userMessageLimit: uint64 = 1,
|
||||||
epochSizeSec: uint64 = 1,
|
epochSizeSec: uint64 = 1,
|
||||||
treePath: string = genTempPath("rln_tree", "waku_rln_relay"),
|
|
||||||
index: MembershipIndex = MembershipIndex(0),
|
index: MembershipIndex = MembershipIndex(0),
|
||||||
): WakuRlnConfig =
|
): WakuRlnConfig =
|
||||||
let wakuRlnConfig = WakuRlnConfig(
|
let wakuRlnConfig = WakuRlnConfig(
|
||||||
@ -50,7 +49,6 @@ proc getWakuRlnConfig*(
|
|||||||
credIndex: some(index),
|
credIndex: some(index),
|
||||||
userMessageLimit: userMessageLimit,
|
userMessageLimit: userMessageLimit,
|
||||||
epochSizeSec: epochSizeSec,
|
epochSizeSec: epochSizeSec,
|
||||||
treePath: treePath,
|
|
||||||
ethPrivateKey: some(manager.ethPrivateKey.get()),
|
ethPrivateKey: some(manager.ethPrivateKey.get()),
|
||||||
onFatalErrorAction: proc(errStr: string) =
|
onFatalErrorAction: proc(errStr: string) =
|
||||||
warn "non-fatal onchain test error", errStr
|
warn "non-fatal onchain test error", errStr
|
||||||
|
|||||||
@ -56,11 +56,7 @@ procSuite "WakuNode - RLN relay":
|
|||||||
assert false, "Failed to mount relay"
|
assert false, "Failed to mount relay"
|
||||||
|
|
||||||
# mount rlnrelay in off-chain mode
|
# mount rlnrelay in off-chain mode
|
||||||
let wakuRlnConfig1 = getWakuRlnConfig(
|
let wakuRlnConfig1 = getWakuRlnConfig(manager = manager, index = MembershipIndex(1))
|
||||||
manager = manager,
|
|
||||||
treePath = genTempPath("rln_tree", "wakunode_1"),
|
|
||||||
index = MembershipIndex(1),
|
|
||||||
)
|
|
||||||
|
|
||||||
await node1.mountRlnRelay(wakuRlnConfig1)
|
await node1.mountRlnRelay(wakuRlnConfig1)
|
||||||
await node1.start()
|
await node1.start()
|
||||||
@ -82,11 +78,7 @@ procSuite "WakuNode - RLN relay":
|
|||||||
(await node2.mountRelay()).isOkOr:
|
(await node2.mountRelay()).isOkOr:
|
||||||
assert false, "Failed to mount relay"
|
assert false, "Failed to mount relay"
|
||||||
# mount rlnrelay in off-chain mode
|
# mount rlnrelay in off-chain mode
|
||||||
let wakuRlnConfig2 = getWakuRlnConfig(
|
let wakuRlnConfig2 = getWakuRlnConfig(manager = manager, index = MembershipIndex(2))
|
||||||
manager = manager,
|
|
||||||
treePath = genTempPath("rln_tree", "wakunode_2"),
|
|
||||||
index = MembershipIndex(2),
|
|
||||||
)
|
|
||||||
|
|
||||||
await node2.mountRlnRelay(wakuRlnConfig2)
|
await node2.mountRlnRelay(wakuRlnConfig2)
|
||||||
await node2.start()
|
await node2.start()
|
||||||
@ -99,11 +91,7 @@ procSuite "WakuNode - RLN relay":
|
|||||||
(await node3.mountRelay()).isOkOr:
|
(await node3.mountRelay()).isOkOr:
|
||||||
assert false, "Failed to mount relay"
|
assert false, "Failed to mount relay"
|
||||||
|
|
||||||
let wakuRlnConfig3 = getWakuRlnConfig(
|
let wakuRlnConfig3 = getWakuRlnConfig(manager = manager, index = MembershipIndex(3))
|
||||||
manager = manager,
|
|
||||||
treePath = genTempPath("rln_tree", "wakunode_3"),
|
|
||||||
index = MembershipIndex(3),
|
|
||||||
)
|
|
||||||
|
|
||||||
await node3.mountRlnRelay(wakuRlnConfig3)
|
await node3.mountRlnRelay(wakuRlnConfig3)
|
||||||
await node3.start()
|
await node3.start()
|
||||||
@ -186,11 +174,8 @@ procSuite "WakuNode - RLN relay":
|
|||||||
|
|
||||||
# mount rlnrelay in off-chain mode
|
# mount rlnrelay in off-chain mode
|
||||||
for index, node in nodes:
|
for index, node in nodes:
|
||||||
let wakuRlnConfig = getWakuRlnConfig(
|
let wakuRlnConfig =
|
||||||
manager = manager,
|
getWakuRlnConfig(manager = manager, index = MembershipIndex(index + 1))
|
||||||
treePath = genTempPath("rln_tree", "wakunode_" & $(index + 1)),
|
|
||||||
index = MembershipIndex(index + 1),
|
|
||||||
)
|
|
||||||
|
|
||||||
await node.mountRlnRelay(wakuRlnConfig)
|
await node.mountRlnRelay(wakuRlnConfig)
|
||||||
await node.start()
|
await node.start()
|
||||||
@ -308,11 +293,7 @@ procSuite "WakuNode - RLN relay":
|
|||||||
assert false, "Failed to mount relay"
|
assert false, "Failed to mount relay"
|
||||||
|
|
||||||
# mount rlnrelay in off-chain mode
|
# mount rlnrelay in off-chain mode
|
||||||
let wakuRlnConfig1 = getWakuRlnConfig(
|
let wakuRlnConfig1 = getWakuRlnConfig(manager = manager, index = MembershipIndex(1))
|
||||||
manager = manager,
|
|
||||||
treePath = genTempPath("rln_tree", "wakunode_1"),
|
|
||||||
index = MembershipIndex(1),
|
|
||||||
)
|
|
||||||
|
|
||||||
await node1.mountRlnRelay(wakuRlnConfig1)
|
await node1.mountRlnRelay(wakuRlnConfig1)
|
||||||
await node1.start()
|
await node1.start()
|
||||||
@ -333,11 +314,7 @@ procSuite "WakuNode - RLN relay":
|
|||||||
(await node2.mountRelay()).isOkOr:
|
(await node2.mountRelay()).isOkOr:
|
||||||
assert false, "Failed to mount relay"
|
assert false, "Failed to mount relay"
|
||||||
# mount rlnrelay in off-chain mode
|
# mount rlnrelay in off-chain mode
|
||||||
let wakuRlnConfig2 = getWakuRlnConfig(
|
let wakuRlnConfig2 = getWakuRlnConfig(manager = manager, index = MembershipIndex(2))
|
||||||
manager = manager,
|
|
||||||
treePath = genTempPath("rln_tree", "wakunode_2"),
|
|
||||||
index = MembershipIndex(2),
|
|
||||||
)
|
|
||||||
|
|
||||||
await node2.mountRlnRelay(wakuRlnConfig2)
|
await node2.mountRlnRelay(wakuRlnConfig2)
|
||||||
await node2.start()
|
await node2.start()
|
||||||
@ -350,11 +327,7 @@ procSuite "WakuNode - RLN relay":
|
|||||||
(await node3.mountRelay()).isOkOr:
|
(await node3.mountRelay()).isOkOr:
|
||||||
assert false, "Failed to mount relay"
|
assert false, "Failed to mount relay"
|
||||||
|
|
||||||
let wakuRlnConfig3 = getWakuRlnConfig(
|
let wakuRlnConfig3 = getWakuRlnConfig(manager = manager, index = MembershipIndex(3))
|
||||||
manager = manager,
|
|
||||||
treePath = genTempPath("rln_tree", "wakunode_3"),
|
|
||||||
index = MembershipIndex(3),
|
|
||||||
)
|
|
||||||
|
|
||||||
await node3.mountRlnRelay(wakuRlnConfig3)
|
await node3.mountRlnRelay(wakuRlnConfig3)
|
||||||
await node3.start()
|
await node3.start()
|
||||||
@ -436,11 +409,7 @@ procSuite "WakuNode - RLN relay":
|
|||||||
assert false, "Failed to mount relay"
|
assert false, "Failed to mount relay"
|
||||||
|
|
||||||
# mount rlnrelay in off-chain mode
|
# mount rlnrelay in off-chain mode
|
||||||
let wakuRlnConfig1 = getWakuRlnConfig(
|
let wakuRlnConfig1 = getWakuRlnConfig(manager = manager, index = MembershipIndex(1))
|
||||||
manager = manager,
|
|
||||||
treePath = genTempPath("rln_tree", "wakunode_1"),
|
|
||||||
index = MembershipIndex(1),
|
|
||||||
)
|
|
||||||
|
|
||||||
await node1.mountRlnRelay(wakuRlnConfig1)
|
await node1.mountRlnRelay(wakuRlnConfig1)
|
||||||
await node1.start()
|
await node1.start()
|
||||||
@ -463,11 +432,7 @@ procSuite "WakuNode - RLN relay":
|
|||||||
assert false, "Failed to mount relay"
|
assert false, "Failed to mount relay"
|
||||||
|
|
||||||
# mount rlnrelay in off-chain mode
|
# mount rlnrelay in off-chain mode
|
||||||
let wakuRlnConfig2 = getWakuRlnConfig(
|
let wakuRlnConfig2 = getWakuRlnConfig(manager = manager, index = MembershipIndex(2))
|
||||||
manager = manager,
|
|
||||||
treePath = genTempPath("rln_tree", "wakunode_2"),
|
|
||||||
index = MembershipIndex(2),
|
|
||||||
)
|
|
||||||
|
|
||||||
await node2.mountRlnRelay(wakuRlnConfig2)
|
await node2.mountRlnRelay(wakuRlnConfig2)
|
||||||
await node2.start()
|
await node2.start()
|
||||||
@ -482,11 +447,7 @@ procSuite "WakuNode - RLN relay":
|
|||||||
assert false, "Failed to mount relay"
|
assert false, "Failed to mount relay"
|
||||||
|
|
||||||
# mount rlnrelay in off-chain mode
|
# mount rlnrelay in off-chain mode
|
||||||
let wakuRlnConfig3 = getWakuRlnConfig(
|
let wakuRlnConfig3 = getWakuRlnConfig(manager = manager, index = MembershipIndex(3))
|
||||||
manager = manager,
|
|
||||||
treePath = genTempPath("rln_tree", "wakunode_3"),
|
|
||||||
index = MembershipIndex(3),
|
|
||||||
)
|
|
||||||
|
|
||||||
await node3.mountRlnRelay(wakuRlnConfig3)
|
await node3.mountRlnRelay(wakuRlnConfig3)
|
||||||
await node3.start()
|
await node3.start()
|
||||||
@ -616,11 +577,7 @@ procSuite "WakuNode - RLN relay":
|
|||||||
# Given both nodes mount relay and rlnrelay
|
# Given both nodes mount relay and rlnrelay
|
||||||
(await node1.mountRelay()).isOkOr:
|
(await node1.mountRelay()).isOkOr:
|
||||||
assert false, "Failed to mount relay"
|
assert false, "Failed to mount relay"
|
||||||
let wakuRlnConfig1 = getWakuRlnConfig(
|
let wakuRlnConfig1 = getWakuRlnConfig(manager = manager, index = MembershipIndex(1))
|
||||||
manager = manager,
|
|
||||||
treePath = genTempPath("rln_tree", "wakunode_1"),
|
|
||||||
index = MembershipIndex(1),
|
|
||||||
)
|
|
||||||
await node1.mountRlnRelay(wakuRlnConfig1)
|
await node1.mountRlnRelay(wakuRlnConfig1)
|
||||||
await node1.start()
|
await node1.start()
|
||||||
|
|
||||||
@ -640,11 +597,7 @@ procSuite "WakuNode - RLN relay":
|
|||||||
# Mount rlnrelay in node2 in off-chain mode
|
# Mount rlnrelay in node2 in off-chain mode
|
||||||
(await node2.mountRelay()).isOkOr:
|
(await node2.mountRelay()).isOkOr:
|
||||||
assert false, "Failed to mount relay"
|
assert false, "Failed to mount relay"
|
||||||
let wakuRlnConfig2 = getWakuRlnConfig(
|
let wakuRlnConfig2 = getWakuRlnConfig(manager = manager, index = MembershipIndex(2))
|
||||||
manager = manager,
|
|
||||||
treePath = genTempPath("rln_tree", "wakunode_2"),
|
|
||||||
index = MembershipIndex(2),
|
|
||||||
)
|
|
||||||
await node2.mountRlnRelay(wakuRlnConfig2)
|
await node2.mountRlnRelay(wakuRlnConfig2)
|
||||||
await node2.start()
|
await node2.start()
|
||||||
|
|
||||||
|
|||||||
@ -23,12 +23,7 @@ proc setupStaticRln*(
|
|||||||
rlnRelayEthContractAddress: Option[string] = none(string),
|
rlnRelayEthContractAddress: Option[string] = none(string),
|
||||||
) {.async.} =
|
) {.async.} =
|
||||||
await node.mountRlnRelay(
|
await node.mountRlnRelay(
|
||||||
WakuRlnConfig(
|
WakuRlnConfig(dynamic: false, credIndex: some(identifier), epochSizeSec: 1)
|
||||||
dynamic: false,
|
|
||||||
credIndex: some(identifier),
|
|
||||||
treePath: genTempPath("rln_tree", "wakunode_" & $identifier),
|
|
||||||
epochSizeSec: 1,
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
proc setupRelayWithStaticRln*(
|
proc setupRelayWithStaticRln*(
|
||||||
|
|||||||
@ -549,8 +549,7 @@ proc stopAnvil*(runAnvil: Process) {.used.} =
|
|||||||
proc setupOnchainGroupManager*(
|
proc setupOnchainGroupManager*(
|
||||||
ethClientUrl: string = EthClient, amountEth: UInt256 = 10.u256
|
ethClientUrl: string = EthClient, amountEth: UInt256 = 10.u256
|
||||||
): Future[OnchainGroupManager] {.async.} =
|
): Future[OnchainGroupManager] {.async.} =
|
||||||
let rlnInstanceRes =
|
let rlnInstanceRes = createRlnInstance()
|
||||||
createRlnInstance(tree_path = genTempPath("rln_tree", "group_manager_onchain"))
|
|
||||||
check:
|
check:
|
||||||
rlnInstanceRes.isOk()
|
rlnInstanceRes.isOk()
|
||||||
|
|
||||||
|
|||||||
@ -78,11 +78,7 @@ suite "Waku v2 REST API - health":
|
|||||||
|
|
||||||
# now kick in rln (currently the only check for health)
|
# now kick in rln (currently the only check for health)
|
||||||
await node.mountRlnRelay(
|
await node.mountRlnRelay(
|
||||||
getWakuRlnConfig(
|
getWakuRlnConfig(manager = manager, index = MembershipIndex(1))
|
||||||
manager = manager,
|
|
||||||
treePath = genTempPath("rln_tree", "wakunode"),
|
|
||||||
index = MembershipIndex(1),
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
node.mountLightPushClient()
|
node.mountLightPushClient()
|
||||||
|
|||||||
@ -259,11 +259,7 @@ suite "Waku v2 Rest API - Relay":
|
|||||||
let node = testWakuNode()
|
let node = testWakuNode()
|
||||||
(await node.mountRelay()).isOkOr:
|
(await node.mountRelay()).isOkOr:
|
||||||
assert false, "Failed to mount relay"
|
assert false, "Failed to mount relay"
|
||||||
let wakuRlnConfig = getWakuRlnConfig(
|
let wakuRlnConfig = getWakuRlnConfig(manager = manager, index = MembershipIndex(1))
|
||||||
manager = manager,
|
|
||||||
treePath = genTempPath("rln_tree", "waku_rest_relay_1"),
|
|
||||||
index = MembershipIndex(1),
|
|
||||||
)
|
|
||||||
|
|
||||||
await node.mountRlnRelay(wakuRlnConfig)
|
await node.mountRlnRelay(wakuRlnConfig)
|
||||||
await node.start()
|
await node.start()
|
||||||
@ -514,11 +510,7 @@ suite "Waku v2 Rest API - Relay":
|
|||||||
assert false, "Failed to mount relay"
|
assert false, "Failed to mount relay"
|
||||||
require node.mountAutoSharding(1, 8).isOk
|
require node.mountAutoSharding(1, 8).isOk
|
||||||
|
|
||||||
let wakuRlnConfig = getWakuRlnConfig(
|
let wakuRlnConfig = getWakuRlnConfig(manager = manager, index = MembershipIndex(1))
|
||||||
manager = manager,
|
|
||||||
treePath = genTempPath("rln_tree", "waku_rest_relay_1"),
|
|
||||||
index = MembershipIndex(1),
|
|
||||||
)
|
|
||||||
|
|
||||||
await node.mountRlnRelay(wakuRlnConfig)
|
await node.mountRlnRelay(wakuRlnConfig)
|
||||||
await node.start()
|
await node.start()
|
||||||
@ -590,11 +582,7 @@ suite "Waku v2 Rest API - Relay":
|
|||||||
assert false, "Failed to mount relay"
|
assert false, "Failed to mount relay"
|
||||||
require node.mountAutoSharding(1, 8).isOk
|
require node.mountAutoSharding(1, 8).isOk
|
||||||
|
|
||||||
let wakuRlnConfig = getWakuRlnConfig(
|
let wakuRlnConfig = getWakuRlnConfig(manager = manager, index = MembershipIndex(1))
|
||||||
manager = manager,
|
|
||||||
treePath = genTempPath("rln_tree", "waku_rest_relay_1"),
|
|
||||||
index = MembershipIndex(1),
|
|
||||||
)
|
|
||||||
await node.mountRlnRelay(wakuRlnConfig)
|
await node.mountRlnRelay(wakuRlnConfig)
|
||||||
await node.start()
|
await node.start()
|
||||||
|
|
||||||
@ -656,11 +644,7 @@ suite "Waku v2 Rest API - Relay":
|
|||||||
let node = testWakuNode()
|
let node = testWakuNode()
|
||||||
(await node.mountRelay()).isOkOr:
|
(await node.mountRelay()).isOkOr:
|
||||||
assert false, "Failed to mount relay"
|
assert false, "Failed to mount relay"
|
||||||
let wakuRlnConfig = getWakuRlnConfig(
|
let wakuRlnConfig = getWakuRlnConfig(manager = manager, index = MembershipIndex(1))
|
||||||
manager = manager,
|
|
||||||
treePath = genTempPath("rln_tree", "waku_rest_relay_1"),
|
|
||||||
index = MembershipIndex(1),
|
|
||||||
)
|
|
||||||
await node.mountRlnRelay(wakuRlnConfig)
|
await node.mountRlnRelay(wakuRlnConfig)
|
||||||
await node.start()
|
await node.start()
|
||||||
|
|
||||||
@ -735,11 +719,7 @@ suite "Waku v2 Rest API - Relay":
|
|||||||
assert false, "Failed to mount relay"
|
assert false, "Failed to mount relay"
|
||||||
require node.mountAutoSharding(1, 8).isOk
|
require node.mountAutoSharding(1, 8).isOk
|
||||||
|
|
||||||
let wakuRlnConfig = getWakuRlnConfig(
|
let wakuRlnConfig = getWakuRlnConfig(manager = manager, index = MembershipIndex(1))
|
||||||
manager = manager,
|
|
||||||
treePath = genTempPath("rln_tree", "waku_rest_relay_1"),
|
|
||||||
index = MembershipIndex(1),
|
|
||||||
)
|
|
||||||
await node.mountRlnRelay(wakuRlnConfig)
|
await node.mountRlnRelay(wakuRlnConfig)
|
||||||
await node.start()
|
await node.start()
|
||||||
|
|
||||||
|
|||||||
@ -1,3 +0,0 @@
|
|||||||
# rln_db_inspector
|
|
||||||
|
|
||||||
Documentation on running the `rln-db-inspector` can be found [here](../../docs/tutorial/rln-db-inspector.md)
|
|
||||||
@ -1,41 +0,0 @@
|
|||||||
when (NimMajor, NimMinor) < (1, 4):
|
|
||||||
{.push raises: [Defect].}
|
|
||||||
else:
|
|
||||||
{.push raises: [].}
|
|
||||||
|
|
||||||
import chronicles, sequtils, results
|
|
||||||
|
|
||||||
import waku/[waku_rln_relay/rln, waku_rln_relay/conversion_utils]
|
|
||||||
|
|
||||||
logScope:
|
|
||||||
topics = "rln_db_inspector"
|
|
||||||
|
|
||||||
type InspectRlnDbConf* = object
|
|
||||||
treePath*: string
|
|
||||||
|
|
||||||
proc doInspectRlnDb*(conf: InspectRlnDbConf) =
|
|
||||||
# 1. load configuration
|
|
||||||
trace "configuration", conf = $conf
|
|
||||||
|
|
||||||
# 2. initialize rlnInstance
|
|
||||||
let rlnInstance = createRLNInstance(d = 20).valueOr:
|
|
||||||
error "failure while creating RLN instance", error
|
|
||||||
quit(1)
|
|
||||||
|
|
||||||
# 3. get metadata
|
|
||||||
let metadataOpt = rlnInstance.getMetadata().valueOr:
|
|
||||||
error "failure while getting RLN metadata", error
|
|
||||||
quit(1)
|
|
||||||
|
|
||||||
if metadataOpt.isNone():
|
|
||||||
error "RLN metadata does not exist"
|
|
||||||
quit(1)
|
|
||||||
let metadata = metadataOpt.get()
|
|
||||||
|
|
||||||
info "RLN metadata",
|
|
||||||
lastProcessedBlock = metadata.lastProcessedBlock,
|
|
||||||
chainId = metadata.chainId,
|
|
||||||
contractAddress = metadata.contractAddress,
|
|
||||||
validRoots = metadata.validRoots.mapIt(it.inHex())
|
|
||||||
|
|
||||||
quit(0)
|
|
||||||
@ -18,7 +18,6 @@ type RlnRelayConfBuilder* = object
|
|||||||
dynamic*: Option[bool]
|
dynamic*: Option[bool]
|
||||||
epochSizeSec*: Option[uint64]
|
epochSizeSec*: Option[uint64]
|
||||||
userMessageLimit*: Option[uint64]
|
userMessageLimit*: Option[uint64]
|
||||||
treePath*: Option[string]
|
|
||||||
|
|
||||||
proc init*(T: type RlnRelayConfBuilder): RlnRelayConfBuilder =
|
proc init*(T: type RlnRelayConfBuilder): RlnRelayConfBuilder =
|
||||||
RlnRelayConfBuilder()
|
RlnRelayConfBuilder()
|
||||||
@ -56,9 +55,6 @@ proc withEpochSizeSec*(b: var RlnRelayConfBuilder, epochSizeSec: uint64) =
|
|||||||
proc withUserMessageLimit*(b: var RlnRelayConfBuilder, userMessageLimit: uint64) =
|
proc withUserMessageLimit*(b: var RlnRelayConfBuilder, userMessageLimit: uint64) =
|
||||||
b.userMessageLimit = some(userMessageLimit)
|
b.userMessageLimit = some(userMessageLimit)
|
||||||
|
|
||||||
proc withTreePath*(b: var RlnRelayConfBuilder, treePath: string) =
|
|
||||||
b.treePath = some(treePath)
|
|
||||||
|
|
||||||
proc build*(b: RlnRelayConfBuilder): Result[Option[RlnRelayConf], string] =
|
proc build*(b: RlnRelayConfBuilder): Result[Option[RlnRelayConf], string] =
|
||||||
if not b.enabled.get(false):
|
if not b.enabled.get(false):
|
||||||
return ok(none(RlnRelayConf))
|
return ok(none(RlnRelayConf))
|
||||||
@ -86,8 +82,6 @@ proc build*(b: RlnRelayConfBuilder): Result[Option[RlnRelayConf], string] =
|
|||||||
return err("rlnRelay.epochSizeSec is not specified")
|
return err("rlnRelay.epochSizeSec is not specified")
|
||||||
if b.userMessageLimit.isNone():
|
if b.userMessageLimit.isNone():
|
||||||
return err("rlnRelay.userMessageLimit is not specified")
|
return err("rlnRelay.userMessageLimit is not specified")
|
||||||
if b.treePath.isNone():
|
|
||||||
return err("rlnRelay.treePath is not specified")
|
|
||||||
|
|
||||||
return ok(
|
return ok(
|
||||||
some(
|
some(
|
||||||
@ -100,7 +94,6 @@ proc build*(b: RlnRelayConfBuilder): Result[Option[RlnRelayConf], string] =
|
|||||||
ethContractAddress: b.ethContractAddress.get(),
|
ethContractAddress: b.ethContractAddress.get(),
|
||||||
epochSizeSec: b.epochSizeSec.get(),
|
epochSizeSec: b.epochSizeSec.get(),
|
||||||
userMessageLimit: b.userMessageLimit.get(),
|
userMessageLimit: b.userMessageLimit.get(),
|
||||||
treePath: b.treePath.get(),
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
@ -28,8 +28,7 @@ import
|
|||||||
../waku_enr,
|
../waku_enr,
|
||||||
../node/peer_manager,
|
../node/peer_manager,
|
||||||
../waku_core/topics/pubsub_topic,
|
../waku_core/topics/pubsub_topic,
|
||||||
../../tools/rln_keystore_generator/rln_keystore_generator,
|
../../tools/rln_keystore_generator/rln_keystore_generator
|
||||||
../../tools/rln_db_inspector/rln_db_inspector
|
|
||||||
|
|
||||||
include ../waku_core/message/default_values
|
include ../waku_core/message/default_values
|
||||||
|
|
||||||
@ -48,7 +47,6 @@ type EthRpcUrl* = distinct string
|
|||||||
type StartUpCommand* = enum
|
type StartUpCommand* = enum
|
||||||
noCommand # default, runs waku
|
noCommand # default, runs waku
|
||||||
generateRlnKeystore # generates a new RLN keystore
|
generateRlnKeystore # generates a new RLN keystore
|
||||||
inspectRlnDb # Inspects a given RLN tree db, providing essential db stats
|
|
||||||
|
|
||||||
type WakuNodeConf* = object
|
type WakuNodeConf* = object
|
||||||
configFile* {.
|
configFile* {.
|
||||||
@ -132,13 +130,6 @@ type WakuNodeConf* = object
|
|||||||
.}: string
|
.}: string
|
||||||
|
|
||||||
case cmd* {.command, defaultValue: noCommand.}: StartUpCommand
|
case cmd* {.command, defaultValue: noCommand.}: StartUpCommand
|
||||||
of inspectRlnDb:
|
|
||||||
# have to change the name here since it counts as a duplicate, within noCommand
|
|
||||||
treePath* {.
|
|
||||||
desc: "Path to the RLN merkle tree sled db (https://github.com/spacejam/sled)",
|
|
||||||
defaultValue: "",
|
|
||||||
name: "rln-relay-tree-path"
|
|
||||||
.}: string
|
|
||||||
of generateRlnKeystore:
|
of generateRlnKeystore:
|
||||||
execute* {.
|
execute* {.
|
||||||
desc: "Runs the registration function on-chain. By default, a dry-run will occur",
|
desc: "Runs the registration function on-chain. By default, a dry-run will occur",
|
||||||
@ -303,12 +294,6 @@ hence would have reachability issues.""",
|
|||||||
name: "rln-relay-dynamic"
|
name: "rln-relay-dynamic"
|
||||||
.}: bool
|
.}: bool
|
||||||
|
|
||||||
rlnRelayTreePath* {.
|
|
||||||
desc: "Path to the RLN merkle tree sled db (https://github.com/spacejam/sled)",
|
|
||||||
defaultValue: "",
|
|
||||||
name: "rln-relay-tree-path"
|
|
||||||
.}: string
|
|
||||||
|
|
||||||
staticnodes* {.
|
staticnodes* {.
|
||||||
desc: "Peer multiaddr to directly connect with. Argument may be repeated.",
|
desc: "Peer multiaddr to directly connect with. Argument may be repeated.",
|
||||||
name: "staticnode"
|
name: "staticnode"
|
||||||
@ -863,9 +848,6 @@ proc toKeystoreGeneratorConf*(n: WakuNodeConf): RlnKeystoreGeneratorConf =
|
|||||||
credPassword: n.rlnRelayCredPassword,
|
credPassword: n.rlnRelayCredPassword,
|
||||||
)
|
)
|
||||||
|
|
||||||
proc toInspectRlnDbConf*(n: WakuNodeConf): InspectRlnDbConf =
|
|
||||||
return InspectRlnDbConf(treePath: n.treePath)
|
|
||||||
|
|
||||||
proc toNetworkConf(
|
proc toNetworkConf(
|
||||||
preset: string, clusterId: Option[uint16]
|
preset: string, clusterId: Option[uint16]
|
||||||
): ConfResult[Option[NetworkConf]] =
|
): ConfResult[Option[NetworkConf]] =
|
||||||
@ -909,8 +891,6 @@ proc toWakuConf*(n: WakuNodeConf): ConfResult[WakuConf] =
|
|||||||
b.rlnRelayConf.withCredIndex(n.rlnRelayCredIndex.get())
|
b.rlnRelayConf.withCredIndex(n.rlnRelayCredIndex.get())
|
||||||
b.rlnRelayConf.withDynamic(n.rlnRelayDynamic)
|
b.rlnRelayConf.withDynamic(n.rlnRelayDynamic)
|
||||||
|
|
||||||
b.rlnRelayConf.withTreePath(n.rlnRelayTreePath)
|
|
||||||
|
|
||||||
if n.maxMessageSize != "":
|
if n.maxMessageSize != "":
|
||||||
b.withMaxMessageSize(n.maxMessageSize)
|
b.withMaxMessageSize(n.maxMessageSize)
|
||||||
|
|
||||||
|
|||||||
@ -356,7 +356,6 @@ proc setupProtocols(
|
|||||||
chainId: rlnRelayConf.chainId,
|
chainId: rlnRelayConf.chainId,
|
||||||
ethClientUrls: rlnRelayConf.ethClientUrls,
|
ethClientUrls: rlnRelayConf.ethClientUrls,
|
||||||
creds: rlnRelayConf.creds,
|
creds: rlnRelayConf.creds,
|
||||||
treePath: rlnRelayConf.treePath,
|
|
||||||
userMessageLimit: rlnRelayConf.userMessageLimit,
|
userMessageLimit: rlnRelayConf.userMessageLimit,
|
||||||
epochSizeSec: rlnRelayConf.epochSizeSec,
|
epochSizeSec: rlnRelayConf.epochSizeSec,
|
||||||
onFatalErrorAction: onFatalErrorAction,
|
onFatalErrorAction: onFatalErrorAction,
|
||||||
|
|||||||
@ -214,8 +214,6 @@ proc validateNoEmptyStrings(wakuConf: WakuConf): Result[void, string] =
|
|||||||
if wakuConf.rlnRelayConf.isSome():
|
if wakuConf.rlnRelayConf.isSome():
|
||||||
let rlnRelayConf = wakuConf.rlnRelayConf.get()
|
let rlnRelayConf = wakuConf.rlnRelayConf.get()
|
||||||
|
|
||||||
if isEmptyOrWhiteSpace(rlnRelayConf.treePath):
|
|
||||||
return err("rln-relay-tree-path is an empty string")
|
|
||||||
if rlnRelayConf.ethClientUrls.len == 0:
|
if rlnRelayConf.ethClientUrls.len == 0:
|
||||||
return err("rln-relay-eth-client-address is empty")
|
return err("rln-relay-eth-client-address is empty")
|
||||||
if isEmptyOrWhiteSpace(rlnRelayConf.ethContractAddress):
|
if isEmptyOrWhiteSpace(rlnRelayConf.ethContractAddress):
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import
|
|||||||
stew/[arrayops, byteutils, endians2],
|
stew/[arrayops, byteutils, endians2],
|
||||||
stint,
|
stint,
|
||||||
results,
|
results,
|
||||||
std/[sequtils, strutils, tables]
|
std/[sequtils, strutils, tables, tempfiles]
|
||||||
|
|
||||||
import ./rln_interface, ../conversion_utils, ../protocol_types, ../protocol_metrics
|
import ./rln_interface, ../conversion_utils, ../protocol_types, ../protocol_metrics
|
||||||
import ../../waku_core, ../../waku_keystore
|
import ../../waku_core, ../../waku_keystore
|
||||||
@ -63,7 +63,6 @@ type RlnTreeConfig = ref object of RootObj
|
|||||||
mode: string
|
mode: string
|
||||||
compression: bool
|
compression: bool
|
||||||
flush_every_ms: int
|
flush_every_ms: int
|
||||||
path: string
|
|
||||||
|
|
||||||
type RlnConfig = ref object of RootObj
|
type RlnConfig = ref object of RootObj
|
||||||
resources_folder: string
|
resources_folder: string
|
||||||
@ -78,17 +77,13 @@ proc `%`(c: RlnConfig): JsonNode =
|
|||||||
"mode": %c.tree_config.mode,
|
"mode": %c.tree_config.mode,
|
||||||
"compression": %c.tree_config.compression,
|
"compression": %c.tree_config.compression,
|
||||||
"flush_every_ms": %c.tree_config.flush_every_ms,
|
"flush_every_ms": %c.tree_config.flush_every_ms,
|
||||||
"path": %c.tree_config.path,
|
|
||||||
}
|
}
|
||||||
return %[("resources_folder", %c.resources_folder), ("tree_config", %tree_config)]
|
return %[("resources_folder", %c.resources_folder), ("tree_config", %tree_config)]
|
||||||
|
|
||||||
proc createRLNInstanceLocal(
|
proc createRLNInstanceLocal(d = MerkleTreeDepth): RLNResult =
|
||||||
d = MerkleTreeDepth, tree_path = DefaultRlnTreePath
|
|
||||||
): RLNResult =
|
|
||||||
## generates an instance of RLN
|
## generates an instance of RLN
|
||||||
## An RLN instance supports both zkSNARKs logics and Merkle tree data structure and operations
|
## An RLN instance supports both zkSNARKs logics and Merkle tree data structure and operations
|
||||||
## d indicates the depth of Merkle tree
|
## d indicates the depth of Merkle tree
|
||||||
## tree_path indicates the path of the Merkle tree
|
|
||||||
## Returns an error if the instance creation fails
|
## Returns an error if the instance creation fails
|
||||||
|
|
||||||
let rln_config = RlnConfig(
|
let rln_config = RlnConfig(
|
||||||
@ -98,7 +93,6 @@ proc createRLNInstanceLocal(
|
|||||||
mode: "high_throughput",
|
mode: "high_throughput",
|
||||||
compression: false,
|
compression: false,
|
||||||
flush_every_ms: 500,
|
flush_every_ms: 500,
|
||||||
path: tree_path,
|
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -118,14 +112,12 @@ proc createRLNInstanceLocal(
|
|||||||
return err("error in parameters generation")
|
return err("error in parameters generation")
|
||||||
return ok(rlnInstance)
|
return ok(rlnInstance)
|
||||||
|
|
||||||
proc createRLNInstance*(
|
proc createRLNInstance*(d = MerkleTreeDepth): RLNResult =
|
||||||
d = MerkleTreeDepth, tree_path = DefaultRlnTreePath
|
|
||||||
): RLNResult =
|
|
||||||
## Wraps the rln instance creation for metrics
|
## Wraps the rln instance creation for metrics
|
||||||
## Returns an error if the instance creation fails
|
## Returns an error if the instance creation fails
|
||||||
var res: RLNResult
|
var res: RLNResult
|
||||||
waku_rln_instance_creation_duration_seconds.nanosecondTime:
|
waku_rln_instance_creation_duration_seconds.nanosecondTime:
|
||||||
res = createRLNInstanceLocal(d, tree_path)
|
res = createRLNInstanceLocal(d)
|
||||||
return res
|
return res
|
||||||
|
|
||||||
proc sha256*(data: openArray[byte]): RlnRelayResult[MerkleNode] =
|
proc sha256*(data: openArray[byte]): RlnRelayResult[MerkleNode] =
|
||||||
|
|||||||
@ -46,7 +46,6 @@ type RlnRelayConf* = object of RootObj
|
|||||||
ethClientUrls*: seq[string]
|
ethClientUrls*: seq[string]
|
||||||
chainId*: UInt256
|
chainId*: UInt256
|
||||||
creds*: Option[RlnRelayCreds]
|
creds*: Option[RlnRelayCreds]
|
||||||
treePath*: string
|
|
||||||
epochSizeSec*: uint64
|
epochSizeSec*: uint64
|
||||||
userMessageLimit*: uint64
|
userMessageLimit*: uint64
|
||||||
ethPrivateKey*: Option[string]
|
ethPrivateKey*: Option[string]
|
||||||
@ -408,7 +407,7 @@ proc mount(
|
|||||||
groupManager: GroupManager
|
groupManager: GroupManager
|
||||||
wakuRlnRelay: WakuRLNRelay
|
wakuRlnRelay: WakuRLNRelay
|
||||||
# create an RLN instance
|
# create an RLN instance
|
||||||
let rlnInstance = createRLNInstance(tree_path = conf.treePath).valueOr:
|
let rlnInstance = createRLNInstance().valueOr:
|
||||||
return err("could not create RLN instance: " & $error)
|
return err("could not create RLN instance: " & $error)
|
||||||
|
|
||||||
let (rlnRelayCredPath, rlnRelayCredPassword) =
|
let (rlnRelayCredPath, rlnRelayCredPassword) =
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user