feat: deprecate tree_path and rlnDB (#3577)

This commit is contained in:
Darshan K 2025-09-26 14:47:15 +05:30 committed by GitHub
parent 04fdf0a8c1
commit 3c9b355879
28 changed files with 31 additions and 268 deletions

View File

@ -567,7 +567,6 @@ proc processInput(rfd: AsyncFD, rng: ref HmacDrbgContext) {.async.} =
),
userMessageLimit: conf.rlnRelayUserMessageLimit,
epochSizeSec: conf.rlnEpochSizeSec,
treePath: conf.rlnRelayTreePath,
)
waitFor node.mountRlnRelay(rlnConf, spamHandler = some(spamHandler))

View File

@ -283,12 +283,6 @@ type
name: "rln-relay-epoch-sec"
.}: 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
proc parseCmdArg*(T: type crypto.PrivateKey, p: string): T =
try:

View File

@ -29,7 +29,6 @@ The following options are available:
--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
[=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/
[=http://localhost:8540/].
--rln-relay-eth-contract-address Address of membership contract on an Ethereum testnet.

View File

@ -640,7 +640,6 @@ when isMainModule:
credIndex: some(uint(0)),
ethContractAddress: conf.rlnRelayEthContractAddress,
ethClientUrls: conf.ethClientUrls.mapIt(string(it)),
treePath: conf.rlnRelayTreePath,
epochSizeSec: conf.rlnEpochSizeSec,
creds: none(RlnRelayCreds),
onFatalErrorAction: onFatalErrorAction,

View File

@ -80,12 +80,6 @@ type NetworkMonitorConf* = object
name: "rln-relay-dynamic"
.}: bool
rlnRelayTreePath* {.
desc: "Path to the RLN merkle tree sled db (https://github.com/spacejam/sled)",
defaultValue: "",
name: "rln-relay-tree-path"
.}: string
ethClientUrls* {.
desc:
"HTTP address of an Ethereum testnet client e.g., http://localhost:8540/. Argument may be repeated.",

View File

@ -61,7 +61,6 @@ fi
if [ "${CLUSTER_ID}" -eq 1 ]; then
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
if [ -n "${RLN_RELAY_CRED_PASSWORD}" ]; then

View File

@ -10,7 +10,6 @@ import
libp2p/crypto/crypto
import
../../tools/rln_keystore_generator/rln_keystore_generator,
../../tools/rln_db_inspector/rln_db_inspector,
waku/[
common/logging,
factory/external_config,
@ -48,9 +47,6 @@ when isMainModule:
of generateRlnKeystore:
let conf = wakuNodeConf.toKeystoreGeneratorConf()
doRlnKeystoreGenerator(conf)
of inspectRlnDb:
let conf = wakuNodeConf.toInspectRlnDbConf()
doInspectRlnDb(conf)
of noCommand:
let conf = wakuNodeConf.toWakuConf().valueOr:
error "Waku configuration failed", error = error

View File

@ -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

View File

@ -64,7 +64,6 @@ suite "Waku external config - apply preset":
preset: "twn",
relay: true,
ethClientUrls: @["http://someaddress".EthRpcUrl],
rlnRelayTreePath: "/tmp/sometreepath",
)
## When
@ -149,7 +148,6 @@ suite "Waku external config - apply preset":
clusterId: 1.uint16,
relay: true,
ethClientUrls: @["http://someaddress".EthRpcUrl],
rlnRelayTreePath: "/tmp/sometreepath",
)
## When

View File

@ -27,7 +27,6 @@ suite "Waku Conf - build with cluster conf":
builder.rlnRelayConf.withEthClientUrls(@["https://my_eth_rpc_url/"])
builder.withNetworkConf(networkConf)
builder.withRelay(true)
builder.rlnRelayConf.withTreePath("/tmp/test-tree-path")
## When
let resConf = builder.build()
@ -180,7 +179,6 @@ suite "Waku Conf - build with cluster conf":
builder.rlnRelayConf.withEthContractAddress(contractAddress)
builder.withNetworkConf(networkConf)
builder.withRelay(true)
builder.rlnRelayConf.withTreePath("/tmp/test")
## When
let resConf = builder.build()

View File

@ -138,11 +138,7 @@ suite "RLN Proofs as a Lightpush Service":
manager = waitFor setupOnchainGroupManager()
# mount rln-relay
let wakuRlnConfig = getWakuRlnConfig(
manager = manager,
treePath = genTempPath("rln_tree", "wakunode_1"),
index = MembershipIndex(1),
)
let wakuRlnConfig = getWakuRlnConfig(manager = manager, index = MembershipIndex(1))
await allFutures(server.start(), client.start())
await server.start()

View File

@ -132,11 +132,7 @@ suite "RLN Proofs as a Lightpush Service":
manager = waitFor setupOnchainGroupManager()
# mount rln-relay
let wakuRlnConfig = getWakuRlnConfig(
manager = manager,
treePath = genTempPath("rln_tree", "wakunode_1"),
index = MembershipIndex(1),
)
let wakuRlnConfig = getWakuRlnConfig(manager = manager, index = MembershipIndex(1))
await allFutures(server.start(), client.start())
await server.start()

View File

@ -86,7 +86,6 @@ proc getWakuRlnConfigOnChain*(
credIndex: some(credIndex),
ethContractAddress: rlnRelayEthContractAddress,
ethClientAddress: ethClientAddress.get(EthClient),
treePath: genTempPath("rln_tree", "wakunode_" & $credIndex),
epochSizeSec: 1,
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"
@ -228,7 +227,6 @@ suite "Waku RlnRelay - End to End - Static":
dynamic: true,
credIndex: some(0.uint),
userMessageLimit: 111,
treepath: genTempPath("rln_tree", "wakunode_0"),
ethClientAddress: EthClient,
ethContractAddress: $contractAddress,
chainId: 1337,

View File

@ -42,12 +42,7 @@ proc newTestWakuRelay*(switch = newTestSwitch()): Future[WakuRelay] {.async.} =
proc setupRln*(node: WakuNode, identifier: uint) {.async.} =
await node.mountRlnRelay(
WakuRlnConfig(
dynamic: false,
credIndex: some(identifier),
treePath: genTempPath("rln_tree", "wakunode_" & $identifier),
epochSizeSec: 1,
)
WakuRlnConfig(dynamic: false, credIndex: some(identifier), epochSizeSec: 1)
)
proc subscribeToContentTopicWithHandler*(

View File

@ -8,7 +8,7 @@ import
]
proc createRLNInstanceWrapper*(): RLNResult =
return createRlnInstance(tree_path = genTempPath("rln_tree", "waku_rln_relay"))
return createRlnInstance()
proc unsafeAppendRLNProof*(
rlnPeer: WakuRLNRelay, msg: var WakuMessage, epoch: Epoch, messageId: MessageId
@ -39,7 +39,6 @@ proc getWakuRlnConfig*(
manager: OnchainGroupManager,
userMessageLimit: uint64 = 1,
epochSizeSec: uint64 = 1,
treePath: string = genTempPath("rln_tree", "waku_rln_relay"),
index: MembershipIndex = MembershipIndex(0),
): WakuRlnConfig =
let wakuRlnConfig = WakuRlnConfig(
@ -50,7 +49,6 @@ proc getWakuRlnConfig*(
credIndex: some(index),
userMessageLimit: userMessageLimit,
epochSizeSec: epochSizeSec,
treePath: treePath,
ethPrivateKey: some(manager.ethPrivateKey.get()),
onFatalErrorAction: proc(errStr: string) =
warn "non-fatal onchain test error", errStr

View File

@ -56,11 +56,7 @@ procSuite "WakuNode - RLN relay":
assert false, "Failed to mount relay"
# mount rlnrelay in off-chain mode
let wakuRlnConfig1 = getWakuRlnConfig(
manager = manager,
treePath = genTempPath("rln_tree", "wakunode_1"),
index = MembershipIndex(1),
)
let wakuRlnConfig1 = getWakuRlnConfig(manager = manager, index = MembershipIndex(1))
await node1.mountRlnRelay(wakuRlnConfig1)
await node1.start()
@ -82,11 +78,7 @@ procSuite "WakuNode - RLN relay":
(await node2.mountRelay()).isOkOr:
assert false, "Failed to mount relay"
# mount rlnrelay in off-chain mode
let wakuRlnConfig2 = getWakuRlnConfig(
manager = manager,
treePath = genTempPath("rln_tree", "wakunode_2"),
index = MembershipIndex(2),
)
let wakuRlnConfig2 = getWakuRlnConfig(manager = manager, index = MembershipIndex(2))
await node2.mountRlnRelay(wakuRlnConfig2)
await node2.start()
@ -99,11 +91,7 @@ procSuite "WakuNode - RLN relay":
(await node3.mountRelay()).isOkOr:
assert false, "Failed to mount relay"
let wakuRlnConfig3 = getWakuRlnConfig(
manager = manager,
treePath = genTempPath("rln_tree", "wakunode_3"),
index = MembershipIndex(3),
)
let wakuRlnConfig3 = getWakuRlnConfig(manager = manager, index = MembershipIndex(3))
await node3.mountRlnRelay(wakuRlnConfig3)
await node3.start()
@ -186,11 +174,8 @@ procSuite "WakuNode - RLN relay":
# mount rlnrelay in off-chain mode
for index, node in nodes:
let wakuRlnConfig = getWakuRlnConfig(
manager = manager,
treePath = genTempPath("rln_tree", "wakunode_" & $(index + 1)),
index = MembershipIndex(index + 1),
)
let wakuRlnConfig =
getWakuRlnConfig(manager = manager, index = MembershipIndex(index + 1))
await node.mountRlnRelay(wakuRlnConfig)
await node.start()
@ -308,11 +293,7 @@ procSuite "WakuNode - RLN relay":
assert false, "Failed to mount relay"
# mount rlnrelay in off-chain mode
let wakuRlnConfig1 = getWakuRlnConfig(
manager = manager,
treePath = genTempPath("rln_tree", "wakunode_1"),
index = MembershipIndex(1),
)
let wakuRlnConfig1 = getWakuRlnConfig(manager = manager, index = MembershipIndex(1))
await node1.mountRlnRelay(wakuRlnConfig1)
await node1.start()
@ -333,11 +314,7 @@ procSuite "WakuNode - RLN relay":
(await node2.mountRelay()).isOkOr:
assert false, "Failed to mount relay"
# mount rlnrelay in off-chain mode
let wakuRlnConfig2 = getWakuRlnConfig(
manager = manager,
treePath = genTempPath("rln_tree", "wakunode_2"),
index = MembershipIndex(2),
)
let wakuRlnConfig2 = getWakuRlnConfig(manager = manager, index = MembershipIndex(2))
await node2.mountRlnRelay(wakuRlnConfig2)
await node2.start()
@ -350,11 +327,7 @@ procSuite "WakuNode - RLN relay":
(await node3.mountRelay()).isOkOr:
assert false, "Failed to mount relay"
let wakuRlnConfig3 = getWakuRlnConfig(
manager = manager,
treePath = genTempPath("rln_tree", "wakunode_3"),
index = MembershipIndex(3),
)
let wakuRlnConfig3 = getWakuRlnConfig(manager = manager, index = MembershipIndex(3))
await node3.mountRlnRelay(wakuRlnConfig3)
await node3.start()
@ -436,11 +409,7 @@ procSuite "WakuNode - RLN relay":
assert false, "Failed to mount relay"
# mount rlnrelay in off-chain mode
let wakuRlnConfig1 = getWakuRlnConfig(
manager = manager,
treePath = genTempPath("rln_tree", "wakunode_1"),
index = MembershipIndex(1),
)
let wakuRlnConfig1 = getWakuRlnConfig(manager = manager, index = MembershipIndex(1))
await node1.mountRlnRelay(wakuRlnConfig1)
await node1.start()
@ -463,11 +432,7 @@ procSuite "WakuNode - RLN relay":
assert false, "Failed to mount relay"
# mount rlnrelay in off-chain mode
let wakuRlnConfig2 = getWakuRlnConfig(
manager = manager,
treePath = genTempPath("rln_tree", "wakunode_2"),
index = MembershipIndex(2),
)
let wakuRlnConfig2 = getWakuRlnConfig(manager = manager, index = MembershipIndex(2))
await node2.mountRlnRelay(wakuRlnConfig2)
await node2.start()
@ -482,11 +447,7 @@ procSuite "WakuNode - RLN relay":
assert false, "Failed to mount relay"
# mount rlnrelay in off-chain mode
let wakuRlnConfig3 = getWakuRlnConfig(
manager = manager,
treePath = genTempPath("rln_tree", "wakunode_3"),
index = MembershipIndex(3),
)
let wakuRlnConfig3 = getWakuRlnConfig(manager = manager, index = MembershipIndex(3))
await node3.mountRlnRelay(wakuRlnConfig3)
await node3.start()
@ -616,11 +577,7 @@ procSuite "WakuNode - RLN relay":
# Given both nodes mount relay and rlnrelay
(await node1.mountRelay()).isOkOr:
assert false, "Failed to mount relay"
let wakuRlnConfig1 = getWakuRlnConfig(
manager = manager,
treePath = genTempPath("rln_tree", "wakunode_1"),
index = MembershipIndex(1),
)
let wakuRlnConfig1 = getWakuRlnConfig(manager = manager, index = MembershipIndex(1))
await node1.mountRlnRelay(wakuRlnConfig1)
await node1.start()
@ -640,11 +597,7 @@ procSuite "WakuNode - RLN relay":
# Mount rlnrelay in node2 in off-chain mode
(await node2.mountRelay()).isOkOr:
assert false, "Failed to mount relay"
let wakuRlnConfig2 = getWakuRlnConfig(
manager = manager,
treePath = genTempPath("rln_tree", "wakunode_2"),
index = MembershipIndex(2),
)
let wakuRlnConfig2 = getWakuRlnConfig(manager = manager, index = MembershipIndex(2))
await node2.mountRlnRelay(wakuRlnConfig2)
await node2.start()

View File

@ -23,12 +23,7 @@ proc setupStaticRln*(
rlnRelayEthContractAddress: Option[string] = none(string),
) {.async.} =
await node.mountRlnRelay(
WakuRlnConfig(
dynamic: false,
credIndex: some(identifier),
treePath: genTempPath("rln_tree", "wakunode_" & $identifier),
epochSizeSec: 1,
)
WakuRlnConfig(dynamic: false, credIndex: some(identifier), epochSizeSec: 1)
)
proc setupRelayWithStaticRln*(

View File

@ -549,8 +549,7 @@ proc stopAnvil*(runAnvil: Process) {.used.} =
proc setupOnchainGroupManager*(
ethClientUrl: string = EthClient, amountEth: UInt256 = 10.u256
): Future[OnchainGroupManager] {.async.} =
let rlnInstanceRes =
createRlnInstance(tree_path = genTempPath("rln_tree", "group_manager_onchain"))
let rlnInstanceRes = createRlnInstance()
check:
rlnInstanceRes.isOk()

View File

@ -78,11 +78,7 @@ suite "Waku v2 REST API - health":
# now kick in rln (currently the only check for health)
await node.mountRlnRelay(
getWakuRlnConfig(
manager = manager,
treePath = genTempPath("rln_tree", "wakunode"),
index = MembershipIndex(1),
)
getWakuRlnConfig(manager = manager, index = MembershipIndex(1))
)
node.mountLightPushClient()

View File

@ -259,11 +259,7 @@ suite "Waku v2 Rest API - Relay":
let node = testWakuNode()
(await node.mountRelay()).isOkOr:
assert false, "Failed to mount relay"
let wakuRlnConfig = getWakuRlnConfig(
manager = manager,
treePath = genTempPath("rln_tree", "waku_rest_relay_1"),
index = MembershipIndex(1),
)
let wakuRlnConfig = getWakuRlnConfig(manager = manager, index = MembershipIndex(1))
await node.mountRlnRelay(wakuRlnConfig)
await node.start()
@ -514,11 +510,7 @@ suite "Waku v2 Rest API - Relay":
assert false, "Failed to mount relay"
require node.mountAutoSharding(1, 8).isOk
let wakuRlnConfig = getWakuRlnConfig(
manager = manager,
treePath = genTempPath("rln_tree", "waku_rest_relay_1"),
index = MembershipIndex(1),
)
let wakuRlnConfig = getWakuRlnConfig(manager = manager, index = MembershipIndex(1))
await node.mountRlnRelay(wakuRlnConfig)
await node.start()
@ -590,11 +582,7 @@ suite "Waku v2 Rest API - Relay":
assert false, "Failed to mount relay"
require node.mountAutoSharding(1, 8).isOk
let wakuRlnConfig = getWakuRlnConfig(
manager = manager,
treePath = genTempPath("rln_tree", "waku_rest_relay_1"),
index = MembershipIndex(1),
)
let wakuRlnConfig = getWakuRlnConfig(manager = manager, index = MembershipIndex(1))
await node.mountRlnRelay(wakuRlnConfig)
await node.start()
@ -656,11 +644,7 @@ suite "Waku v2 Rest API - Relay":
let node = testWakuNode()
(await node.mountRelay()).isOkOr:
assert false, "Failed to mount relay"
let wakuRlnConfig = getWakuRlnConfig(
manager = manager,
treePath = genTempPath("rln_tree", "waku_rest_relay_1"),
index = MembershipIndex(1),
)
let wakuRlnConfig = getWakuRlnConfig(manager = manager, index = MembershipIndex(1))
await node.mountRlnRelay(wakuRlnConfig)
await node.start()
@ -735,11 +719,7 @@ suite "Waku v2 Rest API - Relay":
assert false, "Failed to mount relay"
require node.mountAutoSharding(1, 8).isOk
let wakuRlnConfig = getWakuRlnConfig(
manager = manager,
treePath = genTempPath("rln_tree", "waku_rest_relay_1"),
index = MembershipIndex(1),
)
let wakuRlnConfig = getWakuRlnConfig(manager = manager, index = MembershipIndex(1))
await node.mountRlnRelay(wakuRlnConfig)
await node.start()

View File

@ -1,3 +0,0 @@
# rln_db_inspector
Documentation on running the `rln-db-inspector` can be found [here](../../docs/tutorial/rln-db-inspector.md)

View File

@ -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)

View File

@ -18,7 +18,6 @@ type RlnRelayConfBuilder* = object
dynamic*: Option[bool]
epochSizeSec*: Option[uint64]
userMessageLimit*: Option[uint64]
treePath*: Option[string]
proc init*(T: type RlnRelayConfBuilder): RlnRelayConfBuilder =
RlnRelayConfBuilder()
@ -56,9 +55,6 @@ proc withEpochSizeSec*(b: var RlnRelayConfBuilder, epochSizeSec: uint64) =
proc withUserMessageLimit*(b: var RlnRelayConfBuilder, userMessageLimit: uint64) =
b.userMessageLimit = some(userMessageLimit)
proc withTreePath*(b: var RlnRelayConfBuilder, treePath: string) =
b.treePath = some(treePath)
proc build*(b: RlnRelayConfBuilder): Result[Option[RlnRelayConf], string] =
if not b.enabled.get(false):
return ok(none(RlnRelayConf))
@ -86,8 +82,6 @@ proc build*(b: RlnRelayConfBuilder): Result[Option[RlnRelayConf], string] =
return err("rlnRelay.epochSizeSec is not specified")
if b.userMessageLimit.isNone():
return err("rlnRelay.userMessageLimit is not specified")
if b.treePath.isNone():
return err("rlnRelay.treePath is not specified")
return ok(
some(
@ -100,7 +94,6 @@ proc build*(b: RlnRelayConfBuilder): Result[Option[RlnRelayConf], string] =
ethContractAddress: b.ethContractAddress.get(),
epochSizeSec: b.epochSizeSec.get(),
userMessageLimit: b.userMessageLimit.get(),
treePath: b.treePath.get(),
)
)
)

View File

@ -28,8 +28,7 @@ import
../waku_enr,
../node/peer_manager,
../waku_core/topics/pubsub_topic,
../../tools/rln_keystore_generator/rln_keystore_generator,
../../tools/rln_db_inspector/rln_db_inspector
../../tools/rln_keystore_generator/rln_keystore_generator
include ../waku_core/message/default_values
@ -48,7 +47,6 @@ type EthRpcUrl* = distinct string
type StartUpCommand* = enum
noCommand # default, runs waku
generateRlnKeystore # generates a new RLN keystore
inspectRlnDb # Inspects a given RLN tree db, providing essential db stats
type WakuNodeConf* = object
configFile* {.
@ -132,13 +130,6 @@ type WakuNodeConf* = object
.}: string
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:
execute* {.
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"
.}: bool
rlnRelayTreePath* {.
desc: "Path to the RLN merkle tree sled db (https://github.com/spacejam/sled)",
defaultValue: "",
name: "rln-relay-tree-path"
.}: string
staticnodes* {.
desc: "Peer multiaddr to directly connect with. Argument may be repeated.",
name: "staticnode"
@ -863,9 +848,6 @@ proc toKeystoreGeneratorConf*(n: WakuNodeConf): RlnKeystoreGeneratorConf =
credPassword: n.rlnRelayCredPassword,
)
proc toInspectRlnDbConf*(n: WakuNodeConf): InspectRlnDbConf =
return InspectRlnDbConf(treePath: n.treePath)
proc toNetworkConf(
preset: string, clusterId: Option[uint16]
): ConfResult[Option[NetworkConf]] =
@ -909,8 +891,6 @@ proc toWakuConf*(n: WakuNodeConf): ConfResult[WakuConf] =
b.rlnRelayConf.withCredIndex(n.rlnRelayCredIndex.get())
b.rlnRelayConf.withDynamic(n.rlnRelayDynamic)
b.rlnRelayConf.withTreePath(n.rlnRelayTreePath)
if n.maxMessageSize != "":
b.withMaxMessageSize(n.maxMessageSize)

View File

@ -356,7 +356,6 @@ proc setupProtocols(
chainId: rlnRelayConf.chainId,
ethClientUrls: rlnRelayConf.ethClientUrls,
creds: rlnRelayConf.creds,
treePath: rlnRelayConf.treePath,
userMessageLimit: rlnRelayConf.userMessageLimit,
epochSizeSec: rlnRelayConf.epochSizeSec,
onFatalErrorAction: onFatalErrorAction,

View File

@ -214,8 +214,6 @@ proc validateNoEmptyStrings(wakuConf: WakuConf): Result[void, string] =
if wakuConf.rlnRelayConf.isSome():
let rlnRelayConf = wakuConf.rlnRelayConf.get()
if isEmptyOrWhiteSpace(rlnRelayConf.treePath):
return err("rln-relay-tree-path is an empty string")
if rlnRelayConf.ethClientUrls.len == 0:
return err("rln-relay-eth-client-address is empty")
if isEmptyOrWhiteSpace(rlnRelayConf.ethContractAddress):

View File

@ -6,7 +6,7 @@ import
stew/[arrayops, byteutils, endians2],
stint,
results,
std/[sequtils, strutils, tables]
std/[sequtils, strutils, tables, tempfiles]
import ./rln_interface, ../conversion_utils, ../protocol_types, ../protocol_metrics
import ../../waku_core, ../../waku_keystore
@ -63,7 +63,6 @@ type RlnTreeConfig = ref object of RootObj
mode: string
compression: bool
flush_every_ms: int
path: string
type RlnConfig = ref object of RootObj
resources_folder: string
@ -78,17 +77,13 @@ proc `%`(c: RlnConfig): JsonNode =
"mode": %c.tree_config.mode,
"compression": %c.tree_config.compression,
"flush_every_ms": %c.tree_config.flush_every_ms,
"path": %c.tree_config.path,
}
return %[("resources_folder", %c.resources_folder), ("tree_config", %tree_config)]
proc createRLNInstanceLocal(
d = MerkleTreeDepth, tree_path = DefaultRlnTreePath
): RLNResult =
proc createRLNInstanceLocal(d = MerkleTreeDepth): RLNResult =
## generates an instance of RLN
## An RLN instance supports both zkSNARKs logics and Merkle tree data structure and operations
## d indicates the depth of Merkle tree
## tree_path indicates the path of the Merkle tree
## Returns an error if the instance creation fails
let rln_config = RlnConfig(
@ -98,7 +93,6 @@ proc createRLNInstanceLocal(
mode: "high_throughput",
compression: false,
flush_every_ms: 500,
path: tree_path,
),
)
@ -118,14 +112,12 @@ proc createRLNInstanceLocal(
return err("error in parameters generation")
return ok(rlnInstance)
proc createRLNInstance*(
d = MerkleTreeDepth, tree_path = DefaultRlnTreePath
): RLNResult =
proc createRLNInstance*(d = MerkleTreeDepth): RLNResult =
## Wraps the rln instance creation for metrics
## Returns an error if the instance creation fails
var res: RLNResult
waku_rln_instance_creation_duration_seconds.nanosecondTime:
res = createRLNInstanceLocal(d, tree_path)
res = createRLNInstanceLocal(d)
return res
proc sha256*(data: openArray[byte]): RlnRelayResult[MerkleNode] =

View File

@ -46,7 +46,6 @@ type RlnRelayConf* = object of RootObj
ethClientUrls*: seq[string]
chainId*: UInt256
creds*: Option[RlnRelayCreds]
treePath*: string
epochSizeSec*: uint64
userMessageLimit*: uint64
ethPrivateKey*: Option[string]
@ -408,7 +407,7 @@ proc mount(
groupManager: GroupManager
wakuRlnRelay: WakuRLNRelay
# create an RLN instance
let rlnInstance = createRLNInstance(tree_path = conf.treePath).valueOr:
let rlnInstance = createRLNInstance().valueOr:
return err("could not create RLN instance: " & $error)
let (rlnRelayCredPath, rlnRelayCredPassword) =