Commit graph

18100 commits

Author SHA1 Message Date
Alejandro García
0d5af748ad
Merge pull request #7095 from HenrikJannsen/fix-GuiceSetupTest
Fix GuiceSetupTest
2024-05-09 18:59:27 +00:00
Alejandro García
6cef856b57
Merge pull request #7094 from HenrikJannsen/improve-button-text
Improve button text
2024-05-09 18:58:46 +00:00
Alejandro García
0b85e0615d
Merge pull request #7092 from stejbac/speed-up-vote-result-view-load
Speed up Vote Result display, cycle list item selection & JSON export
2024-05-09 18:57:53 +00:00
Alejandro García
0a5a0f316d
Merge pull request #7090 from HenrikJannsen/Improve-export-account-reputation-process-for-Bisq-2
Improve export account reputation process for bisq 2
2024-05-09 18:56:48 +00:00
Alejandro García
09ae097dc9
Merge pull request #7089 from stejbac/add-missing-space-to-log-pattern
Tidy logback files & add space back to log pattern
2024-05-09 18:55:53 +00:00
Alejandro García
dc859e2c2b
Merge pull request #7082 from stejbac/speed-up-bond-repo-update-and-remove-raw-types
Speed up bond repository update and remove some raw types
2024-05-09 18:54:56 +00:00
HenrikJannsen
ee6263c4f0
GuiceSetupTest was broken if run in gradle (in IDE it worked) due likely a JavaFX dependency issue.
As the MarketPricePresentation constructor had anyway a ugly setup code we resolve it by refactoring it to a bit less ugly solution. ;-)

Remove the btcWalletService and feeService dependencies from MarketPricePresentation.

Do the setup of static fields in TxIdTextField and GUIUtil in the applyInjector method in BisqAppMain.

Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-05-08 14:55:23 +07:00
HenrikJannsen
1500837126
Improve button text
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-05-08 14:26:11 +07:00
Steven Barclay
74b5580b2c
Fix incorrect vote weights in voting history JSON
Make sure to include the BSQ stake, and not just the merit stake, when
summing to get the 'voteWeight' field of the vote on each evaluated
proposal in the exported vote results history JSON.
2024-05-06 20:42:13 +02:00
Steven Barclay
57662ae206
Sum merit in outer loop to speed up VoteResultView.getVotingHistoryJson
Avoid needlessly repetitive (once per cycle proposal) signature checking
of each 'Merit' object in the DAO state, when exporting the voting
history JSON, by moving the merit calculations to the outer loop over
each cycle, storing the sums in a map by blind vote txId. As signature
verification is expensive, taking seconds to run just once over every
'Merit' object, this is by far the biggest bottleneck when generating
the JSON.
2024-05-06 20:17:09 +02:00
Steven Barclay
34ed5e0f74
Further optimise cycle list selection in Vote Result view
Remove another hotspot in the proposals table creation for a selected
cycle, by making 'ballotByProposalTxIdMap' a field of 'VoteResultView',
recomputed at the same time the cycle list is populated upon calling
'doFillCycleListAndBallotMap()' (renamed from 'doFillCycleList'), when
the Vote Result view is activated.

Also remove an unnecessary outer loop when determining if the user's
vote is included in the result, upon selecting a cycle list item, to
avoid searching the BSQ wallet repeatedly for the same vote reveal tx.
2024-05-06 16:09:51 +02:00
Steven Barclay
6780d35716
Remove unused tableRow field from ProposalListItem
The 'tableRow' field of each (voted upon) proposal list item is reset
upon selection of a cycle list item in the Vote Result view, but not set
anywhere, so remove the field along with its set/reset methods.
2024-05-06 15:24:51 +02:00
Steven Barclay
3a70213d1b
Add new tx-by-id cache to speed up BsqWalletService.isWalletTransaction
Reduce a hotspot searching the BSQ wallet for the user's votes, upon
selecting a list item of the Vote Result view, by optimising the method
'BsqWalletService.isWalletTransaction(String)'. Do this by adding a
lazily initialised Map field, 'walletTransactionsById', kept in sync
with the existing 'walletTransactions' List field, similar to the tx-by-
id cache removed from the base class in the previous commit, so that a
linear scan of that list can be avoided. Don't bother to make the cache
thread safe, however, since 'isWalletTransaction' is only called from
the user thread and wasn't thread safe to begin with -- access to
'walletTransactions' isn't synchronised, and it is updated only on the
user thread, after a 100 ms delay upon any changes to the BSQ wallet.

Also remove the unused methods 'getUnverifiedBsqTransactions()' and
'getBsqWalletTransactions()' from the class.
2024-05-06 00:04:38 +02:00
Steven Barclay
d803a67d0d
Remove unnecessary tx-by-id cache from WalletService
This was added in an earlier commit (57b2b4b8) to speed up the Trade
History view, via the method 'getConfidenceFotTxId(String)', by
replacing a linear scan of the live wallet txs with a lookup into a
lazily initialised map. However, the delegating 'WalletService' method
'getTransaction(Sha256Hash)' already serves this purpose, with
'o.b.w.Wallet' itself maintaining a map of all the wallet txs. Use that
method instead, taking care to exclude dead txs from the lookups, to
exactly preserve the current behaviour.

Also do some minor cleanup of the class, mainly to remove IDE warnings.
2024-05-05 22:37:32 +02:00
Steven Barclay
6ae9831818
Parallelise signature checking in VoteResultView.doFillCycleList()
Run through the 'DecryptedBallotsWithMerits' list of each cycle in
parallel, when filling the cycle list of the Vote Result view, to speed
up the signature verification of all the 'Merit' objects found in the
DAO state. Checking all the signatures is necessary to correctly compute
the total merit stake and hence the vote weight of each ballot list, and
profiling shows that it is by far the biggest bottleneck during the
initial view load (with all subsequent activations of the view skipping
'doFillCycleList()', when outside of the Vote Result DAO phase).

(Since each signature is checked only once from 'doFillCycleList()' and
skipping the checks could potentially affect the computed vote weights,
we cannot obviously do any better than parallelise the checks, to speed
up this method.)

(Even though it may be a little more efficient to parallelise the outer
loop of the method, over the cycles instead of the decrypted votes of
each cycle, each individual signature check is expensive enough that it
probably wouldn't give much improvement over this one-line change.)
2024-05-05 00:20:09 +02:00
HenrikJannsen
efdd9c68c4
Change button text
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-05-02 16:10:45 +07:00
HenrikJannsen
13f124566c
Apply patch from @jmacxx (https://github.com/bisq-network/bisq/issues/7066#issuecomment-2087336098)
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-05-02 16:04:20 +07:00
Steven Barclay
92da7956e6
Tidy logback files & add space back to log pattern
Uniformise the log patterns somewhat, by making the 'Logger' classname
field width either 15 for the seednode & statsnode, or 40 for the other
applications (lengthened from 30 in a few cases).

Also clean up the logback XML files somewhat, in particular removing
references to the old Thali (thaliproject/Tor_Onion_Proxy_Library) Tor
library, which was replaced years ago with our own fork of NetLayer
(https://github.com/cd2357/netlayer).

Finally, add a missing space back to the log pattern for bisq-desktop,
to prevent DEBUG, ERROR or TRACE lines appearing as follows:

  ... [JavaFX Application Thread] ERRORb.c.s.CommonSetup: ...

(It isn't clear whether this recently introduced behaviour was really
intentional, though it did prevent two consecutive spaces appearing in
the majority INFO log lines.)
2024-05-02 01:56:32 +02:00
Alejandro García
c6a8d82e64
Merge pull request #7085 from bisq-network/dependabot/github_actions/gradle/gradle-build-action-3.3.2
build(deps): bump gradle/gradle-build-action from 3.2.0 to 3.3.2
2024-04-30 03:14:40 +00:00
Alejandro García
e4fa5d1022
Merge pull request #7084 from bisq-network/dependabot/github_actions/actions/checkout-4.1.4
build(deps): bump actions/checkout from 4.1.2 to 4.1.4
2024-04-30 03:14:02 +00:00
Alejandro García
add2f983f2
Merge pull request #7050 from devinbileck/scan-qr-code
Restore QR code scanner feature for mobile notification pairing
2024-04-30 03:13:31 +00:00
dependabot[bot]
ff5816e180
build(deps): bump gradle/gradle-build-action from 3.2.0 to 3.3.2
Bumps [gradle/gradle-build-action](https://github.com/gradle/gradle-build-action) from 3.2.0 to 3.3.2.
- [Release notes](https://github.com/gradle/gradle-build-action/releases)
- [Commits](https://github.com/gradle/gradle-build-action/compare/v3.2.0...v3.3.2)

---
updated-dependencies:
- dependency-name: gradle/gradle-build-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-29 14:15:06 +00:00
dependabot[bot]
efe3be6b56
build(deps): bump actions/checkout from 4.1.2 to 4.1.4
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.2 to 4.1.4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4.1.2...v4.1.4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-29 14:15:02 +00:00
Steven Barclay
3a97953152
Fix cubic time bug in BondedRolesRepository.update()
Alleviate a cubic time bug during the update of the bonded roles
repository, reducing it to quadratic running time. On Mainnet, this
gives a roughly ten-fold speedup and should allow better scaling in the
event that many new bonded roles are added.

Replace calls to 'BondedRolesRepository.findBondedAssetByHash' with a
lookup into a lazily initialised map of bonded assets (Roles) by hash
(reset at the start of each call to 'BondRepository.update()' to prevent
stale caching). This avoids rescanning the roles list for every pair of
roles and lockup tx outputs, thus reducing the number of steps (to
highest order) from:

  #roles * #roles * #lockup-tx-outputs

to:

  #roles * #lockup-tx-outputs

(The logs show 2 or 3 calls to 'BondedRepository.update()' every time a
new block arrives, and while this was only taking around a second or so
on Mainnet, it could potentially grow to something problematic with
cubic scaling in the number of bonded roles.)
2024-04-19 23:49:48 +02:00
Alejandro García
4fc0ab5d19
Merge pull request #7071 from bisq-network/dependabot/github_actions/gradle/gradle-build-action-3.2.0
build(deps): bump gradle/gradle-build-action from 3.1.0 to 3.2.0
2024-04-09 20:02:22 +00:00
Alejandro García
b223388ab2
Merge pull request #7070 from HenrikJannsen/increase_maxItems_for_tradestatistics
Increase maxItems at requesting  trade statistic items
2024-04-09 20:01:40 +00:00
Alejandro García
54b75cee7b
Merge pull request #7069 from HenrikJannsen/improve-handling-of-MAX_REPEATED_REQUESTS
Increase MAX_REPEATED_REQUESTS
2024-04-09 20:01:14 +00:00
dependabot[bot]
ec3a0717e1
build(deps): bump gradle/gradle-build-action from 3.1.0 to 3.2.0
Bumps [gradle/gradle-build-action](https://github.com/gradle/gradle-build-action) from 3.1.0 to 3.2.0.
- [Release notes](https://github.com/gradle/gradle-build-action/releases)
- [Commits](https://github.com/gradle/gradle-build-action/compare/v3.1.0...v3.2.0)

---
updated-dependencies:
- dependency-name: gradle/gradle-build-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-08 14:17:57 +00:00
Devin Bileck
5f3f692b2f
Fix SIGSEGV encountered on macOS
When attempting to close the frame grabber from a separate thread,
the application would crash due to a SIGSEGV.
2024-04-01 21:52:40 -07:00
Devin Bileck
e6e9608473
Fix image loading from resources on Windows
This should hopefully resolve images failing to load from resources
on Windows due to problems with imread encountering "can't open/read
file: check file path/integrity".
2024-04-01 21:52:40 -07:00
Devin Bileck
0f373cee43
Restore QR code scanner feature for mobile notification pairing
This restores the functionality that was removed in b5beea58. However,
this implementation utilizes the JavaCV library rather than the
webcam-capture library as discussed in #4940. As a result, this should
now provide macOS support.
2024-04-01 21:52:40 -07:00
HenrikJannsen
31ce213a98
Increase MAX_REPEATED_REQUESTS from 20 to 30 and in case we are a seed node to 100.
In case the other seed node has not updated the historical data is not taken into account, thus we would get more repeated requests until all data is received. To avoid that we get stuck we increase the limit.

Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-04-01 14:50:59 +07:00
HenrikJannsen
bf6128306f
Increase maxItems from 3000 to 15000.
3000 items are about 180.325 kB.

For nodes not being online for longer the repeated requests consumes quite some time.
With 15k we can expect a 1 MB payload which is still acceptable.

Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-04-01 11:50:08 +07:00
Alejandro García
92283de42a
Merge pull request #7060 from bisq-network/dependabot/github_actions/actions/setup-java-4.2.1
build(deps): bump actions/setup-java from 4.0.0 to 4.2.1
2024-03-27 09:13:46 +00:00
Alejandro García
fcb625cbb4
Merge pull request #7059 from bisq-network/dependabot/github_actions/actions/checkout-4.1.2
build(deps): bump actions/checkout from 4.1.1 to 4.1.2
2024-03-27 09:13:19 +00:00
Alejandro García
0e50d241ee
Merge pull request #7057 from jmacxx/rename_role_community_admin
Rename Keybase admin to Community admin
2024-03-27 09:12:52 +00:00
Alejandro García
7eb4c5231c
Merge pull request #7054 from HenrikJannsen/add-sha-hash-for-protoc-for-aarch_64
Add sha hash for protoc-3.19.1-osx-aarch_64.exe
2024-03-27 09:12:26 +00:00
Alejandro García
dc9f039593
Merge pull request #7040 from alvasw/persistence_rolling_backups
persistence: Implement Rolling Backups
2024-03-27 09:10:32 +00:00
Alejandro García
85e7f495b5
Merge pull request #7036 from jmacxx/api_confirm_payment_xmr
Add API for payment started with XMR auto conf params
2024-03-27 09:10:00 +00:00
Alejandro García
ee987bef1c
Merge pull request #7005 from jmacxx/sepa_qr_code
Add SEPA QR Code for buyer payment
2024-03-27 09:09:23 +00:00
dependabot[bot]
8a96dcfba4
build(deps): bump actions/setup-java from 4.0.0 to 4.2.1
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4.0.0 to 4.2.1.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/v4.0.0...v4.2.1)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-18 14:30:07 +00:00
dependabot[bot]
170cd53690
build(deps): bump actions/checkout from 4.1.1 to 4.1.2
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.1 to 4.1.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4.1.1...v4.1.2)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-18 14:30:04 +00:00
jmacxx
5c8204ab83
Rename Keybase admin to Community admin fixes #7048. 2024-03-16 09:53:18 -05:00
Steven Barclay
0a1df44daf
Add debug perf logging to BondRepository.update()
This is in anticipation of speedups we wish to make, as JProfiler
reveals it to be a hotspot during new block arrivals (which are tricky
to profile, as they occur at random).
2024-03-09 21:18:24 +08:00
Steven Barclay
7d2e050474
Fix broken PreferencesTest mocks (revealed by strict Mockito stubbing)
Fix the broken stubbing of 'PersistenceManager', which had gone stale as
a result of the conversion of 'Preferences' to asynchronous persistence
in commit 3f4d6e6 (2020/10/12). This caused the assertions in the
'readPersisted' continuation blocks of 3 of the 4 tests not to be
reached. Fix by stubbing the async 'persistenceManager::readPersisted'
method with a callback, instead of stubbing 'getPersisted'.

NOTE: Alternatively, we could add a testing-only 'readPersistedSync'
method to 'Preferences' for consistency, as this is how the other broken
(failing) tests resulting from 3f4d6e6 were fixed (in commit 68583d8).
2024-03-09 20:38:34 +08:00
Steven Barclay
c94fa98417
Generify remaining raw types used by the DAO packages
Fix raw usage of the following types, all of which (apart from
Comparator) touch the DAO packages somewhere:

  Comparable, Comparator, GetStateHashesResponse, NewStateHashMessage,
  RequestStateHashesHandler, PersistenceManager

(Also replace 'Integer.valueOf' with the non-boxing but otherwise
identical method 'Integer.parseInt', in the class 'TxOutputKey'.)
2024-03-09 01:26:36 +08:00
Steven Barclay
e1a8424f12
Generify Bond raw types & rename BondRepository type params
Replace all raw uses of 'Bond<T extends BondedAsset>', mostly with
wildcards (that is, 'Bond<?>'), to prevent compiler/IDE warnings.

Also rename the 'T extends Bond<R>' & 'R extend BondedAsset' type params
of 'BondRepository<..>' to 'B' & 'T' respectively, as this is a little
less confusing.
2024-03-08 21:11:31 +08:00
HenrikJannsen
4e13cd3934
Add sha hash for protoc-3.19.1-osx-aarch_64.exe 2024-03-08 18:29:34 +07:00
Steven Barclay
314e976bbc
Cleanup: replace putIfAbsent-then-get with computeIfAbsent
Use the simpler & slightly more efficient 'Map::computeIfAbsent' method
in place of the common pattern:

  map.putIfAbsent(key, newValue());
  V value = map.get();

(Clean up BondRepository + some cases missed from BurningManService.)
2024-03-08 14:40:44 +08:00
jmacxx
e75fc1ce79
Add SEPA QR Code for buyer payment. 2024-02-27 14:23:43 -06:00