Commit Graph

13091 Commits

Author SHA1 Message Date
John Newbery
98bd0c338b [tests] disconnect_ban: use wait_until instead of sleep
Github-Pull: #10143
Rebased-From: 12de2f252c
2017-06-05 22:55:10 +00:00
John Newbery
bfd1cf6713 [tests] disconnectban test - only use two nodes
Github-Pull: #10143
Rebased-From: 395561becf
2017-06-05 19:26:13 +00:00
John Newbery
5bc75bb8ee [tests] fix nodehandling.py flake8 warnings
Github-Pull: #10143
Rebased-From: d6564a26f4
2017-06-05 19:26:13 +00:00
John Newbery
c25d0a8739 Update release notes to include RPC error code changes.
Github-Pull: #9853
Rebased-From: adaa281da1
2017-06-05 19:02:01 +00:00
John Newbery
f5efe82a83 Return correct error codes in fundrawtransaction().
The fundrawtransaction() RPC was returning misleading or incorrect error
codes (for example RPC_INTERNAL_ERROR when funding the transaction
failed). This commit fixes those error codes:

- RPC_INTERNAL_ERROR should not be returned for application-level
errors, only for genuine internal errors such as corrupted data.

That error code has been replaced with RPC_WALLET_ERROR.

This commit also updates the test cases to explicitly test the error code.

Github-Pull: #9853
Rebased-From: dab804c18a
2017-06-05 19:01:16 +00:00
John Newbery
4943d7a9fe Return correct error codes in setban().
The setban() RPC was returning misleading or incorrect error
codes (for example RPC_CLIENT_NODE_ALREADY_ADDED when an invalid IP
address was entered). This commit fixes those error codes:

- RPC_CLIENT_INVALID_IP_OR_SUBNET should be returned if the client
  enters an invalid IP address or subnet.

This commit also updates the test cases to explicitly test the error code.

This commit also adds a testcase for trying to setban on an invalid subnet.

Github-Pull: #9853
Rebased-From: a012087667
2017-06-05 19:01:16 +00:00
John Newbery
18c109ddb1 Return correct error codes in removeprunedfunds().
The removeprunedfunds() RPC was returning misleading or incorrect error
codes (for example RPC_INTERNAL_ERROR when the transaction was
not found in the wallet). This commit fixes those error codes:

- RPC_INTERNAL_ERROR should not be returned for application-level
errors, only for genuine internal errors such as corrupted data.

This error code has been replaced with RPC_WALLET_ERROR.

This commit also updates the test cases to explicitly test the error code.

Github-Pull: #9853
Rebased-From: 960bc7f778
2017-06-05 19:01:16 +00:00
John Newbery
fe51c8924e Return correct error codes in blockchain.cpp.
RPCs in blockchain.cpp were returning misleading or incorrect error
codes (for example getblock() returning RPC_INTERNAL_ERROR when the
block had been pruned). This commit fixes those error codes:

- RPC_INTERNAL_ERROR should not be returned for application-level
  errors, only for genuine internal errors such as corrupted data.
- RPC_METHOD_NOT_FOUND should not be returned in response to a
  JSON request for an existing method.

Those error codes have been replaced with RPC_MISC_ERROR or
RPC_INVALID_PARAMETER as appropriate.

Github-Pull: #9853
Rebased-From: c1190963b3
2017-06-05 19:01:16 +00:00
John Newbery
3ad00b4b32 Return correct error codes in bumpfee().
The bumpfee() RPC was returning misleading or incorrect error codes
(for example RPC_INVALID_ADDRESS_OR_KEY when the transaction was not
BIP125 replacable). This commit fixes those error codes:

- RPC_INVALID_ADDRESS_OR_KEY if an invalid address was provided:
    - Invalid change address given
- RPC_INVALID_PARAMETER if a single (non-address/key) parameter is incorrect
    - confTarget and totalFee options should not both be set.
    - Invalid confTarget
    - Insufficient totalFee (cannot be less than required fee)
- RPC_WALLET_ERROR for any other error
    - Transaction has descendants in the wallet
    - Transaction has descendants in the mempool
    - Transaction has been mined, or is conflicted with a mined transaction
    - Transaction is not BIP 125 replaceable
    - Transaction has already been bumped
    - Transaction contains inputs that don't belong to the wallet
    - Transaction has multiple change outputs
    - Transaction does not have a change output
    - Fee is higher than maxTxFee
    - New fee rate is less than the minimum fee rate
    - Change output is too small.

This commit also updates the test cases to explicitly test the error code.

Github-Pull: #9853
Rebased-From: 6d07c62322
2017-06-05 19:01:16 +00:00
Wladimir J. van der Laan
21e1ed4898 doc: Preliminary release notes 0.14.2 2017-06-05 08:44:09 +02:00
Wladimir J. van der Laan
4a41de4585 build: bump version to 0.14.2 2017-06-02 07:39:56 +02:00
Cory Fields
9e3ad50078 net: only enforce the services required to connect
also once half of all outgoing nodes have our preferred flags, require only
minimal flags from the rest.

Github-Pull: #10441
Rebased-From: b6fbfc2282
v0.14.2rc1
2017-06-01 13:26:12 +02:00
Wladimir J. van der Laan
ff3f9a807d Merge #10484: 0.14 Backports
1847642 [Wallet] unset change position when there is no change on exact match (Gregory Sanders)
ae479bc build: fix bitcoin-config.h regeneration after touching build files (Cory Fields)
3d395d6 build: remove wonky auto top-level convenience targets (Cory Fields)
4bc99c3 Add missing <atomic> header in clientmodel.h (Jonas Schnelli)
222f377 Set both time/height header caches at the same time (Jonas Schnelli)
7da1337 Declare headers height/time cache mutable, re-set the methods const (Jonas Schnelli)
9ac40e8 Update the remaining blocks left in modaloverlay at init. (Jonas Schnelli)
1e936d7 Reduce cs_main locks during modal overlay by adding an atomic cache (Jonas Schnelli)
0aee4a1 Check interruptNet during dnsseed lookups (Matt Corallo)
2017-05-31 18:05:06 +02:00
Gregory Sanders
18476423fb [Wallet] unset change position when there is no change on exact match 2017-05-31 10:57:16 +02:00
Cory Fields
ae479bc45b build: fix bitcoin-config.h regeneration after touching build files
This was a long-standing and annoying problem.

If autogen.sh was not manually run after touching configure.ac,
bitcoin-config.h would not be properly regenerated. This causes very subtle
problems when configure appears to enable a new value, but it does not end up
reflected in the build.
2017-05-31 10:54:19 +02:00
Cory Fields
3d395d6815 build: remove wonky auto top-level convenience targets
These were meant to help build subdir targets from the top builddir, but cause
infinite recursion when going the other way.

If anyone actually uses these, we can add back specific targets.
2017-05-31 10:54:19 +02:00
Jonas Schnelli
4bc99c3b28 Add missing <atomic> header in clientmodel.h 2017-05-31 10:53:47 +02:00
Jonas Schnelli
222f3775cf Set both time/height header caches at the same time 2017-05-31 10:53:47 +02:00
Jonas Schnelli
7da133772d Declare headers height/time cache mutable, re-set the methods const 2017-05-31 10:53:47 +02:00
Jonas Schnelli
9ac40e853c Update the remaining blocks left in modaloverlay at init. 2017-05-31 10:53:47 +02:00
Jonas Schnelli
1e936d7e87 Reduce cs_main locks during modal overlay by adding an atomic cache 2017-05-31 10:53:46 +02:00
Matt Corallo
0aee4a132b Check interruptNet during dnsseed lookups 2017-05-31 10:52:56 +02:00
Shigeya Suzuki
44a17f278a Minor fix in build documentation for FreeBSD 11
- Package name is libevent, not libevent2
- Need to use GNU make

Github-Pull: #10245
Rebased-From: 0611bc3439
2017-05-29 11:58:24 +02:00
Russell Yanofsky
321419bc06 Fix importwallet edge case rescan bug
Start importwallet rescans at the first block with timestamp greater or equal
to the wallet birthday instead of the last block with timestamp less or equal.
This fixes an edge case bug where importwallet could fail to start the rescan
early enough if there are blocks with decreasing timestamps or multiple blocks
with the same timestamp.

Github-Pull: #10410
Rebased-From: 2a8e35a11d
2017-05-23 17:09:42 +02:00
Alex Morcos
37a8fc54d4 Populate services in GetLocalAddress
Previously if we didn't have any local addresses, GetLocalAddress would return
0.0.0.0 and then we'd swap in a peer's notion of our address in AdvertiseLocal,
but then nServices would never get set.

Github-Pull: #10424
Rebased-From: 307013469f
2017-05-22 12:56:13 +02:00
fanquake
ffb0c4b035 [depends] miniupnpc 2.0.20170509
Github-Pull: #10414
Rebased-From: af5d48c9a0
2017-05-17 20:58:56 +02:00
Wladimir J. van der Laan
f2a96e7d02 doc: clean out release notes 2017-04-22 16:22:09 +02:00
Wladimir J. van der Laan
964a185cc8 Merge #10232: [0.14] release-notes: Accurately explain getblocktemplate improvements
38ab0a7 release-notes: Accurately explain getblocktemplate improvements (Luke Dashjr)

Tree-SHA512: b519431d5009c5bdb7511e46c9dec05370ba62d70f5f6a9d00b82d190581b937e34d29c32c3795f4f219288d40695091cfe60ec93b3c40c01ab72d9232064c04
v0.14.1
2017-04-20 11:28:25 +02:00
Warren Togami
51c787dfb4 Clarify importprivkey help text with example of blank label without rescan
Occasionally I waste a lot of time not remembering that the second parameter to importprivkey must be blank if you intend to stop rescan with "false" as the third parameter.

Github-Pull: #10207
Rebased-From: c9e31c36ff
2017-04-20 08:18:50 +02:00
Luke Dashjr
38ab0a7465 release-notes: Accurately explain getblocktemplate improvements 2017-04-19 16:45:38 +00:00
Wladimir J. van der Laan
33fadc20ba doc: Update release notes pre-rc2 v0.14.1rc2 2017-04-14 12:45:41 +02:00
Wladimir J. van der Laan
348a71701d qt: translations update pre-rc2 2017-04-14 12:25:51 +02:00
Cory Fields
30fa231011 net: define NodeId as an int64_t
This should make occurances of NodeId wrapping essentially impossible for
real-world usage.

Github-Pull: #10176
Rebased-From: c851be4b25
2017-04-14 10:35:49 +02:00
John Newbery
3c796026e5 [rpc] rename disconnectnode argument
Github-Pull: #10204
Rebased-From: 883154cbcb
2017-04-14 10:19:06 +02:00
Wladimir J. van der Laan
06909df179 Merge #10185: [0.14] Mention dbcache memory changes in release notes
b7caa30 Mention dbcache memory changes in 0.14.1 release notes (Suhas Daftuar)

Tree-SHA512: cbc4bd55075c21c3cb1ea7857cf977ca60c6ae75b615512fbc9a42c4f329c40701fe31697634a47a17367e291c0969c2ad47266c8ef6d5bfd23e56614f515027
2017-04-13 12:06:55 +02:00
Suhas Daftuar
b7caa30c48 Mention dbcache memory changes in 0.14.1 release notes 2017-04-12 21:57:46 -04:00
Wladimir J. van der Laan
55f641ca19 Merge #10157: [0.14] Fix the mempool_packages.py test
39febb8 [qa] Fix mempool_packages.py for the 0.14 branch (Suhas Daftuar)

Tree-SHA512: 7b5f2627a76d79da5d7c9d30794219a87bec99296d5f74f66b347c7c8914244bfd07f0d48231adda7269678706fd9158b846d710f942b724c8c5748cc4a49c7e
2017-04-06 09:35:50 +02:00
Wladimir J. van der Laan
24d74332c2 Merge #10158: Add some more release notes for 0.14.1.
226a9cb Add some more release notes for 0.14.1. (Gregory Maxwell)

Tree-SHA512: ea74ae21f0a15556c877318833b998869a8a7378b40e168f84c80ee6c3433befa68ba52502d4d13ce2e5f14b8ad6b0a4075d67fea603d60ec94698f2a0606f6d
2017-04-06 09:35:13 +02:00
Gregory Maxwell
226a9cb35d Add some more release notes for 0.14.1.
This adds a blurb for the segwit signaling and fixes up the attribution.
2017-04-05 17:25:28 +00:00
Suhas Daftuar
39febb8c6d [qa] Fix mempool_packages.py for the 0.14 branch
The backport in d947afc0f7 of this
test was incorrect due to an api change in prioritisetransaction.
2017-04-05 08:30:51 -04:00
Wladimir J. van der Laan
df82ea914f doc: Remove release note about release notes 2017-04-05 13:01:32 +02:00
Wladimir J. van der Laan
920acbcca8 doc: Update release notes for 0.14.1 2017-04-05 11:52:16 +02:00
Wladimir J. van der Laan
47d24c85b7 Bump version to 0.14.1 v0.14.1rc1 2017-04-05 09:12:36 +02:00
Suhas Daftuar
ea060c7495 Bugfix: ancestor modifed fees were incorrect for descendants
If prioritisetransaction was called for a tx with in-mempool
descendants, the modified ancestor fee values for those descendants was
incorrect.

Github-Pull: #10144
Rebased-From: 9bef02e365
2017-04-05 08:37:12 +02:00
Suhas Daftuar
d947afc0f7 Test prioritisetransaction and ancestor fee state
There is already a similar test for descendant fee state.

Github-Pull: #10144
Rebased-From: ba7dd8bf6f
2017-04-05 08:37:12 +02:00
Alex Morcos
0e5133cb2e Make threshold for flushing more conservative.
Always leave a reasonable buffer of 50MB for usage from newly connected block (once over 50%) and increase the high water mark buffer to 200MB.

Github-Pull: #10133
Rebased-From: 1b55e07b7a
2017-04-05 08:23:02 +02:00
Alex Morcos
d6867689d1 Lower default memory footprint slightly
Github-Pull: #10133
Rebased-From: f33afd3b2b
2017-04-05 08:23:01 +02:00
Alex Morcos
ab864d3e49 Make pcoinsTip memory calculations consistent
Since we are more accurately measuring pcoinsTip peak usage at twice the current in dynamic usage, it makes sense to double the default (this will lead to the same effective usage and peak usage as previously).
We should also double the buffer used to avoid flushing if above 90% but still sufficient space remaining.

Github-Pull: #10133
Rebased-From: 5b95a190e8
2017-04-05 08:23:01 +02:00
Gregory Maxwell
a44a6a15f9 Check transaction count early in submitblock.
There is no point in even hashing a submitted block which doesn't have
 a coinbase transaction.

This also results in more useful error reporting on corrupted input.

Thanks to rawodb for the bug report.

Github-Pull: #10146
Rebased-From: 4f15ea102d
2017-04-04 09:01:03 +02:00
Gregory Maxwell
2fea10ad03 Make GetWitnessCommitmentIndex callable on blocks without a coinbase txn.
This isn't actually needed anywhere, but it's less brittle.

Github-Pull: #10146
Rebased-From: ada0caa165
2017-04-04 09:01:03 +02:00