You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The net_plugin attempts to disconnect all but one of duplicate connections to a peer. The idea is that if peer A is configured to connect to peer B and peer B is configured to connect to peer A; each peer A and B will only have one connection to each other.
The deduplication logic of net_plugin has never worked reliably. There are currently three different schemes that have been tried: proto_dup_goaway_resolution, proto_dup_node_id_goaway, and current scheme.
The current scheme still leaves duplicates in some race conditions. A simpler approach was recently attempted. See #1108. However, this approach had a race condition so that it would sometimes disconnect both connections; reverted in #1186. The issue is that the connection and handshake messages can be sent from each node at the same time. Both nodes can consider the other a duplicate at the same time and both disconnect.
In addition, EOSUSA has reported that the current de-duplication logic is causing continuous disconnect/reconnect from their proxy.
With the addition of the new block nack feature of net_plugin, the benefit from removing duplicate connections is reduced. At this point, I wonder if we shouldn't just remove this feature as it seems to be causing more harm than good.
The text was updated successfully, but these errors were encountered:
The
net_plugin
attempts to disconnect all but one of duplicate connections to a peer. The idea is that if peer A is configured to connect to peer B and peer B is configured to connect to peer A; each peer A and B will only have one connection to each other.PeerA
p2p-peer-address = peerb:9876
PeerB
p2p-peer-address = peera:9876
PeerA <- connected -> PeerB
PeerB <- connected -> PeerA
The deduplication logic of
net_plugin
has never worked reliably. There are currently three different schemes that have been tried:proto_dup_goaway_resolution
,proto_dup_node_id_goaway
, and current scheme.The current scheme still leaves duplicates in some race conditions. A simpler approach was recently attempted. See #1108. However, this approach had a race condition so that it would sometimes disconnect both connections; reverted in #1186. The issue is that the connection and handshake messages can be sent from each node at the same time. Both nodes can consider the other a duplicate at the same time and both disconnect.
In addition, EOSUSA has reported that the current de-duplication logic is causing continuous disconnect/reconnect from their proxy.
With the addition of the new block nack feature of
net_plugin
, the benefit from removing duplicate connections is reduced. At this point, I wonder if we shouldn't just remove this feature as it seems to be causing more harm than good.The text was updated successfully, but these errors were encountered: