diff options
| author | Matt Corallo <[email protected]> | 2015-08-20 21:15:27 -0700 |
|---|---|---|
| committer | Matt Corallo <[email protected]> | 2015-09-05 23:29:13 -0700 |
| commit | afb0ccaf9c9e4e8fac7db3564c4e19c9218c6b03 (patch) | |
| tree | 14e3b07e6ed8886d97624d73767445b69f6dcb4b /src/main.cpp | |
| parent | Merge pull request #6636 (diff) | |
| download | discoin-afb0ccaf9c9e4e8fac7db3564c4e19c9218c6b03.tar.xz discoin-afb0ccaf9c9e4e8fac7db3564c4e19c9218c6b03.zip | |
Add NODE_BLOOM service bit and bump protocol version
Lets nodes advertise that they offer bloom filter support explicitly.
The protocol version bump allows SPV nodes to assume that NODE_BLOOM is
set if NODE_NETWORK is set for pre-70011 nodes.
Also adds an option to turn bloom filter support off for nodes which
advertise a version number >= 70011. Nodes attempting to use bloom
filters on such protocol versions are banned, and a later upgade
should drop nodes of an older version which attempt to use bloom
filters.
Much code stolen from Peter Todd.
Implements BIP 111
Diffstat (limited to 'src/main.cpp')
| -rw-r--r-- | src/main.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/main.cpp b/src/main.cpp index 35fbec666..a880533e6 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -4591,6 +4591,21 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, } + else if (!(nLocalServices & NODE_BLOOM) && + (strCommand == "filterload" || + strCommand == "filteradd" || + strCommand == "filterclear") && + //TODO: Remove this line after reasonable network upgrade + pfrom->nVersion >= NO_BLOOM_VERSION) + { + if (pfrom->nVersion >= NO_BLOOM_VERSION) + Misbehaving(pfrom->GetId(), 100); + //TODO: Enable this after reasonable network upgrade + //else + // pfrom->fDisconnect = true; + } + + else if (strCommand == "filterload") { CBloomFilter filter; |