Bisq - The P2P Exchange Network

Can do.

No difference bisq inside vs outside of Whonix.

bisq running in Whonix-Workstation does not create/modify any files on Whonix-Gateway. (It only creates ephemeral Tor hidden services through Tor control protocol.) So no need to worry about selection of any files on Whonix-Gateway.

I reproduced the issue. I also manged to fully connect, fixing this issue but it is not in a secure state yet.

40_bisq.yml has a bug.

To debug this - which may not be save - information how your Tor circuit is constructions - will leak into Whonix-Workstation…

The issue is somewhere here:

  events:
    CIRC:
      suppress: true
    ORCONN:
      suppress: true
    INFO:
      suppress: true
    NOTICE:
      suppress: true
    WARN:
      suppress: true
    ERR:
      suppress: true
    HS_DESC:
      suppress: true
    HS_DESC_CONTENT:
      suppress: true

We can’t just suppress all of these events. For testing purposes, comment out all suppress: true. So it looks like this.

  events:
    CIRC:
      #suppress: true
    ORCONN:
      #suppress: true
    INFO:
      #suppress: true
    NOTICE:
      #suppress: true
    WARN:
      #suppress: true
    ERR:
      #suppress: true
    HS_DESC:
      #suppress: true
    HS_DESC_CONTENT:
      #suppress: true

The restart onion-grater on Whonix-Gateway.

sudo service onion-grater restart

So if you are able to use Bisq in this config. If yes, proceed with debugging below.

Comment in as many suppress: true as possible while Bisq is still fully connecting after Bisq restart, i.e. remove the # and sudo service onion-grater restart. As long as Bisq is saying “Synchronizing DAO” there is no need to proceed - that is the crux.

Once the essential non-supressable events are identified, I can try to write an onion-grater profile which allows using these and is secure at the same time.

Profile was updated.

onion-grater/40_bisq.yml at master · Whonix/onion-grater · GitHub

Should work now.

It works! Thank you so much! I disabled the DAO sync as I don’t need it for now.

The new bisq 15.0 doesn’t seem to work. Bisq can’t connect to bitcoin network.

I checked if you remove the line --daoActivated=false from the command to run the program - everything will work.

Please don’t duplicate everything on Bisq.

Hi!

I am trying to run without success the latest Bisq v1.6.4 on top of the latest Whonix version 15.0.1.7.2 for KVM with all the security patches applied. The application is extremely slow and laggy.

I followed the instructions of the wiki and in order to launch bisq I run the command: /opt/bisq/bin/Bisq --torControlPort=9051 --torControlPassword=notrequired --socks5ProxyBtcAddress=127.0.0.1:9050 --useTorForBtc=true --daoActivated=false

However, I see a lot of red lines such as:

May-16 14:56:22.437 [BlockingClient network thread for mbm6ffx6j5ygi2ck.onion/<unresolved>:8333] ERROR o.bitcoinj.net.BlockingClient: Error trying to open/read from connection: mbm6ffx6j5ygi2ck.onion/<unresolved>:8333: SOCKS: TTL expired
May-16 14:57:28.961 [InputHandler-devinsn2teu33efff62bnvwbxmfgbfjlgqsu3ad4b4fudx3a725eqnyd.onion:8000] WARN  b.n.p2p.network.Connection: proto is null because protoInputStream.read()=-1 (EOF). That is expected if client got stopped without proper shutdown.
May-16 14:57:30.845 [JavaFX Application Thread] WARN  bisq.core.filter.FilterManager: We received a new filter from the network but the creation date is older than the filter we have already. We ignore the new filter. 
May-16 14:57:30.847 [JavaFX Application Thread] WARN  bisq.core.filter.FilterManager: We received a new filter from the network but the creation date is older than the filter we have already. We ignore the new filter. 
May-16 14:57:30.851 [JavaFX Application Thread] WARN  bisq.core.filter.FilterManager: We received a new filter from the network and the creation date is newer than the filter we have already. We ignore the old filter.
May-16 14:57:34.674 [JavaFX Application Thread] WARN  b.n.p2p.peers.PeerManager: 
------------------------------------------------------------
All connections lost
------------------------------------------------------------ 

These error messages doesn’t appear if Bisq is launched out of Whonix.

Could you try please inside a Debian stable (currently: buster) VM?

I was able to create KVM Debian Buster virtual machine for Bisq. I use 4 vCPU and 6 GB RAM for the virtual machine because bisq appears to require 4GB of RAM.

I run /opt/bisq/bin/Bisq at 17:44:23 and I can see some errors (cat bisq.log | grep WAR):

may.-17 17:45:03.989 [JavaFX Application Thread] WARN  bisq.core.filter.FilterManager: We received a new filter from the network but the creation date is older than the filter we have already. We ignore the new filter.
may.-17 17:45:03.991 [JavaFX Application Thread] WARN  bisq.core.filter.FilterManager: We received a new filter from the network but the creation date is older than the filter we have already. We ignore the new filter.
may.-17 17:45:03.994 [JavaFX Application Thread] WARN  bisq.core.filter.FilterManager: We received a new filter from the network and the creation date is newer than the filter we have already. We ignore the old filter.
may.-17 17:45:04.024 [JavaFX Application Thread] WARN  bisq.core.filter.FilterManager: We received a new filter from the network but the creation date is older than the filter we have already. We ignore the new filter.
may.-17 17:45:04.027 [JavaFX Application Thread] WARN  bisq.core.filter.FilterManager: We received a new filter from the network but the creation date is older than the filter we have already. We ignore the new filter.
may.-17 17:45:04.030 [JavaFX Application Thread] WARN  bisq.core.filter.FilterManager: We received a new filter from the network but the creation date is older than the filter we have already. We ignore the new filter.
may.-17 17:45:57.672 [InputHandler-4n3v6zevhjwt2uc7.onion:9999] WARN  b.n.p2p.network.Connection: proto is null because protoInputStream.read()=-1 (EOF). That is expected if client got stopped without proper shutdown.
may.-17 17:45:57.673 [InputHandler-5quyxpxheyvzmb2d.onion:8000] WARN  b.n.p2p.network.Connection: proto is null because protoInputStream.read()=-1 (EOF). That is expected if client got stopped without proper shutdown.
may.-17 19:45:57.673 [InputHandler-i542izpgojme3nct.onion:9999] WARN  b.n.p2p.network.Connection: proto is null because protoInputStream.read()=-1 (EOF). That is expected if client got stopped without proper shutdown.
may.-17 17:45:57.673 [InputHandler-trvotsxb7uuierm7.onion:9999] WARN  b.n.p2p.network.Connection: proto is null because protoInputStream.read()=-1 (EOF). That is expected if client got stopped without proper shutdown.
may.-17 17:45:57.673 [InputHandler-vda3zv75kteqt6kli35sgl3ve6lqn72pstonc2blowelniu6wnfmt3id.onion:9999] WARN  b.n.p2p.network.Connection: proto is null because protoInputStream.read()=-1 (EOF). That is expected if client got stopped without proper shutdown.
may.-17 17:45:57.673 [InputHandler-sn5emzyvxuildv34n6jewfp2zeota4aq63fsl5yyilnvksezr3htveqd.onion:8000] WARN  b.n.p2p.network.Connection: proto is null because protoInputStream.read()=-1 (EOF). That is expected if client got stopped without proper shutdown.
may.-17 17:45:57.674 [InputHandler-zhhrlltfzhpw44fg.onion:9999] WARN  b.n.p2p.network.Connection: proto is null because protoInputStream.read()=-1 (EOF). That is expected if client got stopped without proper shutdown.
may.-17 17:45:57.674 [InputHandler-3j76bc62o6lfrcfrhf6yqncpc6vfmrlb6hqucjn4v7q6lam6ha6kkqqd.onion:9999] WARN  b.n.p2p.network.Connection: proto is null because protoInputStream.read()=-1 (EOF). That is expected if client got stopped without proper shutdown.
may.-17 17:45:57.675 [InputHandler-ib3rxxwjiqg5zlzgr6uv6mxan45kujommyrgekv7ra3z74bftsk4ggid.onion:9999] WARN  b.n.p2p.network.Connection: proto is null because protoInputStream.read()=-1 (EOF). That is expected if client got stopped without proper shutdown.
may.-17 17:45:57.675 [InputHandler-xgvtzcpnos7lr2kj.onion:9999] WARN  b.n.p2p.network.Connection: proto is null because protoInputStream.read()=-1 (EOF). That is expected if client got stopped without proper shutdown.
may.-17 17:45:57.677 [InputHandler-sn2bisqad7ncazupgbd3dcedqh5ptirgwofw63djwpdtftwhddo75oid.onion:8000] WARN  b.n.p2p.network.Connection: proto is null because protoInputStream.read()=-1 (EOF). That is expected if client got stopped without proper shutdown.
may.-17 17:46:05.181 [JavaFX Application Thread] WARN  b.c.p.PersistenceManager: We have started the shut down routine already. We ignore that requestPersistence call.

However the applications launches quite quickly, I can use smoothly (click on sell, on buy, on market) and I close bisq at 17:46:08.

I do something similar with bisq inside the whonix workstation. Workstation and gateway is configured according to the wiki page (if i did no mistake). Whonix workstation is configured also with 4 vCPU and 6 GB of RAM.

I run /opt/bisq/bin/Bisq --torControlPort=9051 --torControlPassword=notrequired --socks5ProxyBtcAddress=127.0.0.1:9050 --useTorForBtc=true --daoActivated=false at 17:49:39 and I can see some errors (cat bisq-whonix.log | grep WAR):

May-17 17:50:10.145 [JavaFX Application Thread] WARN  b.c.p.price.PriceFeedService: We received an error: baseUrlOfCurrentRequest=http://aprcndeiwdrkbf4fq7iozxbd27dl72oeo76n7zmjwdi4z34agdrnheyd.onion/, baseUrlOfFaultyRequest=http://aprcndeiwdrkbf4fq7iozxbd27dl72oeo76n7zmjwdi4z34agdrnheyd.onion/, error=bisq.core.provider.price.PriceRequestException: java.io.IOException: Error at doRequestWithProxy with url http://aprcndeiwdrkbf4fq7iozxbd27dl72oeo76n7zmjwdi4z34agdrnheyd.onion/ and param getAllMarketPrices. Throwable=SOCKS server general failure
May-17 17:50:11.152 [JavaFX Application Thread] WARN  b.c.p.price.PriceFeedService: We received an error at the request from provider http://aprcndeiwdrkbf4fq7iozxbd27dl72oeo76n7zmjwdi4z34agdrnheyd.onion/. We select the new provider http://ro7nv73awqs3ga2qtqeqawrjpbxwarsazznszvr6whv7tes5ehffopid.onion/ and use that for a new request. retryDelay was 6 sec.
May-17 17:52:41.951 [JavaFX Application Thread] WARN  bisq.core.filter.FilterManager: We received a new filter from the network but the creation date is older than the filter we have already. We ignore the new filter.
May-17 17:52:41.954 [JavaFX Application Thread] WARN  bisq.core.filter.FilterManager: We received a new filter from the network but the creation date is older than the filter we have already. We ignore the new filter.
May-17 17:52:41.956 [JavaFX Application Thread] WARN  bisq.core.filter.FilterManager: We received a new filter from the network and the creation date is newer than the filter we have already. We ignore the old filter.
May-17 17:52:41.974 [JavaFX Application Thread] WARN  bisq.core.filter.FilterManager: We received a new filter from the network but the creation date is older than the filter we have already. We ignore the new filter.
May-17 17:52:41.977 [JavaFX Application Thread] WARN  bisq.core.filter.FilterManager: We received a new filter from the network but the creation date is older than the filter we have already. We ignore the new filter.
May-17 17:52:41.980 [JavaFX Application Thread] WARN  bisq.core.filter.FilterManager: We received a new filter from the network but the creation date is older than the filter we have already. We ignore the new filter.
May-17 17:52:42.171 [FeeRequest @ http://aprcndeiwdrkbf4fq7iozxbd27dl72oeo76n7zmjwdi4z34agdrnheyd.onion/] WARN  b.core.provider.fee.FeeService: Could not load fees. feeProvider=HttpClientProvider{
     httpClient=HttpClientImpl{
     socks5ProxyProvider=bisq.network.Socks5ProxyProvider@126e83f6,
     baseUrl='http://aprcndeiwdrkbf4fq7iozxbd27dl72oeo76n7zmjwdi4z34agdrnheyd.onion/',
     ignoreSocks5Proxy=false,
     uid='2983a3a5-7331-4c1f-ac11-1bb09d4ebf84',
     connection=null,
     httpclient=null
}
}, error=java.io.IOException: Error at doRequestWithProxy with url http://aprcndeiwdrkbf4fq7iozxbd27dl72oeo76n7zmjwdi4z34agdrnheyd.onion/ and param getFees. Throwable=SOCKS server general failure
May-17 17:53:11.038 [InputHandler-wizseedscybbttk4bmb2lzvbuk2jtect37lcpva4l3twktmkzemwbead.onion:8000] WARN  b.n.p2p.network.Connection: proto is null because protoInputStream.read()=-1 (EOF). That is expected if client got stopped without proper shutdown.
May-17 17:55:12.836 [JavaFX Application Thread] WARN  b.d.m.o.offerbook.OfferBook: We had an old offer in the list with the same Offer ID. We remove the old one. old offerBookListItem=bisq.desktop.main.offer.offerbook.OfferBookListItem@243df019, new offerBookListItem=bisq.desktop.main.offer.offerbook.OfferBookListItem@4d07a6ce
May-17 17:55:50.838 [InputHandler-ry4avvd3fr5onhefwuqljgzkyhjftbznsuhuvyqlr7e5aky2rqzewkyd.onion:9999] WARN  b.n.p2p.network.Connection: proto is null because protoInputStream.read()=-1 (EOF). That is expected if client got stopped without proper shutdown.
May-17 17:55:51.121 [InputHandler-727uhbwit6pxb6bdeqbwwq3hy27dehqbsz5byn7dzoaums6e7tffvrqd.onion:9999] WARN  b.n.p2p.network.Connection: proto is null because protoInputStream.read()=-1 (EOF). That is expected if client got stopped without proper shutdown.
May-17 17:57:52.102 [FeeRequest @ http://aprcndeiwdrkbf4fq7iozxbd27dl72oeo76n7zmjwdi4z34agdrnheyd.onion/] WARN  b.core.provider.fee.FeeService: Could not load fees. feeProvider=HttpClientProvider{
     httpClient=HttpClientImpl{
     socks5ProxyProvider=bisq.network.Socks5ProxyProvider@126e83f6,
     baseUrl='http://aprcndeiwdrkbf4fq7iozxbd27dl72oeo76n7zmjwdi4z34agdrnheyd.onion/',
     ignoreSocks5Proxy=false,
     uid='2983a3a5-7331-4c1f-ac11-1bb09d4ebf84',
     connection=null,
     httpclient=null
}
}, error=java.io.IOException: Error at doRequestWithProxy with url http://aprcndeiwdrkbf4fq7iozxbd27dl72oeo76n7zmjwdi4z34agdrnheyd.onion/ and param getFees. Throwable=SOCKS server general failure

As you can the initial error logs take much more time to appear, so the application launches very slow, it take several minutes to start. When it is started, I click on menu buttons (market, buy, sell…) and I get no response for second or minutes and suddenly it begins to work when I click, but suddenly it freezes again for seconds or minutes.

I can confirm a worse behaviour inside the whonix workstation. I don’t know if it is a issue of the bisq application or if it is a issue of the whonix configuration.

I reinstalled gateway and workstation and I followed again the wiki page for bisq to be sure that I did not make any mistake during the installation. I can confirm the issues I reported for version 1.6.4.

Please check the wiki text:

Verify the fingerprint. It should show.
Key fingerprint = 6694 D8DE 7BE8 EE56 31BE D950 2BD5 824B 7F94 70E6
The most important check is confirming the key fingerprint exactly matches the output below

It looks like fingerprint is not right in wiki. I’ve checked from different locations.

Fixed. See also:

Improve the Documentation / Edit the Whonix ™ Wiki

Hello,

i follow this guide installations:

Blockquote www. whonix. org/wiki/Bisq#cite_note-11

and after use that command to start it :

Blockquote /opt/bisq/bin/Bisq --torControlPort=9051 --torControlPassword=notrequired --socks5ProxyBtcAddress=127.0.0.1:9050 --useTorForBtc=true --daoActivated=false

have that error:

Blockquote Apr-17 19:26:57.336 [JavaFX Application Thread] WARN b.n.p.s.p.ProtectedStorageEntry: ProtectedStorageEntry::isSignatureValid() failed. ProtectedStorageEntry { Payload: Filter{ bannedOfferIds=,

Blockquote pr-17 19:42:35.995 [JavaFX Application Thread] WARN b.n.p.s.p.ProtectedStorageEntry: ProtectedStorageEntry::isSignatureValid() failed.
ProtectedStorageEntry {
Payload: Filter{
bannedOfferIds=,

As i see forum is not quite active

Tried to report it to upstream? Because whonix doesnt develop Bisq.

1 Like

Very likely not caused by Whonix. Such issues can usually only be resolved as per https://www.whonix.org/wiki/Free_Support_Principle.

1 Like

Hi, I’m trying to set up Bisq in a Qubes/Whonix environment.

I followed the guide in the Whonix wiki/Bisq; the Bisq client runs and outbound connections work fine.

However, I never get inbound connections to the hidden service set up by Bisq, so these must get blocked somehow.
In the Bisq log, there is an entry saying

Nov-10 20:28:43.328 [TorControlParser] DEBUG o.b.n.tor.Tor: hiddenService: HS_DESC RECEIVED [onion addr] NO_AUTH redacted redacted

so apparently, the hidden service is published, but can’t be reached. I tried to connect with Tor browser, which gives the error message “unable to connect”.
I did run onion-grater-add 40_bisq on sys-whonix
and added
EXTERNAL_OPEN_ALL=true to /usr/local/etc/whonix_firewall.d/50_user.conf
on the workstation qube (a standalone based on whonix-ws-16).

On sys-whonix:

user@host:~$ sudo whonix_firewall -i
2022-11-10 20:53:36 - /usr/bin/whonix-gateway-firewall - OK: Loading Whonix firewall…
2022-11-10 20:53:36 - /usr/bin/whonix-gateway-firewall - OK: Skipping firewall mode detection since already set to ‘full’.
2022-11-10 20:53:36 - /usr/bin/whonix-gateway-firewall - OK: (Full torified network access allowed.)
2022-11-10 20:53:36 - /usr/bin/whonix-gateway-firewall - INFO: WORKSTATION_TRANSPARENT_TCP=1
2022-11-10 20:53:36 - /usr/bin/whonix-gateway-firewall - INFO: WORKSTATION_TRANSPARENT_DNS=1
2022-11-10 20:53:36 - /usr/bin/whonix-gateway-firewall - INFO: WORKSTATION_ALLOW_SOCKSIFIED=1
2022-11-10 20:53:36 - /usr/bin/whonix-gateway-firewall - INFO: CONTROL_PORT_FILTER_PROXY_ENABLE=1
2022-11-10 20:53:36 - /usr/bin/whonix-gateway-firewall - INFO: GATEWAY_ALLOW_INCOMING_DIR_PORT=0
2022-11-10 20:53:36 - /usr/bin/whonix-gateway-firewall - INFO: GATEWAY_ALLOW_INCOMING_OR_PORT=0
2022-11-10 20:53:36 - /usr/bin/whonix-gateway-firewall - INFO: DIR_PORT=80
2022-11-10 20:53:36 - /usr/bin/whonix-gateway-firewall - INFO: OR_PORT=443
2022-11-10 20:53:36 - /usr/bin/whonix-gateway-firewall - INFO: GATEWAY_TRANSPARENT_TCP=0
2022-11-10 20:53:36 - /usr/bin/whonix-gateway-firewall - INFO: GATEWAY_TRANSPARENT_UDP=0
2022-11-10 20:53:36 - /usr/bin/whonix-gateway-firewall - INFO: GATEWAY_TRANSPARENT_DNS=0
2022-11-10 20:53:36 - /usr/bin/whonix-gateway-firewall - INFO: ALLOW_GATEWAY_ROOT_USER=0
2022-11-10 20:53:36 - /usr/bin/whonix-gateway-firewall - INFO: ALLOW_GATEWAY_USER_USER=0
2022-11-10 20:53:36 - /usr/bin/whonix-gateway-firewall - INFO: GATEWAY_ALLOW_INCOMING_SSH=0
2022-11-10 20:53:36 - /usr/bin/whonix-gateway-firewall - INFO: GATEWAY_ALLOW_INCOMING_ICMP=0
2022-11-10 20:53:36 - /usr/bin/whonix-gateway-firewall - INFO: Opening External TCP port(s): NONE
2022-11-10 20:53:36 - /usr/bin/whonix-gateway-firewall - INFO: Opening External UDP port(s): NONE
2022-11-10 20:53:36 - /usr/bin/whonix-gateway-firewall - INFO: WORKSTATION_ALLOW_SOCKSIFIED=‘1’, Socks Ports will be reacheable from the Workstation
2022-11-10 20:53:37 - /usr/bin/whonix-gateway-firewall - INFO: opening Internal TCP port(s): 9050 9100 9101 9102 9103 9104 9105 9106 9107 9108 9109 9110 9111 9114 9115 9117 9118 9122 9123 9124 9125 9150
2022-11-10 20:53:37 - /usr/bin/whonix-gateway-firewall - INFO: opening TCP port(s) 9152:9189 for user custom applications
2022-11-10 20:53:37 - /usr/bin/whonix-gateway-firewall - OK: Whonix firewall loaded.

And on the Whonix workstation qube:

user@host:~$ sudo whonix_firewall -i
2022-11-10 20:58:20 - /usr/bin/whonix-workstation-firewall - OK: Loading Whonix firewall…
2022-11-10 20:58:20 - /usr/bin/whonix-workstation-firewall - OK: Skipping firewall mode detection since already set to ‘full’.
2022-11-10 20:58:20 - /usr/bin/whonix-workstation-firewall - OK: (Full torified network access allowed.)
2022-11-10 20:58:20 - /usr/bin/whonix-workstation-firewall - INFO: Opening External TCP port(s): NONE
2022-11-10 20:58:20 - /usr/bin/whonix-workstation-firewall - INFO: Opening External UDP port(s): NONE
2022-11-10 20:58:20 - /usr/bin/whonix-workstation-firewall - INFO: EXTERNAL_OPEN_ALL=‘true’, all external ports will be opened
2022-11-10 20:58:20 - /usr/bin/whonix-workstation-firewall - OK: Qubes DNS firewall rules ok.
2022-11-10 20:58:21 - /usr/bin/whonix-workstation-firewall - OK: Whonix firewall loaded.

Any ideas what might be causing this? How could I troubleshoot the issue? I’m quite familiar with Linux and networking, but fairly new to Tor onion services and Qubes/Whonix.

By the way, if I set up an ordinary Debian 11 Qube (with sys-firewall as net qube) following the Bisq Wiki Running_Bisq_on_Qubes guide, everything works just fine – but I’d rather use a Whonix …

Maybe bisq changed something and now an onion-grater profile update is required? Developer documentation was recently revised. This might help with learning what it’s about and how to debug it, see: