waku-simulator/traffic.py

34 lines
67 KiB
Python
Raw Normal View History

2023-06-26 16:19:59 +02:00
import requests
import time
import json
import os
import base64
def send_waku_msg(node_address, bytes):
#curl http://localhost:8545 -d '{"jsonrpc":"2.0","method":"post_waku_v2_relay_v1_message","params":["/waku/2/default-waku/proto", {"payload": "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
# TODO dirty trick .replace("=", "")
base64_payload = (base64.b64encode(os.urandom(bytes)).decode('ascii')).replace("=", "")
#print(base64_payload)
print("size message bytes", len(base64_payload) *(3/4), "Bytes")
pubsub_topic = "/waku/2/default-waku/proto"
content_topic = "xxx"
data = {
'jsonrpc': '2.0',
'method': 'post_waku_v2_relay_v1_message',
'id': 1,
'params': [pubsub_topic, {"payload": base64_payload, "contentTopic": content_topic, "ephemeral": False}]
}
print('Waku RPC: %s from %s PubSubTopic: %s, ContentTopic: %s' % (data['method'], node_address, pubsub_topic, content_topic))
s_time = time.time()
#print(data)
response = requests.post(node_address, data=json.dumps(data), headers={'content-type': 'application/json'})
elapsed_ms = (time.time() - s_time) * 1000
response_obj = response.json()
print('Response from %s: %s [%.4f ms.]' % (node_address, response_obj, elapsed_ms))
return response_obj
while True:
# calls are blocking
# limited by the time it takes the rpc to reply
send_waku_msg("http://localhost:8545", 1000) #1kBytes messages
#time.sleep(0.1)