Commit Graph

259 Commits

Author SHA1 Message Date
Nathan Marley
2997d6d268 add compressed option to masternode genkey (#2232)
* add compressed option to `masternode genkey`

* use ParseBoolV method

* adjust help message for masternode genkey
2018-08-21 17:08:11 +03:00
PastaPastaPasta
98ed90cbb4 adds rpc calls for setprivatesendrounds and setprivatesendamount (#2230)
* adds rpc calls for `setprivatesendrounds` and `setprivatesendamount`

* tabs -> spaces

* @gladcow change request

* Whops tab -> spaces

* @Udjin changes, not the CAmount -> int

* int stuff

* Throw error when rounds / amount isn't within range
2018-08-21 17:07:54 +03:00
Alexander Block
50eb98d901 Prepare for DIP3 operator reward payments and switch to array in getblocktemplate (#2216)
* Prepare for DIP3 operator reward payments and switch to array in getblocktemplate

This commit allows to later split MN rewards into multiple recipients, e.g.
the owner reward and operator reward. It also updates the getblocktemplate
output to return an array of MN payments instead of a single entry.

This should allow MN miners and pool operators to prepare themself for the
upcoming changes in regard to operator rewards.

* txoutsMasternode -> voutMasternode

* More renaming

* Consider all masternode payments when looking for a known masternode
2018-08-14 12:58:38 +03:00
Alexander Block
d946f21bd9 Masternode related refactorings in preparation of DIP3 (#2212)
* Split CActiveMasternode into CActiveMasternodeInfo and CLegacyActiveMasternodeManager

* Use CKeyID instead of CPubKey whenever possible in masternode code

* Rename activeMasternode to activeMasternodeInfo and make it a struct

* Rename pubKeyIDXXX to keyIDXXX

* Bump SERIALIZATION_VERSION_STRING

* Fix build error after rebase

* Fix compilation warning/error with clang
2018-08-11 22:55:56 +03:00
Alexander Block
2d4e18537c Some useful commits from the DIP3 PR in regard to integration tests (#2218)
* Allow changing budget parameters for regtest

* Lift some limitations for local addresses for masternodes in regtest

Needed to make masternodes works in regtest mode

* Add "masternode check" RPC to force invocation of CheckAndRemove

Useful in integration tests where MN lists must be predictable
2018-08-11 01:36:17 +03:00
Alexander Block
a959f60aa7 De-duplicate "gobject vote-alias" and "gobject "vote-many" code (#2217)
Use same code for both vote modes
2018-08-11 01:35:52 +03:00
Alexander Block
106bab1ae1 Add new ParseXXX methods to easily parse UniValue values (#2211) 2018-08-11 01:33:56 +03:00
Alexander Block
566fa5ec3b Add support for "help command subCommand" (#2210) 2018-08-11 01:30:55 +03:00
UdjinM6
4cd969e3d2
Add previousbits field to getblocktemplate output (#2201)
* Add `previousbits` field to `getblocktemplate` output

* add comment to nPrevBits
2018-08-11 01:28:30 +03:00
UdjinM6
96435288fa
Move block template specific stuff from CBlock to CBlockTemplate (#2195) 2018-07-28 16:51:29 +03:00
UdjinM6
65b9045269
Add helpers GetSentinelString() and GetDaemonString() to CMasternodePing (#2192) 2018-07-25 18:09:48 +03:00
Nathan Marley
e23339d6f0 use nullptr in Dash-specific code (#2166)
This is recommended in modern C++ code as nullptr is more type-safe and can't
be converted to an integer, unlike NULL.
2018-07-12 12:08:43 +03:00
UdjinM6
5669fc880e
Fix typos and rpc help text (#2120)
* Fix typo in PS info dialog

Also adjust translations accordingly.

* Fix typo in PS low key warning

* Fix typo in sendrawtransaction help

* Fix sendtoaddress/sendmany help text

* Fix listreceivedby* help text

* Fix typo in listunspent help

* Fix spelling "recieves"->"receives"

Shame on me

* transactions->transaction

* receives->"incoming payments grouped"
2018-06-18 19:07:09 +03:00
UdjinM6
8d8fdb4339
sendrawtransaction no longer bypasses transaction policy limits by default (#2110)
* [rpc] sendrawtransaction no longer bypasses minRelayTxFee

The prioritisetransaction API can always be used if a transaction needs to be submitted that bypasses minRelayTxFee.

* Allow to bypass transaction policy limits in sendrawtransaction

Add new rpc param to sendrawtransaction to have an ability to tweak its behaviour.
Default is `false` i.e. "do not bypass".

* fix
2018-06-12 14:33:23 +03:00
UdjinM6
fcac40ab4e
RPC: fix wallet lock check in privatesend start (#2102) 2018-06-11 13:13:03 +03:00
Nathan Marley
41680f4d94 small cleanup in a few places (#2058)
* move nStart closer to used and initialize it

* Quells warning displayed with `-Wmaybe-uninitialized` flag

* remove unused mnEntries vectors

* add devnet magic bytes to mininode.py

* remove unused governance-misc.h file

* remove old TODO comments

* replace map count/insert w/emplace in instantx.cpp

This feels like an optimization, something about:

```
if map.count(key)
     return false
else
     insert(pair)
     return true
```

... just feels icky. Plus, `vote.GetMasternodeOutpoint()` is only called
once. The previous version might be slightly more readable, however.

* Revert "replace map count/insert w/emplace in instantx.cpp"

This reverts commit d7f876e86336170f2d6d3f20b6af26bcd0dc2b18.
2018-05-13 23:57:12 +03:00
UdjinM6
6ab1fd7636
RPC: Add description for InstantSend-related fields of mempool entry (#2050) 2018-04-30 01:09:47 +03:00
Nathan Marley
25eb6d7b33 clean up governance vote code (#2042)
* clean up governance vote code

* remove old comment on votemanager design

* use map::find for signal string lookup

* make mapStrVoteSignals const and static

* this should be read-only for lookups (const)
* this should be allocated only once (static)
2018-04-23 13:23:58 +03:00
UdjinM6
b07503f013
Some cleanup (mostly trivial) (#2038)
* Drop CInstantSend::IsEnoughOrphanVotesForTxAndOutPoint

* small cleanup in rpc tests

* move some pieces from .h to .cpp

* fix few log outputs

* fix some comments

* some trivial fixes + readability
2018-04-20 13:53:23 +03:00
UdjinM6
138441eb82
Add forkpoint to getchaintips (#2039) 2018-04-18 14:50:52 +03:00
gladcow
bc45a2f87a Backport compact blocks functionality from bitcoin (#1966)
* Merge #8068: Compact Blocks

48efec8 Fix some minor compact block issues that came up in review (Matt Corallo)
ccd06b9 Elaborate bucket size math (Pieter Wuille)
0d4cb48 Use vTxHashes to optimize InitData significantly (Matt Corallo)
8119026 Provide a flat list of txid/terators to txn in CTxMemPool (Matt Corallo)
678ee97 Add BIP 152 to implemented BIPs list (Matt Corallo)
56ba516 Add reconstruction debug logging (Matt Corallo)
2f34a2e Get our "best three" peers to announce blocks using cmpctblocks (Matt Corallo)
927f8ee Add ability to fetch CNode by NodeId (Matt Corallo)
d25cd3e Add receiver-side protocol implementation for CMPCTBLOCK stuff (Matt Corallo)
9c837d5 Add sender-side protocol implementation for CMPCTBLOCK stuff (Matt Corallo)
00c4078 Add protocol messages for short-ids blocks (Matt Corallo)
e3b2222 Add some blockencodings tests (Matt Corallo)
f4f8f14 Add TestMemPoolEntryHelper::FromTx version for CTransaction (Matt Corallo)
85ad31e Add partial-block block encodings API (Matt Corallo)
5249dac Add COMPACTSIZE wrapper similar to VARINT for serialization (Matt Corallo)
cbda71c Move context-required checks from CheckBlockHeader to Contextual... (Matt Corallo)
7c29ec9 If AcceptBlockHeader returns true, pindex will be set. (Matt Corallo)
96806c3 Stop trimming when mapTx is empty (Pieter Wuille)

* Merge #8408: Prevent fingerprinting, disk-DoS with compact blocks

1d06e49 Ignore CMPCTBLOCK messages for pruned blocks (Suhas Daftuar)
1de2a46 Ignore GETBLOCKTXN requests for unknown blocks (Suhas Daftuar)

* Merge #8418: Add tests for compact blocks

45c7ddd Add p2p test for BIP 152 (compact blocks) (Suhas Daftuar)
9a22a6c Add support for compactblocks to mininode (Suhas Daftuar)
a8689fd Tests: refactor compact size serialization in mininode (Suhas Daftuar)
9c8593d Implement SipHash in Python (Pieter Wuille)
56c87e9 Allow changing BIP9 parameters on regtest (Suhas Daftuar)

* Merge #8505: Trivial: Fix typos in various files

1aacfc2 various typos (leijurv)

* Merge #8449: [Trivial] Do not shadow local variable, cleanup

a159f25 Remove redundand (and shadowing) declaration (Pavel Janík)
cce3024 Do not shadow local variable, cleanup (Pavel Janík)

* Merge #8739: [qa] Fix broken sendcmpct test in p2p-compactblocks.py

157254a Fix broken sendcmpct test in p2p-compactblocks.py (Suhas Daftuar)

* Merge #8854: [qa] Fix race condition in p2p-compactblocks test

b5fd666 [qa] Fix race condition in p2p-compactblocks test (Suhas Daftuar)

* Merge #8393: Support for compact blocks together with segwit

27acfc1 [qa] Update p2p-compactblocks.py for compactblocks v2 (Suhas Daftuar)
422fac6 [qa] Add support for compactblocks v2 to mininode (Suhas Daftuar)
f5b9b8f [qa] Fix bug in mininode witness deserialization (Suhas Daftuar)
6aa28ab Use cmpctblock type 2 for segwit-enabled transfer (Pieter Wuille)
be7555f Fix overly-prescriptive p2p-segwit test for new fetch logic (Matt Corallo)
06128da Make GetFetchFlags always request witness objects from witness peers (Matt Corallo)

* Merge #8882: [qa] Fix race conditions in p2p-compactblocks.py and sendheaders.py

b55d941 [qa] Fix race condition in sendheaders.py (Suhas Daftuar)
6976db2 [qa] Another attempt to fix race condition in p2p-compactblocks.py (Suhas Daftuar)

* Merge #8904: [qa] Fix compact block shortids for a test case

4cdece4 [qa] Fix compact block shortids for a test case (Dagur Valberg Johannsson)

* Merge #8637: Compact Block Tweaks (rebase of #8235)

3ac6de0 Align constant names for maximum compact block / blocktxn depth (Pieter Wuille)
b2e93a3 Add cmpctblock to debug help list (instagibbs)
fe998e9 More agressively filter compact block requests (Matt Corallo)
02a337d Dont remove a "preferred" cmpctblock peer if they provide a block (Matt Corallo)

* Merge #8975: Chainparams: Trivial: In AppInit2(), s/Params()/chainparams/

6f2f639 Chainparams: Trivial: In AppInit2(), s/Params()/chainparams/ (Jorge Timón)

* Merge #8968: Don't hold cs_main when calling ProcessNewBlock from a cmpctblock

72ca7d9 Don't hold cs_main when calling ProcessNewBlock from a cmpctblock (Matt Corallo)

* Merge #8995: Add missing cs_main lock to ::GETBLOCKTXN processing

dfe7906 Add missing cs_main lock to ::GETBLOCKTXN processing (Matt Corallo)

* Merge #8515: A few mempool removal optimizations

0334430 Add some missing includes (Pieter Wuille)
4100499 Return shared_ptr<CTransaction> from mempool removes (Pieter Wuille)
51f2783 Make removed and conflicted arguments optional to remove (Pieter Wuille)
f48211b Bypass removeRecursive in removeForReorg (Pieter Wuille)

* Merge #9026: Fix handling of invalid compact blocks

d4833ff Bump the protocol version to distinguish new banning behavior. (Suhas Daftuar)
88c3549 Fix compact block handling to not ban if block is invalid (Suhas Daftuar)
c93beac [qa] Test that invalid compactblocks don't result in ban (Suhas Daftuar)

* Merge #9039: Various serialization simplifcations and optimizations

d59a518 Use fixed preallocation instead of costly GetSerializeSize (Pieter Wuille)
25a211a Add optimized CSizeComputer serializers (Pieter Wuille)
a2929a2 Make CSerAction's ForRead() constexpr (Pieter Wuille)
a603925 Avoid -Wshadow errors (Pieter Wuille)
5284721 Get rid of nType and nVersion (Pieter Wuille)
657e05a Make GetSerializeSize a wrapper on top of CSizeComputer (Pieter Wuille)
fad9b66 Make nType and nVersion private and sometimes const (Pieter Wuille)
c2c5d42 Make streams' read and write return void (Pieter Wuille)
50e8a9c Remove unused ReadVersion and WriteVersion (Pieter Wuille)

* Merge #9058: Fixes for p2p-compactblocks.py test timeouts on travis (#8842)

dac53b5 Modify getblocktxn handler not to drop requests for old blocks (Russell Yanofsky)
55bfddc [qa] Fix stale data bug in test_compactblocks_not_at_tip (Russell Yanofsky)
47e9659 [qa] Fix bug in compactblocks v2 merge (Russell Yanofsky)

* Merge #9160: [trivial] Fix hungarian variable name

ec34648 [trivial] Fix hungarian variable name (Russell Yanofsky)

* Merge #9159: [qa] Wait for specific block announcement in p2p-compactblocks

dfa44d1 [qa] Wait for specific block announcement in p2p-compactblocks (Russell Yanofsky)

* Merge #9125: Make CBlock a vector of shared_ptr of CTransactions

b4e4ba4 Introduce convenience type CTransactionRef (Pieter Wuille)
1662b43 Make CBlock::vtx a vector of shared_ptr<CTransaction> (Pieter Wuille)
da60506 Add deserializing constructors to CTransaction and CMutableTransaction (Pieter Wuille)
0e85204 Add serialization for unique_ptr and shared_ptr (Pieter Wuille)

* Merge #8872: Remove block-request logic from INV message processing

037159c Remove block-request logic from INV message processing (Matt Corallo)
3451203 [qa] Respond to getheaders and do not assume a getdata on inv (Matt Corallo)
d768f15 [qa] Make comptool push blocks instead of relying on inv-fetch (mrbandrews)

* Merge #9199: Always drop the least preferred HB peer when adding a new one.

ca8549d Always drop the least preferred HB peer when adding a new one. (Gregory Maxwell)

* Merge #9233: Fix some typos

15fa95d Fix some typos (fsb4000)

* Merge #9260: Mrs Peacock in The Library with The Candlestick (killed main.{h,cpp})

76faa3c Rename the remaining main.{h,cpp} to validation.{h,cpp} (Matt Corallo)
e736772 Move network-msg-processing code out of main to its own file (Matt Corallo)
87c35f5 Remove orphan state wipe from UnloadBlockIndex. (Matt Corallo)

* Merge #9014: Fix block-connection performance regression

dd0df81 Document ConnectBlock connectTrace postconditions (Matt Corallo)
2d6e561 Switch pblock in ProcessNewBlock to a shared_ptr (Matt Corallo)
2736c44 Make the optional pblock in ActivateBestChain a shared_ptr (Matt Corallo)
ae4db44 Create a shared_ptr for the block we're connecting in ActivateBCS (Matt Corallo)
fd9d890 Keep blocks as shared_ptrs, instead of copying txn in ConnectTip (Matt Corallo)
6fdd43b Add struct to track block-connect-time-generated info for callbacks (Matt Corallo)

* Merge #9240: Remove txConflicted

a874ab5 remove internal tracking of mempool conflicts for reporting to wallet (Alex Morcos)
bf663f8 remove external usage of mempool conflict tracking (Alex Morcos)

* Merge #9344: Do not run functions with necessary side-effects in assert()

da9cdd2 Do not run functions with necessary side-effects in assert() (Gregory Maxwell)

* Merge #9273: Remove unused CDiskBlockPos* argument from ProcessNewBlock

a13fa4c Remove unused CDiskBlockPos* argument from ProcessNewBlock (Matt Corallo)

* Merge #9352: Attempt reconstruction from all compact block announcements

813ede9 [qa] Update compactblocks test for multi-peer reconstruction (Suhas Daftuar)
7017298 Allow compactblock reconstruction when block is in flight (Suhas Daftuar)

* Merge #9252: Release cs_main before calling ProcessNewBlock, or processing headers (cmpctblock handling)

bd02bdd Release cs_main before processing cmpctblock as header (Suhas Daftuar)
680b0c0 Release cs_main before calling ProcessNewBlock (cmpctblock handling) (Suhas Daftuar)

* Merge #9283: A few more CTransactionRef optimizations

91335ba Remove unused MakeTransactionRef overloads (Pieter Wuille)
6713f0f Make FillBlock consume txn_available to avoid shared_ptr copies (Pieter Wuille)
62607d7 Convert COrphanTx to keep a CTransactionRef (Pieter Wuille)
c44e4c4 Make AcceptToMemoryPool take CTransactionRef (Pieter Wuille)

* Merge #9375: Relay compact block messages prior to full block connection

02ee4eb Make most_recent_compact_block a pointer to a const (Matt Corallo)
73666ad Add comment to describe callers to ActivateBestChain (Matt Corallo)
962f7f0 Call ActivateBestChain without cs_main/with most_recent_block (Matt Corallo)
0df777d Use a temp pindex to avoid a const_cast in ProcessNewBlockHeaders (Matt Corallo)
c1ae4fc Avoid holding cs_most_recent_block while calling ReadBlockFromDisk (Matt Corallo)
9eb67f5 Ensure we meet the BIP 152 old-relay-types response requirements (Matt Corallo)
5749a85 Cache most-recently-connected compact block (Matt Corallo)
9eaec08 Cache most-recently-announced block's shared_ptr (Matt Corallo)
c802092 Relay compact block messages prior to full block connection (Matt Corallo)
6987219 Add a CValidationInterface::NewPoWValidBlock callback (Matt Corallo)
180586f Call AcceptBlock with the block's shared_ptr instead of CBlock& (Matt Corallo)
8baaba6 [qa] Avoid race in preciousblock test. (Matt Corallo)
9a0b2f4 [qa] Make compact blocks test construction using fetch methods (Matt Corallo)
8017547 Make CBlockIndex*es in net_processing const (Matt Corallo)

* Merge #9486: Make peer=%d log prints consistent

e6111b2 Make peer id logging consistent ("peer=%d" instead of "peer %d") (Matt Corallo)

* Merge #9400: Set peers as HB peers upon full block validation

d4781ac Set peers as HB peers upon full block validation (Gregory Sanders)

* Merge #9499: Use recent-rejects, orphans, and recently-replaced txn for compact-block-reconstruction

c594580 Add braces around AddToCompactExtraTransactions (Matt Corallo)
1ccfe9b Clarify comment about mempool/extra conflicts (Matt Corallo)
fac4c78 Make PartiallyDownloadedBlock::InitData's second param const (Matt Corallo)
b55b416 Add extra_count lower bound to compact reconstruction debug print (Matt Corallo)
863edb4 Consider all (<100k memusage) txn for compact-block-extra-txn cache (Matt Corallo)
7f8c8ca Consider all orphan txn for compact-block-extra-txn cache (Matt Corallo)
93380c5 Use replaced transactions in compact block reconstruction (Matt Corallo)
1531652 Keep shared_ptrs to recently-replaced txn for compact blocks (Matt Corallo)
edded80 Make ATMP optionally return the CTransactionRefs it replaced (Matt Corallo)
c735540 Move ORPHAN constants from validation.h to net_processing.h (Matt Corallo)

* Merge #9587: Do not shadow local variable named `tx`.

44f2baa Do not shadow local variable named `tx`. (Pavel Janík)

* Merge #9510: [trivial] Fix typos in comments

cc16d99 [trivial] Fix typos in comments (practicalswift)

* Merge #9604: [Trivial] add comment about setting peer as HB peer.

dd5b011 [Trivial] add comment about setting peer as HB peer. (John Newbery)

* Fix using of AcceptToMemoryPool in PrivateSend code

* add `override`

* fSupportsDesiredCmpctVersion

* bring back tx ressurection in DisconnectTip

* Fix delayed headers

* Remove unused CConnman::FindNode overload

* Fix typos and comments

* Fix minor code differences

* Don't use rejection cache for corrupted transactions

Partly based on https://github.com/bitcoin/bitcoin/pull/8525

* Backport missed cs_main locking changes

Missed from 58a215ce8c

* Backport missed comments and mapBlockSource.emplace call

Missed from two commits:
88c35491ab
7c98ce584e

* Add CheckPeerHeaders() helper and check in (nCount == 0) too
2018-04-11 14:06:01 +03:00
UdjinM6
a3bcc4307d
Refactor governance (#1993)
* Refactor CGovernanceObject::IsValidLocally()

* Refactor CGovernanceObject::ProcessVote()

* Refactor CGovernanceObject::CountMatchingVotes()

* Refactor CGovernanceObjectVoteFile::HasVote()

* Refactor CGovernance* (more consts and refs)

* Refactor CGovernanceManager::HaveVoteForHash()

* Refactor CGovernanceManager::SerializeVoteForHash()

* Refactor CGovernanceManager::SyncSingleObjAndItsVotes()
2018-03-20 14:04:59 +03:00
UdjinM6
9b17f2b9c8
Convert gobject count output to json (by default) (#1994)
Old mode is available via `gobject count all`
2018-03-15 22:09:06 +03:00
Alexander Block
2a7e6861d2 Include "clientversion.h" in rpc/masternode.cpp (#1979)
Otherwise it fails to compile when the wallet is disabled at compile time
2018-03-09 15:41:51 +03:00
UdjinM6
d115efacb8
[RPC] Few additions to masternodelist (#1971)
* RPC: Add `masternodelist daemon`

* RPC: Add `masternodelist json` and make it default

* RPC: Add `masternodelist sentinel`
2018-03-08 15:22:13 +03:00
UdjinM6
9451782a04
RPC: Add listaddressbalances (#1972) 2018-03-08 15:18:06 +03:00
UdjinM6
bab543f3e6
Various RPC fixes (#1958)
* RPC: fix listunspent include_unsafe param usage

* RPC: Add two fields to indicate if some mempool entry is an InstantSend tx and if it was locked or not

* RPC: Add privatesend_balance to getwalletinfo rpc

* RPC: "BTC" -> CURRENCY_UNIT

* RPC: more EnsureWalletIsAvailable in Dash-specific code

* RPC: EnsureWalletIsUnlocked in `gobject prepare`

Also fixes missing cs_wallet lock

* RPC: disable `privatesend` rpc on masternodes completely

* RPC: refactor `spork` rpc

* RPC: Show correct port in HelpExampleRpc

* RPC: few trivial fixes

* fix
2018-03-01 16:18:46 +03:00
UdjinM6
89380b4c92
Drop watchdogs, replace them with sentinel pings (#1949)
* Drop watchdogs, replace them with sentinel pings

* Address review comments

* revert `()`
2018-02-25 08:33:27 +03:00
UdjinM6
0153c4c5e8
Merge pull request #1948 from UdjinM6/removeusingnamespacestd
Remove `using namespace std`
2018-02-22 10:41:52 +03:00
thephez
151152b98b rpc - Update getaddednodeinfo help to remove dummy argument (#1947) 2018-02-22 10:41:08 +03:00
UdjinM6
a4b313fd3d Fix std in DBG macro 2018-02-21 23:24:28 +03:00
UdjinM6
6a6e4cdc1b Remove remaining using namespace std 2018-02-21 22:32:13 +03:00
Wladimir J. van der Laan
08b5c69eff Merge #9643: [refactor] Remove using namespace <xxx> from wallet/ & util*
a57845c Refactor: Remove using namespace <xxx> from util* (Karl-Johan Alm)
8a52281 Refactor: Remove using namespace <xxx> from wallet/ (Karl-Johan Alm)

Tree-SHA512: cd06b569fee0ce25db753ade5ee694b582733a8883bfd62a27613020266d2a902af079ef23b58a5412f7af4afd7681e689af3c7780e5ea00c77b16d144d72db5
2018-02-21 22:32:13 +03:00
Wladimir J. van der Laan
ccca7af09e Merge #9476: [refactor] Remove using namespace <xxx> from rpc/ & script/ sources
8cbfc4e Refactor: Remove using namespace <xxx> from script/ (Karl-Johan Alm)
f3c264e Refactor: Remove using namespace <xxx> from rpc/ (Karl-Johan Alm)

Tree-SHA512: 407e80eeda0b8e1df22c5fcba33572e117542fde83c67357f6c2d98fa60bcc7b21bb88ad9a1ee59062fbec17fadaa4836b69e8e6d18188b4027b794357634467
2018-02-21 22:32:13 +03:00
Alexander Block
0abd1894ee Call CheckMnbAndUpdateMasternodeList when starting MN (#1945)
* Call CheckMnbAndUpdateMasternodeList when when starting MN

Otherwise the invoking node won't have nCollateralMinConfBlockHash
updated correctly, resulting in the MN showing up in the wrong position
when masternode ranks are calculated.

* Remove UpdateMasternodeList and remaining uses of it
2018-02-21 19:32:51 +03:00
UdjinM6
aadec37354
Change format of gobject, store/transmit vchData instead of hex-encoded string of a string (#1934)
* Change format of gobject, store/transmit vchData instead of hex-encoded string

* fix (limited string for old format)
2018-02-15 17:43:17 +03:00
UdjinM6
c656133502
Switch masternode id in Dash data structures from CTxIn to COutPoint (#1933)
* Switch masternode id in Dash data structures from CTxIn to COutPoint (including p2p level)

* outpoint -> masternodeOutpoint in DSEG
2018-02-15 10:29:44 +03:00
gladcow
2ea6f7d82e Use override keyword for overriden class member functions (#1644)
* Use `override` keyword for all overriden functions

* more override
2018-02-15 10:29:15 +03:00
UdjinM6
2e04864b26
Replace boost::lexical_cast<int> with atoi (#1926)
Also cleanup existing atoi-s in Dash code
2018-02-12 15:48:35 +03:00
UdjinM6
0670695fea
Move prev/next sb height logic from rpc to CSuperblock::GetNearestSuperblocksHeights (#1919) 2018-02-12 15:46:55 +03:00
UdjinM6
79e6d272ed
Merge pull request #1908 from codablock/pr_backport_bitcoin_0.14-12
Collection of PRs and single commits missed in previous backports
2018-02-08 08:45:02 +03:00
Nathan Marley
3c44dde2e7 Return JSON object for masternode count (by default but still support old modes for now) (#1900)
Get information about number of masternodes (DEPRECATED options: 'total', 'ps', 'enabled', 'qualify', 'all')
2018-02-08 08:43:19 +03:00
Russell Yanofsky
55ef4d0a9b [wallet] Add include_unsafe argument to listunspent RPC 2018-02-07 13:11:09 +01:00
Wladimir J. van der Laan
611b31ecea Merge #9650: Better handle invalid parameters to signrawtransaction
6dbfe08 [qa] test signrawtransaction merge with missing inputs (Matt Corallo)
ec4f7e4 [qa] Add second input to signrawtransaction test case (Matt Corallo)
691710a [qa] Test that decoderawtransaction throws with extra data appended (Matt Corallo)
922bea9 Better handle invalid parameters to signrawtransaction (Matt Corallo)
7ea0ad5 Fail in DecodeHexTx if there is extra data at the end (Matt Corallo)
2018-02-07 13:11:08 +01:00
UdjinM6
a7fa07a30e
Drop BOOST_FOREACH and use references in loops (const ref where applicable, Dash code only) (#1899)
* Drop BOOST_FOREACH in Dash-specific code (only), no changes in behavior

* Use references in loops (use const references where applicable) in Dash-specific code (only)

And adjust related code to make it compilable.

* Loop through nodes via connman.ForEachNode in dsq Relay instead of creating a copy
2018-02-06 14:09:33 +03:00
UdjinM6
4bc4a7dac7
Fix debug rpc (#1897) 2018-02-06 14:08:58 +03:00
UdjinM6
063bc55424
Fix masternode list (#1893) 2018-02-05 18:39:52 +03:00
Wladimir J. van der Laan
43f697866e Merge #9108: Use importmulti timestamp when importing watch only keys (on top of #9682)
a80f98b Use importmulti timestamp when importing watch only keys (Russell Yanofsky)
a58370e Dedup nTimeFirstKey update logic (Russell Yanofsky)
2018-02-01 11:13:01 +01:00
Wladimir J. van der Laan
6f86725d00 Merge #9682: Require timestamps for importmulti keys
266a811 Use MTP for importmulti "now" timestamps (Russell Yanofsky)
3cf9917 Add test to check new importmulti "now" value (Russell Yanofsky)
442887f Require timestamps for importmulti keys (Russell Yanofsky)
2018-02-01 11:13:01 +01:00
Alexander Block
c017353a99 Add softfork deployment for BIP147 2018-01-30 20:18:51 +01:00
Alexander Block
c8e5c40ec3 Replace more example Dash addresses with invalid addresses 2018-01-29 11:16:05 +01:00
MarcoFalke
12770beb6b Merge #10310: [doc] Add hint about getmempoolentry to getrawmempool help.
3a0a5bc [doc] Add hint about getmempoolentry to getrawmempool help. (Karl-Johan Alm)

Tree-SHA512: 8327d7d7ad93296525fbf95b7a824e3525bde84653999f125afd845823eb39e3a03cd39725962ed949aa2b9ad207ecad6d287294fa321ff1a4d7fbd5a4b8560b
2018-01-26 12:59:29 +01:00
Wladimir J. van der Laan
720325f23c Merge #10204: [rpc] rename disconnectnode argument
883154c [rpc] rename disconnectnode argument (John Newbery)

Tree-SHA512: 14245befd0a7315edd9e03c8bb283ff6b546cf4ef93c3ce02c01de687fea3bb96c510a638a42d2d6799e5e3e5b4f800021c2530b504baeaa4a4dc99323165986
2018-01-26 12:59:29 +01:00
Wladimir J. van der Laan
ec563a0f17 Merge #10146: Better error handling for submitblock
30f30c0 Add braces to submitblock per current style. (Gregory Maxwell)
4f15ea1 Check transaction count early in submitblock. (Gregory Maxwell)
ada0caa Make GetWitnessCommitmentIndex callable on blocks without a coinbase txn. (Gregory Maxwell)

Tree-SHA512: 02dcd337ad9cdd8e4fa6a42c009d016026d1229c193676ed6fcc9ce55e924fedec57f516ac1e95c3db0985243ba908307338ce783a70416cb292bed881002bfc
2018-01-26 12:59:29 +01:00
Wladimir J. van der Laan
0fc9b2bd8e Merge #10139: [rpc] Remove auth cookie on shutdown
4b87973 [rpc] Remove auth cookie on shutdown (practicalswift)

Tree-SHA512: 5d7d04413d3eb6a8d167443a3fdfe4c289bdc5cbc4c9b257a557c2a7fab5d4b32a81a1357e27b77ce2623e76e495b2e8b21eab0ab032bb261fdcdf171bac1dac
2018-01-26 12:59:29 +01:00
Wladimir J. van der Laan
8aa00505ff Merge #10084: rpc: Rename first named arg of createrawtransaction
fa55853 rpc: Rename first named arg of createrawtransaction (MarcoFalke)

Tree-SHA512: f2e07183f2503344e676e08fe0fd73e995d7c6fda3fc11c64116208dec8e445f0627583dfba85014129b6f2dc7e253b9d760e57e66811272db89e9ba25ce6dbc
2018-01-26 12:59:29 +01:00
MarcoFalke
edd514c438 Merge #10037: Trivial: Fix typo in help getrawtransaction RPC
05a9f22 Trivial: Fix typo in help getrawtransaction RPC (James Evans)

Tree-SHA512: 22c68fb49771f96b94c482b28d7efc4d51737cbb973ed3954641f3ea1832c14e7b909030c132afebe17854da134f717acbf14ee26294c61a303bc33dc43aac4c
2018-01-26 12:59:29 +01:00
Wladimir J. van der Laan
39f08b6e66 Merge #9865: Change bitcoin address in RPC help message
83ac719 Change bitcoin address in RPC helpaddress to an invalid address, so people don't accidentally send coins there (like I did). (Marijn Stollenga)

Tree-SHA512: ca1163466a149d567b97efbfcfa8fdfe2d474245b4dd5a1a92555b4e87f8e99df5fee4cd79ef1ce6a98db2337846af78f37c2e6b31d02008b11fa0e151ce6590
2018-01-26 12:59:29 +01:00
Wladimir J. van der Laan
0e8be439c2 Merge #9711: [Trivial] Remove incorrect help message from gettxoutproof()
9949ebf [Trivial] Remove incorrect help message from gettxoutproof() (John Newbery)
2018-01-26 12:59:29 +01:00
Wladimir J. van der Laan
3ab5fab7fb Merge #9786: boost: remove iostreams includes
3301587 boost: remove iostreams includes (Cory Fields)
2018-01-26 12:59:29 +01:00
UdjinM6
054abdbfa4
Merge pull request #1867 from codablock/pr_backport_bitcoin_0.14-10
Backport missing PRs from Bitcoin 0.14 - Part 10
2018-01-26 14:55:56 +03:00
UdjinM6
88646bd0d0
Rename fMasterNode to fMasternodeMode to clarify its meaning and to avoid confusion with CNode::fMasternode (#1874) 2018-01-26 04:11:01 +03:00
Wladimir J. van der Laan
0080fde36a Merge #9778: Add two hour buffer to manual pruning
91fb506 Add two hour buffer to manual pruning (Alex Morcos)
2018-01-23 09:24:29 +01:00
Wladimir J. van der Laan
e86c52f690 Merge #9556: Remove redundant semicolons
8fc6989 Remove redundant semicolons (practicalswift)
2018-01-23 09:24:27 +01:00
Wladimir J. van der Laan
daa8582b18 Merge #9615: Wallet incremental fee
4b189c1 Change bumpfee result value from 'oldfee' to 'origfee'. (Alex Morcos)
0c0c63f Introduce WALLET_INCREMENTAL_RELAY_FEE (Alex Morcos)
e8021ec Use CWallet::GetMinimumFee in bumpfee (Alex Morcos)
ae9719a Refactor GetMinimumFee to give option of providing targetFee (Alex Morcos)
fe8e8ef [rpc] Add incremental relay fee to getnetworkinfo (Alex Morcos)
6b331e6 Fix to have miner test aware of new separate block min tx fee (Alex Morcos)
de6400d Fix missing use of dustRelayFee (Alex Morcos)
5b15870 Use incrementalRelayFee for BIP 125 replacement (Alex Morcos)
2018-01-23 09:24:03 +01:00
Alexander Block
b97eecc058 Fix review nits 2018-01-22 08:05:44 +01:00
Alexander Block
9bc404a8cc Add "setbip69enabled" RPC usable by tests only
Needed by fundrawtransaction tests which rely on the ordering not being
changed.
2018-01-21 14:14:34 +01:00
MarcoFalke
660c027cd5 Merge #9510: [trivial] Fix typos in comments
cc16d99 [trivial] Fix typos in comments (practicalswift)
2018-01-21 12:48:34 +01:00
Pieter Wuille
ad9b9251ac Merge #9490: Replace FindLatestBefore used by importmuti with FindEarliestAtLeast.
4b06e41 Add unit test for FindEarliestAtLeast (Suhas Daftuar)
997a98a Replace FindLatestBefore used by importmuti with FindEarliestAtLeast. (Gregory Maxwell)
2018-01-21 12:48:32 +01:00
Wladimir J. van der Laan
658479355e Merge #9472: Disentangle progress estimation from checkpoints and update it
df36371 Update estimated transaction count data (Pieter Wuille)
e356d9a Shorten variable names and switch to tx/s (Pieter Wuille)
6dd8116 Remove SIGCHECK_VERIFICATION_FACTOR (Pieter Wuille)
3641141 Move tx estimation data out of CCheckPointData (Pieter Wuille)
a4bac66 [MOVEONLY] Move progress estimation out of checkpoints (Pieter Wuille)
2018-01-21 12:48:32 +01:00
MarcoFalke
cee8cf1be6 Merge #9518: Return height of last block pruned by pruneblockchain RPC
918d1fb Return height of last block pruned by pruneblockchain RPC (Russell Yanofsky)
2018-01-21 12:48:32 +01:00
MarcoFalke
294b8f70e2 Merge #9520: Deprecate non-txindex getrawtransaction and better warning
db904db Deprecate non-txindex getrawtransaction and better warning (Pieter Wuille)
2018-01-21 12:48:32 +01:00
MarcoFalke
a0438d5347 Merge #9297: Various RPC help outputs updated
54ee3fc RPC help updated (Michael Rotarius)
2018-01-21 12:48:32 +01:00
Wladimir J. van der Laan
88b9aa45de Merge #7871: Manual block file pruning.
afffeea fixup! Add pruneblockchain RPC to enable manual block file pruning. (Russell Yanofsky)
1fc4ec7 Add pruneblockchain RPC to enable manual block file pruning. (mrbandrews)
2018-01-21 12:48:32 +01:00
Wladimir J. van der Laan
7321bfdd6b Merge #8391: Consensus: Remove ISM
122786d Consensus: Remove ISM (NicolasDorier)
2018-01-20 09:22:40 +01:00
Alexander Block
b3ee3fc355 Dashify example config and help strings 2018-01-18 19:39:43 +01:00
Alexander Block
6ab9e6b906 Add missing colons to Result/Example help strings 2018-01-18 19:39:43 +01:00
Wladimir J. van der Laan
eb7a6b08f1 Merge #8811: rpc: Add support for JSON-RPC named arguments
4e7e2e1 Update RPC argument names (John Newbery)
481f289 rpc: Named argument support for bitcoin-cli (Wladimir J. van der Laan)
9adb4e1 rpc: Argument name consistency (Wladimir J. van der Laan)
8d713f7 rpc: Named arguments for rawtransaction calls (Wladimir J. van der Laan)
37a166f rpc: Named arguments for wallet calls (Wladimir J. van der Laan)
78b684f rpc: Named arguments for mining calls (Wladimir J. van der Laan)
b8ebc59 rpc: Named arguments for net calls (Wladimir J. van der Laan)
2ca9dcd test: Add test for RPC named arguments (Wladimir J. van der Laan)
fba1a61 rpc: Named arguments for misc calls (Wladimir J. van der Laan)
286ec08 rpc: Add 'echo' call for testing (Wladimir J. van der Laan)
495eb44 rpc: Named arguments for blockchain calls (Wladimir J. van der Laan)
6f1c76a rpc: Support named arguments (Wladimir J. van der Laan)
5865d41 authproxy: Add support for RPC named arguments (Wladimir J. van der Laan)
2018-01-18 07:38:57 +01:00
Pieter Wuille
de21f92613 Merge #9319: Break addnode out from the outbound connection limits.
032ba3f RPC help documentation for addnode peerinfo. (Gregory Maxwell)
90f13e1 Add release notes for addnode changes. (Gregory Maxwell)
50bd12c Break addnode out from the outbound connection limits. (Gregory Maxwell)
2018-01-18 07:38:22 +01:00
Wladimir J. van der Laan
8f423499dd Merge #9283: A few more CTransactionRef optimizations
91335ba Remove unused MakeTransactionRef overloads (Pieter Wuille)
6713f0f Make FillBlock consume txn_available to avoid shared_ptr copies (Pieter Wuille)
62607d7 Convert COrphanTx to keep a CTransactionRef (Pieter Wuille)
c44e4c4 Make AcceptToMemoryPool take CTransactionRef (Pieter Wuille)
2018-01-18 07:33:43 +01:00
Alexander Block
465ceff3ba Use ForceSetArg/ForceSetMultiArgs in debug rpc command 2018-01-18 07:31:23 +01:00
Pieter Wuille
aff4b6d2c5 Merge #9243: Clean up mapArgs and mapMultiArgs Usage
c2f61be Add a ForceSetArg method for testing (Matt Corallo)
4e04814 Lock mapArgs/mapMultiArgs access in util (Matt Corallo)
4cd373a Un-expose mapArgs from utils.h (Matt Corallo)
71fde55 Get rid of mapArgs direct access in ZMQ construction (Matt Corallo)
0cf86a6 Introduce (and use) an IsArgSet accessor method (Matt Corallo)
2b5f085 Fix non-const mapMultiArgs[] access after init. (Matt Corallo)
c8042a4 Remove arguments to ParseConfigFile (Matt Corallo)
2018-01-18 07:31:23 +01:00
MarcoFalke
7417a5b249 Merge #9407: [Trivial] Added missing colons in when running help command
afe5b3f Added missing colons in when running help command (Anditto Heristyo)
2018-01-18 07:31:23 +01:00
Wladimir J. van der Laan
e34afa1067 Merge #9273: Remove unused CDiskBlockPos* argument from ProcessNewBlock
a13fa4c Remove unused CDiskBlockPos* argument from ProcessNewBlock (Matt Corallo)
2018-01-18 07:31:22 +01:00
Wladimir J. van der Laan
b5389c09b3 Merge #9014: Fix block-connection performance regression
dd0df81 Document ConnectBlock connectTrace postconditions (Matt Corallo)
2d6e561 Switch pblock in ProcessNewBlock to a shared_ptr (Matt Corallo)
2736c44 Make the optional pblock in ActivateBestChain a shared_ptr (Matt Corallo)
ae4db44 Create a shared_ptr for the block we're connecting in ActivateBCS (Matt Corallo)
fd9d890 Keep blocks as shared_ptrs, instead of copying txn in ConnectTip (Matt Corallo)
6fdd43b Add struct to track block-connect-time-generated info for callbacks (Matt Corallo)
2018-01-17 17:31:11 +01:00
Wladimir J. van der Laan
525c049316 Merge #8580: Make CTransaction actually immutable
81e3228 Make CTransaction actually immutable (Pieter Wuille)
42fd8de Make DecodeHexTx return a CMutableTransaction (Pieter Wuille)
c3f5673 Make CWalletTx store a CTransactionRef instead of inheriting (Pieter Wuille)
a188353 Switch GetTransaction to returning a CTransactionRef (Pieter Wuille)
2018-01-17 17:30:38 +01:00
Wladimir J. van der Laan
a95622c0b0 Merge #9239: Disable fee estimates for 1 block target
e878689 Make GUI incapable of setting tx confirm target of 1 (Alex Morcos)
d824ad0 Disable fee estimates for a confirm target of 1 block (Alex Morcos)
2018-01-17 17:30:38 +01:00
MarcoFalke
a71702e3e2 Merge #9144: [Trivial] Correct waitforblockheight example help text
e3c4f7e Correct help output for waitfor RPC commands (fanquake)
2018-01-17 17:25:36 +01:00
Alexander Block
532b9fa3db Use OpenNetworkConnection instead of calling ConnectNode directly in Dash code (#1857)
ConnectNode is meant to be private and should not be leaked outside of
CConnman. This leaking resulted in multiple problems with AddRef/Release
behaviour. We use OpenNetworkConnectio/OpenMasternodeConnection from now on
and use appropriate ForNode calls to access the CNode* instance.

This commit also changes the behaviour for already connected nodes which
are afterwards requested for a masternode connection. We don't set
fMasternode=true anymore on such nodes, which means it won't be auto
disconnected anymore from ProcessMasternodeConnections.
2018-01-17 18:09:08 +03:00
Wladimir J. van der Laan
ce3f38d6ca Merge #9025: getrawtransaction should take a bool for verbose
240189b add testcases for getrawtransaction (John Newbery)
ce2bb23 getrawtransaction should take a bool for verbose (jnewbery)
2018-01-15 06:14:16 +01:00
Wladimir J. van der Laan
f12610c030 Merge #9125: Make CBlock a vector of shared_ptr of CTransactions
b4e4ba4 Introduce convenience type CTransactionRef (Pieter Wuille)
1662b43 Make CBlock::vtx a vector of shared_ptr<CTransaction> (Pieter Wuille)
da60506 Add deserializing constructors to CTransaction and CMutableTransaction (Pieter Wuille)
0e85204 Add serialization for unique_ptr and shared_ptr (Pieter Wuille)
2018-01-15 06:14:16 +01:00
MarcoFalke
ec08f5b750 Merge #9122: fix getnettotals RPC description about timemillis.
a79f864 fix getnettotals RPC description about timemillis. (Masahiko Hyuga)
2018-01-15 06:14:15 +01:00
Alexander Block
d452018961 Dashify generatetoaddress help string 2018-01-13 18:34:53 +01:00
Wladimir J. van der Laan
6eaafa86b6 Merge #7730: Remove priority estimation
0bd581a add release notes for removal of priority estimation (Alex Morcos)
b2322e0 Remove priority estimation (Alex Morcos)
2018-01-13 13:44:40 +01:00
Wladimir J. van der Laan
42fa46f859 Merge #9042: [rpc] ParseHash: Fail when length is not 64
fa32619 [rpc] ParseHash: Fail when length is not 64 (MarcoFalke)
2018-01-13 13:44:39 +01:00
Wladimir J. van der Laan
bc3b9294e8 Merge #8753: Locked memory manager
444c673 bench: Add benchmark for lockedpool allocation/deallocation (Wladimir J. van der Laan)
6567999 rpc: Add `getmemoryinfo` call (Wladimir J. van der Laan)
4536148 support: Add LockedPool (Wladimir J. van der Laan)
f4d1fc2 wallet: Get rid of LockObject and UnlockObject calls in key.h (Wladimir J. van der Laan)
999e4c9 wallet: Change CCrypter to use vectors with secure allocator (Wladimir J. van der Laan)
2018-01-13 13:44:39 +01:00
MarcoFalke
ade67c91e7 Merge #9041: keypoololdest denote Unix epoch, not GMT
7f61b49 Change all instance of 'GMT epoch' to 'Unix epoch' (matthias)
2018-01-13 13:44:38 +01:00
Alexander Block
8d62e3f80e Throw exception in gobject prepare when CommitTransaction fails 2018-01-13 13:44:38 +01:00
Wladimir J. van der Laan
848f3389b4 Merge #9016: Return useful error message on ATMP failure
169bdab Return useful error message on ATMP failure (instagibbs)
2018-01-13 13:44:38 +01:00
Wladimir J. van der Laan
01389bc330 Merge #9029: instance of 'mem pool' to 'mempool'
1c3ecc7 instance of 'mem pool' to 'mempool' (S. Matthew English)
2018-01-13 13:44:38 +01:00