Commit Graph

901 Commits

Author SHA1 Message Date
Kittywhiskers Van Gogh
438c93bd9a merge bitcoin#10973: separate wallet from node 2021-11-14 15:32:50 +05:30
Kittywhiskers Van Gogh
71b90dad97 partial bitcoin#14982: Remove unused PreCommand signal 2021-11-14 15:32:38 +05:30
Kittywhiskers Van Gogh
2c98320c1a merge bitcoin#15288: Remove wallet -> node global function calls 2021-11-14 15:32:37 +05:30
PastaPastaPasta
4bf6dc07d4
Merge pull request #4567 from dzutte-cpp/merge_14987_14918
Merge bitcoin#14987 and bitcoin#14918
2021-11-13 15:15:11 -05:00
Kittywhiskers Van Gogh
9b52fb36da merge bitcoin#15751: Speed up deriveaddresses for large ranges 2021-11-11 18:36:09 +05:30
Kittywhiskers Van Gogh
7ae2e66612 merge bitcoin#15474: Make mempoolinfo atomic 2021-11-11 18:36:09 +05:30
Dzutte
ed9cf45a30 Rename GetHelpString to GetRpcArg
The new name should hopefully reflect the purpose of the function
better.

Signed-off-by: Dzutte <dzutte.tomsk@gmail.com>
2021-11-09 15:39:22 -08:00
Dzutte
85537e4532 Dash-specific changes to support RPCHelpMan improvements
Signed-off-by: Dzutte <dzutte.tomsk@gmail.com>
2021-11-09 15:39:22 -08:00
MarcoFalke
2ff928c850 Merge #14918: RPCHelpMan: Check default values are given at compile-time
fa0ad4e7ce RPCHelpMan: Check default values are given at compile-time (MarcoFalke)

Pull request description:

  Remove the run time assertions on the default values and ensure that the correct default type and value is provided at compile time.

Tree-SHA512: 80df2f3fab4379b500c773c27da63f22786c58be5963fe99744746320e43627a5d433eedf8b32209158df7805ebdce65ed4d242c829c4fe6e5d13deb4799ed42
2021-11-09 15:24:51 -08:00
MarcoFalke
57841be492 Merge #14987: RPCHelpMan: Pass through Result and Examples
faa1522e5e RPCHelpMan: Pass through Result and Examples (MarcoFalke)

Pull request description:

  Passing the rpc result and rpc examples through `RPCHelpMan` makes it clear in what order they appear in the stringified version. Future improvements could then autoformat or autogenerate them.

Tree-SHA512: b32a5c178cc80f50a7e9b93a38e2b26d5994188ecafe9e61bbc599941b44b9b0e4e4be6413d4464fac6e8e73661a191a77d34917f2e6293de19fb59519dd4487
2021-11-09 15:24:51 -08:00
PastaPastaPasta
d4910cab3b
Merge pull request #4323 from kittywhiskers/net
merge bitcoin 15246, 15330, 15697, 16445, 16202, 16562, 18260, 22331, 23271, 16493, 17931: Refactor network message deserialization
2021-11-03 15:40:14 -04:00
Kittywhiskers Van Gogh
d949c90bc0 merge bitcoin#18260: Fix implicit value conversion in formatPingTime 2021-11-03 10:45:00 +05:30
Kittywhiskers Van Gogh
e13d93ec78 merge bitcoin#16566: refactor upper/lowercase functions 2021-11-01 21:41:35 +05:30
PastaPastaPasta
2204c85370
governance: Implement reduced governance fee (#4241)
* Implement hf for reduced governance fee

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

* update VersionBitsDeploymentInfo

* Adjust activation times for gov fee hard fork

* Use raw timestamps

* Adjust timestamps

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2021-11-01 18:31:48 +03:00
UdjinM6
12c399b3f0
Merge pull request #4554 from UdjinM6/bp15402_16849_15971
backport 15402, 16849, 15971
2021-11-01 18:26:11 +03:00
UdjinM6
bbe9b3d1e0
Merge pull request #4494 from kittywhiskers/descaddr
merge bitcoin#14150, #14477, #14646, #14667, #14886, #14565, #14491, #15368: descriptors
2021-11-01 18:25:32 +03:00
Kittywhiskers Van Gogh
8647ba1316 merge bitcoin#15986: Add checksum to getdescriptorinfo 2021-10-29 23:36:54 +05:30
Wladimir J. van der Laan
6f0646a262
Merge #15402: Granular invalidateblock and RewindBlockIndex
519b0bc5dc5155b6f7e2362c2105552bb7618ad0 Make last disconnected block BLOCK_FAILED_VALID, even when aborted (Pieter Wuille)
8d220417cd7bc34464e28a4861a885193ec091c2 Optimization: don't add txn back to mempool after 10 invalidates (Pieter Wuille)
9ce9c37004440d6a329874dbf66b51666d497dcb Prevent callback overruns in InvalidateBlock and RewindBlockIndex (Pieter Wuille)
9bb32eb571a846b66ed3bac493f55cee11a3a1b9 Release cs_main during InvalidateBlock iterations (Pieter Wuille)
9b1ff5c742dec0a6e0d6aab29b0bb771ad6d8135 Call InvalidateBlock without cs_main held (Pieter Wuille)
241b2c74ac8c4c3000e778554da1271e3f293e5d Make RewindBlockIndex interruptible (Pieter Wuille)
880ce7d46b51835c00d77a366ec28f54a05239df Call RewindBlockIndex without cs_main held (Pieter Wuille)
436f7d735f1c37e77d42ff59d4cbb1bd76d5fcfb Release cs_main during RewindBlockIndex operation (Pieter Wuille)
1d342875c21b5d0a17cf4d176063bb14b35b657e Merge the disconnection and erasing loops in RewindBlockIndex (Pieter Wuille)
32b2696ab4b079db736074b57bbc24deaee0b3d9 Move erasure of non-active blocks to a separate loop in RewindBlockIndex (Pieter Wuille)
9d6dcc52c6cb0cdcda220fddccaabb0ffd40068d Abstract EraseBlockData out of RewindBlockIndex (Pieter Wuille)

Pull request description:

  This PR makes a number of improvements to the InvalidateBlock (`invalidateblock` RPC) and RewindBlockIndex functions, primarily around breaking up their long-term cs_main holding. In addition:
  * They're made safely interruptible (`bitcoind` can be shutdown, and no progress in either will be lost, though if incomplete, `invalidateblock` won't continue after restart and will need to be called again)
  * The validation queue is prevented from overflowing (meaning `invalidateblock` on a very old block will not drive bitcoind OOM) (see #14289).
  * `invalidateblock` won't bother to move transactions back into the mempool after 10 blocks (optimization).

  This is not an optimal solution, as we're relying on the scheduler call sites to make sure the scheduler doesn't overflow. Ideally, the scheduler would guarantee this directly, but that needs a few further changes (moving the signal emissions out of cs_main) to prevent deadlocks.

  I have manually tested the `invalidateblock` changes (including interrupting, and running with -checkblockindex and -checkmempool), but haven't tried the rewinding (which is probably becoming increasingly unnecessary, as very few pre-0.13.1 nodes remain that would care to upgrade).

Tree-SHA512: 692e42758bd3d3efc2eb701984a8cb5db25fbeee32e7575df0183a00d0c2c30fdf72ce64c7625c32ad8c8bdc56313da72a7471658faeb0d39eefe39c4b8b8474
2021-10-29 16:29:49 +03:00
PastaPastaPasta
a0b68ca856
refactor: minimize passing around llmqType just to search for LLMQParams (#4551)
* minimize passing around llmqType just to search for LLMQParams

* more

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2021-10-28 22:10:43 +03:00
Kittywhiskers Van Gogh
3c63ffa68c merge bitcoin#15368: Descriptor checksums 2021-10-28 14:01:02 +05:30
Kittywhiskers Van Gogh
083bc078a9 merge bitcoin#14667: Add deriveaddresses RPC util method 2021-10-28 10:56:07 +05:30
Kittywhiskers Van Gogh
49522bddb4 merge bitcoin#14477: Add ability to convert solvability info to descriptor 2021-10-28 10:56:06 +05:30
Odysseas Gabrielides
c151ccaf1a
Rename variables for better clarity (#4544)
* Rename variables for better clarity

* Various changes

* Update src/llmq/blockprocessor.cpp

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2021-10-26 12:08:38 -04:00
UdjinM6
61a69cf09b
Merge pull request #4511 from kittywhiskers/bench
merge bitcoin#13219...#15779: benchmarks
2021-10-25 22:58:54 +03:00
MarcoFalke
02c6ecb02f
Merge #15655: Resolve the checkpoints <-> validation circular dependency
418d3230f8 Resolve the checkpoints <-> validation CD. (251)

Pull request description:

  This pull request attempts to resolve the `checkpoints -> validation -> checkpoints` circular dependency.

  The circular dependency is resolved by moving the `CheckPoints::GetLastCheckpoint(const CCheckpointData& data)` function to `validation.cpp` where it used exclusively by the private function `ContextualCheckBlockHeader(const CBlockHeader& block, CValidationState& state, const CChainParams& params, const CBlockIndex* pindexPrev, int64_t nAdjustedTime)`.

ACKs for commit 418d32:
  promag:
    utACK 418d323, only `GetLastCheckpoint` usage is in `validation.cpp` and so makes sense to move it there.
  practicalswift:
    utACK 418d3230f86f77dde6e817f502baff8a54b707fa
  MarcoFalke:
    utACK 418d3230f86f77dde6e817f502baff8a54b707fa
  sipa:
    utACK 418d3230f86f77dde6e817f502baff8a54b707fa

Tree-SHA512: 03c3556bc192e65f5e3fa76fd545d4ee7d63d3fb06b132f7a1fa6131aa21ddd2e5b2d19e2222dfe524f422daaca30efde219bed188db8c74ff4b088876b5bc16
2021-10-25 12:22:06 -04:00
PastaPastaPasta
7b78390015
refactor: Include adjustments (#4526)
* include adjustments

* fix macOs build failure

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

* expcitly include array in spork.h

* sort includes in most files
2021-10-25 16:55:34 +03:00
UdjinM6
81cc1a0a9d
Merge pull request #4525 from dzutte-cpp/merge_14796_14885_14875
Merge bitcoin#14796, #14885 and #14875
2021-10-25 16:52:02 +03:00
Kittywhiskers Van Gogh
544823b272 merge bitcoin#15473: bench: Benchmark MempoolToJSON 2021-10-25 14:49:12 +05:30
MarcoFalke
8bb274f180 Merge #14875: RPCHelpMan: Support required arguments after optional ones
fa9a5bc1a0 RPCHelpMan: Support required arguments after optional ones (MarcoFalke)

Pull request description:

  There was a requirement that required arguments could not be positioned after an optional argument, but the deprecation of priority made the second argument to `prioritisetransaction` optional. So support that in `RPCHelpMan`.

  Also format all named arguments in the same way (without the wrapping `"` even for strings), since the extended description already mentions the type and it feels odd to special case strings.

Tree-SHA512: c125145afb4a63abc995aaf0a89489efc0f470a720727a1ca6ee0bfd2bcbc59e87c38128dd1e0cdf03dbb5b18e84867887c3dabf6ec8378e66cb1f4cecb9e407
2021-10-22 09:48:25 -07:00
MarcoFalke
de06e3164b Merge #14885: rpc: Assert named arguments are unique in RPCHelpMan
e09a5875ca rpc: Assert named arguments are unique in RPCHelpMan (João Barbosa)

Pull request description:

  Prevents an obvious mistake.

Tree-SHA512: 32c24a1934b17ab6f0d5cd31bdf0388e93ee5156ccc1b4f78eb9fd7f1d4b27a4b978b594ff11812bc9f20987c9fc36bf4497ddaedf18cf6bcbea19c050571334
2021-10-22 09:48:25 -07:00
Dzutte
bbb9949dc1 Dash-specific changes to pass argument descriptions to RPCHelpMan
Signed-off-by: Dzutte <dzutte.tomsk@gmail.com>
2021-10-22 09:48:25 -07:00
MarcoFalke
becabf641d Merge #14796: rpc: Pass argument descriptions to RPCHelpMan
fabca42c68 RPCHelpMan: Add space after colons in extended description (MarcoFalke)
fafd040f73 rpc: Add description to fundrawtransaction vout_index (MarcoFalke)
1db0096f61 rpc: Pass argument descriptions to RPCHelpMan (MarcoFalke)

Pull request description:

  This will normalize the type names and formatting for the rpc arguments

Tree-SHA512: 6ab344882f0fed36046ab4636cb2fa5d2479c6aae22666ca9a0d067edbb9eff8de98010ad97c8ce40ab532d15d1ae67120a561b0bf3da837090d7de427679f4f
2021-10-22 09:48:25 -07:00
Kittywhiskers Van Gogh
84339a4b84 merge bitcoin#16443: have CCoins* data managed under CChainState 2021-10-22 08:15:38 +05:30
Kittywhiskers Van Gogh
a620d941d3 merge bitcoin#16194: share blockmetadata with BlockManager
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2021-10-22 08:15:38 +05:30
Kittywhiskers Van Gogh
1bb1cea5c9 merge bitcoin#15976: move methods under CChainState
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2021-10-22 08:15:38 +05:30
Kittywhiskers Van Gogh
1f436f8aee merge bitcoin#15948: rename chainActive
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2021-10-22 08:15:22 +05:30
PastaPastaPasta
6e32a464f5
Merge pull request #4484 from vijaydasmp/backport_v19_vijay_batch_1
merge bitcoin#15685,#15335,#15642,#15686,#15629
2021-10-21 16:59:32 -04:00
PastaPastaPasta
ff22aa299a
Merge #14437: Refactor: Start to separate wallet from node 2021-10-20 12:29:45 -04:00
Wladimir J. van der Laan
617941fd8b
Merge #15642: [rpc] Remove deprecated rpc warnings
947f73ceba7d74153fe83b538e42be1dfe77aea4 [docs] remove reference to signrawtransaction in the developer docs. (John Newbery)
7b6616b78bd9f76502002db1a209a0363979e506 [rpc] Remove deprecated functionality message from validateaddress help (John Newbery)
839c3f7c4937eb8a3e1e5ab2dafff26688af1078 [rpc] Remove signrawtransaction warning (John Newbery)

Pull request description:

  Removes some deprecated code from the RPCs:

  - signrawtransaction was deprecated in 0.17 and removed in 0.18. A warning message was left in place to advise users to use signrawtransactionwithwallet and signrawtransactionwithkey. That warning can now be removed.
  - validateaddress had some functionality deprecated in 0.17 and removed in 0.18. The help text for that functionality was not removed in 0.18 and can be removed now.

Tree-SHA512: 981678a697954ff2c392752e5a183b4b12c4eb94f55766ee1aa97a70d300668237db8fc5748c2772869d0155ba4a93e38817887b98160ee972a6f6ee94e3f7d9
2021-10-16 06:23:15 +05:30
MarcoFalke
5df5656e01
Merge #15685: doc: rpc-mining: Clarify error messages
fa292adce9 doc: rpc-mining: Clarify error messages (MarcoFalke)

Pull request description:

  Fixes #13274

ACKs for commit fa292a:
  fanquake:
    tACK fa292ad

Tree-SHA512: 58946a52ce49b97c35cbf5eaa9175447a231690cb2bac0d39e5db524bdf2cbad274a905038aca270c080d5660f58176d43c01a22a8417c0f5b8276816939c1d6
2021-10-16 06:23:12 +05:30
UdjinM6
ea8d4c26b6
refactor: more LLMQ params related refactoring (#4517)
* refactor: Turn LLMQType into `enum class`

* refactor: Simplify/make LLMQ additions safer

* refactor: Move `is_serializable_enum<Consensus::LLMQType>` to `src/llmq/params.h`

* refactor: Add missing include

* refactor: Add missing comment

* Use `static_cast`

* make available_llmqs constexpr array

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

* cleanup/fixes

Co-authored-by: pasta <pasta@dashboost.org>
2021-10-15 13:28:19 +03:00
UdjinM6
87818b2384
cleanup: 4492 followup (#4521) 2021-10-13 22:37:54 +03:00
UdjinM6
4ac54be71b
Merge pull request #4514 from dzutte-cpp/merge_14683_15841_14984_15943
Merge bitcoin PRs: #14683, #15841, #14984 and #15943
2021-10-13 18:06:32 +03:00
UdjinM6
2a5b5bb32a
Merge pull request #4504 from kittywhiskers/explicit_ref
merge bitcoin #13013, #14908, #14906: Make explicit CMutableTransaction -> CTransaction conversion
2021-10-13 17:47:53 +03:00
MarcoFalke
fec569b9ef Merge #14984: rpc: Speedup getrawmempool when verbose=true
2d5cf4c41d rpc: Speedup getrawmempool when verbose=true (João Barbosa)

Pull request description:

  Instead of calling `pushKV(hash, info)`, which incurs in duplicate key checks, call `__pushKV` which (currently) doesn't.

  Improves RPC `getrawmempool` and REST `/rest/mempool/contents.json`.

  Fixes #14765.

ACKs for commit 2d5cf4:

Tree-SHA512: c3e91371bb41f39e79dcef820815e1dc27fb689ca3c4bf3a00467d2215b3baecd44d9792f7a481577a5b7ae1fc6cbaa07b1cd62123b845082eba65b35c2b3ca5
2021-10-12 15:56:33 -07:00
Kittywhiskers Van Gogh
ee705af2cd merge bitcoin#14906: Make explicit CMutableTransaction -> CTransaction conversion 2021-10-12 08:58:08 +05:30
PastaPastaPasta
fb03681423
spork: make sporkDefs static constexpr, remove sporkDefsById, sporkDefsByName maps (#4510)
* spork: make sporkDefs static constexpr, remove sporkDefsById, sporkDefsByName maps

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

* fixes

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

* Revert "fixes"

This reverts commit 42f599ee

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

* access statically

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

* add [[maybe_unused]] to sporkDefs

Signed-off-by: pasta <pasta@dashboost.org>
2021-10-12 02:08:02 +03:00
Dzutte
0f2e8aa504
Merge bitcoin#14726: Use RPCHelpMan for all RPCs (#4492)
* Merge #14726: Use RPCHelpMan for all RPCs

fa5e0452e875a7ca6bf6fe61fdd652d341eece40 rpc: Documentation fixups (MarcoFalke)
fa91e8eda541acdb78ca481b74605639f319c108 Use RPCHelpMan for all RPCs (MarcoFalke)
fa520e72f7b5964cea1ade666e71212914556cf3 lint: Must use RPCHelpMan to generate the RPC docs (MarcoFalke)

Pull request description:

  The resulting documentation should not change unless the type in the oneline-summary was previously incorrect. (E.g. string vs bool)

Tree-SHA512: 4ff355b6a53178f02781e97a7aca7ee1d0d97ff348b6bf5a01caa1c96904ee33c704465fae54c2cd7445097427fd04c71ad3779bb7a7ed886055ef36c1b5a1d0

* Dash-specific changes to support RPCHelpMan with RPC commands

Signed-off-by: Dzutte <dzutte.tomsk@gmail.com>

Co-authored-by: Wladimir J. van der Laan <laanwj@gmail.com>
2021-10-12 00:55:23 +03:00
PastaPastaPasta
89e0ccc3dd
llmq: move more llmq params into llmq/params.h remove llmq/params.cpp, use string_view and constexpr (#4500)
string_view is needed for compile time interpretation (constexpr) of the LLMQParams

constexpr is good to add such that we aren't initializing in static scope, but instead at compile time

Sadly using string_view will require that we construct a std::string when passing into univalue, however, this isn't in a performance important section (rpc) and as such another allocation is an okay trade off for the benefits of constexpr

Also, now we aren't having extern variables, which should make the linker mildly happier

Signed-off-by: pasta <pasta@dashboost.org>
2021-10-11 20:11:08 +03:00
PastaPastaPasta
b944c04a41
refactor: refactor and improve platformUser restrictions, add some documentation (#4490)
* refactor: refactor and improve platformUser restrictions, add some documentation

* refactor: use a lambda to slightly improve readability
2021-10-11 00:41:39 +03:00