mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-02-02 13:03:09 +00:00
WIP: add network spammer code
This commit is contained in:
parent
af1c0f7987
commit
335cfccb80
59
apps/wakunode2/spammer.nim
Normal file
59
apps/wakunode2/spammer.nim
Normal file
@ -0,0 +1,59 @@
|
||||
when (NimMajor, NimMinor) < (1, 4):
|
||||
{.push raises: [Defect].}
|
||||
else:
|
||||
{.push raises: [].}
|
||||
|
||||
import
|
||||
chronos,
|
||||
chronicles,
|
||||
confutils,
|
||||
confutils/defs,
|
||||
confutils/std/net,
|
||||
confutils/toml/defs as confTomlDefs,
|
||||
confutils/toml/std/net as confTomlNet,
|
||||
stew/[byteutils, results],
|
||||
std/times,
|
||||
libp2p/protocols/pubsub/gossipsub
|
||||
|
||||
import
|
||||
../../waku/factory/waku,
|
||||
../../waku/waku_core,
|
||||
../../waku/node/waku_node,
|
||||
../../waku/common/confutils/envvar/defs as confEnvvarDefs,
|
||||
../../waku/common/confutils/envvar/std/net as confEnvvarNet
|
||||
|
||||
type SpammerConfig* = object
|
||||
enable* {.desc: "Enable spammer", defaultValue: false, name: "spammer".}: bool
|
||||
msgRate* {.
|
||||
desc: "Number of messages published per second",
|
||||
defaultValue: 10,
|
||||
name: "spammer-msg-rate"
|
||||
.}: uint64
|
||||
|
||||
proc runSpammer*(
|
||||
waku: Waku, contentTopic: ContentTopic = "/spammer/0/test/plain"
|
||||
) {.async.} =
|
||||
try:
|
||||
var conf = SpammerConfig.load()
|
||||
|
||||
if not conf.enable:
|
||||
return
|
||||
var ephemeral = true
|
||||
while true:
|
||||
var message = WakuMessage(
|
||||
payload: toBytes("Hello World!"),
|
||||
contentTopic: contentTopic,
|
||||
# meta: metaBytes,
|
||||
version: 2,
|
||||
timestamp: getNanosecondTime(getTime().toUnixFloat()),
|
||||
ephemeral: ephemeral,
|
||||
)
|
||||
|
||||
let pubRes = await waku.node.publish(none(PubsubTopic), message)
|
||||
if pubRes.isErr():
|
||||
error "failed to publish", msg = pubRes.error
|
||||
#echo await (waku.node.isReady())
|
||||
await sleepAsync(80)
|
||||
except CatchableError:
|
||||
error "Failed to load config", err = err(getCurrentExceptionMsg())
|
||||
quit(QuitFailure)
|
||||
@ -12,6 +12,7 @@ import
|
||||
system/ansi_c,
|
||||
libp2p/crypto/crypto
|
||||
import
|
||||
./spammer,
|
||||
../../tools/rln_keystore_generator/rln_keystore_generator,
|
||||
../../tools/rln_db_inspector/rln_db_inspector,
|
||||
../../waku/common/logging,
|
||||
@ -132,4 +133,10 @@ when isMainModule:
|
||||
|
||||
info "Node setup complete"
|
||||
|
||||
if not conf.rlnRelay:
|
||||
error "RLN not configured!"
|
||||
quit(QuitFailure)
|
||||
|
||||
asyncSpawn runSpammer(waku)
|
||||
|
||||
runForever()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user