<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>