<p>Remove address prefix in case the peer has updated vesion as well.<br>
Processes all mailbox messages in a thread. (1000 msgs takes about 1 sec).</p>
<p>Replaces <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="716699022" data-permission-text="Title is private" data-url="https://github.com/bisq-network/bisq/issues/4609" data-hovercard-type="pull_request" data-hovercard-url="/bisq-network/bisq/pull/4609/hovercard" href="https://github.com/bisq-network/bisq/pull/4609">#4609</a></p>

<hr>

<h4>You can view, comment on, or merge this pull request online at:</h4>
<p>  <a href='https://github.com/bisq-network/bisq/pull/4610'>https://github.com/bisq-network/bisq/pull/4610</a></p>

<h4>Commit Summary</h4>
<ul>
  <li>Add NO_ADDRESS_PRE_FIX capability.</li>
  <li>Cleanups</li>
  <li>Make onRemoved default in interface</li>
  <li>Add methods for getting peers capabilities</li>
  <li>Remove verification for address prefix</li>
  <li>Clear capabilitiesListeners at shutdown</li>
  <li>Refactor: move SupportedCapabilitiesMessage handling code out to a method</li>
  <li>Use only node address for equals and hashcode</li>
  <li>Pass supportedCapabilities to PeerManager. Not further processed yet, will be done in next commits</li>
  <li>Use getSingleThreadListeningExecutor, cleanups</li>
  <li>Apply code inspection suggestions</li>
  <li>Add findPeersCapabilities method</li>
  <li>Add getDateAsLong method, add setter for capabilities</li>
  <li>Add findPeersCapabilities method</li>
  <li>Replace persistedPeers with peerList</li>
  <li>Use getPersistedPeers for peerList.getList() calls</li>
  <li>Update common/src/main/java/bisq/common/app/Capability.java</li>
  <li>Update p2p/src/main/java/bisq/network/p2p/network/Connection.java</li>
  <li>Fix incorrect handling of decryptedEntries size</li>
  <li>Refactor: Return early</li>
  <li>Refactor: Rearrange code, remove unused methods, renamings (no functional change)</li>
  <li>Refactor: Rename method</li>
  <li>Use connection.getPeersNodeAddressOptional().isPresent() instead of connection.hasPeersNodeAddress() which does the same internally</li>
  <li>Fix tests</li>
  <li>Use a hashset instead of list to avoid duplicates. Filter out my own node from persisted peers.</li>
  <li>Decrease failedConnectionAttempts onConnection</li>
  <li>Fix incorrect collection used in == 1 check</li>
  <li>Add isPresent check</li>
  <li>Do not log size as we don't want to call potentially expensive toProtoMessage method</li>
  <li>Copy peers in a new hashset to avoid concurrent modification exc at serialisation</li>
  <li>Dont reassign param</li>
  <li>Use custom class MailboxItem instead of Tuple</li>
  <li>Apply code review suggestions</li>
  <li>When updating the capability from a reported peer we check if the reported one has higher capabilities, otherwise we ignore it.</li>
  <li>Apply codacy suggestions</li>
</ul>

<h4>File Changes</h4>
<ul>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4610/files#diff-f1c1c294315c7864d34332ca42c3392d">common/src/main/java/bisq/common/app/Capabilities.java</a>
    (18)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4610/files#diff-bc025beacb936ddb06111c420f1ff81b">common/src/main/java/bisq/common/app/Capability.java</a>
    (3)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4610/files#diff-c317053a50ed7df5e82450b779690bd6">common/src/test/java/bisq/common/app/CapabilitiesTest.java</a>
    (42)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4610/files#diff-134d8e0fd305b364b2fd23c54a4a17c3">core/src/main/java/bisq/core/dao/governance/blindvote/network/RepublishGovernanceDataHandler.java</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4610/files#diff-81116ad8e32652a73d8349d5fe7d86d1">core/src/main/java/bisq/core/dao/node/lite/network/LiteNodeNetworkService.java</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4610/files#diff-c824cd1a8cf8e6108a0b47c00b592ded">core/src/main/java/bisq/core/setup/CoreNetworkCapabilities.java</a>
    (3)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4610/files#diff-d082720b58023e4c4e491d1d88465f2e">core/src/main/java/bisq/core/support/dispute/agent/DisputeAgentManager.java</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4610/files#diff-7532dfd334eae58bd0b161ff73fb9cab">core/src/main/java/bisq/core/trade/protocol/TradeProtocol.java</a>
    (5)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4610/files#diff-0ba2bc60ae1d88a1c89f58bf6b5e546e">monitor/src/main/java/bisq/monitor/metric/P2PNetworkLoad.java</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4610/files#diff-e9c3ce2594ef460ffe25a97d74eefaf0">p2p/src/main/java/bisq/network/p2p/DecryptedDirectMessageListener.java</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4610/files#diff-81fa28001a955a968404e92eac935b87">p2p/src/main/java/bisq/network/p2p/P2PService.java</a>
    (325)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4610/files#diff-843e3b602c54b54746264a05d10086d2">p2p/src/main/java/bisq/network/p2p/PrefixedSealedAndSignedMessage.java</a>
    (7)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4610/files#diff-dcdbc6a034a83164c59b7128d14a831b">p2p/src/main/java/bisq/network/p2p/network/Connection.java</a>
    (78)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4610/files#diff-abf37438b61275138b85e72d9c205cb8">p2p/src/main/java/bisq/network/p2p/network/NetworkNode.java</a>
    (9)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4610/files#diff-dea99183a420c3e98ee3f3b3d7b4e956">p2p/src/main/java/bisq/network/p2p/network/SynchronizedProtoOutputStream.java</a>
    (6)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4610/files#diff-a68598a1286ab69eb9ef04051f87f246">p2p/src/main/java/bisq/network/p2p/peers/PeerManager.java</a>
    (531)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4610/files#diff-c5b91b63ad4603bb23721fd2f7e15b19">p2p/src/main/java/bisq/network/p2p/peers/getdata/RequestDataManager.java</a>
    (4)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4610/files#diff-bb766cd9490e1ad086b554d135dadc50">p2p/src/main/java/bisq/network/p2p/peers/peerexchange/GetPeersRequestHandler.java</a>
    (10)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4610/files#diff-9015ea09286aa50ab59d56983229f759">p2p/src/main/java/bisq/network/p2p/peers/peerexchange/Peer.java</a>
    (34)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4610/files#diff-3f57375d1698514b7c089670f3aec81a">p2p/src/main/java/bisq/network/p2p/peers/peerexchange/PeerExchangeHandler.java</a>
    (9)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4610/files#diff-cd4b458a28a28cb331769c16bd042b20">p2p/src/main/java/bisq/network/p2p/peers/peerexchange/PeerExchangeManager.java</a>
    (8)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4610/files#diff-11189b9c82104dbc1d9d13d7077b14c6">p2p/src/main/java/bisq/network/p2p/peers/peerexchange/PeerList.java</a>
    (31)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4610/files#diff-6f401aac72803d17e3cd8ecb3c5a4e2b">p2p/src/main/java/bisq/network/p2p/peers/peerexchange/messages/GetPeersRequest.java</a>
    (10)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4610/files#diff-a48c9f9b84430df20242488061383088">p2p/src/main/java/bisq/network/p2p/peers/peerexchange/messages/GetPeersResponse.java</a>
    (8)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4610/files#diff-94c2687b257859598fffc7b3241989b7">p2p/src/main/java/bisq/network/p2p/storage/HashMapChangedListener.java</a>
    (5)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4610/files#diff-926901286366061dc8575034045cb922">p2p/src/main/java/bisq/network/p2p/storage/P2PDataStorage.java</a>
    (6)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4610/files#diff-ee1f4922cf5b366bf0ac62e33eaeeab0">p2p/src/main/java/bisq/network/p2p/storage/persistence/StoreService.java</a>
    (5)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4610/files#diff-51cf00817695f964992bc6a4aee433e0">p2p/src/test/java/bisq/network/p2p/MockNode.java</a>
    (2)
  </li>
</ul>

<h4>Patch Links:</h4>
<ul>
  <li><a href='https://github.com/bisq-network/bisq/pull/4610.patch'>https://github.com/bisq-network/bisq/pull/4610.patch</a></li>
  <li><a href='https://github.com/bisq-network/bisq/pull/4610.diff'>https://github.com/bisq-network/bisq/pull/4610.diff</a></li>
</ul>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/bisq-network/bisq/pull/4610">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AJFFTNXRPUALW4K6RGECB6DSJZC3DANCNFSM4SJMCTFQ">unsubscribe</a>.<img src="https://github.com/notifications/beacon/AJFFTNTEVBJ4Q5SI3VOE4LLSJZC3DA5CNFSM4SJMCTF2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4KWHYUZA.gif" height="1" width="1" alt="" /></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/bisq-network/bisq/pull/4610",
"url": "https://github.com/bisq-network/bisq/pull/4610",
"name": "View Pull Request"
},
"description": "View this Pull Request on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>