mirror of
https://github.com/ElementsProject/elements.git
synced 2026-08-14 12:43:40 +02: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:
parent
2d282e0cba
commit
46d78d47de
4 changed files with 29 additions and 2 deletions
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue