mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-01-19 06:43:45 +01:00
Add p2p message "wtxidrelay"
When sent to and received from a given peer, enables using wtxid's for announcing and fetching transactions with that peer.
This commit is contained in:
@@ -2342,6 +2342,10 @@ void ProcessMessage(
|
||||
if (pfrom.fInbound)
|
||||
PushNodeVersion(pfrom, connman, GetAdjustedTime());
|
||||
|
||||
if (nVersion >= WTXID_RELAY_VERSION) {
|
||||
connman.PushMessage(&pfrom, CNetMsgMaker(INIT_PROTO_VERSION).Make(NetMsgType::WTXIDRELAY));
|
||||
}
|
||||
|
||||
connman.PushMessage(&pfrom, CNetMsgMaker(INIT_PROTO_VERSION).Make(NetMsgType::VERACK));
|
||||
|
||||
pfrom.nServices = nServices;
|
||||
@@ -2478,6 +2482,18 @@ void ProcessMessage(
|
||||
return;
|
||||
}
|
||||
|
||||
// Feature negotiation of wtxidrelay should happen between VERSION and
|
||||
// VERACK, to avoid relay problems from switching after a connection is up
|
||||
if (msg_type == NetMsgType::WTXIDRELAY) {
|
||||
if (pfrom.nVersion >= WTXID_RELAY_VERSION) {
|
||||
LOCK(cs_main);
|
||||
if (!State(pfrom.GetId())->m_wtxid_relay) {
|
||||
State(pfrom.GetId())->m_wtxid_relay = true;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (!pfrom.fSuccessfullyConnected) {
|
||||
// Must have a verack message before anything else
|
||||
LOCK(cs_main);
|
||||
|
||||
Reference in New Issue
Block a user