-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
bug/regression: some lightnodes are not receiving filter push in certain conditions #2512
Comments
@fbarbu15 I tried the following scenario succesfully using latest export YOUR_IP_GOES_HERE=192.168.0.100
# NODE 1 - NWAKU
clear && ./build/wakunode2 --rest --filter --relay --pubsub-topic=/waku/2/default-waku/proto --tcp-port=61000 --nodekey=1122334455667788990011223344556677889900112233445566778899001122 --discv5-discovery --nat=extip:$YOUR_IP_GOES_HERE
export NODE1_ENR_GOES_HERE=............................
# NODE 2 - NWAKU
clear && ./build/wakunode2 --rest --rest-port=8646 --filter --tcp-port=61100 --discv5-udp-port=22343 --nodekey=1122334455667788990011223344556677889900112233445566778899001133 --nat=extip:$YOUR_IP_GOES_HERE --discv5-discovery --discv5-bootstrap-node=$NODE1_ENR_GOES_HERE
# NODE 3 - GOWAKU
clear && ./build/waku --rest --rest-port=8647 --filter --tcp-port=61200 --discv5-udp-port=22344 --nodekey=1122334455667788990011223344556677889900112233445566778899001144 --discv5-discovery --discv5-bootstrap-node=$NODE1_ENR_GOES_HERE
# NODE 4 - GOWAKU
clear && ./build/waku --rest --rest-port=8648 --filter --tcp-port=61300 --discv5-udp-port=22346 --nodekey=1122334455667788990011223344556677889900112233445566778899001155 --discv5-discovery --discv5-bootstrap-node=$NODE1_ENR_GOES_HERE
# NODE 5 - GOWAKU
clear && ./build/waku --rest --rest-port=8649 --filter --tcp-port=61400 --discv5-udp-port=22347 --nodekey=1122334455667788990011223344556677889900112233445566778899001166 --discv5-discovery --discv5-bootstrap-node=$NODE1_ENR_GOES_HERE Sent the following REST calls to subscribe the nodes to NODE 1: curl -vv -X POST "http://localhost:8646/filter/v2/subscriptions" -H "accept: text/plain" -H "content-type: application/json" -d '{"requestId":"146546546","contentFilters":["/my-app/2/chatroom-1/proto"], "pubsubTopic": "/waku/2/default-waku/proto"}'
curl -vv -X POST "http://localhost:8647/filter/v2/subscriptions" -H "accept: text/plain" -H "content-type: application/json" -d '{"requestId":"146546546","contentFilters":["/my-app/2/chatroom-1/proto"], "pubsubTopic": "/waku/2/default-waku/proto"}'
curl -vv -X POST "http://localhost:8648/filter/v2/subscriptions" -H "accept: text/plain" -H "content-type: application/json" -d '{"requestId":"146546546","contentFilters":["/my-app/2/chatroom-1/proto"], "pubsubTopic": "/waku/2/default-waku/proto"}'
curl -vv -X POST "http://localhost:8649/filter/v2/subscriptions" -H "accept: text/plain" -H "content-type: application/json" -d '{"requestId":"146546546","contentFilters":["/my-app/2/chatroom-1/proto"], "pubsubTopic": "/waku/2/default-waku/proto"}' Then, I sent a message from node1:
And retrieved the messages:
Do notice that in nwaku, it is not possible to specify the pubsub topic when retrieving the messages. I think this setup is similar to what you have. However I wasn't able to reproduce the problem. I'm probably having a difference in the setup, so please indicate if i'm missing some flag. |
Ah, something else I had to do was to use |
@richard-ramos thanks for script but was unfortunately unable to build go-waku to try it... |
I found out what's the problem! In the script that uses Docker, the nodes use the flag In this scenario what's happening is that the go-waku nodes are discovering the peer via discv5. This peer's ENR contains in the It's not really necessary to use the |
Thanks, this indeed fixed the tests. |
Depends on the point of view. Using a flag like --filter, --store, --peer-exchange means that you're supporting the 'server' side of the protocol (i.e. providing support for other nodes to consume the protocol), however, acting as a client is always possible as these features do not require mounting a protocol to consume from other nodes. |
Problem
When having a setup with multiple nodes, one relay and others filter(without relay), some go-waku nodes are not receiving the relayed message via filter push.
This doesn't happens with
wakuorg/nwaku:v0.25.0
It was reproduced with both
harbor.status.im/wakuorg/nwaku:latest
andquay.io/wakuorg/nwaku-pr:2493
so it may be unrelated with #2491Ex setup
It seems to depend also on node2. If instead of
nwaku latest
I set node2 asgo-waku latest
the issue doesn't reproduce anymoreTo reproduce
Expected behavior
All nodes should receive the message
Actual behavior
Some nodes do not get the message and I see no filter push in the logs
node4 and 5 don't receive the pushed message_nwaku_latest.zip
node4 doesn't receive the pushed message_pr2493.zip
The text was updated successfully, but these errors were encountered: