[bisq-network/bisq] [WIP] Autoconfirm XMR trade if tx check was validaated by proof service (using tx private key) (#4378)

chimp1984 notifications at github.com
Mon Jul 27 00:17:01 UTC 2020


Implements https://github.com/bisq-network/proposals/issues/86

Main concept:
- User has option in preferences to automatically confirm XMR receipt if a request to the XMR tx proof service succeeded. 
- Tx proof  service need to be run by trusted Bisq contributors as a bonded Role. I suggest to reuse the `DATA_RELAY_NODE_OPERATOR` for that role. It runs over Tor by default so we avoid exit nodes.
- Currently its a polling service. As the source code is in C++ I doubt that a Bisq dev wants to get into that to add support for a subscriber model. An alternative approach could be a small proxy in Java which runs on the same machine and polls on a fast interval to the service. The Bisq nodes can subscribe at the proxy for the txs they are interested in and get called once the tx is confirmed. Alternatively we could reach out to @moneroexamples who wrote it to see if there is some support already included or if he would be interested to add support.
- We also should add an option to use one's own service, either localhost or remote.

Main part missing is the XMR proof service request processing. I did not get the service compiled and running yet, so could not test response data and error conditions.

Further it is missing a "news badge" and popup to guide the user to the new feature.
Currently there is no indication at the last trade step the the trade was "auto confirmed". I guess that would be a good addition to show some icon or text info.

We also should log the result from the service for security reasons. Multiple services with parallel requests which must match would be good to reduce risk that a service get compromised.

Another idea is to add a trade amount threshold so that the autocomfirm is only used for trades up to that limit. That would make it easier to users to navigate risk exposure.

Anyone welcome to take over the project from here as I might not have time soon to continue.
You can view, comment on, or merge this pull request online at:

  https://github.com/bisq-network/bisq/pull/4378

-- Commit Summary --

  * Add basic support for validation for XMR transfer with tx key

-- File Changes --

    M core/src/main/java/bisq/core/account/witness/AccountAgeWitnessService.java (59)
    M core/src/main/java/bisq/core/trade/Trade.java (10)
    M core/src/main/java/bisq/core/trade/TradeManager.java (143)
    A core/src/main/java/bisq/core/trade/asset/xmr/XmrProofResult.java (31)
    A core/src/main/java/bisq/core/trade/asset/xmr/XmrProofResultWithTradeId.java (31)
    A core/src/main/java/bisq/core/trade/asset/xmr/XmrTransferProofRequester.java (158)
    A core/src/main/java/bisq/core/trade/asset/xmr/XmrTransferProofService.java (78)
    A core/src/main/java/bisq/core/trade/asset/xmr/XmrTxProofHttpClient.java (32)
    M core/src/main/java/bisq/core/trade/messages/CounterCurrencyTransferStartedMessage.java (18)
    M core/src/main/java/bisq/core/trade/protocol/tasks/buyer/BuyerSendCounterCurrencyTransferStartedMessage.java (1)
    M core/src/main/java/bisq/core/trade/protocol/tasks/seller/SellerProcessCounterCurrencyTransferStartedMessage.java (12)
    M core/src/main/java/bisq/core/user/Preferences.java (9)
    M core/src/main/java/bisq/core/user/PreferencesPayload.java (9)
    M core/src/main/resources/i18n/displayStrings.properties (8)
    A desktop/src/main/java/bisq/desktop/main/overlays/windows/SetXmrTxKeyWindow.java (101)
    M desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/PendingTradesDataModel.java (10)
    M desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/PendingTradesViewModel.java (64)
    M desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/steps/buyer/BuyerStep2View.java (149)
    M desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/steps/seller/SellerStep3View.java (76)
    M desktop/src/main/java/bisq/desktop/main/settings/preferences/PreferencesView.java (58)
    M proto/src/main/proto/pb.proto (3)

-- Patch Links --

https://github.com/bisq-network/bisq/pull/4378.patch
https://github.com/bisq-network/bisq/pull/4378.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/bisq-network/bisq/pull/4378
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bisq.network/pipermail/bisq-github/attachments/20200726/ae2116a2/attachment.html>


More information about the bisq-github mailing list