mirror of
https://github.com/ElementsProject/elements.git
synced 2026-08-16 13:01:19 +02:00
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
This commit is contained in:
parent
536207f316
commit
afb0ccaf9c
4 changed files with 26 additions and 1 deletions
15
src/main.cpp
15
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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue