Commit graph

18082 commits

Author SHA1 Message Date
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
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
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
HenrikJannsen
4e13cd3934
Add sha hash for protoc-3.19.1-osx-aarch_64.exe 2024-03-08 18:29:34 +07:00
jmacxx
e75fc1ce79
Add SEPA QR Code for buyer payment. 2024-02-27 14:23:43 -06:00
jmacxx
9738d5387e
Add API for payment started with XMR auto conf params. 2024-02-26 08:39:39 -06:00
Alva Swanson
9d4d39650f
persistence: Implement RollingBackups 2024-02-26 08:39:21 +01:00
Alejandro García
f941ef300f
Merge pull request #7047 from stejbac/fix-remaining-accounting-store-data-race
Fix remaining data race in BurningManAccountingStore
2024-02-25 14:34:35 +00:00
Alejandro García
42d40e56a1
Merge pull request #7041 from jmacxx/remove_wiz_bsq_explorer
Remove reference to non-functioning BSQ explorer
2024-02-25 14:33:51 +00:00
Alejandro García
a3f5bf5901
Merge pull request #7039 from alvasw/async_persistence_truncate_before_write
AsyncFileWriter: Truncate before write
2024-02-25 14:33:21 +00:00
Alejandro García
e53fb3521f
Merge pull request #7023 from jmacxx/fix_issue_7022
GetTrades should not filter open failed trades
2024-02-25 14:31:39 +00:00
Alejandro García
c86d965b33
Merge pull request #7012 from jmacxx/api_get_dao_status
Add API call to get DAO status
2024-02-25 14:31:06 +00:00
Alejandro García
29c4999f36
Merge pull request #7008 from jmacxx/fix_issue_7006
Refactor detectMultipleHolderNames for efficient use of RAM.
2024-02-25 14:30:31 +00:00
Alejandro García
51f5414831
Merge pull request #7043 from stejbac/fix-and-optimise-price-and-dao-chart-views
Account for invalid tx BSQ burns in supply & market cap charts and optimise the latter
2024-02-24 15:17:55 +00:00
Alejandro García
267d57d4ac
Merge pull request #7042 from bisq-network/dependabot/github_actions/gradle/gradle-build-action-3.1.0
build(deps): bump gradle/gradle-build-action from 3.0.0 to 3.1.0
2024-02-24 15:16:12 +00:00
Alejandro García
ebc987b8a4
Merge pull request #7045 from wiz/wiz/20240222-remove-wiz-bitcoin-nodes
Remove 2 more of wiz Bitcoin nodes
2024-02-24 15:15:37 +00:00
Alejandro García
7de6edfc44
Merge pull request #7046 from Emzy/remove-add-seeds
Remove seednodes from jmacxx and add 403State
2024-02-24 15:15:08 +00:00
Steven Barclay
0214566619
Simplify & optimise BurningManAccountingStore.purgeLastTenBlocks
Remove the last 10 blocks one-by-one from the end of the internal linked
list of blocks, instead of rebuilding a truncated list from scratch.
(This all takes place within a write-lock anyway, so it's atomic.)
2024-02-24 11:26:16 +08:00
Steven Barclay
02ee5bc6ea
Fix remaining data race in BurningManAccountingStore
Add missing synchronisation to the 'toProtoMessage' method, by first
copying the internal list of blocks inside a read-lock, prior to
serialisation (still outside the lock, to maximise concurrency). Since
we only make a shallow copy, this should be fast and take no more than a
MB or so of extra memory.

This prevents a race seen to cause a ConcurrentModificationException
during store persistence, that sometimes occurred when the application
resumed from a long suspension.
2024-02-24 11:12:33 +08:00
Stephan Oeste
79571aa99f
Remove seednodes from jmacxx and add 403State 2024-02-23 17:59:27 +01:00
wiz
8d1aea62fe
Remove 2 more of wiz Bitcoin nodes 2024-02-22 15:09:14 +09:00
Steven Barclay
e584c77f9e
Replace Predicate<Long> with LongPredicate in *ChartDataModel
Use the slightly more efficient primitive type specialisation for the
date filters in 'ChartDataModel' and its subclasses.
2024-02-20 18:32:19 +08:00
Steven Barclay
d97636eaad
Don't ignore BSQ burned by invalid txs in chart data models
Use 'Tx::getBurntBsq' instead of 'Tx::getBurntFee', so as not to exclude
BSQ burned by invalid txs from the supply calculations. There are no
invalid BSQ txs at present on mainchain, but accidentally burned BSQ
should definitely count as a reduction in supply, so this fixes a bug.
2024-02-20 16:21:07 +08:00