Commit Graph

3829 Commits

Author SHA1 Message Date
Chris Beams
c1a99ccc55
Polish LocalBitcoinNode method names and visibility
- Rename #willUse => #shouldBeUsed
 - Rename #willIgnore => #shouldBeIgnored
 - Reduce visibility of methods where appropriate
 - Edit Javadoc typos and use @link syntax where appropriate
2020-02-27 09:35:36 +01:00
Chris Beams
b93ca2b2b1
Polish formatting 2020-02-26 21:24:38 +01:00
Dominykas Mostauskis
fdaced460f
Changes to Background information popup 2020-02-26 17:20:55 +01:00
Dominykas Mostauskis
30578bfa9d
Have detection work on other network modes
This makes detection work on other BTC network modes, not only mainnet.
2020-02-26 17:09:01 +01:00
Dominykas Mostauskis
a92b6ad9dc
Minor requested changes (non-github batch) 2020-02-26 14:34:08 +01:00
dmos62
6dec780ab4
Minor requested changes (github batch)
Co-Authored-By: Christoph Atteneder <christoph.atteneder@gmail.com>
2020-02-26 14:21:03 +01:00
Dominykas Mostauskis
2a57ecddfc
Fix failing test 2020-02-25 16:22:51 +01:00
Dominykas Mostauskis
6b4878ada8
Centralize some of local BTC node logic
Introduces LocalBitcoinNode::willUse and ::willIgnore to move logic that
was previously littered throughout the codebase into one place. Also,
changes the usages of LocalBitcoinNode to be more precise, specifying
which of these questions are being asked:

- "is there a local BTC node" (isDetected);
- "is it well configured" (isWellConfigured and isUsable);
- "will we ignore a local BTC node even if we found a usable one"
  (willIgnore);
- "is there a usable local BTC node and will we use it" (willUse).

These changes make related logic much easier to maintain and to read.
2020-02-25 15:56:02 +01:00
Dominykas Mostauskis
aceb608e3a
Reorder methods 2020-02-25 14:18:36 +01:00
Dominykas Mostauskis
0bbbe8c1e9
Perform checks automatically on first query
It's quite amazing how obvious this was, yet I missed it for such a long
time. Simplifies usage of LocalBitcoinNode and its internals even more
so. Fixes #4005. The way we structured LocalBitcoinNode was as if the
detection checks were expensive, but they're not. Previously, in some
cases we would notice that a local BTC node wouldn't be used even if it
was detected, so we would skip these checks. This optimization now
doesn't happen. It might be reimplemented in a coming change where more
local BTC node logic is moved into LocalBitcoinNode, but, even if it's
not, this check is fairly cheap. A notable exception is if the local BTC
node is not responding, which would cause us to wait for a timeout, but
if that is the case the mentioned optimization wouldn't help (most of
the time).
2020-02-25 14:04:34 +01:00
Dominykas Mostauskis
7848836adc
Formating changes 2020-02-22 01:30:09 +02:00
Dominykas Mostauskis
08cd31b242
Silence NioClient and NioClientManager loggers 2020-02-21 23:53:02 +02:00
Dominykas Mostauskis
65177fcc4c
Fix unchecked usage of LocalBitcoinNode.isUsable() 2020-02-21 23:52:36 +02:00
dmos62
e6dea3d3ed
Improve marking that method is empty
Co-Authored-By: sqrrm <sqrrm@users.noreply.github.com>
2020-02-18 17:30:02 +02:00
Dominykas Mostauskis
daa1b0b20b
Minor changes to satisfy Codacy or clarify why it fails 2020-02-18 13:02:39 +02:00
Dominykas Mostauskis
74c946a28b
Remove defunct test suite
The workings of LocalBitcoinNode significantly changed, especially how
detection works. Before, we were only checking if a port was open, but
now we're actually performing a Bitcoin protocol handshake, which is
difficult to stub. For these reasons the old tests are irrelevant and
replacement tests were not written.
2020-02-18 12:31:15 +02:00
dmos62
18478d9b0d
Downgrade Optional usage to Java 10
I was erroniously targeting Java 11, when Travis requires Java 10. `Optional.isEmpty` shows up only in Java 11.
2020-02-18 12:21:17 +02:00
Dominykas Mostauskis
f895da416f
Add local Bitcoin node configuration detection
Refactors LocalBitcoinNode and adds detection for local Bitcoin node's
configuration, namely, whether it is pruning and whether it has bloom
filter queries enabled.

The local node's configuration (and its presence) is retrieved by
performing a Bitcoin protocol handshake, which includes the local
Bitcoin node sending us its version message (VersionMessage in
BitcoinJ), which contains the information we're interested in.

Due to some quirky BitcoinJ logic, sometimes the handshake is
interrupted, even though we have received the local node's version
message. That contributes to the handshake handling in LocalBitcoinNode
being a bit complicated.

Refactoring consists of two principle changes: the public interface is
split into methods that trigger checks and methods that retrieve the
cached results. The methods that trigger checks have names starting
with "check", and methods that retrieve the cached results have names
that start with "is".

The other major refactor is the use of Optional<Boolean> instead of
boolean for storing and returning the results, an empty Optional
signifying that the relevant check was not yet performed. Switching to
Optionals has caused other code that queries LocalBitcoinNode to throw
an exception in case the query is made before the checks are. Before,
the results were instantiated to "false" and that would be returned
in case the query was made before the checks completed. This change has
revealed one occasion (Preferences class) where this happens.
2020-02-18 00:34:58 +02:00
sqrrm
23c2052fe6
Merge pull request #3970 from bisq-network/release/v1.2.6
Release/v1.2.6
2020-02-17 13:04:32 +01:00
Christoph Atteneder
f53a41ee7a
Allow NullpointerException to be thrown for invalid offers
It is handled properly and will remove offers from being exported
2020-02-12 18:05:28 +01:00
Christoph Atteneder
33ce412548
Update bitcoinJ checkpoints file 2020-02-12 09:34:20 +01:00
Christoph Atteneder
b00d73ff7c
Add test for Liquid Bitcoin and improve error handling 2020-02-11 17:31:43 +01:00
Christoph Atteneder
7f93ce7e31
Remove empty line
Co-Authored-By: sqrrm <sqrrm@users.noreply.github.com>
2020-02-11 12:22:58 +01:00
Christoph Atteneder
4f9d0fa36c
Remove duplicates when delivered from storage 2020-02-11 12:22:36 +01:00
Christoph Atteneder
2e5184f50d
Revert setting of deposit tx id to null 2020-02-11 12:22:28 +01:00
Christoph Atteneder
0157ed137e
Update bitcoinJ checkpoints file 2020-02-11 11:59:28 +01:00
wiz
22e8c242dc
Add 2 new btcnodes operated by @wiz
* m3yqzythryowgedc.onion:8333
* zyhtr2ffbzn5yeg3.onion:8333
2020-02-11 11:34:44 +01:00
Christoph Atteneder
bb0c14dae4
Merge pull request #3954 from wiz/add-moar-wiz-btcnodes
Add 2 new btcnodes operated by @wiz
2020-02-11 11:34:27 +01:00
Christoph Atteneder
fe1aa465cb
Update translations 2020-02-11 11:14:14 +01:00
Christoph Atteneder
f516da6810
Remove empty line
Co-Authored-By: sqrrm <sqrrm@users.noreply.github.com>
2020-02-10 13:49:54 +01:00
Christoph Atteneder
447c7e8fa4
Remove duplicates when delivered from storage 2020-02-10 13:15:56 +01:00
Christoph Atteneder
834e00fbb9
Revert setting of deposit tx id to null 2020-02-10 13:15:12 +01:00
wiz
bb920319ff
Add 2 new btcnodes operated by @wiz
* m3yqzythryowgedc.onion:8333
* zyhtr2ffbzn5yeg3.onion:8333
2020-02-09 17:27:22 +09:00
sqrrm
fab37f9f01
Fix codacy comment 2020-02-07 15:58:53 +01:00
sqrrm
bc654f439c
Add signing debug logs
Fix warning about possible nullpointer exceptions. Better to have an
explicit check for debug purposes.

Smaller cleanups
2020-02-07 15:58:45 +01:00
sqrrm
ac7d636402
Add signing debug logs (#3948)
* Add signing debug logs

Fix warning about possible nullpointer exceptions. Better to have an
explicit check for debug purposes.

Smaller cleanups

* Fix codacy comment
2020-02-07 15:57:25 +01:00
Steve Jain
85f1a1d9b6
Fix dao bond table column label 2020-02-06 13:13:30 -05:00
sqrrm
d88a8ac8f0
Merge pull request #3939 from ripcurlx/improve-local-node-info
Add additional information for a local Bitcoin Core v0.19+
2020-02-05 23:41:33 +01:00
Christoph Atteneder
ba12943920
Make sure that class is only instantiated once
This fixes an error when running a local Bitcoin Core for Mainnet
caused by a duplicate wallet setup
2020-02-05 16:56:59 +01:00
Christoph Atteneder
040b8d53de
Improve wording
Co-Authored-By: wiz <j@wiz.biz>
2020-02-05 12:03:28 +01:00
Christoph Atteneder
90658fb4fe
Add additional information for a local Bitcoin Core v0.19+ 2020-02-05 11:34:05 +01:00
sqrrm
6a9f340c20
Trade process refresh (#3922)
* Add keyboard shortcut for trade process refresh, fix #3905

Trades have been getting stuck in the `Wait for payment` state, perhaps
due to lost mailbox messages, but it's hard to know for sure. There is
currently no way to get out of this state except going to mediation.

With ctrl+R the seller can ask the buyer to refresh the current trade
state and the buyer will resend the
`CounterCurrencyTransferStartedMessage` if they are in the phase
FIAT_SENT.

* Disallow more than one trade refresh per day

* Add refresh button for seller step 2, fix #3905

A seller can ask to refresh the trade process once every 24 hours. This
step has been a problem causing a lot of mediation lately so this is a
way to ask the buyer to resend the CounterCurrencyTransferStartedMessage

This fixes the problem when a mailbox message was lost. To test the
seller need to not get the first CounterCurrencyTransferStartedMessage
sent by the buyer, for example by letting the seednode drop it instead
of sending to the seller. When button is pressed
- a RefreshTradeStateRequest is sent from seller to buyer
- the buyer receives the RefreshTradeStateRequest and
 - ignores it if it's not in FIAT_SENT phase
 - responds with a CounterCurrencyTransferStartedMessage if in FIAT_SENT
   phase and has already sent a CounterCurrencyTransferStartedMessage

* Fix codacy remarks

Move incoming message handling method to the right section

* Add refresh button info text

Hide refresh section when not available rather than graying out

Added info text:
Sometimes P2P network messages acknowledging payment are not delivered,
causing trades to get stuck. Hit the button below to make your peer
resend the last message.

* Fix codacy issues
2020-02-04 15:54:47 +01:00
Florian Reimair
af939e66e0
Remove unused uid in pricefeed service
Bisq frequently (once per minute) queries our price nodes for up-to-date
price information. It does so by HTTP GET request. However, it provided
a UID via the "User-Agent" HTTP header field. This UID has been a random
number which changed everytime Bisq got started up.

This UID has never been used. Thus, remove it.
2020-02-04 15:03:17 +01:00
sqrrm
cd745717fa
Merge pull request #3933 from ripcurlx/accept-tradestatistic-objects-before-cut-off-date
Accept old trade statistic object
2020-02-04 12:11:23 +01:00
dmos62
a452a31cef
Add new BSQ issued v. burnt chart (#3910)
* Add new BSQ issued v. burnt chart

Adds a new two-line chart that plots the month-bucketed BSQ issued and
burnt series. Until now there wasn't a direct visual means of
examining BSQ issue and burn together. This chart aims to fix that.

* Change wording from 15 days to 15-day moving average

Co-Authored-By: Steve Jain <mfiver@gmail.com>

* Make chart's title more clear

"BSQ issued v. burnt" > "BSQ issued v. BSQ burnt"

Co-Authored-By: Steve Jain <mfiver@gmail.com>

* Fix spacing between chart and title

* Reduce title-chart spacing from 20 to 10

Co-authored-by: Steve Jain <mfiver@gmail.com>
2020-02-03 17:13:14 +01:00
Christoph Atteneder
112aaf9910
Not set depositTxId to null by default
This prevents unnecessary load on the seednodes from old clients
loading all trade statistic objects on startup as they interpret
the null value as empty string
2020-02-03 15:46:33 +01:00
Christoph Atteneder
ff10857fe6
Merge pull request #3925 from sqrrm/dump-delayed-tx
Dump delayed tx
2020-02-03 12:03:25 +01:00
Christoph Atteneder
2ad279f99e
Accept old trade statistic object
The code didn't handle before the use case of new trade statistic objects
created by two old clients. This change make it independent of the cut off date
and allows us at a later point to update all trade statistics objects with
depositTxId value of null.
2020-02-03 11:37:56 +01:00
sqrrm
3470b73084
Finalize multisig payout even on missing address entry
The check for an address entry before finalizing the multisig payout
might prevent a valid payout when the initiation of the trade process
was interrupted. It's better to allow the completion of the trade
and just log a warning.
2020-02-03 11:03:20 +01:00
sqrrm
cad09aabfd
Merge pull request #3921 from HirotoTanaka114/master
Re-ordering Stream APIs
2020-01-31 10:20:58 +01:00