Commit Graph

4906 Commits

Author SHA1 Message Date
chimp1984
294b45dbad
Republish trade statistics if not found in existing trade stats.
Remove republishing at SellerProtocol as we don't know the capability of the peer at that moment and as we also want to republish for completed trades.
2020-10-16 14:13:01 -05:00
Christoph Atteneder
b7c6c42475
Update bitcoinj checkpoints for v1.4.0 2020-10-15 09:13:17 +02:00
Christoph Atteneder
4f26544333
Merge pull request #4648 from chimp1984/dont-include-dead-txs-in-limit-check
Dont include dead transactions in check for unconfirmed txs chain
2020-10-15 09:12:49 +02:00
chimp1984
8b404e1954
Exclude time-locked txs at isUnconfirmedTransactionsLimitHit
For published delayed payout transactions we do not receive the tx confidence
so we cannot check if it is confirmed so we ignore it for that check. The check is any arbitrarily
using a limit of 20, so we don't need to be exact here. Should just reduce the likelihood of issues with
the too long chains of unconfirmed transactions.
2020-10-14 20:17:48 -05:00
chimp1984
fe3828e21f
Dont include dead transactions in check for unconfirmed txs chain 2020-10-14 10:13:12 -05:00
chimp1984
feb4e5230f
Use toString for NullPointerException 2020-10-14 09:52:53 -05:00
Mike Rosseel
58f5066e0a
Resolve conflict in 'core/src/main/resources/btc_mainnet.seednodes'. 2020-10-14 15:15:30 +02:00
wiz
866b227fcc
Replace emzy's v2 seednodes with new v3 seednodes 2020-10-14 12:54:25 +02:00
sqrrm
c41bfd7164
Merge pull request #4643 from chimp1984/add-get-inventory-msg
Add GetInventory messages
2020-10-14 12:22:00 +02:00
chimp1984
5f9d3d1f0d
Add GetInventory messages
This will be used for monitoring seed nodes.
Instead of requesting all data (we cannot request all in fact as it is too large)
we request the number of items the node has.

This code will not have any impact atm. It will be triggered once a new monitor module gets added which
will send the GetInventoryRequest to the seeds.
2020-10-13 23:30:39 -05:00
chimp1984
b0bc3d0c87
Remove lombok getter for date and rename getDate to getDateAsLong and getTradeDate to getDate. 2020-10-13 20:46:05 -05:00
chimp1984
cc5bdfaf9c
Change data response behaviour
Add DateSortedTruncatablePayload interface for TradeStatistics2

We check first if we need to truncate dateSortedTruncatablePayloads, if so we have sorted by date and truncate in the way that we receive the most recent data. We define the maxItems in the class implementing the interface (3000 for trade stats).
Later we apply the maxEntries check the combined list and if we need to truncate here as well (10 000) we have added the dateSortedTruncatablePayloads at the end so those will get truncated with higher prio.

There is also a bit wrong handling in the previous code that we check for max limits before the shouldTransmitPayloadToPeer filter. Should be fixed in another PR for master...
2020-10-13 20:31:09 -05:00
Christoph Atteneder
e30a7e041c
Merge pull request #4632 from oscarguindzberg/fixSendNonBsq
Fix send non bsq funds
2020-10-13 21:57:35 +02:00
Oscar Guindzberg
864700775b
Accept segwit addresses when sending non-BSQ funds 2020-10-13 15:14:40 -03:00
sqrrm
be08c86c18
Merge pull request #4640 from chimp1984/update-trade-stat-resource-file
Update trade stat resource file
2020-10-13 18:51:14 +02:00
chimp1984
b71930252f
Exclude depositTxId as it seems that leads to
duplicates (we got about 1000 objects more without excluding it,
so seems some traders had set it to null, prob. due bugs)
2020-10-13 11:29:54 -05:00
sqrrm
129eaa76c4
Merge pull request #4638 from chimp1984/fix-mediation-bug
Fix bug at mediation with old client
2020-10-13 18:20:17 +02:00
chimp1984
3b4d109652
Fix bug at mediation with old client
If dispute opener is old client the delayed payout tx is not sent in mediation case (only in refund agent cases).
At 1.4.0 we send it as well in mediation case and the mediator get a warning shown in case its missing.
To avoid that warning we check if dispute is of refund agent type and only check in that case.
This can be removed once we have enforced update to 1.4.0 (segwit will require that).
Also added checks to not add null entries in the duplicates checks.
2020-10-13 10:26:20 -05:00
Christoph Atteneder
e5dd316a0a
Merge pull request #4631 from oscarguindzberg/fixPeerGroupStop
Stop PeerGroup only if running
2020-10-13 09:26:41 +02:00
chimp1984
0d469066ce
Change write json files to disk strategy
We have written all files each time at each new block which accumulated to about
1 GB of data, this led to stability issues and very high disk IO for the explorer nodes.

Now we write only the data of the new block. We also remove the deletion of all
files at startup.
The dao state is still written in a monolithic file so that cannot be optimized
but we added a new directly where we add each block named by block height.
Looking up the latest written file tells us our last persisted block.
So all that data is equivalent to the monolithic daoState data which should
be removed once the webapp devs have implemented the change to use the blocks directory.
2020-10-12 23:51:15 -05:00
Oscar Guindzberg
1c0655e2c7
Stop PeerGroup only if running 2020-10-12 17:10:39 -03:00
Christoph Atteneder
41b2e6a56d
Merge pull request #4619 from chimp1984/fix-memo-bug-issue-4616
Set memo to tx after tx creation and not on broadcast success
2020-10-12 09:12:11 +02:00
Christoph Atteneder
1eb730a431
Merge pull request #4626 from chimp1984/avoid-duplicate-trade-stats
Use hash at conversion also for local data to avoid duplicates.
2020-10-12 09:10:11 +02:00
Oscar Guindzberg
8e93e4be0b Use aesKey in Wallet.toString() 2020-10-11 20:42:53 -03:00
chimp1984
1f0590dc95
Use hash at conversion also for local data to avoid duplicates. 2020-10-11 17:16:17 -05:00
chimp1984
4d2f1b5d43
Set memo to tx after tx creation and not on broadcast success, as broadcast success might not get called (even it is broadcast -> pending btcj bug) 2020-10-10 19:01:51 -05:00
chimp1984
39c8ade5ef
Cleanups: Remove outdated TODOs, fix typos 2020-10-08 22:00:57 -05:00
chimp1984
18a27e9067
Republish trade statistics from seller side if peer capability is know. This is not the case without getting PR #4609 merges as well.
We only do it for 2 weeks after planned release time as then it can be assumed that enough nodes have updated that the normal publishing will distribute the object sufficiently.
2020-10-08 18:49:15 -05:00
chimp1984
17f4ae2b54
Add check that size is > LOOK_BACK_RANGE 2020-10-08 18:49:14 -05:00
chimp1984
213050c3d1
Add filter for excluding null objects 2020-10-08 18:49:14 -05:00
chimp1984
fa374b99fb
Do conversion in a thread to not block UI thread. takes about 4 seconds on my machine.
Add shutdown method to TradeStatisticsConverter and call it via TradeStatisticsManager. Now as we have a reference to TradeStatisticsConverter in we don't need the hack anymore in applyInjector.
Set log level for com.neemre.btcdcli4j.core.client.ClientConfigurator to error as there is an expected warn log because of the outdated version.
2020-10-08 18:49:14 -05:00
chimp1984
f56fe42ae1
Add injector.getInstance(TradeStatisticsConverter.class) to BisqExecutable to enforce inclusion.
Cleanups, renamings
2020-10-08 18:49:14 -05:00
chimp1984
9016cb6c32
Prune mediator and refund agent entries for all entries beside the last 100 we use for the selection algorithm. 2020-10-08 18:49:14 -05:00
chimp1984
0e70a99c42
Adjust tests, remove tests which do not make sense anymore 2020-10-08 18:49:13 -05:00
chimp1984
52be126667
Apply TradeStatistics3 to client classes 2020-10-08 18:49:13 -05:00
chimp1984
c4a4c878b8
Apply TradeStatistics3 to TradeStatisticsManager and some related classes 2020-10-08 18:48:52 -05:00
chimp1984
98207518d6
We "hack" TradeStatistics2StorageService to fulfill our needs:
1. We do not want that initial data request/response use old trades statistics for excluded key hashes.
Thats why we return an empty map in getMap.
2. We do not read resource file as we have removed that.
3. We do not persist as we convert the existing data and re-publish as new data, or at startup we convert the old data to the new one and then delete the file.
2020-10-08 18:48:52 -05:00
chimp1984
6d43c09b33
Delete TradeStatistics (version 1) 2020-10-08 18:48:52 -05:00
chimp1984
b2665bdd2c
let seller publish trade statistics only if peer is updated user. If not the peer will publish only. 2020-10-08 18:48:52 -05:00
chimp1984
a522d0ade9
Refactor: Rename class 2020-10-08 18:48:17 -05:00
chimp1984
b75aa6771f
Refactor: Move class 2020-10-08 18:48:17 -05:00
chimp1984
406bcfb064
Remove PublishTradeStatistics from buyer protocol
We let seller publish trade stats to avoid those issues with duplicated entries as trade date is different.
We could fix that to use the same trade date,  but it seems to be not needed that both traders are publishing and the
risk if a trade stat does not get successfully published does not cause real problems.
There is guarantee anyway that the data is broadcast even if both do it.

In case we still want to do it from both sides we need to use the sellers trade date which is exchanged early in the trade
protocol but yet not further used beside for account age check.
2020-10-08 18:48:17 -05:00
chimp1984
00bed02839
Add TradeStatistics3 and related classes
Add TRADE_STATISTICS_3 Capability
Add TradeStatistics3 to proto resolvers
Make message TradeStatistics2 deprecated
2020-10-08 18:48:17 -05:00
chimp1984
c88bc1c99c
Use custom class MailboxItem instead of Tuple
Rename mailboxMap to mailboxItemsByUid
2020-10-08 18:23:04 -05:00
chimp1984
351db88992
Use a hashset instead of list to avoid duplicates. Filter out my own node from persisted peers.
Remove log in DisputeAgentManager which gets called repeatedly
2020-10-08 18:23:03 -05:00
chimp1984
0686079946
Refactor: Rename method 2020-10-08 18:23:02 -05:00
chimp1984
25bfe2d6ad
Add findPeersCapabilities method
Impl. applyCapabilities

Cleanups
2020-10-08 18:23:02 -05:00
chimp1984
9404e8fa87
Add NO_ADDRESS_PRE_FIX capability.
Add `boolean contains(Capability capability)` method
2020-10-08 18:23:00 -05:00
Oscar Guindzberg
261e0ec714
Check migratedWalletToSegwit is true 2020-10-08 17:26:24 -03:00
Oscar Guindzberg
87da2ae349
Do a backup of the wallet before segwit migration 2020-10-08 16:33:58 -03:00