2024-06-28 16:04:57 +05:30
|
|
|
|
{.push raises: [].}
|
2024-03-06 18:44:33 +05:30
|
|
|
|
|
2025-10-01 16:31:34 +10:00
|
|
|
|
import ../../apps/wakunode2/cli_args
|
|
|
|
|
|
import waku/[common/logging, factory/[waku, networks_config]]
|
2024-03-06 18:44:33 +05:30
|
|
|
|
import
|
|
|
|
|
|
std/[options, strutils, os, sequtils],
|
|
|
|
|
|
chronicles,
|
|
|
|
|
|
chronos,
|
|
|
|
|
|
metrics,
|
|
|
|
|
|
libbacktrace,
|
|
|
|
|
|
libp2p/crypto/crypto
|
|
|
|
|
|
|
|
|
|
|
|
export
|
2024-05-03 14:07:15 +02:00
|
|
|
|
networks_config, waku, logging, options, strutils, os, sequtils, stewNet, chronicles,
|
2024-03-16 00:08:47 +01:00
|
|
|
|
chronos, metrics, libbacktrace, crypto
|
2024-03-06 18:44:33 +05:30
|
|
|
|
|
2024-05-03 14:07:15 +02:00
|
|
|
|
proc setup*(): Waku =
|
|
|
|
|
|
const versionString = "version / git commit hash: " & waku.git_version
|
2024-03-06 18:44:33 +05:30
|
|
|
|
let rng = crypto.newRng()
|
|
|
|
|
|
|
|
|
|
|
|
let confRes = WakuNodeConf.load(version = versionString)
|
|
|
|
|
|
if confRes.isErr():
|
|
|
|
|
|
error "failure while loading the configuration", error = $confRes.error
|
|
|
|
|
|
quit(QuitFailure)
|
|
|
|
|
|
|
|
|
|
|
|
var conf = confRes.get()
|
|
|
|
|
|
|
2025-07-04 17:10:53 +10:00
|
|
|
|
let twnNetworkConf = NetworkConf.TheWakuNetworkConf()
|
2024-03-06 18:44:33 +05:30
|
|
|
|
if len(conf.shards) != 0:
|
2025-07-04 17:10:53 +10:00
|
|
|
|
conf.pubsubTopics = conf.shards.mapIt(twnNetworkConf.pubsubTopics[it.uint16])
|
2024-03-06 18:44:33 +05:30
|
|
|
|
else:
|
2025-07-04 17:10:53 +10:00
|
|
|
|
conf.pubsubTopics = twnNetworkConf.pubsubTopics
|
2024-03-06 18:44:33 +05:30
|
|
|
|
|
|
|
|
|
|
# Override configuration
|
2025-07-04 17:10:53 +10:00
|
|
|
|
conf.maxMessageSize = twnNetworkConf.maxMessageSize
|
|
|
|
|
|
conf.clusterId = twnNetworkConf.clusterId
|
|
|
|
|
|
conf.rlnRelayEthContractAddress = twnNetworkConf.rlnRelayEthContractAddress
|
|
|
|
|
|
conf.rlnRelayDynamic = twnNetworkConf.rlnRelayDynamic
|
|
|
|
|
|
conf.discv5Discovery = twnNetworkConf.discv5Discovery
|
2024-03-06 18:44:33 +05:30
|
|
|
|
conf.discv5BootstrapNodes =
|
2025-07-04 17:10:53 +10:00
|
|
|
|
conf.discv5BootstrapNodes & twnNetworkConf.discv5BootstrapNodes
|
|
|
|
|
|
conf.rlnEpochSizeSec = twnNetworkConf.rlnEpochSizeSec
|
|
|
|
|
|
conf.rlnRelayUserMessageLimit = twnNetworkConf.rlnRelayUserMessageLimit
|
2024-03-06 18:44:33 +05:30
|
|
|
|
|
2024-08-01 23:28:00 +03:00
|
|
|
|
# Only set rlnRelay to true if relay is configured
|
|
|
|
|
|
if conf.relay:
|
2025-07-04 17:10:53 +10:00
|
|
|
|
conf.rlnRelay = twnNetworkConf.rlnRelay
|
2024-08-01 23:28:00 +03:00
|
|
|
|
|
2025-10-15 10:49:36 +02:00
|
|
|
|
info "Starting node"
|
2025-07-10 19:49:47 +03:00
|
|
|
|
var waku = (waitFor Waku.new(conf)).valueOr:
|
2024-05-03 14:07:15 +02:00
|
|
|
|
error "Waku initialization failed", error = error
|
2024-03-06 18:44:33 +05:30
|
|
|
|
quit(QuitFailure)
|
|
|
|
|
|
|
2024-05-03 14:07:15 +02:00
|
|
|
|
(waitFor startWaku(addr waku)).isOkOr:
|
|
|
|
|
|
error "Starting waku failed", error = error
|
2024-03-06 18:44:33 +05:30
|
|
|
|
quit(QuitFailure)
|
|
|
|
|
|
|
|
|
|
|
|
# set triggerSelf to false, we don't want to process our own stealthCommitments
|
2024-05-03 14:07:15 +02:00
|
|
|
|
waku.node.wakuRelay.triggerSelf = false
|
2024-03-06 18:44:33 +05:30
|
|
|
|
|
|
|
|
|
|
info "Node setup complete"
|
2024-05-03 14:07:15 +02:00
|
|
|
|
return waku
|