[bisq-network/bisq] [WIP] Add mediator support (#3169)

chimp1984 notifications at github.com
Fri Aug 30 19:38:41 UTC 2019


This is heavily work in progress but I thought it might be useful for other developers to share the development progress.

For the new trade protocol we need a mediator which will be very similar to arbitration just that mediators do not have a 3rd key and cannot do a payout but only give the traders a recommendation for the payout. If both traders agree to that result they can complete the trade by both signing the payout tx. Only if they do not find consensus they need to go to the next step which is currently the arbitration. 
So before traders can open a dispute to arbitrators they need to go through the mediation first and only if both do not agree to the mediators decision arbitration will be used.

This should reduce arbitration cases a lot and is a necessary feature for the new trade protocol but can be deployed as addition with the current protocol.

To make sure the feature is available for both traders (both have updated) we can use an activation date and set a mandatory version number after a few days after release, so we enforce traders to update and enable that feature. Otherwise it would be complicated if one peer has updated but the other not...
You can view, comment on, or merge this pull request online at:

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

-- Commit Summary --

  * Refactoring: Move arbitration package inside dispute package
  * Use abstract base class DisputeResolver for arbitrator
  * Refactoring: Move mediator to mediator package.
  * Let Mediator inherit DisputeResolver.
  * Do not use protobuf inheritance
  * Refactoring: Move ArbitratorModule to parent package
  * Refactoring: Rename ArbitratorModule to DisputeModule
  * Add mediators to Filter
  * Add mediators to filter window
  * Use abstract DisputeResolverService as base class for ArbitratorService

-- File Changes --

    M common/src/main/proto/pb.proto (2)
    M core/src/main/java/bisq/core/CoreModule.java (6)
    M core/src/main/java/bisq/core/account/sign/SignedWitnessService.java (10)
    M core/src/main/java/bisq/core/app/BisqExecutable.java (2)
    M core/src/main/java/bisq/core/app/BisqSetup.java (4)
    M core/src/main/java/bisq/core/app/misc/ExecutableForAppWithP2p.java (2)
    M core/src/main/java/bisq/core/app/misc/ModuleForAppWithP2p.java (6)
    D core/src/main/java/bisq/core/arbitration/ArbitratorService.java (123)
    M core/src/main/java/bisq/core/chat/ChatManager.java (4)
    M core/src/main/java/bisq/core/chat/ChatSession.java (4)
    R core/src/main/java/bisq/core/dispute/DisputeModule.java (10)
    A core/src/main/java/bisq/core/dispute/DisputeResolver.java (113)
    A core/src/main/java/bisq/core/dispute/DisputeResolverService.java (127)
    R core/src/main/java/bisq/core/dispute/arbitration/Arbitrator.java (82)
    R core/src/main/java/bisq/core/dispute/arbitration/ArbitratorManager.java (10)
    A core/src/main/java/bisq/core/dispute/arbitration/ArbitratorService.java (58)
    R core/src/main/java/bisq/core/dispute/arbitration/Attachment.java (2)
    R core/src/main/java/bisq/core/dispute/arbitration/BuyerDataItem.java (2)
    R core/src/main/java/bisq/core/dispute/arbitration/Dispute.java (4)
    R core/src/main/java/bisq/core/dispute/arbitration/DisputeAlreadyOpenException.java (2)
    R core/src/main/java/bisq/core/dispute/arbitration/DisputeChatSession.java (16)
    R core/src/main/java/bisq/core/dispute/arbitration/DisputeList.java (2)
    R core/src/main/java/bisq/core/dispute/arbitration/DisputeManager.java (12)
    R core/src/main/java/bisq/core/dispute/arbitration/DisputeResult.java (4)
    R core/src/main/java/bisq/core/dispute/arbitration/MessageDeliveryFailedException.java (2)
    R core/src/main/java/bisq/core/dispute/arbitration/messages/DisputeCommunicationMessage.java (4)
    R core/src/main/java/bisq/core/dispute/arbitration/messages/DisputeMessage.java (2)
    R core/src/main/java/bisq/core/dispute/arbitration/messages/DisputeResultMessage.java (4)
    R core/src/main/java/bisq/core/dispute/arbitration/messages/OpenNewDisputeMessage.java (4)
    R core/src/main/java/bisq/core/dispute/arbitration/messages/PeerOpenedDisputeMessage.java (4)
    R core/src/main/java/bisq/core/dispute/arbitration/messages/PeerPublishedDisputePayoutTxMessage.java (2)
    R core/src/main/java/bisq/core/dispute/mediator/Mediator.java (68)
    A core/src/main/java/bisq/core/dispute/mediator/MediatorService.java (62)
    M core/src/main/java/bisq/core/filter/Filter.java (18)
    M core/src/main/java/bisq/core/notifications/alerts/DisputeMsgEvents.java (6)
    M core/src/main/java/bisq/core/offer/OpenOfferManager.java (2)
    M core/src/main/java/bisq/core/offer/availability/ArbitratorSelection.java (4)
    M core/src/main/java/bisq/core/offer/placeoffer/PlaceOfferModel.java (2)
    M core/src/main/java/bisq/core/offer/placeoffer/tasks/CreateMakerFeeTx.java (2)
    M core/src/main/java/bisq/core/presentation/DisputePresentation.java (2)
    M core/src/main/java/bisq/core/proto/ProtoDevUtil.java (2)
    M core/src/main/java/bisq/core/proto/network/CoreNetworkProtoResolver.java (14)
    M core/src/main/java/bisq/core/proto/persistable/CorePersistenceProtoResolver.java (2)
    M core/src/main/java/bisq/core/setup/CorePersistedDataHost.java (2)
    M core/src/main/java/bisq/core/trade/Trade.java (8)
    M core/src/main/java/bisq/core/trade/TradeChatSession.java (6)
    M core/src/main/java/bisq/core/trade/TradeManager.java (2)
    M core/src/main/java/bisq/core/trade/protocol/ProcessModel.java (2)
    M core/src/main/java/bisq/core/trade/protocol/tasks/taker/CreateTakerFeeTx.java (2)
    M core/src/main/java/bisq/core/user/User.java (4)
    M core/src/main/java/bisq/core/user/UserPayload.java (4)
    M core/src/main/resources/i18n/displayStrings.properties (1)
    M core/src/test/java/bisq/core/account/sign/SignedWitnessServiceTest.java (4)
    M core/src/test/java/bisq/core/arbitration/ArbitratorManagerTest.java (3)
    M core/src/test/java/bisq/core/arbitration/ArbitratorTest.java (2)
    M core/src/test/java/bisq/core/arbitration/BuyerDataItemTest.java (1)
    M core/src/test/java/bisq/core/arbitration/MediatorTest.java (2)
    M desktop/src/main/java/bisq/desktop/main/Chat/Chat.java (4)
    M desktop/src/main/java/bisq/desktop/main/account/arbitratorregistration/ArbitratorRegistrationView.java (2)
    M desktop/src/main/java/bisq/desktop/main/account/arbitratorregistration/ArbitratorRegistrationViewModel.java (4)
    M desktop/src/main/java/bisq/desktop/main/disputes/DisputesView.java (6)
    M desktop/src/main/java/bisq/desktop/main/disputes/arbitrator/ArbitratorDisputeView.java (2)
    M desktop/src/main/java/bisq/desktop/main/disputes/trader/TraderDisputeView.java (6)
    M desktop/src/main/java/bisq/desktop/main/funds/transactions/TransactionAwareTradableFactory.java (2)
    M desktop/src/main/java/bisq/desktop/main/funds/transactions/TransactionAwareTrade.java (4)
    M desktop/src/main/java/bisq/desktop/main/offer/BuyOfferView.java (2)
    M desktop/src/main/java/bisq/desktop/main/offer/MutableOfferDataModel.java (2)
    M desktop/src/main/java/bisq/desktop/main/offer/OfferView.java (2)
    M desktop/src/main/java/bisq/desktop/main/offer/SellOfferView.java (2)
    M desktop/src/main/java/bisq/desktop/main/offer/takeoffer/TakeOfferDataModel.java (2)
    M desktop/src/main/java/bisq/desktop/main/overlays/notifications/NotificationCenter.java (2)
    M desktop/src/main/java/bisq/desktop/main/overlays/windows/ContractWindow.java (4)
    M desktop/src/main/java/bisq/desktop/main/overlays/windows/DisputeSummaryWindow.java (6)
    M desktop/src/main/java/bisq/desktop/main/overlays/windows/FilterWindow.java (12)
    M desktop/src/main/java/bisq/desktop/main/overlays/windows/TradeDetailsWindow.java (2)
    M desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/PendingTradesDataModel.java (6)
    M desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/PendingTradesView.java (2)
    M desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/steps/TradeStepView.java (2)
    M desktop/src/main/java/bisq/desktop/main/settings/preferences/PreferencesViewModel.java (2)
    M desktop/src/test/java/bisq/desktop/main/funds/transactions/TransactionAwareTradableFactoryTest.java (2)
    M desktop/src/test/java/bisq/desktop/main/funds/transactions/TransactionAwareTradeTest.java (4)
    M desktop/src/test/java/bisq/desktop/main/settings/preferences/PreferencesViewModelTest.java (4)

-- Patch Links --

https://github.com/bisq-network/bisq/pull/3169.patch
https://github.com/bisq-network/bisq/pull/3169.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/3169
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bisq.network/pipermail/bisq-github/attachments/20190830/7a0bd797/attachment-0001.html>


More information about the bisq-github mailing list