LearnBitcoin

Bitcoin Dev Archive 2018

version.relay behavior change

5 messages, 9 to 16 Mar 2018. Started by Eric Voskuil.

Eric Voskuil (3), Andrew Chow (2)

Permalink Original thread on gnusha.org

Eric Voskuil permalink original

/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 in reply to Eric Voskuil permalink original

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

On 03/09/2018 02:50 AM, Eric Voskuil via bitcoin-dev wrote:

Quoted text (14 lines)
> /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
> bitcoin-dev@lists•linuxfoundation•org
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
Eric Voskuil in reply to Andrew Chow permalink original

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

Quoted text (28 lines)
> On Mar 9, 2018, at 16:33, Andrew Chow via bitcoin-dev <bitcoin-dev@lists•linuxfoundation•org> wrote:
>
> 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
>
>> On 03/09/2018 02:50 AM, Eric Voskuil via bitcoin-dev wrote:
>> /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
>> bitcoin-dev@lists•linuxfoundation•org
>> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>
> _______________________________________________
> bitcoin-dev mailing list
> bitcoin-dev@lists•linuxfoundation•org
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
Andrew Chow in reply to Eric Voskuil permalink original

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

On 03/15/2018 05:17 AM, Eric Voskuil wrote:

Quoted text (60 lines)
> 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
> <bitcoin-dev@lists•linuxfoundation•org
> <mailto:bitcoin-dev@lists.linuxfoundation.org>> wrote:
>
>> 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
>>
>>
>> On 03/09/2018 02:50 AM, Eric Voskuil via bitcoin-dev wrote:
>>> /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
>>> bitcoin-dev@lists•linuxfoundation•org
>>> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>>
>> _______________________________________________
>> bitcoin-dev mailing list
>> bitcoin-dev@lists•linuxfoundation•org
>> <mailto:bitcoin-dev@lists.linuxfoundation.org>
>> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
Eric Voskuil in reply to Andrew Chow permalink original

Agree, thanks for the input Andrew.

e

Quoted text (48 lines)
> On Mar 15, 2018, at 16:44, Andrew Chow <achow101-lists@achow101•com> wrote:
>
> 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
>
>> On 03/15/2018 05:17 AM, Eric Voskuil wrote:
>> 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 <bitcoin-dev@lists•linuxfoundation•org> wrote:
>>
>>> 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
>>>
>>>> On 03/09/2018 02:50 AM, Eric Voskuil via bitcoin-dev wrote:
>>>> /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
>>>> bitcoin-dev@lists•linuxfoundation•org
>>>> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>>>
>>> _______________________________________________
>>> bitcoin-dev mailing list
>>> bitcoin-dev@lists•linuxfoundation•org
>>> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>