Add bip157 NODE_COMPACT_FILTERS Service Flag

This commit is contained in:
Sofiane Baltaci 2019-12-21 02:39:30 +01:00
parent a643ac485c
commit b40d94641d
1 changed files with 9 additions and 0 deletions

View File

@ -125,6 +125,10 @@ impl ServiceFlags {
/// WITNESS indicates that a node can be asked for blocks and transactions including witness /// WITNESS indicates that a node can be asked for blocks and transactions including witness
/// data. /// data.
pub const WITNESS: ServiceFlags = ServiceFlags(1 << 3); pub const WITNESS: ServiceFlags = ServiceFlags(1 << 3);
/// COMPACT_FILTERS means the node will service basic block filter requests.
/// See BIP157 and BIP158 for details on how this is implemented.
pub const COMPACT_FILTERS: ServiceFlags = ServiceFlags(1 << 6);
/// NETWORK_LIMITED means the same as NODE_NETWORK with the limitation of only serving the last /// NETWORK_LIMITED means the same as NODE_NETWORK with the limitation of only serving the last
/// 288 (2 day) blocks. /// 288 (2 day) blocks.
@ -319,6 +323,7 @@ mod tests {
ServiceFlags::GETUTXO, ServiceFlags::GETUTXO,
ServiceFlags::BLOOM, ServiceFlags::BLOOM,
ServiceFlags::WITNESS, ServiceFlags::WITNESS,
ServiceFlags::COMPACT_FILTERS,
ServiceFlags::NETWORK_LIMITED, ServiceFlags::NETWORK_LIMITED,
]; ];
@ -337,6 +342,10 @@ mod tests {
flags2 ^= ServiceFlags::WITNESS; flags2 ^= ServiceFlags::WITNESS;
assert_eq!(flags2, ServiceFlags::GETUTXO); assert_eq!(flags2, ServiceFlags::GETUTXO);
flags2 |= ServiceFlags::COMPACT_FILTERS;
flags2 ^= ServiceFlags::GETUTXO;
assert_eq!(flags2, ServiceFlags::COMPACT_FILTERS);
// Test formatting. // Test formatting.
assert_eq!("ServiceFlags(NONE)", ServiceFlags::NONE.to_string()); assert_eq!("ServiceFlags(NONE)", ServiceFlags::NONE.to_string());