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
Beacon Refreshing Peers #691
Comments
Confirmed from RFC
|
Maybe related: #643 |
Could be? Definitely in the same vein. My initial thoughts were along the lines of networks with large amounts of nodes ( say 100 ) where all they are doing is waiting for messages to come in; so idling. Every 5 seconds, every node will think the other 99 are being EVASIVE and will ping each peer, so the network gets ~10k PINGs followed by ~10k PING_OKs; and of course 99 EVASIVE messages being propagated to the user of each node. Seems excessive. |
One comment I noticed was whether a beacon would necessarily indicate that a peer is available, thus prompting the need to maybe choose to force a ping.
An alternative here though would be to bind to the correct interface for the beacon to use though I would think. |
Maybe getting really fancy, the DEALER socket could have a socket monitor to see any potential underlying socket errors. But I suspect that would still be impacted by inherent lossy networks and no errors would not be immediately detected. |
Another thought on multi-NIC setups. I'm just rambling. |
Pyre and Zyre are not very compatible anymore from what I recall. Have you also considered testing the python binding of zyre? |
From my testing they do work together but there are some things implemented in zyre that are not in pyre. These include support for the new draft https://rfc.zeromq.org/spec/43/, namely curve support. My goal is to bring them in as part of my other rework of pyre for asyncio. |
This issue has been automatically marked as stale because it has not had recent activity for 90 days. It will be closed if no further activity occurs within 21 days. Thank you for your contributions. |
I've been testing with pyre( https://github.com/zeromq/pyre ) and aspyre( https://github.com/smalls12/aspyre ) for its compatibility with zyre, which is the de-facto implementation of the ZRE protocol, because ideally all three would be compatible with each other.
I noticed that pyre and aspyre treat beacons as a means to refresh a peer so as to not leave the node to think that peer is being evasive.
zyre however does not do this.
I checked inside zyre_node.c and confirmed that
zyre_node_require_peer
will not refresh an already discovered peer.Any reason this could not be added?
The text was updated successfully, but these errors were encountered: