Commit graph

7474 commits

Author SHA1 Message Date
Alejandro García
7542b98a2d
Merge pull request #7186 from HenrikJannsen/fix-bug-with-using-wrong-bondedReputation-collection
Fix bug with using wrong collection which held only one bond per hash [1]
2024-07-19 00:13:14 +00:00
Steven Barclay
b10ccd2868
Reject witness >v0 addresses incorrectly encoded as Bech32
Reject any custom receiver address which wasn't encoded as Bech32m if
the witness program version is greater than zero. These are currently
accepted by bitcoinj but are now invalid and would fail to parse if our
fork was updated to understand Bech32m, to support sending to P2TR
addresses, which the upstream version appears to. (Thus, the presence of
such malformed receivers would not be an issue at present, but might
cause complications in the future.)
2024-07-18 00:14:18 +02:00
Steven Barclay
99165e7bd9
Check receiver address validity when calculating burn shares
Set the burn cap of a candidate to zero if he has an invalid receiver
address, that is, one that bitcoinj cannot parse. This prevents trade
failure when creating the DPT, by making such BM inactive and
distributing their share to the other BM. (Setting the burn cap to zero
is a little more robust than simply filtering out such candidates, as
'BurningManService' handles subsequent share redistribution better than
'(DelayedPayoutTx|BtcFee)ReceiverService'.)

While this case should normally never occur, due to UI validation of the
custom receiver address, there are at least two ways a BM could
invalidate his own receiver address if so inclined:

 1) He could simply bypass the UI validation;
 2) He could manually create a compensation issuance tx with a change
    address type unrecognised by bitcoinj, such as P2TR, as the address
    field is pulled straight from the RPC JSON by each full DAO node.

Thus, it is necessary to check both change and custom addresses.
2024-07-14 18:45:09 +02:00
Steven Barclay
c52fe0e605
Remove date checks for Bugfix 6699 & Proposal 412 activation
These are both redundant now and will always return true. Also add a
missing past check for Proposal 412 activation to 'RefundManager',
instead of just defaulting to the current date, in case of any very old
disputes involving DPTs created prior to the activation.
2024-07-14 17:29:06 +02:00
Steven Barclay
508ab1f8e2
Make receiver address deterministic if >1 comp. requests in cycle
Handle the exceptional case of a receiver address chosen from a cycle
where the candidate somehow got more than one compensation proposal
accepted. Either the last custom address or first issuance change
address is supposed to be chosen for the receiver address, but in case
of a tie at that vote result height, take the address that comes
first in lexicographic order.
2024-07-13 19:03:37 +02:00
Steven Barclay
aa7aedd0b1
Make getActiveBurningManCandidates return a list instead of a set
This avoids needless hashing & equality comparisons of instances of
'BurningManCandidate', which are quite large mutable objects (so should
probably use reference equality anyway, and not be used as keys).

Also rearrange a couple of (package) private methods.
2024-07-13 16:55:07 +02:00
Steven Barclay
267becf612
Fix minor quadratic time bug in getBurningManCandidatesByName
Avoid streaming over the entire proposals list to find a matching txId,
for every 'Issuance' & 'CompensationProposal' pair used to construct and
add a compensation model to the burn output model of each candidate.
Instead, stream over the proposals list once, doing lookups by txId of
each matching issuance, which uses the TreeMap 'DaoState.issuanceMap',
thereby taking O(n*log(n)) time.
2024-07-13 16:29:48 +02:00
HenrikJannsen
53609ec9c3
Remove mrosseel btc node
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-07-05 16:01:47 +07:00
HenrikJannsen
d39dd2ae25
Set useFullModeDaoMonitor to true in all headless apps
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-07-01 10:32:26 +07:00
HenrikJannsen
262840b6b8
Fix missing params in tests 2024-06-30 19:11:18 +07:00
HenrikJannsen
7b85bc5876
Fix bug with using wrong collection which held only one bond per hash
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-06-30 18:28:32 +07:00
HenrikJannsen
2478da1d26
Log time for hash created every 10 blocks
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-06-29 14:30:01 +07:00
HenrikJannsen
fd17a29361
Add useFullModeDaoMonitor to options
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-06-29 14:22:00 +07:00
HenrikJannsen
5a8c3bc5bf
Call maybeCreateSnapshot if is full DAO node
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-06-29 13:59:48 +07:00
HenrikJannsen
63f364424c
Refactor: Refactor statement and return early
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-06-29 13:32:39 +07:00
HenrikJannsen
143d1e9cc6
Refactor: Extract statement to var and return early
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-06-29 13:28:07 +07:00
HenrikJannsen
318803e4d9
Refactor: Invert readyForPersisting and rename it
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-06-29 13:25:21 +07:00
HenrikJannsen
7c521b018c
Refactor: Early return if not isSnapshotHeight and if blocks are empty. Inline statement
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-06-29 13:11:00 +07:00
HenrikJannsen
634d1fc944
Refactor: Invert isHeightAtLeastGenesisHeight method and rename it
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-06-29 13:03:15 +07:00
HenrikJannsen
1d6b6de42e
Refactor: Early return if !isHeightAtLeastGenesisHeight. Add log in isHeightAtLeastGenesisHeight
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-06-29 13:01:19 +07:00
Alejandro García
dc0e8d8616
Merge pull request #7183 from HenrikJannsen/5_refactor-ExecutableforAppWithP2P
Refactor ExecutableForAppWithP2p [E]
2024-06-28 21:55:30 +00:00
Alejandro García
e256337b1c
Merge pull request #7182 from HenrikJannsen/4_improve-seednode
Improve seednode [D]
2024-06-28 21:55:15 +00:00
Alejandro García
6963caba80
Merge pull request #7181 from HenrikJannsen/3_improve-resync-handling
Improve resync handling [C]
2024-06-28 21:54:54 +00:00
Alejandro García
9920595399
Merge pull request #7180 from HenrikJannsen/2_further-refactorings-and-improvements
Further refactorings and improvements [B]
2024-06-28 21:54:35 +00:00
Alejandro García
0660d1f0b3
Merge pull request #7179 from HenrikJannsen/1_renameing-and-cleanups
Various refactoring (renameing) and cleanups [A]
2024-06-28 21:54:05 +00:00
Alejandro García
24d6c7174c
Merge pull request #7178 from HenrikJannsen/remove-unused-test-resources
Remove unused test resources
2024-06-28 21:53:27 +00:00
Alejandro García
d35b609571
Merge pull request #7176 from HenrikJannsen/update-btc-nodes
Update btc nodes [3]
2024-06-28 21:50:08 +00:00
HenrikJannsen
59f2df9f2f
Move duplicated code to super class
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-06-28 21:41:41 +07:00
HenrikJannsen
ed5547ac97
Move AppSetupWithP2PAndDAO.start call to ExecutableForAppWithP2p
Refactor StatisticsMain

Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-06-28 21:21:17 +07:00
HenrikJannsen
94a9c8ac01
Instead of delaying the shutdown in case of a resync we delay the startup. This has the benefit that nodes cannot connect to the seed node while having inconsistant dao data.
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-06-28 20:54:45 +07:00
HenrikJannsen
aa9d3a3123
Moe seed node specific code from ExecutableForAppWithP2p to SeedNodeMain.
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-06-28 20:39:29 +07:00
HenrikJannsen
a79de681f6
Improve comments
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-06-28 20:12:28 +07:00
HenrikJannsen
1f131b346e
Add heightsOfLastAppliedSnapshots list and resync in case we tried to apply 3 times with same height
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-06-28 19:45:45 +07:00
HenrikJannsen
04ea4ae053
Refactor applySnapshot method: early return, extract method
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-06-28 19:42:00 +07:00
HenrikJannsen
343ef5e6cc
Refactor applySnapshot method: early return
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-06-28 19:35:59 +07:00
HenrikJannsen
cc27f9dd70
Refactor applySnapshot method: early return
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-06-28 19:34:46 +07:00
HenrikJannsen
8f4deb09ba
Refactor applySnapshot method
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-06-28 19:31:22 +07:00
HenrikJannsen
90ca73a82b
Improve resyncDaoStateFromResources method
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-06-28 19:23:02 +07:00
HenrikJannsen
3a2061a538
Call removeAndBackupAllDaoData at daoStateStorageService if checkpoint is invalid.
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-06-28 19:17:51 +07:00
HenrikJannsen
02366eb6da
Refactor removeAndBackupDaoConsensusFiles method
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-06-28 19:14:56 +07:00
HenrikJannsen
8be5f8a962
Remove also TempProposalStore and BurningManAccountingStore_v3 at resync from resources
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-06-28 19:04:39 +07:00
HenrikJannsen
b43257ea9b
Refactor: Remove unneeded param
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-06-28 19:04:24 +07:00
HenrikJannsen
e98c4a3fba
Fix wrong param in test
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-06-28 18:29:00 +07:00
HenrikJannsen
09626a1e85
Move launchApplication to super class
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-06-28 18:23:32 +07:00
HenrikJannsen
4d99e31281
Move getModule() method to ExecutableForAppWithP2p
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-06-28 18:21:56 +07:00
HenrikJannsen
b30924b3fb
Remove storageDir param from removeAndBackupAllDaoData method
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-06-28 18:21:56 +07:00
HenrikJannsen
a96e614595
Remove transient fields from toString
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-06-28 18:21:56 +07:00
HenrikJannsen
d12b6608c7
Improve logs. Minor cleanups
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-06-28 18:19:47 +07:00
HenrikJannsen
b3580c05f7
Refactoring: renaming 2024-06-28 18:19:46 +07:00
HenrikJannsen
f0a2602868
Hide value of banned accounts
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-06-28 14:11:41 +07:00