<p></p>
<p><b>@chimp1984</b> requested changes on this pull request.</p>

<hr>

<p>In <a href="https://github.com/bisq-network/bisq/pull/4081#discussion_r484168915">core/src/main/java/bisq/core/btc/setup/WalletsSetup.java</a>:</p>
<pre style='color:#555'>> @@ -224,11 +228,12 @@ protected void onSetupCompleted() {
                 if (preferences.getBitcoinNodes() != null && !preferences.getBitcoinNodes().isEmpty())
                     peerGroup.setAddPeersFromAddressMessage(false);
 
+                peerGroup.addVersionMessageReceivedEventListener(WalletsSetup.this::handleConfiguration);
</pre>
<p>We get called from the BitcoinJ thread. We should map it to our userThread to avoid threading issues.</p>
<pre><code>peerGroup.addVersionMessageReceivedEventListener((peer, versionMessage) ->
                        UserThread.execute(handleConfiguration(peer, versionMessage)));
</code></pre>

<hr>

<p>In <a href="https://github.com/bisq-network/bisq/pull/4081#discussion_r484169350">core/src/main/resources/i18n/displayStrings.properties</a>:</p>
<pre style='color:#555'>> @@ -2527,6 +2527,7 @@ It will make debugging easier if you include the bisq.log file by pressing "Open
 
 popup.error.tryRestart=Please try to restart your application and check your network connection to see if you can resolve the issue.
 popup.error.takeOfferRequestFailed=An error occurred when someone tried to take one of your offers:\n{0}
+popup.error.userBtcNodeMisconfigured.explanation=The user-provided Bitcoin node {0} was found to be misconfigured. A user-provided BTC node is either a locally running node that was automatically detected and used, or a node explicitly specified via the --btcNodes command-line option. Bisq requires BTC nodes to have bloom filters enabled and pruning disabled. Automatic use of a local Bitcoin node can be disabled by using the --ignoreLocalBtcNode option.
</pre>
<p>I think we should not show an Error popup as it comes with the bug-report text and is confusing for that use case, even it is somehow an error as Bisq cannot be used in that case. I would suggest to use warning popup and to reflect that in the display string we should use <code>popup.warning.userBtcNodeMisConfigured.explanation</code>. Also changed to camelCase as IDEA static code inspector complains about a typo otherwise. I think misconfigured should be mis-configured in the text.</p>

<hr>

<p>In <a href="https://github.com/bisq-network/bisq/pull/4081#discussion_r484169453">desktop/src/main/java/bisq/desktop/main/MainViewModel.java</a>:</p>
<pre style='color:#555'>> @@ -401,6 +401,15 @@ private void setupHandlers() {
         daoPresentation.getBsqSyncProgress().addListener((observable, oldValue, newValue) -> updateBtcSyncProgress());
 
         bisqSetup.setFilterWarningHandler(warning -> new Popup().warning(warning).show());
+
+        walletsSetup.setDisplayUserBtcNodeMisconfigurationHandler(
+                (String peer) ->
+                    new Popup()
+                        .hideCloseButton()
+                        .error(Res.get("popup.error.userBtcNodeMisconfigured.explanation", peer))
</pre>
<p>As per prev. comment:<br>
-> <code> .warning(Res.get("popup.warning.userBtcNodeMisConfigured.explanation", peer))</code></p>

<hr>

<p>In <a href="https://github.com/bisq-network/bisq/pull/4081#discussion_r484169950">core/src/main/java/bisq/core/btc/setup/WalletsSetup.java</a>:</p>
<pre style='color:#555'>> -    private static ListenableFuture<Void> checkPeerConfiguration(Peer peer) {
-      var versionMessageFuture = getVersionMessage(peer);
-
-      Function<VersionMessage,Void> handler =
-        (versionMessage) -> handleConfiguration(peer, versionMessage);
-
-      return Futures.transform(versionMessageFuture, handler);
-    }
-
-    private static Void handleConfiguration(Peer peer, VersionMessage versionMessage) {
+    /* Provided a Peer and its VersionMessage, will check and handle Peer's advertised
+     * configuration. The VersionMessage is provided separately, because it is not
+     * always available and this is meant to be called from a listener that is triggered
+     * when the VersionMessage becomes available.
+     */
+    private Void handleConfiguration(Peer peer, VersionMessage versionMessage) {
</pre>
<p>The uppercase Void is probably a leftover from the previous code. Should be <code>void</code>.</p>

<hr>

<p>In <a href="https://github.com/bisq-network/bisq/pull/4081#discussion_r484170044">core/src/main/java/bisq/core/btc/setup/WalletsSetup.java</a>:</p>
<pre style='color:#555'>>        } else {
-        log.error("Connected to a peer that is _badly_ configured (will disconnect): {}", peer);
-        peer.close();
+        log.error("Peer _badly_ configured (pruning and/or bloom filters disabled): {}", peer);
+        var usingLocalNode = localBitcoinNode.shouldBeUsed();
+        var usingCustomNodes =
+            BtcNodes.BitcoinNodesOption.CUSTOM.ordinal() == preferences.getBitcoinNodesOptionOrdinal();
+        if (usingLocalNode || usingCustomNodes) {
+            displayUserBtcNodeMisconfigurationHandler.accept(peer.toString());
+        }
       }
       return null;
</pre>
<p>If <code>void</code> is used above the return need to be removed.</p>

<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/4081#pullrequestreview-483225381">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AJFFTNT6Z2EOLDXVQ3PQ2CLSERKUBANCNFSM4LQ7C2TA">unsubscribe</a>.<img src="https://github.com/notifications/beacon/AJFFTNS7FF23CJIDPAFK2ZLSERKUBA5CNFSM4LQ7C2TKYY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGODTGW6JI.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/4081#pullrequestreview-483225381",
"url": "https://github.com/bisq-network/bisq/pull/4081#pullrequestreview-483225381",
"name": "View Pull Request"
},
"description": "View this Pull Request on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>