Commit graph

8724 commits

Author SHA1 Message Date
Jeremy Rubin
aad4cb5059 Address ryanofsky feedback on CCheckQueue benchmarks. Eliminated magic numbers, fixed scoping of vectors (and memory movement component of benchmark). 2017-01-11 17:05:06 -05:00
Pieter Wuille
05950427d3
Merge #9507: Fix use-after-free in CTxMemPool::removeConflicts()
fe7e593 Fix use-after-free in CTxMemPool::removeConflicts() (Suhas Daftuar)
2017-01-11 13:59:00 -08:00
Michael Rotarius
54ee3fcb8f RPC help updated 2017-01-11 22:05:23 +01:00
Russell Yanofsky
918d1fb86b Return height of last block pruned by pruneblockchain RPC
Change suggested by Jonas Schnelli <dev@jonasschnelli.ch> in
https://github.com/bitcoin/bitcoin/pull/7871#discussion_r95577623
2017-01-11 14:25:32 -05:00
Pieter Wuille
df3637177a Update estimated transaction count data 2017-01-11 08:21:40 -08:00
Pieter Wuille
e356d9a758 Shorten variable names and switch to tx/s 2017-01-11 08:21:37 -08:00
Wladimir J. van der Laan
e2e624d9ce
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)
2017-01-11 14:26:00 +01:00
Wladimir J. van der Laan
bbf193fef0
Merge #9513: build: fix qt distdir builds (retry)
67ca130 build: fix for out-of-tree/distdir qt builds (Cory Fields)
2017-01-11 13:45:28 +01:00
Cory Fields
67ca130f73 build: fix for out-of-tree/distdir qt builds 2017-01-10 20:03:38 -05:00
Alex Morcos
116419e58d Don't overwrite validation state with corruption check
AcceptToMemoryPool has several classes of return false statements.
- return state.Invalid or state.DoS directly itself
- return false and set fMissingInputs (state is valid)
- return false and state is set by failed CheckTransaction
- return false and state is set by failed CheckInputs.

This commit patches the last case where the state variable was reused for additional calls to CheckInputs to identify witness stripping as cause of validation failure.  After this commit, it should be the case that if !fMissingInputs, state is always Invalid if AcceptToMemoryPool returns false.
2017-01-10 16:53:10 -05:00
Suhas Daftuar
fe7e593b24 Fix use-after-free in CTxMemPool::removeConflicts() 2017-01-10 15:21:21 -05:00
Matt Corallo
863edb45b9 Consider all (<100k memusage) txn for compact-block-extra-txn cache 2017-01-10 14:48:42 -05:00
Matt Corallo
7f8c8cab1e Consider all orphan txn for compact-block-extra-txn cache 2017-01-10 14:48:42 -05:00
Matt Corallo
93380c5247 Use replaced transactions in compact block reconstruction 2017-01-10 14:48:42 -05:00
Matt Corallo
1531652e02 Keep shared_ptrs to recently-replaced txn for compact blocks 2017-01-10 14:48:42 -05:00
Suhas Daftuar
766e8a40b4 [wallet] Add IsAllFromMe: true if all inputs are from wallet 2017-01-10 08:14:50 -05:00
Wladimir J. van der Laan
5754e0341b
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)
2017-01-10 14:14:50 +01:00
Russell Yanofsky
afffeea7d9 fixup! Add pruneblockchain RPC to enable manual block file pruning.
Extend pruneblockchain RPC to accept block timestamps as well as block indices.
2017-01-10 08:14:50 -05:00
mrbandrews
1fc4ec7bf2 Add pruneblockchain RPC to enable manual block file pruning. 2017-01-10 08:14:50 -05:00
Wladimir J. van der Laan
68eb56203b
qt: periodic translations update 2017-01-10 12:52:02 +01:00
John Newbery
4e7e2e16e4 Update RPC argument names 2017-01-10 12:04:54 +01:00
Wladimir J. van der Laan
481f289765 rpc: Named argument support for bitcoin-cli
Usage e.g.:

    $ src/bitcoin-cli -testnet -named echo arg0="dfdf"
    [
    "dfdf"
    ]

Argument conversion also works, for arguments thus flagged in the table in
`src/rpc/client.cpp`.

    $ src/bitcoin-cli -testnet -named echojson arg0="[1,2,3]"
    [
      [
        1,
        2,
        3
      ]
    ]

Unknown parameter (detected server-side):

    $ src/bitcoin-cli -testnet -named getinfo arg0="dfdf"
    error code: -8
    error message:
    Unknown named parameter arg0
2017-01-10 12:04:54 +01:00
MarcoFalke
98c80e374b
Merge #9496: Rename lambda argument name to prevent shadowing
7df5e38 Rename lambda argument name to prevent shadowing. (Pavel Janík)
2017-01-10 10:14:22 +01:00
John Newbery
0c50909347 testcases: explicitly specify transaction version 1 2017-01-09 16:42:45 -05:00
Matt Corallo
edded808fc Make ATMP optionally return the CTransactionRefs it replaced 2017-01-09 14:15:18 -05:00
Matt Corallo
c735540428 Move ORPHAN constants from validation.h to net_processing.h 2017-01-09 14:15:18 -05:00
Jeremy Rubin
9f03110f32 Add Basic CheckQueue Benchmark 2017-01-09 14:07:02 -05:00
Pavel Janík
7df5e382e5 Rename lambda argument name to prevent shadowing. 2017-01-09 19:31:19 +01:00
Pieter Wuille
07fd147b9f
Merge #9353: Add data() method to CDataStream (and use it)
5113474 wallet: Use CDataStream.data() (Wladimir J. van der Laan)
e2300ff bench: Use CDataStream.data() (Wladimir J. van der Laan)
adff950 dbwrapper: Use new .data() method of CDataStream (Wladimir J. van der Laan)
a2141e4 streams: Remove special cases for ancient MSVC (Wladimir J. van der Laan)
af4c44c streams: Add data() method to CDataStream (Wladimir J. van der Laan)
2017-01-09 08:47:47 -08:00
Pieter Wuille
12e3112794
Merge #9404: Smarter coordination of change and fee in CreateTransaction.
20449ef Don't overpay fee if we have selected new coins that result in a smaller transaction. (Alex Morcos)
42f5ce4 Try to reduce change output to make needed fee in CreateTransaction (Alex Morcos)
2017-01-09 08:37:35 -08:00
Pieter Wuille
8c87f175d3
Merge #9310: Assert FRESH validity in CCoinsViewCache::BatchWrite
dd44ea3 Check FRESH validity in CCoinsViewCache::BatchWrite (Russell Yanofsky)
2017-01-09 08:01:08 -08:00
Matt Corallo
e6111b2398 Make peer id logging consistent ("peer=%d" instead of "peer %d") 2017-01-07 16:19:34 -05:00
Douglas Roark
cc0589639c
Remove stray semicolon (Fix empty body warning)
Empty body introduced by commit #9319 should not be empty.
2017-01-07 09:49:14 -08:00
Pieter Wuille
46b249e578
Merge #9408: Allow shutdown during LoadMempool, dump only when necessary
325e400 [Qt] Do proper shutdown (Jonas Schnelli)
9479f8d Allow shutdown during LoadMempool, dump only when necessary (Jonas Schnelli)
2017-01-06 09:37:43 -08:00
Pieter Wuille
a55716abe5
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)
2017-01-06 08:37:47 -08:00
Alex Morcos
20449ef09e Don't overpay fee if we have selected new coins that result in a smaller transaction.
On repeated calls to SelectCoins we try to meet the fee necessary for the last transaction, the new fee required might be smaller, so increase our change by the difference if we can.
2017-01-06 10:18:56 -05:00
Alex Morcos
42f5ce4093 Try to reduce change output to make needed fee in CreateTransaction
Once we've picked coins and dummy-signed the transaction to calculate fee, if we don't have sufficient fee, then try to meet the fee by reducing change before resorting to picking new coins.
2017-01-06 10:12:05 -05:00
Pieter Wuille
f646275b90
Merge #9138: Improve fee estimation
44b64b9 Fix edge case with stale fee estimates (Alex Morcos)
78ae62d Add clarifying comments to fee estimation (Alex Morcos)
5fe0f47 Add extra logging to processBlock in fee estimation. (Alex Morcos)
dc008c4 Add IsCurrentForFeeEstimatation (Alex Morcos)
ebafdca Pass pointers to existing CTxMemPoolEntries to fee estimation (Alex Morcos)
d825838 Always update fee estimates on new blocks. (Alex Morcos)
6f06b26 rename bool to validFeeEstimate (Alex Morcos)
84f7ab0 Remove member variable hadNoDependencies from CTxMemPoolEntry (Alex Morcos)
60ac00d Don't track transactions at all during IBD. (Alex Morcos)
4df4479 Remove extraneous LogPrint from fee estimation (Alex Morcos)
2017-01-05 14:22:19 -08:00
Pieter Wuille
c252685aa5
Merge #8610: Share unused mempool memory with coincache
ba3cecf Share unused mempool memory with coincache (Pieter Wuille)
2017-01-05 13:52:24 -08:00
Pieter Wuille
a7d55c9338
Merge #9465: [Wallet] Do not perform ECDSA signing in the fee calculation inner loop.
b3d7b1c Wallet: Do not perform ECDSA in the fee calculation inner loop. (Gregory Maxwell)
2017-01-05 13:37:03 -08:00
Matt Corallo
c1ae4fcf7d Avoid holding cs_most_recent_block while calling ReadBlockFromDisk 2017-01-05 15:16:34 -05:00
Jonas Schnelli
fd7d8c7b35
Merge #9413: [CoinControl] Allow non-wallet owned change addresses
54f8026 [CoinControl] Allow non-wallet owned change addresses (Jonas Schnelli)
2017-01-05 21:00:06 +01:00
Wladimir J. van der Laan
a72f76ca3d
Merge #9312: Increase mempool expiry time to 2 weeks
5f0e27f Increase mempool expiry time to 2 weeks (Alex Morcos)
2017-01-05 20:32:57 +01:00
Gregory Maxwell
032ba3f066 RPC help documentation for addnode peerinfo.
Also adds a comment about the netgroup exclusion behavior.
2017-01-05 19:02:15 +00:00
Gregory Maxwell
50bd12ce0c Break addnode out from the outbound connection limits.
Previously addnodes were in competition with outbound connections
 for access to the eight outbound slots.

One result of this is that frequently a node with several addnode
 configured peers would end up connected to none of them, because
 while the addnode loop was in its two minute sleep the automatic
 connection logic would fill any free slots with random peers.
 This is particularly unwelcome to users trying to maintain links
 to specific nodes for fast block relay or purposes.

Another result is that a group of nine or more nodes which are
 have addnode configured towards each other can become partitioned
 from the public network.

This commit introduces a new limit of eight connections just for
 addnode peers which is not subject to any of the other connection
 limitations (including maxconnections).

The choice of eight is sufficient so that under no condition would
 a user find themselves connected to fewer addnoded peers than
 previously.  It is also low enough that users who are confused
 about the significance of more connections and have gotten too
 copy-and-paste happy will not consume more than twice the slot
 usage of a typical user.

Any additional load on the network resulting from this will likely
 be offset by a reduction in users applying even more wasteful
 workaround for the prior behavior.

The retry delays are reduced to avoid nodes sitting around without
 their added peers up, but are still sufficient to prevent overly
 aggressive repeated connections.  The reduced delays also make
 the system much more responsive to the addnode RPC.

Ban-disconnects are also exempted for peers added via addnode since
 the outbound addnode logic ignores bans.  Previously it would ban
 an addnode then immediately reconnect to it.

A minor change was also made to CSemaphoreGrant so that it is
 possible to re-acquire via an object whos grant was moved.
2017-01-05 19:02:09 +00:00
Gregory Maxwell
b3d7b1cbe7 Wallet: Do not perform ECDSA in the fee calculation inner loop.
Performing signing in the inner loop has terrible performance
 when many passes through are needed to complete the selection.

Signing before the algorithm is complete also gets in the way
 of correctly setting the fee (e.g. preventing over-payment when
 the fee required goes down on the final selection.)

Use of the dummy might overpay on the signatures by a couple bytes
 in uncommon cases where the signatures' DER encoding is smaller
 than the dummy: Who cares?
2017-01-05 18:15:01 +00:00
Matt Corallo
9eb67f5000 Ensure we meet the BIP 152 old-relay-types response requirements
In order to do this, we must call ActivateBestChain prior to
responding getdata requests for blocks which we announced using
compact blocks.

For getheaders responses we dont need code changes, but do note
that we must reset the bestHeaderSent so that the SendMessages call
re-announces the header in question.

While we could do something smarter for getblocks, calling
ActivateBestChain is simple and more obviously correct, instead of
doing something more similar to getheaders.

See-also the BIP clarifications at
https://github.com/bitcoin/bips/pull/486
2017-01-05 10:32:07 -05:00
Matt Corallo
5749a853b9 Cache most-recently-connected compact block 2017-01-05 10:32:07 -05:00
Matt Corallo
9eaec08dd2 Cache most-recently-announced block's shared_ptr 2017-01-05 10:32:07 -05:00
Matt Corallo
c802092142 Relay compact block messages prior to full block connection 2017-01-05 10:32:07 -05:00
Matt Corallo
6987219577 Add a CValidationInterface::NewPoWValidBlock callback 2017-01-05 10:32:07 -05:00
Jonas Schnelli
325e400f9b
[Qt] Do proper shutdown 2017-01-05 12:40:10 +01:00
Wladimir J. van der Laan
ce43630d1e
Merge #8747: [rpc] Fix transaction size comments and RPC help text.
d29505d Fix transaction size comments. Size now refers to virtual size as defined in BIP141. (jonnynewbs)
2017-01-05 12:06:42 +01:00
MarcoFalke
4cfd57d2e3
Merge #9281: Refactor: Remove using namespace <xxx> from bench/ & test/ sources
73f4119 Refactoring: Removed using namespace <xxx> from bench/ and test/ source files. (Karl-Johan Alm)
2017-01-05 11:32:05 +01:00
Wladimir J. van der Laan
9adb4e1a59 rpc: Argument name consistency
The meaning is clear from the context, and we're inconsistent here.
Also save typing when using named arguments.

- `bitcoinaddress` -> `address`
- `bitcoinprivkey` -> `privkey`
- `bitcoinpubkey` -> `pubkey`
2017-01-05 11:30:20 +01:00
Wladimir J. van der Laan
8d713f761b rpc: Named arguments for rawtransaction calls 2017-01-05 11:30:20 +01:00
Wladimir J. van der Laan
37a166f146 rpc: Named arguments for wallet calls 2017-01-05 11:30:20 +01:00
Wladimir J. van der Laan
78b684f2ac rpc: Named arguments for mining calls 2017-01-05 11:30:20 +01:00
Wladimir J. van der Laan
b8ebc595bb rpc: Named arguments for net calls
Also add a more descriptive message for `setnetworkactive`.
2017-01-05 11:30:20 +01:00
Wladimir J. van der Laan
fba1a6150c rpc: Named arguments for misc calls 2017-01-05 11:30:20 +01:00
Wladimir J. van der Laan
286ec08cb0 rpc: Add 'echo' call for testing
This hidden call simply returns what is passed in.
2017-01-05 11:30:20 +01:00
Wladimir J. van der Laan
495eb44a4f rpc: Named arguments for blockchain calls 2017-01-05 11:30:20 +01:00
Wladimir J. van der Laan
6f1c76ae14 rpc: Support named arguments
The [JSON-RPC specification](http://www.jsonrpc.org/specification) allows passing parameters as an Array, for by-position
arguments, or an Object, for by-name arguments.

This implements by-name arguments, but preserves full backwards compatibility. API using by-name arguments are
easier to extend, and easier to use (no need to guess which argument goes where).

Named are mapped to positions by a per-call structure, provided through the RPC command table.

Missing arguments will be replaced by null, except if at the end, then the argument is left out completely.

Currently calls fail (though not crash) on intermediate nulls, but this should be improved on a per-call basis later.
2017-01-05 11:30:20 +01:00
Wladimir J. van der Laan
cfe41d7a60
Merge #9387: [Refactor] RAII of libevent stuff using unique ptrs with deleters
05a55a6 Added EVENT_CFLAGS to test makefile to explicitly include libevent headers. (Karl-Johan Alm)
280a559 Added some simple tests for the RAII-style events. (Karl-Johan Alm)
7f7f102 Switched bitcoin-cli.cpp to use RAII unique pointers with deleters. (Karl-Johan Alm)
e5534d2 Added std::unique_ptr<> wrappers with deleters for libevent modules. (Karl-Johan Alm)
2017-01-05 11:11:17 +01:00
Wladimir J. van der Laan
c4b7d4f79c
Merge #9417: Do not evaluate hidden LogPrint arguments
407cdd6 Do not evaluate hidden LogPrint arguments (Pieter Wuille)
2017-01-05 10:49:00 +01:00
Wladimir J. van der Laan
48d7e0d5e4
Merge #9474: Mark the minconf parameter to move as ignored
ce370c1 Mark the minconf parameter to move as ignored (Pieter Wuille)
2017-01-05 10:29:26 +01:00
Wladimir J. van der Laan
7014506415
Merge #9475: Let autoconf detect presence of EVP_MD_CTX_new
0388afe Let autoconf detect presence of EVP_MD_CTX_new (Luke Dashjr)
2017-01-05 10:28:47 +01:00
Pieter Wuille
6dd81169fc Remove SIGCHECK_VERIFICATION_FACTOR 2017-01-04 13:18:49 -08:00
Pieter Wuille
3641141c8f Move tx estimation data out of CCheckPointData 2017-01-04 13:18:49 -08:00
Pieter Wuille
a4bac66cca [MOVEONLY] Move progress estimation out of checkpoints 2017-01-04 13:18:49 -08:00
Matt Corallo
180586fd44 Call AcceptBlock with the block's shared_ptr instead of CBlock& 2017-01-04 15:56:08 -05:00
Matt Corallo
80175472d1 Make CBlockIndex*es in net_processing const 2017-01-04 15:56:08 -05:00
Russell Yanofsky
dd44ea39bb Check FRESH validity in CCoinsViewCache::BatchWrite 2017-01-04 14:56:17 -05:00
Pieter Wuille
7dac1e5e9e
Merge #9107: Safer modify new coins
b50cd7a Fix dangerous condition in ModifyNewCoins. (Alex Morcos)
2017-01-04 11:56:17 -08:00
Luke Dashjr
0388afe69d Let autoconf detect presence of EVP_MD_CTX_new
Fixes LibreSSL compatibility
2017-01-04 18:37:37 +00:00
Alex Morcos
daec955fd6 Introduce -blockmintxfee 2017-01-04 13:24:19 -05:00
Alex Morcos
44b64b933d Fix edge case with stale fee estimates 2017-01-04 12:10:18 -05:00
Alex Morcos
78ae62d264 Add clarifying comments to fee estimation 2017-01-04 12:10:18 -05:00
Alex Morcos
5fe0f47aa7 Add extra logging to processBlock in fee estimation. 2017-01-04 12:10:18 -05:00
Alex Morcos
dc008c462f Add IsCurrentForFeeEstimatation
Make a more conservative notion of whether the node is caught up to the rest of the network and only count transactions as fee estimation data points if the node is caught up.
2017-01-04 12:10:17 -05:00
Alex Morcos
ebafdcabb1 Pass pointers to existing CTxMemPoolEntries to fee estimation 2017-01-04 12:09:34 -05:00
Alex Morcos
d825838e64 Always update fee estimates on new blocks.
All decisions about whether the transactions are valid data points are made at the time the transaction arrives. Updating on blocks all the time will now cause stale fee estimates to decay quickly when we restart a node.
2017-01-04 12:09:34 -05:00
Alex Morcos
6f06b268c1 rename bool to validFeeEstimate 2017-01-04 12:09:33 -05:00
Alex Morcos
84f7ab08d2 Remove member variable hadNoDependencies from CTxMemPoolEntry
Fee estimation can just check its own mapMemPoolTxs to determine the same information.  Note that now fee estimation for block processing must happen before those transactions are removed, but this shoudl be a speedup.
2017-01-04 12:09:33 -05:00
Alex Morcos
60ac00de85 Don't track transactions at all during IBD.
This was an oversight, where blocks and mempool tracking were ignored during IBD, but transactions that arrived during IBD but were included in blocks after IBD were not ignored.
2017-01-04 12:05:05 -05:00
Alex Morcos
4df44794c9 Remove extraneous LogPrint from fee estimation
Once priority estimation was removed, not all transactions in the mempool are tracked in the fee estimation mempool tracking.  So there is no error if a transaction is not found for removal.
2017-01-04 12:03:44 -05:00
Pieter Wuille
ce370c1811 Mark the minconf parameter to move as ignored 2017-01-04 08:48:21 -08:00
Alex Morcos
b50cd7a67e Fix dangerous condition in ModifyNewCoins.
We were marking coins FRESH before being sure they were not overwriting dirty undo data. This condition was never reached in existing code because undo data was always flushed before UpdateCoins was called with new transactions, but could have been exposed in an otherwise safe refactor.
Clarify in the comments the assumptions made in ModifyNewCoins.
Add ability to undo transactions to UpdateCoins unit test.
Thanks to Russ Yanofsky for suggestion on how to make logic clearer and fixing up the ccoins_modify_new test cases.
2017-01-04 11:20:42 -05:00
Wladimir J. van der Laan
123ea73624
Merge #9457: [qt] Select more files for translation
facf3e7 [qt] `make translate` (MarcoFalke)
fae26e8 [qt] Add more sources to translate (MarcoFalke)
2017-01-04 16:41:29 +01:00
Cory Fields
56212e20ac net: set message deserialization version when it's actually time to deserialize
We'll soon no longer have access to vRecvMsg, and this is more intuitive anyway.
2017-01-04 10:10:35 -05:00
Cory Fields
0e973d970a net: remove redundant max sendbuffer size check
This is left-over from before there was proper accounting. Hitting 2x the
sendbuffer size should not be possible.
2017-01-04 10:10:35 -05:00
Cory Fields
60425870d7 net: wait until the node is destroyed to delete its recv buffer
when vRecvMsg becomes a private buffer, it won't make sense to allow other
threads to mess with it anymore.
2017-01-04 09:29:14 -05:00
Cory Fields
f6315e07f9 net: only disconnect if fDisconnect has been set
These conditions are problematic to check without locking, and we shouldn't be
relying on the refcount to disconnect.
2017-01-04 09:29:14 -05:00
Cory Fields
5b4a8ac6d6 net: make GetReceiveFloodSize public
This will be needed so that the message processor can cork incoming messages
2017-01-04 09:29:14 -05:00
Cory Fields
e5bcd9c84f net: make vRecvMsg a list so that we can use splice() 2017-01-04 09:29:14 -05:00
Cory Fields
53ad9a133a net: fix typo causing the wrong receive buffer size
Surprisingly this hasn't been causing me any issues while testing, probably
because it requires lots of large blocks to be flying around.

Send/Recv corks need tests!
2017-01-04 09:29:14 -05:00
MarcoFalke
df1ab5b4d6
Merge #9470: qt: Set (count) placeholder in sendcoinsdialog to notranslate
388ea19 qt: Set (count) placeholder in sendcoinsdialog to notranslate (Wladimir J. van der Laan)
2017-01-04 15:19:00 +01:00
Wladimir J. van der Laan
388ea19bf2 qt: Set (count) placeholder in sendcoinsdialog to notranslate 2017-01-04 14:37:53 +01:00
MarcoFalke
c2ea1e6561
Merge #9401: Make rpcauth help message clearer, add example in example .conf
0513c70 Make rpcauth help message clearer, add example in example .conf (Gregory Sanders)
2017-01-04 13:00:12 +01:00
Wladimir J. van der Laan
d65a13b773
Merge #9396: Updated listsinceblock rpc documentation
3f67972 updated listsinceblock rpc docs (accraze)
2017-01-04 12:47:56 +01:00
Wladimir J. van der Laan
1ce7ede2a9
Merge #9288: Fix a bug if the min fee is 0 for FeeFilterRounder
f8d43b8 Avoid rollingMinimumFeeRate never being able to decay below half (Alex Morcos)
eab8e1b fix a bug if the min fee is 0 for FeeFilterRounder (Alex Morcos)
2017-01-04 12:33:56 +01:00
Wladimir J. van der Laan
869781c51c
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)
2017-01-04 12:23:10 +01:00
Wladimir J. van der Laan
d9ae1cefa0
Merge #9289: net: drop boost::thread_group
67ee4ec net: misc header cleanups (Cory Fields)
8b3159e net: make proxy receives interruptible (Cory Fields)
5cb0fce net: remove thread_interrupted catch (Cory Fields)
d3d7056 net: make net processing interruptible (Cory Fields)
0985052 net: make net interruptible (Cory Fields)
799df91 net: add CThreadInterrupt and InterruptibleSleep (Cory Fields)
7325b15 net: a few small cleanups before replacing boost threads (Cory Fields)
2017-01-04 12:21:53 +01:00
MarcoFalke
facf3e7608 [qt] make translate 2017-01-04 12:13:03 +01:00
MarcoFalke
fae26e8dfc [qt] Add more sources to translate 2017-01-04 12:12:43 +01:00
Wladimir J. van der Laan
c0ddd32bf6
Merge #9450: Increment MIT licence copyright header year on files modified in 2016
27765b6 Increment MIT Licence copyright header year on files modified in 2016 (isle2983)
2017-01-04 12:09:05 +01:00
Karl-Johan Alm
05a55a639b Added EVENT_CFLAGS to test makefile to explicitly include libevent headers. 2017-01-04 18:16:55 +09:00
Wladimir J. van der Laan
649cf5fe89
Merge #9462: [qt] Do not translate tilde character
fab6c5f [qt] Do not translate `~` (MarcoFalke)
2017-01-04 08:21:04 +01:00
Cory Fields
67ee4ec901 net: misc header cleanups 2017-01-03 17:56:21 -05:00
Cory Fields
8b3159ef0a net: make proxy receives interruptible 2017-01-03 17:56:21 -05:00
Cory Fields
5cb0fcee81 net: remove thread_interrupted catch
This is now a std::thread, so there's no hope of catching a boost interruption
point.
2017-01-03 17:56:21 -05:00
Cory Fields
d3d7056d2a net: make net processing interruptible 2017-01-03 17:56:20 -05:00
Cory Fields
0985052319 net: make net interruptible
Also now that net threads are interruptible, switch them to use std
threads/binds/mutexes/condvars.
2017-01-03 17:53:09 -05:00
Cory Fields
799df9115f net: add CThreadInterrupt and InterruptibleSleep 2017-01-03 17:53:09 -05:00
Cory Fields
7325b15566 net: a few small cleanups before replacing boost threads
- Drop the interruption point directly after the pnode allocation. This would
    be leaky if hit.
- Rearrange thread creation so that the socket handler comes first
2017-01-03 17:53:09 -05:00
Pieter Wuille
2a524b8e8f
Merge #8776: Wallet refactoring leading up to multiwallet
5394b39 Wallet: Split main logic from InitLoadWallet into CreateWalletFromFile (Luke Dashjr)
fb0c934 Wallet: Let the interval-flushing thread figure out the filename (Luke Dashjr)
2017-01-03 14:11:11 -08:00
Pieter Wuille
ce5c1f4aca
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)
2017-01-03 13:52:16 -08:00
MarcoFalke
fab6c5f46b [qt] Do not translate ~ 2017-01-03 17:51:12 +01:00
Jonas Schnelli
6dc4c43d32
Merge #8877: Qt RPC console: history sensitive-data filter, and saving input line when browsing history
8562792 GUI/RPCConsole: Include importmulti in history sensitive-command filter (Luke Dashjr)
ff77faf Qt/RPCConsole: Use RPCParseCommandLine to perform command filtering (Luke Dashjr)
a79598d Qt/Test: Make sure filtering sensitive data works correctly in nested commands (Luke Dashjr)
629cd42 Qt/RPCConsole: Teach RPCParseCommandLine how to filter out arguments to sensitive commands (Luke Dashjr)
e2d9213 Qt/RPCConsole: Make it possible to parse a command without executing it (Luke Dashjr)
1755c04 Qt/RPCConsole: Truncate filtered commands to just the command name, rather than skip it entirely in history (Luke Dashjr)
d80a006 Qt/RPCConsole: Add signmessagewithprivkey to list of commands filtered from history (Luke Dashjr)
afde12f Qt/RPCConsole: Refactor command_may_contain_sensitive_data function out of RPCConsole::on_lineEdit_returnPressed (Luke Dashjr)
de8980d Bugfix: Do not add sensitive information to history for real (Luke Dashjr)
9044908 Qt/RPCConsole: Don't store commands with potentially sensitive information in the history (Jonas Schnelli)
fc95daa Qt/RPCConsole: Save current command entry when browsing history (Jonas Schnelli)
2017-01-03 16:57:21 +01:00
Wladimir J. van der Laan
d45b21e2b3 qt: Fill in English numerusforms
minute/minutes block/blocks and so forth.
2017-01-03 15:03:37 +01:00
Wladimir J. van der Laan
a9d6151802 qt,wallet: Fix a few typos in messages
As reported by [yahoe.001](https://www.transifex.com/user/profile/yahoe.001/).
2017-01-03 15:01:46 +01:00
Jonas Schnelli
510c0d9c79
Merge #9446: SetMerkleBranch: remove unused code, remove cs_main lock requirement
9e351c9 SetMerkleBranch: remove unused code, remove cs_main lock requirement (Jonas Schnelli)
2017-01-03 09:31:57 +01:00
Karl-Johan Alm
73f41190b9 Refactoring: Removed using namespace <xxx> from bench/ and test/ source files. 2017-01-02 20:35:23 +09:00
Wladimir J. van der Laan
1d2d67692c
qt: Set transifex slug to 0.14
Also perform update of source translations.
2017-01-02 09:36:03 +01:00
isle2983
27765b6403 Increment MIT Licence copyright header year on files modified in 2016
Edited via:

$ contrib/devtools/copyright_header.py update .
2016-12-31 11:01:21 -07:00
Gregory Sanders
d4781ac6c2 Set peers as HB peers upon full block validation 2016-12-30 14:05:13 -05:00
Jonas Schnelli
9e351c9586
SetMerkleBranch: remove unused code, remove cs_main lock requirement 2016-12-30 10:37:13 +01:00
jnewbery
b7e144bb73 Add test cases to test new bitcoin-tx functionality
This commit add testcases to test the following functions in bitcoin-tx:

- add a pay to non-standard script output
- add a P2SH output
- add a P2WSH output
- add a P2WSH wrapped in a P2SH output
- add a pay to pub key output
- add a P2WPKH output
- add a P2WPKH wrapped in a P2SH output
- add a bare multisig output
- add a multisig in P2SH output
- add a multisig in a P2WSH output
- add a multisig in a P2WSH wrapped in as P2SH output
2016-12-29 15:40:40 +00:00
jnewbery
61a153443e Add all transaction output types to bitcoin-tx.
This commit enhances bitcoin-tx so all remaining standard TXO types can be created:

- Pay to Pub Key
- Multi-sig
  - bare multi-sig
  - multi-sig in Pay To Script Hash
  - multi-sig in Pay to Witness Script Hash
  - multi-sig in Pay to Witness Script Hash, wrapped in P2SH
- Pay to Witness Pub Key Hash
  - Pay to Witness Pub Key Hash, wrapped in P2SH
- Pay to Witness Script Hash
  - Pay to Witness Script Hash, wrapped in P2SH
2016-12-29 15:40:40 +00:00
Stanislas Marion
1814b089fb add p2sh and segwit options to bitcoin-tx outscript command 2016-12-29 15:40:40 +00:00
Luke Dashjr
8562792095 GUI/RPCConsole: Include importmulti in history sensitive-command filter 2016-12-29 11:47:58 +00:00
Luke Dashjr
ff77faf480 Qt/RPCConsole: Use RPCParseCommandLine to perform command filtering 2016-12-29 11:47:58 +00:00
Luke Dashjr
a79598ddf4 Qt/Test: Make sure filtering sensitive data works correctly in nested commands 2016-12-29 11:46:26 +00:00
Luke Dashjr
629cd42364 Qt/RPCConsole: Teach RPCParseCommandLine how to filter out arguments to sensitive commands 2016-12-29 11:46:26 +00:00
Luke Dashjr
e2d9213c32 Qt/RPCConsole: Make it possible to parse a command without executing it 2016-12-29 11:43:29 +00:00
Luke Dashjr
1755c04576 Qt/RPCConsole: Truncate filtered commands to just the command name, rather than skip it entirely in history 2016-12-29 11:43:29 +00:00
Luke Dashjr
d80a00660f Qt/RPCConsole: Add signmessagewithprivkey to list of commands filtered from history 2016-12-29 11:43:29 +00:00
Luke Dashjr
afde12f265 Qt/RPCConsole: Refactor command_may_contain_sensitive_data function out of RPCConsole::on_lineEdit_returnPressed 2016-12-29 11:43:29 +00:00
Luke Dashjr
de8980df9d Bugfix: Do not add sensitive information to history for real
Original code was missing braces, and short-circuited before checking everything after importprivkey
2016-12-29 11:43:29 +00:00
Jonas Schnelli
9044908636 Qt/RPCConsole: Don't store commands with potentially sensitive information in the history
Filters importprivkey, signrawtransaction, walletpassphrase, walletpassphrasechange, and encryptwallet
2016-12-29 11:43:28 +00:00
Jonas Schnelli
fc95daa97f Qt/RPCConsole: Save current command entry when browsing history
Shell-like, but doesn't store changed history commands until executing it.
2016-12-29 11:43:28 +00:00
MarcoFalke
dce853ef76
Merge #9436: test: Include tx data in EXTRA_DIST
fa558be test: Include tx data in EXTRA_DIST (MarcoFalke)
2016-12-28 12:58:20 +01:00
Pieter Wuille
2db4cbcc43
Merge #9349: Make CScript (and prevector) c++11 movable.
2ddfcfd Make CScript (and prevector) c++11 movable. (Pieter Wuille)
2016-12-27 11:04:14 -08:00
Pieter Wuille
7aa700424c
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)
2016-12-27 10:17:11 -08:00
MarcoFalke
fa558be2c1 test: Include tx data in EXTRA_DIST 2016-12-27 19:16:17 +01:00
MarcoFalke
dbc8a8c86a
Merge #9435: Removed unused variable in test, fixing warning.
35356b4 Remove unused variable in test, fixing warning. (Russell Yanofsky)
2016-12-27 18:51:36 +01:00
Matt Corallo
c2f61bebb1 Add a ForceSetArg method for testing 2016-12-27 13:52:07 +01:00
Russell Yanofsky
35356b40ef Remove unused variable in test, fixing warning.
Pointed out by Pavel Janík <Pavel@Janik.cz> in
https://github.com/bitcoin/bitcoin/pull/9308.
2016-12-27 07:35:39 -05:00
Suhas Daftuar
bd02bddb93 Release cs_main before processing cmpctblock as header 2016-12-26 05:34:54 -05:00
Suhas Daftuar
680b0c0138 Release cs_main before calling ProcessNewBlock (cmpctblock handling) 2016-12-26 05:30:26 -05:00
Matt Corallo
4e048142a5 Lock mapArgs/mapMultiArgs access in util 2016-12-24 11:29:33 -05:00
Matt Corallo
4cd373aea8 Un-expose mapArgs from utils.h 2016-12-24 11:29:33 -05:00
Matt Corallo
71fde5563b Get rid of mapArgs direct access in ZMQ construction 2016-12-24 11:10:39 -05:00
Matt Corallo
0cf86a6678 Introduce (and use) an IsArgSet accessor method 2016-12-23 21:30:16 -05:00
Matt Corallo
2b5f085ad1 Fix non-const mapMultiArgs[] access after init.
Swap mapMultiArgs for a const-reference to a _mapMultiArgs which is
only accessed in util.cpp
2016-12-23 21:30:15 -05:00
Matt Corallo
c8042a48f0 Remove arguments to ParseConfigFile 2016-12-23 21:30:15 -05:00
Pieter Wuille
407cdd6cb8 Do not evaluate hidden LogPrint arguments 2016-12-23 14:22:46 -08:00
Jonas Schnelli
54f80263fc
[CoinControl] Allow non-wallet owned change addresses 2016-12-23 16:07:37 +01:00
Jonas Schnelli
9479f8dfcf
Allow shutdown during LoadMempool, dump only when necessary 2016-12-23 14:19:38 +01:00
MarcoFalke
0f921e6a04
Merge #9406: Re-enable a blank v1 Tx JSON test
b371732 Re-enable a blank v1 Tx JSON test (Douglas Roark)
2016-12-23 12:07:16 +01:00
Pieter Wuille
ba3cecf5c4 Share unused mempool memory with coincache
If the mempool is not completely full, treat the difference between
the maximum size and the actual usage as available for the coin cache.

This also changes the early flush trigger from (usage > 0.9 * space)
to (usage > 0.9 * space && usage > space - 100MB). This means we're not
permanently leaving 10% of the space unused when the space is large.
2016-12-22 15:04:05 -08:00
accraze
3f67972654 updated listsinceblock rpc docs
fixes #8758
2016-12-22 09:28:03 -08:00
Anditto Heristyo
afe5b3f553 Added missing colons in when running help command 2016-12-22 13:26:03 +09:00
Pieter Wuille
2ddfcfd2d6 Make CScript (and prevector) c++11 movable.
Such moves are used when reallocating vectors that contain them,
for example.
2016-12-21 18:28:33 -08:00
Pieter Wuille
91335ba389 Remove unused MakeTransactionRef overloads 2016-12-21 18:18:28 -08:00
Pieter Wuille
6713f0f142 Make FillBlock consume txn_available to avoid shared_ptr copies 2016-12-21 18:18:28 -08:00
Pieter Wuille
62607d796c Convert COrphanTx to keep a CTransactionRef 2016-12-21 18:18:28 -08:00
Pieter Wuille
c44e4c467c Make AcceptToMemoryPool take CTransactionRef 2016-12-21 18:18:23 -08:00
Douglas Roark
b3717326c1 Re-enable a blank v1 Tx JSON test 2016-12-21 13:41:47 -08:00
Gregory Sanders
0513c707aa Make rpcauth help message clearer, add example in example .conf 2016-12-21 09:39:45 -05:00
Wladimir J. van der Laan
e8cfe1ee2d
Merge #8589: Inline CTxInWitness inside CTxIn
f6fb7ac Move CTxInWitness inside CTxIn (Pieter Wuille)
2016-12-21 14:04:06 +01:00
Wladimir J. van der Laan
0698639a38
Merge #9308: [test] Add CCoinsViewCache Access/Modify/Write tests
07df40b [test] Add CCoinsViewCache Access/Modify/Write tests (Russell Yanofsky)
2016-12-21 12:23:31 +01:00
Wladimir J. van der Laan
38e4887b46
Merge #8717: [WALLET] Addition of ImmatureCreditCached to MarkDirty()
a560378 [WALLET] Addition of ImmatureCreditCached to MarkDirty() (Spencer Lievens)
2016-12-21 11:30:03 +01:00
Wladimir J. van der Laan
03d85f6644
Merge #9393: build: Include cuckoocache header in Makefile
fa89581 build: Include cuckoocache header in Makefile (MarcoFalke)
2016-12-21 09:26:35 +01:00
Wladimir J. van der Laan
8dfe9fcb90
Merge #9376: Remove unused test files and references
9cb6624 Fix testfile reference (BtcDrak)
23208ac Remove unused test files and references (BtcDrak)
2016-12-21 09:26:11 +01:00
Karl-Johan Alm
280a5599eb Added some simple tests for the RAII-style events. 2016-12-21 16:49:21 +09:00
MarcoFalke
fa89581860 build: Include cuckoocache header in Makefile 2016-12-21 01:34:54 +01:00
BtcDrak
9cb66248dc
Fix testfile reference 2016-12-20 19:49:02 +00:00
Wladimir J. van der Laan
5a70572049
Merge #9262: Prefer coins that have fewer ancestors, sanity check txn before ATMP
cee1612 reduce number of lookups in TransactionWithinChainLimit (Gregory Sanders)
af9bedb Test for fix of txn chaining in wallet (Gregory Sanders)
5882c09 CreateTransaction: Don't return success with too-many-ancestor txn (Gregory Sanders)
0b2294a SelectCoinsMinConf: Prefer coins with fewer ancestors (Gregory Sanders)
2016-12-20 13:27:08 +01:00
Karl-Johan Alm
7f7f102b8d Switched bitcoin-cli.cpp to use RAII unique pointers with deleters. 2016-12-20 20:48:55 +09:00
Karl-Johan Alm
e5534d2f01 Added std::unique_ptr<> wrappers with deleters for libevent modules. 2016-12-20 20:45:08 +09:00
Wladimir J. van der Laan
3097ea40d7
Merge #9316: [wallet] Disable free transactions when relay is disabled
faf4ca8 [wallet] Disable free transactions when relay is disabled (MarcoFalke)
2016-12-20 11:29:59 +01:00
Gregory Sanders
cee16123f5 reduce number of lookups in TransactionWithinChainLimit 2016-12-19 20:51:34 -05:00
Wladimir J. van der Laan
7f72568e6b
Merge #9236: Fix races for strMiscWarning and fLargeWork*Found, make QT runawayException use GetWarnings
749be01 Move GetWarnings() into its own file. (Gregory Maxwell)
e3ba0ef Eliminate data races for strMiscWarning and fLargeWork*Found. (Gregory Maxwell)
c63198f Make QT runawayException call GetWarnings instead of directly access strMiscWarning. (Gregory Maxwell)
2016-12-19 12:40:01 +01:00
Wladimir J. van der Laan
a336d13a58
Merge #9311: Flush wallet after abandontransaction
0632939 Flush wallet after abandontransaction (Alex Morcos)
2016-12-19 09:43:54 +01:00
Wladimir J. van der Laan
db45ad8516
Merge #9329: [Qt] Console: allow empty arguments
390bd14 [Qt] Console: don't allow empty arguments when using the comma-syntax (Jonas Schnelli)
6a32c0f Qt/Test: Check handling of empty arguments in RPC debug console (Luke Dashjr)
89c8d2c [Qt] Console: allow empty arguments (Jonas Schnelli)
2016-12-19 09:08:20 +01:00
Wladimir J. van der Laan
a7f76512d9
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)
2016-12-19 08:52:42 +01:00
Wladimir J. van der Laan
b416095371
Merge #9354: Make fuzzer actually test CTxOutCompressor
5dd626a Make fuzzer actually test CTxOutCompressor (Pieter Wuille)
2016-12-19 08:50:27 +01:00
BtcDrak
23208ac81b
Remove unused test files and references 2016-12-19 07:43:12 +00:00
Wladimir J. van der Laan
79da3979b7
Merge #9366: Fix: OSX QT compile: use built-in swap if available, or defer
815f414 Uses built-in byte swap if available (Apple) and if bswap_XX is undefined. (Karl-Johan Alm)
2016-12-19 08:29:52 +01:00
Karl-Johan Alm
815f4148b2 Uses built-in byte swap if available (Apple) and if bswap_XX is undefined.
Defers to pre-defined version if found (e.g. protobuf). For protobuf case, the definitions are identical and thus include order should not affect results.
2016-12-17 12:27:00 +09:00
Pieter Wuille
b99a093afe
Merge #9346: Batch construct batches
ed58969 Batch construct batches (Pieter Wuille)
2016-12-16 12:32:33 -08:00
Wladimir J. van der Laan
8c7947e09f
Merge #9367: If we don't allow free txs, always send a fee filter (take 2)
fa16b8f If we don't allow free txs, always send a fee filter (take 2) (MarcoFalke)
2016-12-16 17:09:47 +01:00
MarcoFalke
fa16b8fdba If we don't allow free txs, always send a fee filter (take 2) 2016-12-16 14:27:55 +01:00
Wladimir J. van der Laan
c9e00591cd
Merge #9322: [qa] Don't set unknown rpcserialversion
fa615d3 [qa] Don't set unknown rpcserialversion (MarcoFalke)
80d073c Complain when unknown rpcserialversion is specified (Pieter Wuille)
2016-12-15 20:10:36 +01:00
Wladimir J. van der Laan
756374c522
Merge #9313: If we don't allow free txs, always send a fee filter
01fea7a If we don't allow free txs, always send a fee filter (Alex Morcos)
2016-12-15 19:45:54 +01:00
Pieter Wuille
5dd626a6d3 Make fuzzer actually test CTxOutCompressor 2016-12-15 09:18:31 -08:00
Suhas Daftuar
7017298eb2 Allow compactblock reconstruction when block is in flight 2016-12-15 11:47:04 -05:00
Wladimir J. van der Laan
5113474a91 wallet: Use CDataStream.data() 2016-12-15 17:34:59 +01:00
Wladimir J. van der Laan
e2300ff65e bench: Use CDataStream.data() 2016-12-15 17:30:17 +01:00