mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-01-02 14:03:06 +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,
|
||||
epochSizeSec: conf.rlnEpochSizeSec,
|
||||
treePath: conf.rlnRelayTreePath,
|
||||
)
|
||||
|
||||
waitFor node.mountRlnRelay(rlnConf, spamHandler = some(spamHandler))
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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.",
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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",
|
||||
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
|
||||
|
||||
@ -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()
|
||||
|
||||
@ -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()
|
||||
|
||||
@ -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()
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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*(
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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()
|
||||
|
||||
|
||||
@ -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*(
|
||||
|
||||
@ -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()
|
||||
|
||||
|
||||
@ -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()
|
||||
|
||||
@ -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()
|
||||
|
||||
|
||||
@ -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]
|
||||
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(),
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
@ -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)
|
||||
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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):
|
||||
|
||||
@ -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] =
|
||||
|
||||
@ -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) =
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user