Commit Graph

16192 Commits

Author SHA1 Message Date
Pasta
d9a4dea613
Remove CValidationInterface::UpdatedTransaction
This removes another callback from block connection logic, making it
easier to reason about the wallet-RPCs-returns-stale-info issue.

UpdatedTransaction was previously used by the GUI to display
coinbase transactions only after they have a block built on top of
them. This worked fine for in most cases, but only worked due to a
corner case if the user received a coinbase payout in a block
immediately prior to restart. In that case, the normal process of
caching the most recent coinbase transaction's hash would not work,
and instead it would only work because of the on-load -checkblocks
calling DisconnectBlock and ConnectBlock on the current tip.

In order to make this more robust, a full mapWallet loop after the
first block which is connected after restart was added.
2019-06-14 01:25:32 -05:00
UdjinM6
bfcfb70d8c
Ignore blocks that do not match the filter in getmerkleblocks rpc (#2973)
Also clarify method description a bit
2019-06-13 12:04:07 +03:00
UdjinM6
4739daddc8
Process/keep messages/connections from PoSe-banned MNs (#2967)
* Process/keep/count votes from PoSe-banned MNs

* Process dstx from PoSe-banned MNs

* Recognize PoSe-banned MNs as MNs
2019-06-13 12:03:20 +03:00
Alexander Block
864856688d Multiple speed optimizations for deterministic MN list handling (#2972)
* Generalize CBLSLazyWrapper so that it can be used of pubkeys and secret keys

* Implement == and != operators for CBLSLazyWrapper

* Implement cached hash for CBLSLazyWrapper

* Use CBLSLazyPublicKey for CDeterministicMNState::pubKeyOperator

* Speed up GetProjectedMNPayees by sorting the MN list by last paid

Instead of updating a temporary list for each projected height and calling
GetMNPayee() on it.

* Cache intermediate lists in GetListForBlock

This avoids re-loading and applying diffs again and again.

* Only update masternode list UI max once every 3 seconds

This avoids updating the UI on every block, which turned out to be very
expensive.

* Fix compilation

* Drop time restrictions for mn list update in ClientModel

They are fully handled by MasternodeList now.
2019-06-13 12:01:26 +03:00
UdjinM6
d8df05b955
Merge pull request #2971 from PastaPastaPasta/backports-0.15-pr13-p2
Backports 0.15 pr13 p2
2019-06-13 11:58:34 +03:00
Wladimir J. van der Laan
131e94ef21
Merge #10201: pass Consensus::Params& to functions in validation.cpp and make them static
24980a3 Make functions in validation.cpp static and pass chainparams (Mario Dian)

Tree-SHA512: 2d1b7b0ffd851317ed522911c1b6592855376c5cbc65d71ec0f8aa507eb6caef21b0709b3692255f1d719662db7447579c10df02f6ef4cd35fcb0bdf2e653af6

fix

Signed-off-by: Pasta <Pasta@dash.org>

add param

Signed-off-by: Pasta <Pasta@dash.org>
2019-06-11 18:01:57 -05:00
Pieter Wuille
9be6722049
Merge #8524: Precompute sighashes
35fe039 Rename to PrecomputedTransactionData (Pieter Wuille)
ab48c5e Unit test for sighash caching (Nicolas DORIER)
d2c5d04 Precompute sighashes (Pieter Wuille)

add missing change from bitcoinconsensus.cpp

Signed-off-by: Pasta <Pasta@dash.org>
2019-06-11 18:01:42 -05:00
PastaPastaPasta
d931cb723e Update copyright date (2019) (#2970)
Signed-off-by: Pasta <Pasta@dash.org>
2019-06-11 14:46:07 +03:00
PastaPastaPasta
56d1d13c43 Backport 8824 (#2968)
* Merge #8824: Refactor TxToJSON() and ScriptPubKeyToJSON()

0ff9320 refactor TxToJSON() and ScriptPubKeyToJSON() (jonnynewbs)

Tree-SHA512: caf7d590829e221522edd5b1ab8ce67b53a2c6986d3bbe8477eab420b1007bf60f885ed0a25ba9587e468c00768360ddc31db37847e862858573eaed5ed8b0d6

* remove witness and vsize

Signed-off-by: Pasta <Pasta@dash.org>

* Add valueSat

To preserve rpc output format

* Move extrapayload and special tx json output to `TxToUniv`

* Add spent index info
2019-06-11 14:42:17 +03:00
UdjinM6
1d7710d06a
Merge pull request #2935 from PastaPastaPasta/backports-0.15-pr13
Backports 0.15 pr13
2019-06-11 14:41:22 +03:00
Wladimir J. van der Laan
07b4c08bd7
Merge #9951: Wallet database handling abstractions/simplifications
911a480 wallet: Add comment describing the various classes in walletdb.h (Wladimir J. van der Laan)
69d2e9b wallet: Make IsDummy private in CWalletDBWrapper (Wladimir J. van der Laan)
3323281 wallet: CWalletDB CDB composition not inheritance (Wladimir J. van der Laan)
be9e1a9 wallet: Reduce references to global bitdb environment (Wladimir J. van der Laan)
071c955 wallet: Get rid of fFileBacked (Wladimir J. van der Laan)
71afe3c wallet: Introduce database handle wrapper (Wladimir J. van der Laan)

Tree-SHA512: e4e72953c61a2f6995d609a32f8ed8e18cab9a92bc9e193d46a1d1f06d9daa5c6da6fce2867d4e3ba4fc0439141901a3d35f246486f0fa8f59587786379dfcbd

add 'batch.'

Signed-off-by: Pasta <Pasta@dash.org>

remove `if (fFileBacked)`

Signed-off-by: Pasta <pasta@dashboost.org>

remove fFileBacked and strWalletFile

Signed-off-by: Pasta <Pasta@dash.org>
2019-06-08 09:37:08 -05:00
MarcoFalke
83d0637f2d
Merge #10097: Move zmq test skipping logic into individual test case.
6803e09 Move zmq test skipping logic into individual test case. (John Newbery)

Tree-SHA512: 9d166b53e9acf386c4dafc860b38e2901b331a7505bba9714a2f4e3bdef68b0316c8b76fddbfb620835ddee549cf32fffb3a96a19b0799ad94f2553f55f19a35

s/bitcoind/dashd/

Signed-off-by: Pasta <pasta@dashboost.org>
2019-06-08 09:37:04 -05:00
MarcoFalke
14cbf547cc
Merge #10023: [tests] remove maxblocksinflight.py (functionality covered by other test)
5f4bcf2 [tests] Remove maxblocksinflight testcase (John Newbery)

Tree-SHA512: 827c8b12f4b52684a973bbfc508c5906e640572e22a96b9420a7aea86ad8d4aa4d6fcc2bb091f747e2fdd18c897e0456baff254bd5e3ceaf721bd3f09a2fd60b

delete maxblocksinflight.py

Signed-off-by: Pasta <pasta@dashboost.org>
2019-06-08 09:36:57 -05:00
Wladimir J. van der Laan
6fb2866868
Merge #10229: Tests: Add test for getdifficulty
821dd5e Tests: Add test for getdifficulty (Jimmy Song)

Tree-SHA512: 3da78c4f88efdaab8374582cda606620beb2f1e9a93119a72b67572702c17c36b68c3abf9d466e8c7fb8ba9e8afa9a172e454c553df10d3054f19b3282d3097b
2019-06-08 09:36:56 -05:00
Wladimir J. van der Laan
7cf74ddbc4
Merge #10239: Make Boost use std::atomic internally
394ccf7 Make Boost use std::atomic internally (Pieter Wuille)

Tree-SHA512: 2be198caea1b255d29ab841ca9f6ee4f32ec875cb9657553ed6ea6d21a4cd1390f1e3b22b23a3a4a24d9efc0bda100c7fbfd4dc480e0cc9831b565e989a2b636
2019-06-08 09:36:56 -05:00
Wladimir J. van der Laan
3d46bd3e79
Merge #10181: Include cleanup
1c897fc Missing includes (Jorge Timón)
a1fd450 Trivial: Remove unneeded includes from .h: (Jorge Timón)

Tree-SHA512: ada3e62cc2435e58172a88b380be371b717a05725956c15e5493b6e19fe2903e5e6e43fd22dc24699333a0e8a0c7b42eb1ae61b41cb4ba82495be18e2d4ef3c6

move "#include "chain.h"" down a line

Signed-off-by: Pasta <pasta@dashboost.org>
2019-06-08 09:36:43 -05:00
UdjinM6
a83b63186b
Fix UI masternode list (#2966)
NotifyMasternodeListChanged is called before the tip is updated which means we can't rely on GetListAtChainTip() and have to pass the list into CClientUIInterface
2019-06-08 14:17:56 +03:00
UdjinM6
0cbe5666f7
Merge pull request #2963 from UdjinM6/mergemaster1401develop
Merge `master` 0.14.0.1 into `develop` and update `man` help text
2019-06-08 14:17:22 +03:00
UdjinM6
85c9ea400b
Throw a bit more descriptive error message on UpgradeDB failure on pruned nodes (#2962) 2019-06-08 14:16:41 +03:00
UdjinM6
2c5e2bc6c8
Inject custom specialization of std::hash for SporkId enum into std (#2960)
This should fix compilation on gcc5
2019-06-08 14:16:20 +03:00
UdjinM6
ebded7d833 Update help text via gen-manpages.sh 2019-06-04 01:35:58 +03:00
UdjinM6
34fb662c8d Merge branch 'master' into mergemaster1401develop 2019-06-04 01:24:04 +03:00
Alexander Block
05adda99fe Update release notes with latest commits (#2958) 2019-05-30 13:15:37 +03:00
thephez
809aae73a1 RPC docs helper updates (#2949)
* RPC - Update gobject description to match other multi-command RPCs

* RPC - Update masternodelist to avoid returning dupe RPC name from help

* RPC - Make spacing consistent in gobject/masternode help
2019-05-30 11:01:16 +03:00
Alexander Block
a2baa93ec5 Only require valid collaterals for votes and triggers (#2947) (#2957)
* Only require valid collaterals for votes and triggers

* Bump proto version

* Only announce votes from banned MNs to >= 70215 proto version nodes
2019-05-30 11:00:49 +03:00
UdjinM6
09d66c7764
Fix compiler warning (#2956)
```
./serialize.h:762:49: warning: static_assert with no message is a C++17 extension [-Wc++17-extensions]
    static_assert(is_serializable_enum<T>::value);
                                                ^
                                                , ""
```
2019-05-30 11:00:31 +03:00
rikublock
26bd0d278b Fix bls and bls_dkg bench (#2955)
Properly start the blsWorker before running any BLS related benchmarks.
2019-05-30 11:00:07 +03:00
UdjinM6
d28d318aad
Remove logic for handling objects and votes orphaned by not-yet-known MNs (#2954)
This should no longer happen now that we use deterministic masternode list.
2019-05-29 21:19:53 +03:00
thephez
e02c562aa5 [RPC] Remove check for deprecated masternode start-many command (#2950) 2019-05-29 21:19:17 +03:00
Alexander Block
fc73b4d6e6 Refactor sporks to get rid of repeated if/else blocks (#2946)
* Use enum to define spork IDs

* Introduce CSporkDef and remove if/else blocks in GetSporkIDByName/GetSporkNameByID

* Deduplicate code in IsSporkActive

* Fix spork RPC to use new spork defs

This also removes the need for SPORK_START/SPORK_END

* Move sporkManager global variable below sporkDefs

This ensures correct order of initialization.
2019-05-29 21:18:31 +03:00
PastaPastaPasta
a149ca7471 Remove references to instantx and darksend in sendcoinsdialog.cpp (#2936)
* bUseInstantX -> bUseInstantSend & bUseDarkSend -> bUsePrivateSend and be backwords compatible

Signed-off-by: Pasta <Pasta@dash.org>

* remove old settings

Signed-off-by: Pasta <Pasta@dash.org>
2019-05-29 21:18:15 +03:00
Alexander Block
b293e6ddee [v0.14.0.x] Fix off-by-one error in InstantSend mining info removal when disconnecting blocks (#2951)
* Refactor checks for disconnected blocks and conflicts in CInstantSendManager::SyncTransaction

* Fix off-by-one when calling RemoveInstantSendLockMined
2019-05-29 18:34:26 +03:00
Alexander Block
276b6e3a82 [v0.14.0.x] bump version to 0.14.0.1 and prepare release notes (#2952)
* Bump version to 0.14.0.1

* Run gen-manpages.sh to update versions

* Prepare 0.14.0.1 release notes

Changelog is still missing and will be added later
2019-05-29 18:34:13 +03:00
Alexander Block
b74cd3e101
Only require valid collaterals for votes and triggers (#2947)
* Only require valid collaterals for votes and triggers

* Bump proto version

* Only announce votes from banned MNs to >= 70215 proto version nodes
2019-05-29 10:56:51 +02:00
Alexander Block
7c3fd254f4
Merge pull request #2945 from codablock/pr_serialize_llmqtype
Implement support for explicit enum serialization and use it for Consensus::LLMQType
2019-05-29 10:54:29 +02:00
Alexander Block
40fd1b1685 Make Consensus::LLMQType serializable and use it in serialized classes
Instead of using uint8_t and explicitely casting between the enum
and uint8_t.
2019-05-29 08:06:11 +02:00
Alexander Block
186f7d2861 Implement support for explicit enum serialization
This allows to serialize enum values, but only if a specialized class of
is_serializable_enum is found which is derived from std::true_type.
2019-05-29 08:06:11 +02:00
UdjinM6
66b336c937
Use Travis stages instead of custom timeouts (#2948) 2019-05-29 08:48:19 +03:00
UdjinM6
5780fa6707
Remove duplicate code from src/Makefile.am (#2944)
Backported 10228 twice - in #1879 and #2911
2019-05-28 20:32:51 +03:00
UdjinM6
d3bd9b633e
Merge pull request #2934 from PastaPastaPasta/backports-0.15-pr12
Backports 0.15 pr12
2019-05-28 20:32:03 +03:00
Alexander Block
53cce815d5
Merge pull request #2943 from codablock/pr_dsnotification
Refactor validation signals for ChainLocks, InstantSend and PrivateSend to get rid of SyncTransaction
2019-05-28 18:26:02 +02:00
Pasta
d36c408a68
bump version in fees.cpp
Signed-off-by: Pasta <Pasta@dash.org>
2019-05-28 08:42:15 -05:00
Pasta
81afb1058b
remove nodehandling.py
Signed-off-by: Pasta <Pasta@dash.org>
2019-05-28 08:36:28 -05:00
UdjinM6
788973a8a6
Fix disconnect_ban.py
We run tests in mocked time, need to bump it here for "remove from ban list after 1 sec" logic to triger.
2019-05-28 08:33:47 -05:00
Alexander Block
e6a0b2162b
Add missing include for CKeyID 2019-05-28 08:33:11 -05:00
UdjinM6
60a8a93578 Drop CDSNotificationInterface::SyncTransaction() 2019-05-28 11:59:55 +02:00
Pasta
95f4cf4419
add #include "policy/fees.h" to validation.cpp
Signed-off-by: Pasta <Pasta@dash.org>
2019-05-27 17:00:26 -05:00
Wladimir J. van der Laan
f8c5a14f3d
Merge #9942: Refactor CBlockPolicyEstimator
68af651 MOVEONLY: move TxConfirmStats to cpp (Alex Morcos)
2332f19 Initialize TxConfirmStats in constructor (Alex Morcos)
5ba81e5 Read and Write fee estimate file directly from CBlockPolicyEstimator (Alex Morcos)
14e10aa Call estimate(Smart)Fee directly from CBlockPolicyEstimator (Alex Morcos)
dbb9e36 Give CBlockPolicyEstimator it's own lock (Alex Morcos)
f6187d6 Make processBlockTx private. (Alex Morcos)
ae7327b Make feeEstimator its own global instance of CBlockPolicyEstimator (Alex Morcos)

Tree-SHA512: dbf3bd2b30822e609a35f3da519b62d23f8a50e564750695ddebd08553b4c01874ae3e07d792c6cc78cc377d2db33b951ffedc46ac7edaf5793f9ebb931713af

finish #9942 by removing removed functions

Signed-off-by: Pasta <Pasta@dash.org>
2019-05-27 16:58:28 -05:00
Alexander Block
8675a5064d Add TODO comment about need to remove compatibility code 2019-05-27 16:40:05 +02:00
Alexander Block
617c4a4cc0 Use mapDSTX.find() instead of count() and [] 2019-05-27 16:40:05 +02:00