2364@@ -2365,7 +2365,13 @@ void PeerManager::ProcessMessage(CNode& pfrom, const std::string& msg_type, CDat
2365 m_connman.PushMessage(&pfrom, msg_maker.Make(NetMsgType::VERACK));
2366
2367 // Signal ADDRv2 support (BIP155).
2368- m_connman.PushMessage(&pfrom, msg_maker.Make(NetMsgType::SENDADDRV2));
2369+ if (greatest_common_version >= 70016) {
2370+ // BIP155 defines addrv2 and sendaddrv2 for all protocol versions, but some
2371+ // implementations reject messages they don't know. As a courtesy, don't send
2372+ // it to nodes with a version before 70016, as no software is known to support
2373+ // BIP155 that doesn't announce at least that protocol version number.
nit: Could mention that this is a temporary workaround, safe to be reverted end of 2021 or beginning of 2022
This change literally violates the bip, keeping the hack longer than one or two major versions would be problematic for too many reasons
I don’t see how it violates the BIP. It just chooses to only use the feature in some cases.
Ok, closing discussion. I still think this should be reverted eventually.
Yes, agree with that, but I don’t know the time frame.