Commit Graph

7056 Commits

Author SHA1 Message Date
Alejandro García
b1e2cb03ad
Merge pull request #6568 from alvasw/gradle_apply_central_bisq_java_conventions
Gradle apply central bisq java conventions
2023-02-05 22:43:48 +00:00
Alejandro García
c61bd70ead
Merge pull request #6562 from alvasw/move_get_single_thread_executor_to_own_utils
Move SingleThreadExecutors to its own Utils class
2023-02-05 22:42:02 +00:00
Alva Swanson
53837bf00b
Move SingleThreadExecutors to its own Utils class 2023-02-05 22:11:35 +01:00
Alva Swanson
b2870ccee3
Delagate thread pool shutdown to Guava MoreExecutors 2023-02-05 22:09:56 +01:00
Alva Swanson
c1c4caf87f
Gradle: Apply bisq.java-conventions to all projects 2023-02-05 22:02:13 +01:00
Alejandro García
e6f2703738
Merge pull request #6557 from alvasw/export_json_files_service_shutdown_executor
ExportJsonFilesService: Shutdown Executor
2023-02-05 18:58:00 +00:00
Alva Swanson
7665780ca4
ExportJsonFilesService: Shutdown Executor 2023-02-05 13:36:09 +01:00
Alva Swanson
5506443d54
ScryptUtil: Fix thread leak
Each time someone called the static method
ScryptUtil.deriveKeyWithScrypt(...) a new worker pool was created. The
worker pool was never shutdown.
2023-02-05 13:31:15 +01:00
Alva Swanson
4779c82d0b
Fix BurningManAccountingStore data races
Multiple threads read and write to the accounting blocks list causing
data races. Luckily, the LinkedList threw a ConcurrentModificationException
to limit damage. Now, a ReadWriteLock protects the LinkedList against
data races. Multiple threads can read the list at the same time but only
one thread can write to it. Other writing threads wait until it's their
turn.

Fixes #6545
2023-02-03 23:41:51 +01:00
Alejandro García
f24e0f231d
Merge pull request #6548 from alvasw/fix_dao_state_storage_service_shutdown_data_corruption_bug
DaoStateStorageService: Fix shutdown data corruption bug
2023-02-03 15:14:44 +00:00
Alejandro García
2239924225
Merge pull request #6552 from stejbac/speed-up-closed-trades-view-load
Speed up loading and scrolling of trade history
2023-02-03 15:13:58 +00:00
Alejandro García
27613de363
Merge pull request #6546 from jmacxx/offer_availability_dao_sync_check
Maker check DAO health when handling OfferAvailabilityRequest.
2023-02-03 15:10:57 +00:00
Steven Barclay
57b2b4b864
Add txs-by-id cache to WalletService to speed up trade history view
Add a third cache to WalletService, cleared upon wallet change events,
which maps txIds to txs. This allows the speedup of repeated calls to
'WalletService.getConfidenceForTxId', by avoiding the need to copy and
scan the entire set of wallet txs to find the one with matching id,
for each method invocation.

This is mainly to provide a further speedup to the closed-trades-view
load, by making it much faster to filter the list of BSQ swap trades by
tx confirmation status in 'ClosedTradesDataModel.applyList' and
'ClosedTradesManager.getNumPastTrades'.
2023-02-01 23:02:25 +08:00
Steven Barclay
42ea12f74c
Rename WalletService.getAddressToMatchingTxSetMultiset to multimap
The return value is a (cached) SetMultimap, not a multiset.
2023-02-01 20:48:32 +08:00
Steven Barclay
f02bc787d5
Optimize 'getNumPastTrades' to speed up trade history view
Reduce a bottleneck in the closed-trades-view load & table scrolling,
caused by a call to 'ClosedTradesManager.getNumPastTrades' for each
list item displayed. This repeatedly scans the entire collection of
closed trades and BSQ swap trades, in order to count all those which
share a given peer node address. (Scanning the BSQ swap trades is
particularly slow due to their filtering by tx confirmation status.)

To this end, cache the counts of trades by peer node address with a
nullable Multiset field in ClosedTradesManager & BsqSwapTradeManager,
so that the trades are scanned at most once when the view loads. Add
listeners to clear the respective cache when the trade list changes or
the BSQ wallet txs change.
2023-02-01 19:59:48 +08:00
Alva Swanson
d9372f3a4c
XmrTxProofRequest: Shutdown executor service in terminate() 2023-01-31 17:21:34 +02:00
Alva Swanson
1066e83a27
DaoStateStorageService: Fix shutdown data corruption bug
The DaoStateStorageService submits tasks to a daemon thread executor
service. The JVM continues to execute threads until all non-daemon
threads have terminated. So the JVM will kill the DaoStateStorageService
during write requests leading to data corruption.

This change uses a non-daemon thread executor service at waits during
shutdown until all data is written to disk.
2023-01-31 16:04:06 +02:00
jmacxx
d43a0e42cf
Maker check DAO health when handling OfferAvailabilityRequest. 2023-01-29 21:46:56 -06:00
Alejandro García
f43b5fe04b
Merge pull request #6544 from jmacxx/fix_withdrawal_fee_estimation
Fix withdrawal fee calculation & the min relay fee problem.
2023-01-28 19:25:06 +00:00
Alejandro García
71c05f6ac2
Merge pull request #6541 from alvasw/dao_state_storage_service_do_not_call_executor_service_shutdown_twice
DaoStateStorageService: Don't call executorService.shutdown() twice
2023-01-28 19:23:23 +00:00
jmacxx
efac12e8ce
Fix withdrawal fee calculation & the min relay fee problem. 2023-01-27 12:02:02 -06:00
Alva Swanson
eca9aedaa7
DaoStateStorageService: Don't call executorService.shutdown() twice
MoreExecutors.shutdownAndAwaitTermination(executorService, ...) calls
executorService.shutdown() before starting its force shutdown timer.
2023-01-27 16:28:44 +02:00
Alva Swanson
6a8fb05156
Centralize all ExecutorService creations in Utilities 2023-01-27 16:15:24 +02:00
Alejandro García
d682d956a1
Merge pull request #6539 from HenrikJannsen/improve_price_feed_service
Improve price feed service
2023-01-27 13:45:08 +00:00
HenrikJannsen
fa03f16917
Use auto-indexed thread name as prefix for thread name
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-01-26 12:27:30 +08:00
Alejandro García
74e1078318
Merge pull request #6527 from yonson2023/disk_space_warning
Warn user when free disk space is too low.
2023-01-24 16:17:11 +00:00
HenrikJannsen
2f36eadbca
Do not start new retry with new provider timer if one is still running.
Change log level as it is an expected case at repeated requests.

Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-01-24 13:04:17 +08:00
yonson2023
f3a19b9d00
Apply code review suggestions. 2023-01-23 20:28:53 -06:00
Alejandro García
e9ea270908
Merge pull request #6528 from jmacxx/fix_issue_6517
Refactor closing ticket logic.
2023-01-23 14:52:43 +00:00
Alejandro García
29e0088032
Merge pull request #6533 from jmacxx/fee_reimbursement_message
Fee reimbursement message ref to bisq.wiki.
2023-01-22 21:15:27 +00:00
jmacxx
05273a7bdf
Fee reimbursement message ref to bisq.wiki. 2023-01-22 13:51:54 -06:00
Devin Bileck
18b65681f7
Remove clearnet address for BTC node "devinbtcyk"
I switched hosts and currently do not have an accessible clearnet address.
2023-01-20 15:24:53 -08:00
jmacxx
3dde7c6261
Refactor closing ticket logic to fix #6517. 2023-01-18 08:27:46 -06:00
yonson2023
fc2166e1a6
Warn when free disk space is too low. 2023-01-17 14:20:56 -06:00
Alejandro García
975210d228
Merge pull request #6515 from HenrikJannsen/distribute_evenly_restart_of_seed_nodes
Distribute evenly restart time
2023-01-12 16:34:47 +00:00
Alejandro García
d859f391bf
Merge pull request #6510 from HenrikJannsen/improve_connection_logs
Improvements in connection and increase timeout
2023-01-12 16:33:40 +00:00
Alejandro García
fda3c45008
Merge pull request #6501 from HenrikJannsen/always_include_high_prio_payload_in_get_data_response
Always include high prio payload in get data response
2023-01-12 16:33:08 +00:00
HenrikJannsen
116118a451
Distribute evenly restart time
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-01-10 11:55:27 -05:00
HenrikJannsen
7387b3ac2d
Increase timeout at RequestStateHashesHandler from 2 min. to 3 min
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-01-06 20:19:55 -05:00
HenrikJannsen
bc5045dd28
Force rebuild at CI
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-01-06 13:24:17 -05:00
HenrikJannsen
fa82990e6e
Handle DPT_MIN_REMAINDER_TO_LEGACY_BM with isHotfixActivated param
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-01-06 13:19:59 -05:00
HenrikJannsen
b872683b60
Use trade date for check if hotfix is activated at refund managers DPT verification
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-01-06 13:10:12 -05:00
HenrikJannsen
9dc79fdcd4
Add checks if hot fix is activated for 2 other changes made since 1.9.8
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-01-06 10:03:39 -05:00
Alejandro García
be1691ba0c
Merge pull request #6505 from HenrikJannsen/use_thread_for_processing_BM_AccountingBlocks
Run processAccountingBlocks async in forkjoinpool thread
2023-01-06 14:09:35 +00:00
Alejandro García
dda32c09ff
Merge pull request #6504 from HenrikJannsen/add_check_for_isInConflictWithSeedNode
Add check for dao state hash conflict with seed node
2023-01-06 14:09:01 +00:00
HenrikJannsen
7977c8670a
Cleanup
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-01-05 22:25:31 -05:00
HenrikJannsen
8b0f8fbead
Cleanup
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-01-05 22:18:10 -05:00
HenrikJannsen
41a63cc8a5
Add handling of miner fee in case there is only the legacy BM
Use spendableAmount instead of inputAmount at maxOutputAmount

Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-01-05 22:04:23 -05:00
HenrikJannsen
bb06f64049
Add complete call
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-01-05 22:04:23 -05:00
HenrikJannsen
bc91914cb0
Change log level
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-01-05 14:48:51 -05:00
HenrikJannsen
093e8f99f4
Remove unused methods
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-01-05 11:41:11 -05:00
HenrikJannsen
13180ddc30
Improve DaoPresentation and add handler for daoStateHash updates
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-01-05 11:21:01 -05:00
HenrikJannsen
1e2f48b9bc
Rename isDaoStateIsInSync to isDaoStateReadyAndInSync
Add daoStateService.isParseBlockChainComplete() check

Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-01-05 10:42:59 -05:00
HenrikJannsen
b33c610015
Add CheckIfDaoStateIsInSync task in trade protocol as first task
Add ifDaoStateIsInSync method to DaoFacade
Add ifDaoStateIsInSync to logs if DPT verification fails
2023-01-05 10:39:24 -05:00
HenrikJannsen
be33aa5236
Add chain heights to logs
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-01-05 10:22:50 -05:00
HenrikJannsen
f4d335b624
Improve logs
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-01-05 10:18:42 -05:00
HenrikJannsen
02093b986b
Improve log
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-01-05 10:06:49 -05:00
HenrikJannsen
ea285e6ad1
Run processAccountingBlocks async in forkjoinpool thread
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-01-04 20:52:22 -05:00
HenrikJannsen
819c6fb200
Combine nested if statements
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-01-04 19:30:02 -05:00
HenrikJannsen
5542ea23ec
Add custom getGetDataResponsePriority methods
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-01-04 18:25:17 -05:00
HenrikJannsen
5efd13a678
Check if setException returns false and if so, cancel future.
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-01-04 18:09:04 -05:00
Alejandro García
9d820ba83e
Merge pull request #6495 from HenrikJannsen/fix_BM_collection_at_DPT
Fix bug with calculating the miner fee for the DPT.
2023-01-03 23:38:30 +00:00
HenrikJannsen
56377d8930
Reduce DPT_MIN_REMAINDER_TO_LEGACY_BM from 50k sat to 25k sat.
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-01-03 17:32:10 -05:00
HenrikJannsen
a296887a73
Use getActiveBurningManCandidates for fee distribution
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-01-03 12:08:12 -05:00
HenrikJannsen
0c4199fef4
Fix but with calculating the miner fee for the DPT.
Add activation date for hotfix.

We used all potential BM instead only the ones who have a positive cappedBurnAmountShare.
2023-01-03 12:07:38 -05:00
HenrikJannsen
8bde140e3d
Add all addresses of all burningman who have burned BSQ to the list of addresses who are permitted to receive trade fees.
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-01-02 17:01:38 -05:00
Alejandro García
1d669240d8
Merge pull request #6425 from jmacxx/fix_bsq_fee_validation
Validate BSQ fee payment using DAO tx info.
2022-12-29 20:12:38 +00:00
jmacxx
fa6beffa49
Apply code review changes. 2022-12-29 13:57:13 -06:00
Alejandro García
eef7846394
Merge pull request #6487 from HenrikJannsen/reset_pending_trade_protocol_of_same_offer
Reset pending trade protocol of same offer
2022-12-29 15:02:36 +00:00
HenrikJannsen
42dc0b5b79
Merge branch 'add_higher_capacity_for_write_to_json_thread_pool' into seednodes 2022-12-28 12:11:05 -05:00
HenrikJannsen
5ff7be9208
Increase capacity for thread pool queue at ExportJsonFilesService
One seed node using the ExportJsonFilesService had RejectedExecutionExceptions as before we had only permitted a thread pool queue capacity of 1.

Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-28 12:09:59 -05:00
HenrikJannsen
5b38e5b83b
Allow to set fullNode if isBmFullNode and rpcDataSet is true even if BurningManService.isActivated() is false.
This allows us to run the seed nodes already in BM mode before activation

Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-27 18:40:38 -05:00
HenrikJannsen
9a31606fea
Make codacy happy
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-27 17:54:11 -05:00
HenrikJannsen
e1d8d0a6a0
Make codacy happy
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-27 17:54:11 -05:00
HenrikJannsen
7f16e874d2
Improve shutdown at dao nodes
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-27 17:54:10 -05:00
HenrikJannsen
0b33a12c19
Change visibility, make isShutdownInProgress volatile
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-27 17:54:09 -05:00
HenrikJannsen
d5b4ce275b
Add support for listeners when GetDataResponse and GetBlocksResponse are sent.
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-27 17:54:08 -05:00
HenrikJannsen
3f4a069202
Add reset method to trade protocol.
Add map for maintaining pending protocols by offerID.

Fixes a bug when the same taker got an early failure in a take offer attempt before the maker removes the offer and the taker did not persist the failed trade, thus the protection to not be permitted to take the same offer after a failure does not prevent another take offer attempt of the same taker. In such a case the maker has the old pending protocol listening for the trade messages and both the old and new protocol instance process those messages. In case the model data has changes (e.g. diff. inputs) this can cause a failed trade.
We do not remove the message listeners on failures to tolerate minor failures which can be recovered by resend routines.
There could be more solid fixes for that issue but this approach seems to carry less risks.
2022-12-26 14:07:14 -05:00
HenrikJannsen
72b55f429a
Move log before super handler to maintain correct order of logs
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-26 12:30:07 -05:00
HenrikJannsen
4fb0420712
Remove price node and seed nodes of @miker and @mrosseel
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-20 19:40:59 +01:00
Christoph Atteneder
d99452c978
Not use additional -%d in name format because of refactoring 2022-12-20 11:36:42 +01:00
jmacxx
9f8b3df1ac
Base initial limit from users max past trade size if applicable. 2022-12-19 16:49:39 +01:00
HenrikJannsen
8eb555df8f
Add INVALID_SNAPSHOT_HEIGHT to AvailabilityResult.
Use AvailabilityResult.INVALID_SNAPSHOT_HEIGHT instead of AckMessage with error.
Show description in error popup instead of enum name.
Return PRICE_CHECK_FAILED instead of UNKNOWN_FAILURE at error at price check also for non api users.

Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-19 09:32:00 +01:00
HenrikJannsen
0b849800f9
Fix test
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-19 09:32:00 +01:00
HenrikJannsen
bd85958c9e
Add sanity check for a min. block height for the snapshot height
We don't allow to get further back than 767950 (the block height from Dec. 18th 2022)

Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-19 09:32:00 +01:00
HenrikJannsen
f834fbdda6
Add sanity check that max share of a non-legacy BM is 20% over MAX_BURN_SHARE (taking into account potential increase due adjustment)
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-19 09:31:59 +01:00
HenrikJannsen
618e610f3e
Exclude legacy BM from DAO balance
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-19 09:31:59 +01:00
HenrikJannsen
109c200650
Add balance fields for DAO revenue with total burned BSQ and total distributed BTC/BSQ
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-19 09:31:59 +01:00
HenrikJannsen
2be5d2fbd8
Increase GENESIS_OUTPUT_AMOUNT_FACTOR and ISSUANCE_BOOST_FACTOR
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-19 09:31:59 +01:00
HenrikJannsen
c268cc46cb
Add new average bsq price after historical data
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-19 09:31:58 +01:00
HenrikJannsen
a76267b6f3
Use static fields for opReturnData instead of hardcoded mainnet hashes
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-19 09:31:58 +01:00
HenrikJannsen
16bfdd6154
Remove regtest value for DEFAULT_ESTIMATED_BTC_TRADE_FEE_REVENUE_PER_CYCLE
Adjust reimbursement amounts as we do not reimburse 100% of the DPT

Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-19 09:31:57 +01:00
HenrikJannsen
80063d735c
Add custom handling of legacy BM.
Refactoring: rename variables

Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-19 09:31:57 +01:00
HenrikJannsen
1aa5a9b17a
Don't allow the myBurnAmount to be larger than the upperBaseTarget
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-19 09:31:56 +01:00
HenrikJannsen
7eed7a4cda
In case we have capped burn shares we redistribute the share from the over-burned amount to the non capped candidates.
This helps to avoid that the legacy BM would get the rest in case there are capped shares.
It still can be that a candidate exceeds the cap and by the adjustment becomes capped. We take that into account and the legacy BM would get some share in that case.

Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-19 09:31:56 +01:00
HenrikJannsen
709f0e1b85
Change burn target calculation.
Left side is amount to burn to reach the max allowed receiver share based on the burned amount of all BM.
The right side is the amount to burn to reach the max allowed receiver share based the boosted max burn target.

Increase ISSUANCE_BOOST_FACTOR from 3 to 4.

Add help overlay to burn target table header.

Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-19 09:31:56 +01:00
jmacxx
9ce2964ff4
Fix divide by zero errors in Trade history summary. 2022-12-19 09:28:42 +01:00
sqrrm
1cf51be56c
Update sqrrm provided btc onion addresses 2022-12-19 09:28:21 +01:00
HenrikJannsen
ddf5239800
Increase timeouts from 3 to 4 min.
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-19 09:27:44 +01:00
HenrikJannsen
6aad3a8dc5
Reduce getDataResponse size from 9 MB to 6 MB
Reduce number of blocks at GetBlocksResponse from 4000 to 3000

Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-19 09:27:27 +01:00