Commit Graph

18460 Commits

Author SHA1 Message Date
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
Alejandro García
776752c466
Revert to SNAPSHOT version 2024-05-09 20:42:56 +02:00
Steven Barclay
23f871a78b
Fix data race in IgnoredMailboxMap
Make the 'dataMap' field a ConcurrentHashMap instead of a HashMap, to
prevent a ConcurrentModificationException, which was recently observed
when calling 'IgnoredMailboxMap::toProtoMessage' from the persistence
manager inside the user thread during startup of bisq-desktop. Tracing
through the code, this likely happened during an iteration through the
keyset of 'dataMap' (to check for nulls, inside the proto serialisation
logic during persistence), while simultaneously adding ignored mailbox
messages to the map on a separate thread spawned from the method,
'MailboxMessageService::threadedBatchProcessMailboxEntries'. (The latter
was made asynchronous so as not to block the UI.)

(Since there is a call to 'PersistenceManager::requestPersistence' after
every addition to the ignored mailbox map, there hopefully won't be any
missed entries in the final persisted map, even though the snapshot of
ConcurrentHashMap being iterated through won't be fresh as long as new
entries are simultaneously added.)
2024-05-08 18:18:30 +02:00
Steven Barclay
437f81ff08
Remove unused imports from MailboxMessageService 2024-05-08 17:28:05 +02:00
HenrikJannsen
892db99dcb
Add check that price is not 0.
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-05-08 17:13:33 +07:00
HenrikJannsen
c5f9eb2d9a
Remove seed nodes of 404State
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-05-08 16:55:25 +07: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
runbtc
2f0ee349e8
Cleanup unused/unnecessary torrc options 2024-05-06 21:46:15 -07:00
runbtc
295228b5e2
Use cookie auth for Tor control 2024-05-06 21:45:49 -07:00
runbtc
56a15fdca5
Prepend ExecStart command with bash 2024-05-06 21:44:30 -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
8b381bfb45
Merge pull request #7064 from jmacxx/postpone_bm_activation_date
Give more time before activating BM capping algo change (#2)
2024-03-27 09:15:12 +00: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
jmacxx
f9ae4cd9e9
Move prop 412 activation date into the future: May 1 2024. 2024-03-20 15:04:35 -05: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