Skip to content
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

De-neuter NODE_BLOOM #6641

Closed
wants to merge 2 commits into from
Closed

Conversation

TheBlueMatt
Copy link
Contributor

I forget things easily, so I'm gonna get a few months ahead of myself and PR this now...to be merged a full release cycle after #6579.

@laanwj laanwj added this to the Future milestone Sep 8, 2015
@laanwj
Copy link
Member

laanwj commented Sep 8, 2015

Assigned 'future' milestone accordingly.

@laanwj laanwj added the P2P label Sep 8, 2015
@dcousens
Copy link
Contributor

dcousens commented Sep 9, 2015

@TheBlueMatt can this be re-based?

@Diapolo
Copy link

Diapolo commented Sep 9, 2015

Yeah a rebase would make it clear that the base pull has been merged.

@TheBlueMatt
Copy link
Contributor Author

Rebased.

On 09/09/15 15:09, P. Kaufmann wrote:

Yeah a rebase would make it clear that the base pull has been merged.


Reply to this email directly or view it on GitHub
#6641 (comment).

@maflcko
Copy link
Member

maflcko commented Sep 22, 2015

@TheBlueMatt
Copy link
Contributor Author

Updated to include doc/bips.md update (needed to rebase to do so)

@@ -16,4 +16,4 @@ BIPs that are implemented by Bitcoin Core (up-to-date up to **v0.12.0**):
* [`BIP 61`](https://github.com/bitcoin/bips/blob/master/bip-0061.mediawiki): The 'reject' protocol message (and the protocol version bump to 70002) was added in **v0.9.0** ([PR #3185](https://github.com/bitcoin/bitcoin/pull/3185)).
* [`BIP 66`](https://github.com/bitcoin/bips/blob/master/bip-0066.mediawiki): The strict DER rules and associated version 3 blocks have been implemented since **v0.10.0** ([PR #5713](https://github.com/bitcoin/bitcoin/pull/5713)).
* [`BIP 70`](https://github.com/bitcoin/bips/blob/master/bip-0070.mediawiki) [`71`](https://github.com/bitcoin/bips/blob/master/bip-0071.mediawiki) [`72`](https://github.com/bitcoin/bips/blob/master/bip-0072.mediawiki): Payment Protocol support has been available in Bitcoin Core GUI since **v0.9.0** ([PR #5216](https://github.com/bitcoin/bitcoin/pull/5216)).
* [`BIP 111`](https://github.com/bitcoin/bips/blob/master/bip-0111.mediawiki): `NODE_BLOOM` service bit added, but only enforced for peer versions `>=70011` as of **v0.12.0** ([PR #6579](https://github.com/bitcoin/bitcoin/pull/6579)).
* [`BIP 111`](https://github.com/bitcoin/bips/blob/master/bip-0111.mediawiki): `NODE_BLOOM` service bit added, and enforced for all peer versions as of **v0.13.0** ([PR #6579](https://github.com/bitcoin/bitcoin/pull/6579) and [PR #6641](https://github.com/bitcoin/bitcoin/pull/6641).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: Missing closing bracket. ')'

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.

On 09/25/15 20:02, MarcoFalke wrote:

In doc/bips.md
#6641 (comment):

@@ -16,4 +16,4 @@ BIPs that are implemented by Bitcoin Core (up-to-date up to v0.12.0):

  • BIP 61: The 'reject' protocol message (and the protocol version bump to 70002) was added in v0.9.0 (PR #3185).
  • BIP 66: The strict DER rules and associated version 3 blocks have been implemented since v0.10.0 (PR #5713).
  • BIP 70 71 72: Payment Protocol support has been available in Bitcoin Core GUI since v0.9.0 (PR #5216).
    -* BIP 111: NODE_BLOOM service bit added, but only enforced for peer versions >=70011 as of v0.12.0 (PR #6579).
    +* BIP 111: NODE_BLOOM service bit added, and enforced for all peer versions as of v0.13.0 (PR #6579 and PR #6641.

Nit: Missing closing bracket. ')'


Reply to this email directly or view it on GitHub
https://github.com/bitcoin/bitcoin/pull/6641/files#r40469809.

@laanwj
Copy link
Member

laanwj commented Nov 13, 2015

There was discussion about this in #bitcoin today: some prefer this to be an option that would already be present in 0.12 but default to off, then the option removed in 0.13.
(not necessarily saying this is a good idea, just thought I'd remark it)

@jameshilliard
Copy link
Contributor

some prefer this to be an option that would already be present in 0.12 but default to off

This would certainly be useful for mining pools and other high-availability services that can't afford to waste resources serving SPV clients. I don't see any significant usability issues with allowing this right away since SPV clients will just look for more nodes if they get disconnected(the percentage of nodes using this option is likely to be quite small due to most using default settings). This appears to be a better solution than the current method of white-listing nodes by subver(which is in use by pools such as f2pool).

@jonasschnelli
Copy link
Contributor

Concept ACK.
Although there is one problem: Misbehaving(pfrom->GetId(), 100) results in a ban, fDisconnect=true allows a node to reconnect. My tests have shown that SPV clients tend to directly reconnect, call filter commands, get disconnected, a.s.o. Which happens in connect/disconnect loops multiple times per second.
Not sure what is best here, maybe it's reasonable to ban the node for serval minutes after not respecting the NODE_BLOOM bit.

@dcousens
Copy link
Contributor

Concept ACK

@TheBlueMatt
Copy link
Contributor Author

@jonasschnelli I think fDisconnect is the only reasonable behavior we can do (unless we implement a temporary ban, but that wouldnt add much given that either way it results in disconnect after only one or two roundtrips). We certainly cant completely ban given that we really want the "wait, why is my node not syncing? Oh, there's an update to my software" flow to work.

{
if (pfrom->nVersion >= NO_BLOOM_VERSION)
Misbehaving(pfrom->GetId(), 100);
//TODO: Enable this after reasonable network upgrade
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs rebase.

@TheBlueMatt
Copy link
Contributor Author

Rebased.

@laanwj laanwj modified the milestones: 0.13.0, Future Dec 3, 2015
@laanwj
Copy link
Member

laanwj commented Dec 3, 2015

Moved milestone from 'future' to '0.13', we can always decide to postpone further if SPV client implementations aren't ready by then.

@laanwj
Copy link
Member

laanwj commented Feb 2, 2016

Needs rebase.

@laanwj
Copy link
Member

laanwj commented Mar 17, 2016

Still needs rebase

@pstratem
Copy link
Contributor

@laanwj #7708

@jonasschnelli
Copy link
Contributor

Closing in favor of #7708

@bitcoin bitcoin locked as resolved and limited conversation to collaborators Sep 8, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants