Discussion:
version.relay behavior change
(too old to reply)
Eric Voskuil via bitcoin-dev
2018-03-09 07:50:02 UTC
Permalink
Raw Message
/Satoshi:0.15.0/ and later nodes appear to be no longer honoring the
version.relay=false flag (BIP37). Could someone familiar with the change
please explain the rational?

Thanks,

e
Andrew Chow via bitcoin-dev
2018-03-09 15:33:32 UTC
Permalink
Raw Message
Looking through the code, I don't think that this behavior has changed.
Are you sure that you are actually connected to Satoshi:0.15.0 nodes and
not a node that has simply set their user-agent to that (i.e. not a real
Satoshi:0.15.0 node)?

If what you are seeing is true, it is likely a bug and not an
intentional change. In that case, can you provide specific details on
how to reproduce?

Andrew
Post by Eric Voskuil via bitcoin-dev
/Satoshi:0.15.0/ and later nodes appear to be no longer honoring the
version.relay=false flag (BIP37). Could someone familiar with the change
please explain the rational?
Thanks,
e
_______________________________________________
bitcoin-dev mailing list
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
Eric Voskuil via bitcoin-dev
2018-03-15 09:17:22 UTC
Permalink
Raw Message
Thanks for the reply Andrew. I’ve reviewed the relevant Core sources and I do not see any problem. We have also synced against a Core node locally and not seen the problem.

The reason I suspected it was Core is that it is very common and all of the User Agents are consistent (with an occasional exception for forked nodes). So there’s no easy way to determine what sort of nodes we are seeing.

We tend to cycle through many more connections during sync than a Core node, so may just be seeing it more frequently, but I assume Core would log this behavior as well. Even so, seeing that wouldn’t help much. I’m as certain as I can be at this point that we are setting the flag and version correctly (and that we do not set bip37 filters).

This behavior started infrequently with 0.14.0 peers and has become more common over time. Just wondering at this point what fork would report as Core and be that common? We used to drop peers that did this (for protocol noncompliance), and I’m considering reinstating that behavior.

e
Looking through the code, I don't think that this behavior has changed. Are you sure that you are actually connected to Satoshi:0.15.0 nodes and not a node that has simply set their user-agent to that (i.e. not a real Satoshi:0.15.0 node)?
If what you are seeing is true, it is likely a bug and not an intentional change. In that case, can you provide specific details on how to reproduce?
Andrew
Post by Eric Voskuil via bitcoin-dev
/Satoshi:0.15.0/ and later nodes appear to be no longer honoring the
version.relay=false flag (BIP37). Could someone familiar with the change
please explain the rational?
Thanks,
e
_______________________________________________
bitcoin-dev mailing list
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
_______________________________________________
bitcoin-dev mailing list
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
Andrew Chow via bitcoin-dev
2018-03-15 15:44:43 UTC
Permalink
Raw Message
I don't think the nodes that you are connecting to that have this
behavior are actually forked from Bitcoin Core. It seems more like fake
nodes - nodes that don't actually do any verification or follow the
protocol. Such fake nodes can set whatever user agent they want, common
ones being Bitcoin Core's user agents.

IMO your best solution would be to drop peers for protocol noncompliance.

Andrew
Post by Eric Voskuil via bitcoin-dev
Thanks for the reply Andrew. I’ve reviewed the relevant Core sources
and I do not see any problem. We have also synced against a Core node
locally and not seen the problem.
The reason I suspected it was Core is that it is very common and all
of the User Agents are consistent (with an occasional exception for
forked nodes). So there’s no easy way to determine what sort of nodes
we are seeing. 
We tend to cycle through many more connections during sync than a Core
node, so may just be seeing it more frequently, but I assume Core
would log this behavior as well. Even so, seeing that wouldn’t help
much. I’m as certain as I can be at this point that we are setting the
flag and version correctly (and that we do not set bip37 filters).
This behavior started infrequently with 0.14.0 peers and has become
more common over time. Just wondering at this point what fork would
report as Core and be that common? We used to drop peers that did this
(for protocol noncompliance), and I’m considering reinstating that
behavior.
e
On Mar 9, 2018, at 16:33, Andrew Chow via bitcoin-dev
Post by Andrew Chow via bitcoin-dev
Looking through the code, I don't think that this behavior has
changed. Are you sure that you are actually connected to
Satoshi:0.15.0 nodes and not a node that has simply set their
user-agent to that (i.e. not a real Satoshi:0.15.0 node)?
If what you are seeing is true, it is likely a bug and not an
intentional change. In that case, can you provide specific details on
how to reproduce?
Andrew
Post by Eric Voskuil via bitcoin-dev
/Satoshi:0.15.0/ and later nodes appear to be no longer honoring the
version.relay=false flag (BIP37). Could someone familiar with the change
please explain the rational?
Thanks,
e
_______________________________________________
bitcoin-dev mailing list
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
_______________________________________________
bitcoin-dev mailing list
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
Eric Voskuil via bitcoin-dev
2018-03-16 08:27:47 UTC
Permalink
Raw Message
Agree, thanks for the input Andrew.

e
I don't think the nodes that you are connecting to that have this behavior are actually forked from Bitcoin Core. It seems more like fake nodes - nodes that don't actually do any verification or follow the protocol. Such fake nodes can set whatever user agent they want, common ones being Bitcoin Core's user agents.
IMO your best solution would be to drop peers for protocol noncompliance.
Andrew
Post by Eric Voskuil via bitcoin-dev
Thanks for the reply Andrew. I’ve reviewed the relevant Core sources and I do not see any problem. We have also synced against a Core node locally and not seen the problem.
The reason I suspected it was Core is that it is very common and all of the User Agents are consistent (with an occasional exception for forked nodes). So there’s no easy way to determine what sort of nodes we are seeing.
We tend to cycle through many more connections during sync than a Core node, so may just be seeing it more frequently, but I assume Core would log this behavior as well. Even so, seeing that wouldn’t help much. I’m as certain as I can be at this point that we are setting the flag and version correctly (and that we do not set bip37 filters).
This behavior started infrequently with 0.14.0 peers and has become more common over time. Just wondering at this point what fork would report as Core and be that common? We used to drop peers that did this (for protocol noncompliance), and I’m considering reinstating that behavior.
e
Looking through the code, I don't think that this behavior has changed. Are you sure that you are actually connected to Satoshi:0.15.0 nodes and not a node that has simply set their user-agent to that (i.e. not a real Satoshi:0.15.0 node)?
If what you are seeing is true, it is likely a bug and not an intentional change. In that case, can you provide specific details on how to reproduce?
Andrew
Post by Eric Voskuil via bitcoin-dev
/Satoshi:0.15.0/ and later nodes appear to be no longer honoring the
version.relay=false flag (BIP37). Could someone familiar with the change
please explain the rational?
Thanks,
e
_______________________________________________
bitcoin-dev mailing list
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
_______________________________________________
bitcoin-dev mailing list
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
Loading...