Commit graph

8335 commits

Author SHA1 Message Date
Wladimir J. van der Laan
f2d705629b
Merge #7551: Add importmulti RPC call
215caba Add consistency check to RPC call importmulti (Pedro Branco)
cb08fdb Add importmulti rpc call (Pedro Branco)
2016-10-20 09:04:32 +02:00
Jorge Timón
6f2f639cdf
Chainparams: Trivial: In AppInit2(), s/Params()/chainparams/ 2016-10-19 19:01:10 +02:00
Wladimir J. van der Laan
c587577356
Merge #8928: Fix init segfault where InitLoadWallet() calls ATMP before genesis
37aefff Fix init segfault where InitLoadWallet() calls ATMP before genesis (Matt Corallo)
2016-10-19 18:11:15 +02:00
Wladimir J. van der Laan
475d68252e
Merge #8927: Add script tests for FindAndDelete in pre-segwit and segwit scripts
acf853d Add script tests for FindAndDelete in pre-segwit and segwit scripts (Johnson Lau)
2016-10-19 17:41:34 +02:00
Jonas Schnelli
3e942a7060
Merge #8774: Qt refactors to better abstract wallet access
178cd88 Qt/splash: Specifically keep track of which wallet(s) we are connected to for later disconnecting (Luke Dashjr)
1880aeb Qt: Get the private key for signing messages via WalletModel (Luke Dashjr)
2016-10-19 17:08:17 +02:00
Wladimir J. van der Laan
5d2c8e524e
Merge #7948: RPC: augment getblockchaininfo bip9_softforks data
fc14609 RPC: augment getblockchaininfo bip9_softforks data (mruddy)
2016-10-19 16:41:59 +02:00
Pedro Branco
215caba4ed Add consistency check to RPC call importmulti 2016-10-19 15:17:42 +01:00
Wladimir J. van der Laan
f4d1fc259b wallet: Get rid of LockObject and UnlockObject calls in key.h
Replace these with vectors allocated from the secure allocator.

This avoids mlock syscall churn on stack pages, as well as makes
it possible to get rid of these functions.

Please review this commit and the previous one carefully that
no `sizeof(vectortype)` remains in the memcpys and memcmps usage
(ick!), and `.data()` or `&vec[x]` is used as appropriate instead of
&vec.
2016-10-19 16:17:33 +02:00
Wladimir J. van der Laan
999e4c91c2 wallet: Change CCrypter to use vectors with secure allocator
Change CCrypter to use vectors with secure allocator instead of buffers
on in the object itself which will end up on the stack. This avoids
having to call LockedPageManager to lock stack memory pages to prevent the
memory from being swapped to disk. This is wasteful.
2016-10-19 16:17:33 +02:00
Pedro Branco
cb08fdbf78 Add importmulti rpc call 2016-10-19 15:17:13 +01:00
mruddy
fc146095d2 RPC: augment getblockchaininfo bip9_softforks data 2016-10-19 09:08:39 -04:00
Jonas Schnelli
e7156ad61b
[RPC] pass HTTP basic authentication username to the JSONRequest object 2016-10-19 14:47:27 +02:00
Jonas Schnelli
69d1c25768
[RPC] Give RPC commands more information about the RPC request 2016-10-19 14:42:08 +02:00
Wladimir J. van der Laan
23c32a9694
rpc: Change JSONRPCRequest to JSONRPCRequestObj
This is more consistent with `JSONRPCReplyObj`.
2016-10-19 14:30:14 +02:00
Wladimir J. van der Laan
d736a6eb1f
Merge #8972: [Qt] make warnings label selectable (jonasschnelli)
ef0c9ee [Qt] make warnings label selectable (Jonas Schnelli)
2016-10-19 11:27:21 +02:00
Wladimir J. van der Laan
b2df292e34
Merge #8951: RPC/Mining: getblocktemplate: Update and fix formatting of help
59daa58 RPC/Mining: getblocktemplate: Update and fix formatting of help (Luke Dashjr)
2016-10-19 10:59:11 +02:00
Jonas Schnelli
ef0c9ee296 [Qt] make warnings label selectable 2016-10-19 10:51:59 +02:00
Luke Dashjr
59daa58d6a RPC/Mining: getblocktemplate: Update and fix formatting of help 2016-10-19 10:47:32 +02:00
Wladimir J. van der Laan
e44753c067
Merge #8949: Be more agressive in getting connections to peers with relevant services.
4630479 Make dnsseed's definition of acute need include relevant services. (Gregory Maxwell)
9583477 Be more aggressive in connecting to peers with relevant services. (Gregory Maxwell)
2016-10-19 10:43:54 +02:00
Wladimir J. van der Laan
1230890a6d
Merge #8936: Report NodeId in misbehaving debug
a1919ad Report NodeId in misbehaving debug (R E Broadley)
2016-10-19 10:35:44 +02:00
Gregory Maxwell
4630479135 Make dnsseed's definition of acute need include relevant services.
We normally prefer to connect to peers offering the relevant services.

If we're not connected to enough peers with relevant services, we
 probably don't know about them and could use dnsseed's help.
2016-10-19 08:07:02 +00:00
Wladimir J. van der Laan
05998da5a7
Merge #8865: Decouple peer-processing-logic from block-connection-logic
a9aec5c Use BlockChecked signal to send reject messages from mapBlockSource (Matt Corallo)
7565e03 Remove SyncWithWallets wrapper function (Matt Corallo)
12ee1fe Always call UpdatedBlockTip, even if blocks were only disconnected (Matt Corallo)
f5efa28 Remove CConnman parameter from ProcessNewBlock/ActivateBestChain (Matt Corallo)
fef1010 Use CValidationInterface from chain logic to notify peer logic (Matt Corallo)
aefcb7b Move net-processing logic definitions together in main.h (Matt Corallo)
0278fb5 Remove duplicate nBlocksEstimate cmp (we already checked IsIBD()) (Matt Corallo)
87e7d72 Make validationinterface.UpdatedBlockTip more verbose (Matt Corallo)
2016-10-18 22:48:51 +02:00
Wladimir J. van der Laan
74dc388ab5
Merge #8873: Add microbenchmarks to profile more code paths.
18dacf9 Add microbenchmarks to profile more code paths. (Russell Yanofsky)
2016-10-18 22:03:52 +02:00
Russell Yanofsky
18dacf9bd2 Add microbenchmarks to profile more code paths.
The new benchmarks exercise script validation, CCoinsDBView caching,
mempool eviction, and wallet coin selection code.

All of the benchmarks added here are extremely simple and don't
necessarily mirror common real world conditions or interesting
performance edge cases. Details about how specific benchmarks can be
improved are noted in comments.

Github-Issue: #7883
2016-10-18 21:59:05 +02:00
Wladimir J. van der Laan
7f71a3c591
Merge #6996: Add preciousblock RPC
5805ac8 Add preciousblock tests (Pieter Wuille)
5127c4f Add preciousblock RPC (Pieter Wuille)
2016-10-18 21:36:38 +02:00
Matt Corallo
72ca7d924e Don't hold cs_main when calling ProcessNewBlock from a cmpctblock 2016-10-18 15:24:59 -04:00
Wladimir J. van der Laan
0b5a997acf
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)
2016-10-18 21:19:54 +02:00
Wladimir J. van der Laan
744d2652dd
Merge #8223: [c++11] Use std::unique_ptr for block creation.
9fce062 [c++11] Use std::unique_ptr for block creation. (Daniel Kraft)
2016-10-18 21:16:08 +02:00
Wladimir J. van der Laan
e10af96cf4
Merge #8287: [wallet] Set fLimitFree = true
fa8b02d [rpc] rawtx: Prepare fLimitFree to make it an option (MarcoFalke)
fa28bfa [wallet] Set fLimitFree = true (MarcoFalke)
2016-10-18 21:05:07 +02:00
Wladimir J. van der Laan
cdfb7755a6
Merge #8914: Kill insecure_random and associated global state
5eaaa83 Kill insecure_random and associated global state (Wladimir J. van der Laan)
2016-10-18 15:44:57 +02:00
Wladimir J. van der Laan
f628d9a29a
Merge #8925: qt: Display minimum ping in debug window.
1724a40 Display minimum ping in debug window. (R E Broadley)
2016-10-18 15:16:39 +02:00
Wladimir J. van der Laan
6e094e54f7
Merge #8845: Don't return the address of a P2SH of a P2SH
d51f182 Don't return the address of a P2SH of a P2SH. (jnewbery)
2016-10-18 14:33:26 +02:00
Wladimir J. van der Laan
dd07c6b2cc
Merge #8921: RPC: Chainparams: Remove Chainparams::fTestnetToBeDeprecatedFieldRPC
b26a7b5 RPC: Chainparams: Remove Chainparams::fTestnetToBeDeprecatedFieldRPC (Jorge Timón)
2016-10-18 13:31:59 +02:00
Jorge Timón
b26a7b5377
RPC: Chainparams: Remove Chainparams::fTestnetToBeDeprecatedFieldRPC 2016-10-18 13:17:38 +02:00
Wladimir J. van der Laan
614d522c3e
Merge #8932: Allow bitcoin-tx to create v2 transactions
b0aea80 Sync bitcoin-tx with tx version policy (BtcDrak)
2016-10-18 11:45:07 +02:00
Wladimir J. van der Laan
cd761fb85a
Merge #8944: Remove bogus assert on number of oubound connections.
1ab21cf Remove bogus assert on number of oubound connections. (Matt Corallo)
2016-10-18 10:43:52 +02:00
Wladimir J. van der Laan
47ace4240a
Merge #8918: Qt: Add "Copy URI" to payment request context menu
21f5a63 Qt: Add "Copy URI" to payment request context menu (Luke Dashjr)
2016-10-18 10:37:17 +02:00
R E Broadley
a1919adab0 Report NodeId in misbehaving debug 2016-10-18 07:17:09 +07:00
Gregory Maxwell
9583477288 Be more aggressive in connecting to peers with relevant services.
Only allow skipping relevant services until there are four outbound
 connections up.

This avoids quickly filling up with peers lacking the relevant
 services when addrman has few or none of them.
2016-10-17 23:08:52 +00:00
Matt Corallo
1ab21cf344 Remove bogus assert on number of oubound connections.
This value can be significantly higher if the users uses addnode
2016-10-17 16:29:03 -04:00
Christian Decker
2449e12681 My DNS seed supports filtering
Currently supports filtering by any combination of the 4 least
significant bits.
2016-10-17 13:33:53 -04:00
Matt Corallo
ffb4713920 Add x9 service bit support to dnsseed.bluematt.me 2016-10-17 13:33:52 -04:00
Matt Corallo
504c72ad34 Comment that most dnsseeds only support some service bits combos 2016-10-17 13:33:25 -04:00
Wladimir J. van der Laan
c6b959efcf
Merge #8937: Define start and end time for segwit deployment
f9c23de Define start and end time for segwit deployment (Pieter Wuille)
2016-10-17 16:49:12 +02:00
Pieter Wuille
3ac6de0a04 Align constant names for maximum compact block / blocktxn depth 2016-10-17 16:46:30 +02:00
instagibbs
b2e93a343e Add cmpctblock to debug help list 2016-10-17 16:44:57 +02:00
Matt Corallo
fe998e962d More agressively filter compact block requests
Unit test adaptations by Pieter Wuille.
2016-10-17 16:44:57 +02:00
Matt Corallo
02a337defd Dont remove a "preferred" cmpctblock peer if they provide a block 2016-10-17 16:44:57 +02:00
Pieter Wuille
f9c23dea97 Define start and end time for segwit deployment 2016-10-17 14:15:57 +02:00
Wladimir J. van der Laan
53133c1c04
Merge #8499: Add several policy limits and disable uncompressed keys for segwit scripts
67d6ee1 remove redundant tests in p2p-segwit.py (Johnson Lau)
9260085 test segwit uncompressed key fixes (Johnson Lau)
248f3a7 Fix ismine and addwitnessaddress: no uncompressed keys in segwit (Pieter Wuille)
b811124 [qa] Add tests for uncompressed pubkeys in segwit (Suhas Daftuar)
9f0397a Make test framework produce lowS signatures (Johnson Lau)
4c0c25a Require compressed keys in segwit as policy and disable signing with uncompressed keys for segwit scripts (Johnson Lau)
3ade2f6 Add standard limits for P2WSH with tests (Johnson Lau)
2016-10-17 13:27:05 +02:00
Wladimir J. van der Laan
5eaaa83ac1 Kill insecure_random and associated global state
There are only a few uses of `insecure_random` outside the tests.
This PR replaces uses of insecure_random (and its accompanying global
state) in the core code with an FastRandomContext that is automatically
seeded on creation.

This is meant to be used for inner loops. The FastRandomContext
can be in the outer scope, or the class itself, then rand32() is used
inside the loop. Useful e.g. for pushing addresses in CNode or the fee
rounding, or randomization for coin selection.

As a context is created per purpose, thus it gets rid of
cross-thread unprotected shared usage of a single set of globals, this
should also get rid of the potential race conditions.

- I'd say TxMempool::check is not called enough to warrant using a special
  fast random context, this is switched to GetRand() (open for
  discussion...)

- The use of `insecure_rand` in ConnectThroughProxy has been replaced by
  an atomic integer counter. The only goal here is to have a different
  credentials pair for each connection to go on a different Tor circuit,
  it does not need to be random nor unpredictable.

- To avoid having a FastRandomContext on every CNode, the context is
  passed into PushAddress as appropriate.

There remains an insecure_random for test usage in `test_random.h`.
2016-10-17 13:08:35 +02:00
BtcDrak
b0aea80579
Sync bitcoin-tx with tx version policy 2016-10-16 23:22:15 +01:00
Johnson Lau
9260085377 test segwit uncompressed key fixes 2016-10-17 00:34:37 +08:00
Pieter Wuille
248f3a76a8 Fix ismine and addwitnessaddress: no uncompressed keys in segwit 2016-10-17 00:34:37 +08:00
Johnson Lau
4c0c25a604 Require compressed keys in segwit as policy and disable signing with uncompressed keys for segwit scripts 2016-10-16 23:53:35 +08:00
Johnson Lau
3ade2f64cf Add standard limits for P2WSH with tests 2016-10-16 23:53:35 +08:00
Matt Corallo
37aefff5fc Fix init segfault where InitLoadWallet() calls ATMP before genesis 2016-10-15 13:19:16 -04:00
Johnson Lau
acf853df91 Add script tests for FindAndDelete in pre-segwit and segwit scripts 2016-10-16 00:30:50 +08:00
R E Broadley
1724a405c9 Display minimum ping in debug window. 2016-10-15 20:43:11 +07:00
Wladimir J. van der Laan
49c5910372
Merge #8880: protocol.h: Move MESSAGE_START_SIZE into CMessageHeader
1df3111 protocol.h: Make enums in GetDataMsg concrete values (Wladimir J. van der Laan)
2c09a52 protocol.h: Move MESSAGE_START_SIZE into CMessageHeader (Wladimir J. van der Laan)
f9bd92d version.h: s/shord/short/ in comment (Wladimir J. van der Laan)
2016-10-15 10:27:46 +02:00
Wladimir J. van der Laan
088d1f4413
Merge #8906: [qt] sync-overlay: Don't show progress twice
fafeec3 [qt] sync-overlay: Don't show progress twice (MarcoFalke)
2016-10-15 09:44:20 +02:00
Luke Dashjr
21f5a6364d Qt: Add "Copy URI" to payment request context menu 2016-10-13 23:27:43 +00:00
Wladimir J. van der Laan
e2b8c394d6
Merge #8817: update bitcoin-tx to output witness data
4408558 Update bitcoin-tx to output witness data. (jonnynewbs)
2016-10-13 18:56:43 +02:00
Wladimir J. van der Laan
8d46429c83
Merge #8911: qt: Translate all files, even if wallet disabled
8aed5f6 qt: Translate all files, even if wallet disabled (Wladimir J. van der Laan)
2016-10-13 10:30:38 +02:00
Wladimir J. van der Laan
8aed5f6c23 qt: Translate all files, even if wallet disabled
This passes all QT cpp files to the lupdate executable which extracts
translations, no matter what conditional functionality is enabled.
2016-10-11 17:46:46 +02:00
MarcoFalke
fafeec3cf2 [qt] sync-overlay: Don't show progress twice
* Don't show integer progress in progress bar. (Already shown in front
  of progress bar)

* Also, use non-static method to get current msecs
2016-10-10 17:07:43 +02:00
Jonas Schnelli
bf8e68aba6
Merge #8821: [qt] sync-overlay: Don't block during reindex
fa85e86 [qt] sync-overlay: Don't show estimated number of headers left (MarcoFalke)
faa4de2 [qt] sync-overlay: Don't block during reindex (MarcoFalke)
2016-10-10 16:52:44 +02:00
Pieter Wuille
6429cfa8a7
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)
2016-10-10 13:16:40 +02:00
MarcoFalke
e66cc1d58e
Merge #8881: Add some verbose logging to bitcoin-util-test.py
621441a add verbose mode to bitcoin-util-test.py (jnewbery)
2016-10-08 21:23:42 +02:00
Jonas Schnelli
b2fec4e9a1
Merge #8885: gui: fix ban from qt console
cb78c60 gui: fix ban from qt console (Cory Fields)
2016-10-08 16:43:15 +02:00
jnewbery
621441a7a7 add verbose mode to bitcoin-util-test.py 2016-10-05 09:16:08 -04:00
jonnynewbs
4408558843 Update bitcoin-tx to output witness data. 2016-10-05 09:00:34 -04:00
jnewbery
d51f182461 Don't return the address of a P2SH of a P2SH. 2016-10-05 08:58:18 -04:00
Wladimir J. van der Laan
223f4c2dd5
Merge #8884: Bugfix: Trivial: RPC: getblockchaininfo help: pruneheight is the lowest, not highest, block
a78e542 Bugfix: Trivial: RPC: getblockchaininfo help: pruneheight is the lowest, not highest, block (Luke Dashjr)
2016-10-05 14:44:07 +02:00
Wladimir J. van der Laan
1df311118d protocol.h: Make enums in GetDataMsg concrete values
This concretizes the numbers and adds a comment to make it clear that
these numbers are fixed by the protocol, and may avoid people forgetting
to claim numbers in the future (e.g. issue #8500).

Also gets rid of a weird unused `MSG_TYPE_MAX` in the middle of the
enumeration (thanks @paveljanik for noticing).
2016-10-05 13:32:20 +02:00
Wladimir J. van der Laan
f92805025d
Merge #8879: [doc] Rework docs
eeeebdd [doc] Rework docs (MarcoFalke)
2016-10-05 05:07:19 +02:00
Cory Fields
cb78c60534 gui: fix ban from qt console
Rather than doing a circle and re-resolving the node's IP, just use the one
from nodestats directly.

This requires syncing the addr field from CNode.
2016-10-04 19:43:53 -04:00
Luke Dashjr
a78e5428ac Bugfix: Trivial: RPC: getblockchaininfo help: pruneheight is the lowest, not highest, block 2016-10-04 22:22:07 +00:00
Luke Dashjr
178cd887ec Qt/splash: Specifically keep track of which wallet(s) we are connected to for later disconnecting 2016-10-04 20:30:10 +00:00
Luke Dashjr
1880aeb033 Qt: Get the private key for signing messages via WalletModel 2016-10-04 20:30:10 +00:00
Matt Corallo
a9aec5c24d Use BlockChecked signal to send reject messages from mapBlockSource 2016-10-04 13:54:29 -04:00
Matt Corallo
7565e03b96 Remove SyncWithWallets wrapper function 2016-10-04 13:53:04 -04:00
Matt Corallo
12ee1fe018 Always call UpdatedBlockTip, even if blocks were only disconnected 2016-10-04 13:52:57 -04:00
Matt Corallo
f5efa28393 Remove CConnman parameter from ProcessNewBlock/ActivateBestChain 2016-10-04 13:51:32 -04:00
Matt Corallo
fef1010199 Use CValidationInterface from chain logic to notify peer logic
This adds a new CValidationInterface subclass, defined in main.h,
to receive notifications of UpdatedBlockTip and use that to push
blocks to peers, instead of doing it directly from
ActivateBestChain.
2016-10-04 13:49:44 -04:00
Matt Corallo
aefcb7b70c Move net-processing logic definitions together in main.h 2016-10-04 13:36:11 -04:00
Pieter Wuille
6aa28abf53 Use cmpctblock type 2 for segwit-enabled transfer
Contains version negotiation logic by Matt Corallo and bugfixes by
Suhas Daftuar.
2016-10-04 19:10:41 +02:00
Matt Corallo
0278fb5f48 Remove duplicate nBlocksEstimate cmp (we already checked IsIBD()) 2016-10-04 12:35:07 -04:00
Matt Corallo
87e7d72807 Make validationinterface.UpdatedBlockTip more verbose
In anticipation of making all the callbacks out of block processing
flow through it. Note that vHashes will always have something in it
since pindexFork != pindexNewTip.
2016-10-04 12:35:07 -04:00
Matt Corallo
06128da751 Make GetFetchFlags always request witness objects from witness peers
This fixes a bug where we might (in exceedingly rare circumstances)
accidentally ban a node for sending us the first (potentially few)
segwit blocks in non-segwit mode.
2016-10-04 18:24:10 +02:00
MarcoFalke
eeeebdd3cb [doc] Rework docs
* Minor formatting such as adjusting links
* Move sections of `doc/multiwallet-qt.md` to the source code and delete
  the file, as it is outdated
* Fix typo in the release notes
* Amend release process to mention update of BLOCK_CHAIN_SIZE
2016-10-04 13:27:38 +02:00
Wladimir J. van der Laan
2c09a5209a protocol.h: Move MESSAGE_START_SIZE into CMessageHeader
Also move the enum to the top, and remove a deceptive TODO
comment.
2016-10-04 11:12:55 +00:00
Wladimir J. van der Laan
f9bd92d235 version.h: s/shord/short/ in comment 2016-10-04 11:11:21 +00:00
Wladimir J. van der Laan
d7615af34e
Merge #8848: Add NULLDUMMY verify flag in bitcoinconsensus.h
2fa0063 Add NULLDUMMY verify flag in bitcoinconsensus.h (Johnson Lau)
2016-10-04 12:18:16 +02:00
Wladimir J. van der Laan
d93f0c6184
Merge #8862: Fix a few cases where messages were sent after requested disconnect
905bc68 net: fix a few cases where messages were sent rather than dropped upon disconnection (Cory Fields)
2016-10-04 12:13:50 +02:00
Wladimir J. van der Laan
7dce175f5d
Merge #8850: Implement (begin|end)_ptr in C++11 and add deprecation comment
f00705a serialize: Deprecate `begin_ptr` / `end_ptr` (Wladimir J. van der Laan)
47314e6 prevector: add C++11-like data() method (Wladimir J. van der Laan)
2016-10-04 11:08:06 +02:00
jnewbery
5f274a1749 log block size and weight correctly. 2016-10-03 13:55:26 -04:00
Wladimir J. van der Laan
a7e5cbb209
Merge #8856: Globals: Decouple GetConfigFile and ReadConfigFile from global mapArgs
3450c18 Globals: Decouple GetConfigFile and ReadConfigFile from global mapArgs (Jorge Timón)
2016-10-03 15:25:09 +02:00
Wladimir J. van der Laan
eafc5f4fae
Merge #8863: univalue: Pull subtree
2ca7faa Squashed 'src/univalue/' changes from daf1285..16a1f7f (MarcoFalke)
2016-10-03 08:45:13 +02:00
Wladimir J. van der Laan
f00705ae7f
serialize: Deprecate begin_ptr / end_ptr
Implement `begin_ptr` and `end_ptr` in terms of C++11 code,
and add a comment that they are deprecated.

Follow-up to developer notes update in 654a211622.
2016-10-02 09:50:25 +02:00
Cory Fields
905bc68d05 net: fix a few cases where messages were sent rather than dropped upon disconnection
75ead758 turned these into crashes in the event of a handshake failure, most
notably when a peer does not offer the expected services.

There are likely other cases that these assertions will find as well.
2016-10-01 19:13:10 -04:00
Wladimir J. van der Laan
1c80386bce rpc: Generate auth cookie in hex instead of base64
Base64 contains '/', and the '/' character in credentials is problematic
for AuthServiceProxy which represents the RPC endpoint as an URI with
user and password embedded.

Closes #8399.
2016-10-01 16:57:25 +02:00
Jorge Timón
3450c18a12
Globals: Decouple GetConfigFile and ReadConfigFile from global mapArgs 2016-10-01 08:12:19 +02:00
MarcoFalke
e757115164 Merge commit '2ca7faab4205822b06dc2ab2bbda0a9a70fce7e0' into HEAD 2016-09-30 19:58:11 +02:00
Wladimir J. van der Laan
940748b4b0
Merge #8851: [wallet] Move key derivation logic from GenerateNewKey to DeriveNewChildKey (pstratem)
e198c52 Move key derivation logic from GenerateNewKey to DeriveNewChildKey (Patrick Strateman)
2016-09-30 19:56:03 +02:00
Patrick Strateman
e198c521d3 Move key derivation logic from GenerateNewKey to DeriveNewChildKey 2016-09-30 19:11:00 +02:00
Wladimir J. van der Laan
fb24d7eeb4
Merge #8813: bitcoind: Daemonize using daemon(3)
a92bf4a bitcoind: Daemonize using daemon(3) (Matthew King)
2016-09-30 18:19:31 +02:00
Wladimir J. van der Laan
47314e6daa prevector: add C++11-like data() method
This returns a pointer to the beginning of the vector's data.
2016-09-30 17:19:51 +02:00
Wladimir J. van der Laan
9bc6a6bd7b
Merge #8822: net: Consistent checksum handling
305087b net: Hardcode protocol sizes and use fixed-size types (Wladimir J. van der Laan)
41e58fa net: Consistent checksum handling (Wladimir J. van der Laan)
2016-09-30 17:10:58 +02:00
Johnson Lau
2fa0063c26 Add NULLDUMMY verify flag in bitcoinconsensus.h 2016-09-30 23:09:19 +08:00
Wladimir J. van der Laan
ef0801bd13
Merge #8830: [test] Add option to run bitcoin-util-test.py manually
b82f493 Add option to run bitcoin-util-test.py manually (jnewbery)
2016-09-30 17:03:21 +02:00
Wladimir J. van der Laan
90adfabd5d
Merge #8836: bitcoin-util-test.py should fail if the output file is empty
da94697 bitcoin-util-test.py should fail if the output file is empty (jnewbery)
2016-09-30 12:36:02 +02:00
Wladimir J. van der Laan
f560d9564f
Merge #8826: Do not include env_win.cc on non-Windows systems
7e5fd71 Do not include env_win.cc on non-Windows systems (Pavel Janík)
2016-09-29 17:27:28 +02:00
jnewbery
da94697708 bitcoin-util-test.py should fail if the output file is empty 2016-09-29 10:16:56 -04:00
Wladimir J. van der Laan
9b94cca41f
Merge #8658: Remove unused statements in serialization
64d9507 [WIP] Remove unused statement in serialization (Pavel Janík)
2016-09-29 15:00:22 +02:00
jnewbery
b82f493938 Add option to run bitcoin-util-test.py manually 2016-09-29 08:54:56 -04:00
MarcoFalke
fa85e860a9 [qt] sync-overlay: Don't show estimated number of headers left 2016-09-29 13:24:29 +02:00
MarcoFalke
8ca69a2a88
Merge #8829: Add bitcoin-tx JSON tests
54e5d7c Add bitcoin-tx JSON tests (jnewbery)
2016-09-29 10:50:05 +02:00
Wladimir J. van der Laan
7d563cc16d
Merge #8832: [rpc] throw JSONRPCError when utxo set can not be read
fa05cfd [rpc] throw JSONRPCError when utxo set can not be read (MarcoFalke)
2016-09-29 08:12:55 +02:00
Wladimir J. van der Laan
d675984fdf
Merge #8784: Copyright headers for build scripts
0c4e6ce Add MIT license to build-aux/m4 scripts (Luke Dashjr)
3f8a5d8 Trivial: build-aux/m4/l_atomic: Fix typo (Luke Dashjr)
3b4b6dc Add MIT license to autogen.sh and share/genbuild.sh (Luke Dashjr)
f4dffdd Add MIT license to Makefiles (Luke Dashjr)
2016-09-29 07:58:08 +02:00
MarcoFalke
fa05cfdf25 [rpc] throw JSONRPCError when utxo set can not be read 2016-09-28 21:00:58 +02:00
jnewbery
54e5d7c1b8 Add bitcoin-tx JSON tests 2016-09-28 13:38:42 -04:00
Pavel Janík
7e5fd7198e Do not include env_win.cc on non-Windows systems 2016-09-28 16:40:20 +02:00
Wladimir J. van der Laan
305087bdf6 net: Hardcode protocol sizes and use fixed-size types
The P2P network uses a fixed protocol, these sizes shouldn't change
based on what happens to be the architecture.
2016-09-28 15:33:45 +02:00
Wladimir J. van der Laan
41e58faf04 net: Consistent checksum handling
In principle, the checksums of P2P packets are simply 4-byte blobs which
are the first four bytes of SHA256(SHA256(payload)).

Currently they are handled as little-endian 32-bit integers half of the
time, as blobs the other half, sometimes copying the one to the other,
resulting in somewhat confused code.

This PR changes the handling to be consistent both at packet creation
and receiving, making it (I think) easier to understand.
2016-09-28 12:44:13 +02:00
Wladimir J. van der Laan
14b7b3fb9f
Merge #8814: [wallet, policy] ParameterInteraction: Don't allow 0 fee
fa4bfb4 [wallet, policy] ParameterInteraction: Don't allow 0 fee (MarcoFalke)
2016-09-28 08:09:42 +02:00
Johnson Lau
e41bd449ab Add policy: null signature for failed CHECK(MULTI)SIG 2016-09-27 23:40:59 +08:00
Wladimir J. van der Laan
5a4f6d72e6
Merge #8526: Make non-minimal OP_IF/NOTIF argument non-standard for P2WSH
c72c5b1 Make non-minimal OP_IF/NOTIF argument non-standard for P2WSH (Johnson Lau)
2016-09-27 17:10:15 +02:00
Wladimir J. van der Laan
e9d5f6fec8
Merge #8357: [mempool] Fix relaypriority calculation error
94a34a5 Fix relaypriority calculation error (maiiz)
2016-09-27 16:33:32 +02:00
Pavel Janík
4731cab8fb Do not shadow variables 2016-09-27 09:25:15 +02:00
MarcoFalke
faa4de2a2a [qt] sync-overlay: Don't block during reindex 2016-09-26 22:29:45 +02:00
MarcoFalke
2f71490d21
Merge #8805: Trivial: Grammar and capitalization
c9ce17b Trivial: Grammar and capitalization (Derek Miller)
2016-09-26 22:27:45 +02:00
Wladimir J. van der Laan
8f1fbf36a7
Merge #8796: [trivial] fix mempool comment (outdated by BIP125)
c14ffd5 [trivial] fix mempool comment (outdated by BIP125) (jonnynewbs)
2016-09-26 15:11:02 +02:00
Wladimir J. van der Laan
dd20ed1223
Merge #8780: [rpc] Deprecate getinfo
fa6e71b [qa] Add getinfo smoke tests and rework versionbits test (MarcoFalke)
ddddaaf [rpc] Deprecate getinfo (MarcoFalke)
2016-09-26 15:03:06 +02:00
Wladimir J. van der Laan
bb843adc8d
Merge #8722: bitcoin-cli: More detailed error reporting
381826d bitcoin-cli: More detailed error reporting (Wladimir J. van der Laan)
2016-09-26 14:53:38 +02:00
jonnynewbs
c14ffd524b [trivial] fix mempool comment (outdated by BIP125) 2016-09-26 08:52:52 -04:00
MarcoFalke
fa4bfb4819 [wallet, policy] ParameterInteraction: Don't allow 0 fee 2016-09-26 14:44:24 +02:00
Wladimir J. van der Laan
ab0b411868
Merge #8486: [wallet] Add high transaction fee warnings
faef293 [wallet] Add high transaction fee warnings (MarcoFalke)
2016-09-26 13:57:10 +02:00
Matthew King
a92bf4af66 bitcoind: Daemonize using daemon(3)
Simplified version of #8278. Assumes that every OS that (a) is supported
by Bitcoin Core (b) supports daemonization has the `daemon()` function
in its C library.

- Removes the fallback path for operating systems that support
  daemonization but not `daemon()`. This prevents never-exercised code from
  ending up in the repository (see discussion here:
  https://github.com/bitcoin/bitcoin/pull/8278#issuecomment-242704745).

- Removes the windows-specific path. Windows doesn't support `daemon()`,
  so it don't support daemonization there, automatically.

Original code by Matthew King, adapted by Wladimir van der Laan.
2016-09-26 13:37:44 +02:00
MarcoFalke
faef293cf3 [wallet] Add high transaction fee warnings 2016-09-26 01:11:27 +02:00
Wladimir J. van der Laan
37871f216e
Merge #8807: [univalue] Pull subtree from upstream
3650668 Squashed 'src/univalue/' changes from f32df99..daf1285 (MarcoFalke)
2016-09-25 16:21:43 +02:00
MarcoFalke
9bf41af708 Merge commit '3650668cdbbf369dd8f30c8e8eb5bb883325942d' into HEAD 2016-09-25 15:19:23 +02:00
Wladimir J. van der Laan
b8d10fd4ef
Merge #8802: Fix future copyright year
edeaf24 Fix future copyright year (Mitchell Cash)
2016-09-25 13:12:01 +02:00
Derek Miller
c9ce17beed Trivial: Grammar and capitalization 2016-09-24 12:22:47 -05:00
MarcoFalke
08cc5fd666
Merge #8790: [test] Remove redundant debug print in addrman_tests
3333bd2 [test] Remove redundant print in addrman_tests (MarcoFalke)
2016-09-24 15:38:38 +02:00
Mitchell Cash
edeaf24e4c Fix future copyright year 2016-09-24 13:46:08 +10:00
Jonas Schnelli
24f72e9f3f
Merge #8371: [Qt] Add out-of-sync modal info layer
08827df [Qt] modalinfolayer: removed unused comments, renamed signal, code style overhaul (Jonas Schnelli)
d8b062e [Qt] only update "amount of blocks left" when the header chain is in-sync (Jonas Schnelli)
e3245b4 [Qt] add out-of-sync modal info layer (Jonas Schnelli)
e47052f [Qt] ClientModel add method to get the height of the header chain (Jonas Schnelli)
a001f18 [Qt] Always pass the numBlocksChanged signal for headers tip changed (Jonas Schnelli)
bd44a04 [Qt] make Out-Of-Sync warning icon clickable (Jonas Schnelli)
0904c3c [Refactor] refactor function that forms human readable text out of a timeoffset (Jonas Schnelli)
2016-09-23 18:22:48 +02:00
Jonas Schnelli
08827df3ec
[Qt] modalinfolayer: removed unused comments, renamed signal, code style overhaul 2016-09-23 16:07:21 +02:00
Wladimir J. van der Laan
d2e46558ba
Merge #8661: Do not set an addr time penalty when a peer advertises itself.
6d0ced1 Do not set an addr time penalty when a peer advertises itself. (Gregory Maxwell)
2016-09-23 13:56:01 +02:00
Wladimir J. van der Laan
5d0219d983
Merge #8793: Do not shadow in src/qt
f839350 Do not shadow in src/qt (Pavel Janík)
2016-09-23 12:44:35 +02:00
Pavel Janík
f839350420 Do not shadow in src/qt 2016-09-23 12:42:00 +02:00
Johnson Lau
c72c5b1e3b Make non-minimal OP_IF/NOTIF argument non-standard for P2WSH 2016-09-23 13:07:38 +08:00
Wladimir J. van der Laan
2b514aa2ea
Merge #8785: Comment on CNode::nLocalServices meaning
b5ccded Comment on CConnman::nLocalServices meaning (instagibbs)
2016-09-22 16:41:02 +02:00
instagibbs
b5ccded57f Comment on CConnman::nLocalServices meaning 2016-09-22 08:19:44 -04:00
MarcoFalke
3333bd2d15 [test] Remove redundant print in addrman_tests 2016-09-22 12:50:39 +02:00
Wladimir J. van der Laan
26b370a937
Merge #8636: Implement NULLDUMMY softfork (BIP147)
482f852 Implement NULLDUMMY softfork (Johnson Lau)
2016-09-22 10:58:00 +02:00
Luke Dashjr
f4dffdd6bf Add MIT license to Makefiles 2016-09-21 22:35:12 +00:00
MarcoFalke
ddddaafa4a [rpc] Deprecate getinfo
This was replaced by getmininginfo, getnetworkinfo and getwalletinfo
2016-09-21 21:19:20 +02:00
Wladimir J. van der Laan
cf5ebaa921
Merge #8656: Trivial: Do not shadow global variable fileout
7c069a7 Do not shadow global variable (Pavel Janík)
2016-09-21 14:13:44 +02:00
Wladimir J. van der Laan
381826dfee bitcoin-cli: More detailed error reporting
Register a evhttp error handler to get a more detailed error message
if the HTTP request fails.
2016-09-21 14:02:42 +02:00
Wladimir J. van der Laan
fec6af7440
Merge #8777: [qt] WalletModel: Expose disablewallet
6666ca6 [qt] WalletModel: Expose disablewallet (MarcoFalke)
2016-09-21 13:45:20 +02:00
MarcoFalke
6666ca6379 [qt] WalletModel: Expose disablewallet 2016-09-21 13:11:15 +02:00
Wladimir J. van der Laan
886e8c9b72
Merge #8768: init: Get rid of fDisableWallet
fa58edb [wallet] Introduce DEFAULT_DISABLE_WALLET (MarcoFalke)
fab9107 init: Get rid of fDisableWallet (MarcoFalke)
2016-09-21 12:27:56 +02:00
MarcoFalke
fa58edbffe [wallet] Introduce DEFAULT_DISABLE_WALLET 2016-09-21 12:06:58 +02:00
Wladimir J. van der Laan
b4f53641a9
Merge #8765: [Wallet] remove "unused" ThreadFlushWalletDB from removeprunedfunds
c6f5ca8 [Wallet] remove "unused" ThreadFlushWalletDB from removeprunedfunds (Jonas Schnelli)
2016-09-21 08:15:33 +02:00
MarcoFalke
fab91070d3 init: Get rid of fDisableWallet 2016-09-20 17:32:05 +02:00
Jonas Schnelli
c6f5ca822f
[Wallet] remove "unused" ThreadFlushWalletDB from removeprunedfunds 2016-09-20 16:18:24 +02:00
Jonas Schnelli
6052d50910
Merge #8672: Qt: Show transaction size in transaction details window
c015634 qt: Adding transaction size to transaction details window (Hampus Sjöberg)
 \-- merge fix for s/size/total size/
fdf82fb Adding method GetTotalSize() to CTransaction (Hampus Sjöberg)
2016-09-20 15:34:33 +02:00
Wladimir J. van der Laan
4335d5a41b
Merge #7783: [Qt] RPC-Console: support nested commands and simple value queries
1586044 [Qt] RPC-Console: support nested commands and simple value queries (Jonas Schnelli)
2016-09-20 14:15:35 +02:00
Wladimir J. van der Laan
a1f8d3ed95
Merge #8696: [Wallet] Remove last external reference to CWalletDB
2ca6b9d Remove last reference to CWalletDB from accounting_tests.cpp (Patrick Strateman)
02e2a81 Remove pwalletdb parameter from CWallet::AddAccountingEntry (Patrick Strateman)
d2e678d Add CWallet::ReorderTransactions and use in accounting_tests.cpp (Patrick Strateman)
59adc86 Add CWallet::ListAccountCreditDebit (Patrick Strateman)
2016-09-20 12:47:31 +02:00
Wladimir J. van der Laan
02ac669730
Merge #8760: [init] Get rid of some ENABLE_WALLET
faddd62 init: Get rid of some ENABLE_WALLET (MarcoFalke)
2016-09-20 12:45:46 +02:00
Wladimir J. van der Laan
82eacc786d
Merge #8700: [copyright] add MIT license headers to .sh scripts where missing
0766d1c [copyright] add MIT license headers to .sh scripts where missing (isle2983)
2016-09-20 10:02:33 +02:00
maiiz
94a34a5d95 Fix relaypriority calculation error 2016-09-20 11:45:30 +08:00
Wladimir J. van der Laan
047ded0b12
Merge #8688: Move static global randomizer seeds into CConnman
d9ff591 Move static global randomizer seeds into CConnman (Pieter Wuille)
2016-09-19 18:02:01 +02:00
Wladimir J. van der Laan
8bae52a9a0
Merge #8737: Trivial: UndoReadFromDisk works on undo files (rev), not on block files.
b4fb512 UndoReadFromDisk works on undo files (rev), not on block files. (Pavel Janík)
2016-09-19 16:54:17 +02:00
Wladimir J. van der Laan
f07424a671
Merge #8707: net: fix maxuploadtarget setting
f3552da net: fix maxuploadtarget setting (Cory Fields)
2016-09-19 16:46:50 +02:00
MarcoFalke
faddd62518 init: Get rid of some ENABLE_WALLET 2016-09-19 16:14:18 +02:00
Pieter Wuille
d9ff591d42 Move static global randomizer seeds into CConnman 2016-09-19 15:53:47 +02:00
Wladimir J. van der Laan
2ebb8099d9
Merge #8742: Specify Protobuf version 2 in paymentrequest.proto
c4084c2 Specify Protobuf version 2 in paymentrequest.proto (fanquake)
2016-09-19 15:43:51 +02:00
Wladimir J. van der Laan
a5b20edd3d
Merge #8494: [init, wallet] ParameterInteraction() iff wallet enabled
fa5d276 [init] ParameterInteraction() iff wallet enabled (MarcoFalke)
2016-09-19 11:38:16 +02:00
Jiaxing Wang
e892dc1268 Use prefix operator in for loop of DecodeBase58. 2016-09-16 19:13:01 +08:00
fanquake
c4084c2085
Specify Protobuf version 2 in paymentrequest.proto 2016-09-16 11:45:08 +08:00
Wladimir J. van der Laan
d9c99c3058 net: No longer send local address in addrMe
After #8594 the addrFrom sent by a node is not used anymore at all,
so don't bother sending it.

Also mitigates the privacy issue in (#8616). It doesn't completely solve
the issue as GetLocalAddress is also called in AdvertiseLocal, but at
least when advertising addresses it stands out less as *our* address.
2016-09-15 23:42:01 +02:00
Patrick Strateman
2ca6b9df1d Remove last reference to CWalletDB from accounting_tests.cpp 2016-09-15 13:51:04 -07:00
Patrick Strateman
02e2a81536 Remove pwalletdb parameter from CWallet::AddAccountingEntry 2016-09-15 13:50:59 -07:00
Patrick Strateman
d2e678d7d2 Add CWallet::ReorderTransactions and use in accounting_tests.cpp 2016-09-15 06:52:15 -07:00
Patrick Strateman
59adc86680 Add CWallet::ListAccountCreditDebit
Simple pass through for CWalletDB::ListAccountCreditDebit
2016-09-15 06:52:15 -07:00
Pavel Janík
b4fb512719 UndoReadFromDisk works on undo files (rev), not on block files. 2016-09-15 12:40:09 +02:00
Jiaxing Wang
159ed95f74 base58: Improve DecodeBase58 performance.
Improve DecodeBase58 performance the same way as commit 3252208 did
for EncodeBase58.
2016-09-15 17:39:54 +08:00
Cory Fields
f3552da813 net: fix maxuploadtarget setting
This was broken by 63cafa6329.

Note that while this fixes the settings, it doesn't fix the actual usage of
-maxuploadtarget completely, as there is currently a bug in the
nOptimisticBytesWritten accounting that causes a delayed response if the target
is reached. That bug will be addressed separately.
2016-09-14 13:14:04 -04:00
Wladimir J. van der Laan
881d7eaf29
Merge #8715: net: only delete CConnman if it's been created
36fa01f net: only delete CConnman if it's been created (Cory Fields)
2016-09-14 10:16:25 +02:00
Cory Fields
36fa01f217 net: only delete CConnman if it's been created
In the case of (for example) an already-running bitcoind, the shutdown sequence
begins before CConnman has been created, leading to a null-pointer dereference
when g_connman->Stop() is called.

Instead, Just let the CConnman dtor take care of stopping.
2016-09-13 22:43:23 -04:00
Jonas Schnelli
1b6bcdd3aa
Remove maxuploadtargets recommended minimum 2016-09-13 18:08:17 +02:00
Jonas Schnelli
d8b062ef5e
[Qt] only update "amount of blocks left" when the header chain is in-sync 2016-09-13 17:57:25 +02:00
Wladimir J. van der Laan
fa7caf6d91
Merge #8693: add witness address to address book
62ffbbd add witness address to address book (instagibbs)
2016-09-13 17:10:28 +02:00
Wladimir J. van der Laan
c9914c2094
Merge #8699: Remove createwitnessaddress RPC command
86c3f8d Remove createwitnessaddress (Johnson Lau)
2016-09-13 17:03:00 +02:00
Wladimir J. van der Laan
37ac67816a
Merge #8601: Add option to opt into full-RBF when sending funds (rebase, original by petertodd)
86726d8 Rename `-optintofullrbf` option to `-walletrbf` (Wladimir J. van der Laan)
05fa823 wallet: Add BIP125 comment for MAXINT-1/-2 behavior (Wladimir J. van der Laan)
152f45b Add option to opt into full-RBF when sending funds (Peter Todd)
2016-09-13 11:35:26 +02:00
Wladimir J. van der Laan
86726d8680 Rename -optintofullrbf option to -walletrbf
This makes it clear that this is a wallet option.
2016-09-13 11:32:29 +02:00
Johnson Lau
86c3f8db0b Remove createwitnessaddress
This RPC command is unsafe as it will return an address even if the script is invalid.
2016-09-13 11:35:14 +08:00
R E Broadley
1f951c67a4 Allow filterclear messages for enabling TX relay only.
An example of where this might be useful is allowing a node to connect blocksonly during IBD but then becoming a full-node once caught up with the latest block. This might also even want to be the default behaviour since during IBD most TXs appear to be orphans, and are routinely dropped (for example when a node disconnects). Therefore, this can waste a lot of bandwidth.

Additionally, another pull could be written to stop relaying of TXs to nodes that are clearly far behind the latest block and are running a node that doesn't store many orphan TXs, such as recent versions of Bitcoin Core.
2016-09-13 09:10:22 +07:00
isle2983
0766d1cac3 [copyright] add MIT license headers to .sh scripts where missing
Years are set according to 'git log' history
2016-09-11 13:36:22 -06:00
rodasmith
1d635ae61b fix op order to append first alert 2016-09-10 11:41:01 -07:00
instagibbs
62ffbbdec3 add witness address to address book 2016-09-09 12:15:08 -04:00
Jonas Schnelli
702e6e059b
Merge #8678: [Qt][CoinControl] fix UI bug that could result in paying unexpected fee
0480293 [Qt][CoinControl] fix UI bug that could result in paying unexpected fee (Jonas Schnelli)
2016-09-09 14:34:03 +02:00
Pavel Janík
64d9507ea5 [WIP] Remove unused statement in serialization 2016-09-09 13:59:34 +02:00
Pieter Wuille
6898213409
Merge #8681: Performance Regression Fix: Pre-Allocate txChanged vector
ec81881 Performance Regression Fix: Pre-Allocate txChanged vector (Jeremy Rubin)
2016-09-09 13:41:15 +02:00
Wladimir J. van der Laan
2abfe5956e
Merge #8664: Fix segwit-related wallet bug
c40b034 Clear witness with vin/vout in CWallet::CreateTransaction() (Suhas Daftuar)
2016-09-09 12:24:39 +02:00
Wladimir J. van der Laan
6423116741
Merge #8085: p2p: Begin encapsulation
0103c5b net: move MAX_FEELER_CONNECTIONS into connman (Cory Fields)
e700cd0 Convert ForEachNode* functions to take a templated function argument rather than a std::function to eliminate std::function overhead (Jeremy Rubin)
d1a2295 Made the ForEachNode* functions in src/net.cpp more pragmatic and self documenting (Jeremy Rubin)
98591c5 net: move vNodesDisconnected into CConnman (Cory Fields)
fa2f8bc net: add nSendBufferMaxSize/nReceiveFloodSize to CConnection::Options (Cory Fields)
a19553b net: Introduce CConnection::Options to avoid passing so many params (Cory Fields)
bafa5fc net: Drop StartNode/StopNode and use CConnman directly (Cory Fields)
e81a602 net: pass CClientUIInterface into CConnman (Cory Fields)
f60b905 net: Pass best block known height into CConnman (Cory Fields)
fdf69ff net: move max/max-outbound to CConnman (Cory Fields)
8a59369 net: move semOutbound to CConnman (Cory Fields)
bd72937 net: move nLocalServices/nRelevantServices to CConnman (Cory Fields)
be9c796 net: move SendBufferSize/ReceiveFloodSize to CConnman (Cory Fields)
63cafa6 net: move send/recv statistics to CConnman (Cory Fields)
adf5d4c net: SocketSendData returns written size (Cory Fields)
ee44fa9 net: move messageHandlerCondition to CConnman (Cory Fields)
960cf2e net: move nLocalHostNonce to CConnman (Cory Fields)
551e088 net: move nLastNodeId to CConnman (Cory Fields)
6c19d92 net: move whitelist functions into CConnman (Cory Fields)
53347f0 net: create generic functor accessors and move vNodes to CConnman (Cory Fields)
c0569c7 net: Add most functions needed for vNodes to CConnman (Cory Fields)
8ae2dac net: move added node functions to CConnman (Cory Fields)
502dd3a net: Add oneshot functions to CConnman (Cory Fields)
a0f3d3c net: move ban and addrman functions into CConnman (Cory Fields)
aaf018e net: handle nodesignals in CConnman (Cory Fields)
b1a5f43 net: move OpenNetworkConnection into CConnman (Cory Fields)
02137f1 net: Move socket binding into CConnman (Cory Fields)
5b446dd net: Pass CConnection to wallet rather than using the global (Cory Fields)
8d58c4d net: Pass CConnman around as needed (Cory Fields)
d7349ca net: Add rpc error for missing/disabled p2p functionality (Cory Fields)
cd16f48 net: Create CConnman to encapsulate p2p connections (Cory Fields)
d93b14d net: move CBanDB and CAddrDB out of net.h/cpp (Cory Fields)
531214f gui: add NodeID to the peer table (Cory Fields)
2016-09-09 11:52:22 +02:00
Wladimir J. van der Laan
4daf02a03f
Merge #8677: Do not shadow upper local variable 'send', prevent -Wshadow compiler warning.
125b946 Do not shadow upper local variable 'send', prevent -Wshadow compiler warning. (Pavel Janík)
2016-09-09 10:25:39 +02:00
Wladimir J. van der Laan
666eaf03cf
Merge #8680: Address Travis spurious failures
d6a5dc4 add waitfornewblock/waitforblock/waitforblockheight rpcs and use them for tests (Cory Fields)
2016-09-09 08:33:54 +02:00
Wladimir J. van der Laan
80a4f21d37
Merge #8525: Do not store witness txn in rejection cache
ca10a03 Add basic test for IsStandard witness transaction blinding (instagibbs)
34521e4 Do not store witness txn in rejection cache (Pieter Wuille)
2016-09-09 07:47:48 +02:00
Cory Fields
0103c5b90f net: move MAX_FEELER_CONNECTIONS into connman 2016-09-08 13:06:05 -04:00
Jeremy Rubin
e700cd0bc8 Convert ForEachNode* functions to take a templated function argument rather than a std::function to eliminate std::function overhead 2016-09-08 13:06:05 -04:00
Jeremy Rubin
d1a2295f0d Made the ForEachNode* functions in src/net.cpp more pragmatic and self documenting 2016-09-08 13:06:05 -04:00
Cory Fields
98591c5027 net: move vNodesDisconnected into CConnman 2016-09-08 13:06:05 -04:00
Cory Fields
fa2f8bc47f net: add nSendBufferMaxSize/nReceiveFloodSize to CConnection::Options 2016-09-08 13:06:00 -04:00
Cory Fields
a19553b992 net: Introduce CConnection::Options to avoid passing so many params 2016-09-08 13:04:29 -04:00
Cory Fields
bafa5fc5a1 net: Drop StartNode/StopNode and use CConnman directly 2016-09-08 12:24:07 -04:00
Cory Fields
e81a602cf0 net: pass CClientUIInterface into CConnman 2016-09-08 12:24:07 -04:00
Cory Fields
f60b9059e4 net: Pass best block known height into CConnman
CConnman then passes the current best height into CNode at creation time.

This way CConnman/CNode have no dependency on main for height, and the signals
only move in one direction.

This also helps to prevent identity leakage a tiny bit. Before this change, an
attacker could theoretically make 2 connections on different interfaces. They
would connect fully on one, and only establish the initial connection on the
other. Once they receive a new block, they would relay it to your first
connection, and immediately commence the version handshake on the second. Since
the new block height is reflected immediately, they could attempt to learn
whether the two connections were correlated.

This is, of course, incredibly unlikely to work due to the small timings
involved and receipt from other senders. But it doesn't hurt to lock-in
nBestHeight at the time of connection, rather than letting the remote choose
the time.
2016-09-08 12:24:06 -04:00
Cory Fields
fdf69ff21a net: move max/max-outbound to CConnman 2016-09-08 12:24:06 -04:00
Cory Fields
8a593694b1 net: move semOutbound to CConnman 2016-09-08 12:24:06 -04:00
Cory Fields
bd72937dc4 net: move nLocalServices/nRelevantServices to CConnman
These are in-turn passed to CNode at connection time. This allows us to offer
different services to different peers (or test the effects of doing so).
2016-09-08 12:24:06 -04:00
Cory Fields
be9c796dc5 net: move SendBufferSize/ReceiveFloodSize to CConnman 2016-09-08 12:24:06 -04:00
Cory Fields
63cafa6329 net: move send/recv statistics to CConnman 2016-09-08 12:24:06 -04:00
Cory Fields
adf5d4c2e4 net: SocketSendData returns written size 2016-09-08 12:24:06 -04:00
Cory Fields
ee44fa9576 net: move messageHandlerCondition to CConnman 2016-09-08 12:24:06 -04:00
Cory Fields
960cf2e405 net: move nLocalHostNonce to CConnman
This behavior seems to have been quite racy and broken.

Move nLocalHostNonce into CNode, and check received nonces against all
non-fully-connected nodes. If there's a match, assume we've connected
to ourself.
2016-09-08 12:24:06 -04:00
Cory Fields
551e0887db net: move nLastNodeId to CConnman 2016-09-08 12:24:06 -04:00
Cory Fields
6c19d92361 net: move whitelist functions into CConnman 2016-09-08 12:24:06 -04:00
Cory Fields
53347f0cb9 net: create generic functor accessors and move vNodes to CConnman 2016-09-08 12:24:06 -04:00
Cory Fields
c0569c7fa1 net: Add most functions needed for vNodes to CConnman 2016-09-08 12:12:58 -04:00
Cory Fields
8ae2dac1c6 net: move added node functions to CConnman 2016-09-08 12:12:58 -04:00
Cory Fields
502dd3a8a0 net: Add oneshot functions to CConnman 2016-09-08 12:12:57 -04:00
Cory Fields
a0f3d3cdad net: move ban and addrman functions into CConnman 2016-09-08 12:12:57 -04:00
Cory Fields
aaf018e3b7 net: handle nodesignals in CConnman 2016-09-08 12:06:24 -04:00
Cory Fields
b1a5f43208 net: move OpenNetworkConnection into CConnman 2016-09-08 12:06:24 -04:00
Cory Fields
02137f11e2 net: Move socket binding into CConnman 2016-09-08 12:06:24 -04:00
Cory Fields
5b446dd5b1 net: Pass CConnection to wallet rather than using the global 2016-09-08 12:04:35 -04:00
Cory Fields
8d58c4d81f net: Pass CConnman around as needed 2016-09-08 12:04:35 -04:00
Cory Fields
d7349ca50d net: Add rpc error for missing/disabled p2p functionality 2016-09-08 12:04:35 -04:00
Cory Fields
cd16f48028 net: Create CConnman to encapsulate p2p connections 2016-09-08 12:04:35 -04:00
Cory Fields
d93b14dc5d net: move CBanDB and CAddrDB out of net.h/cpp
This will eventually solve a circular dependency
2016-09-08 12:03:22 -04:00
Cory Fields
531214fb10 gui: add NodeID to the peer table 2016-09-08 12:03:22 -04:00
MarcoFalke
ddc308068d
Merge #8671: Minimal fix to slow prevector tests as stopgap measure
f71d4a3 Minimal fix to slow prevector tests as stopgap measure (Jeremy Rubin)
2016-09-08 11:12:50 +02:00
Jeremy Rubin
ec81881b86 Performance Regression Fix: Pre-Allocate txChanged vector 2016-09-07 20:10:50 -04:00
MarcoFalke
ec139a5621
Merge #8673: Trivial: Fix obvious assignment/equality error in test
426e7bc Fix obvious assignment/equality error in test (Jeremy Rubin)
2016-09-07 19:36:43 +02:00
Cory Fields
d6a5dc4a2e add waitfornewblock/waitforblock/waitforblockheight rpcs and use them for tests
waitfornewblock waits until a new block is received, or the timeout expires, then
returns the current block height/hash.

waitforblock waits for a specific blockhash, or until the timeout expires, then
returns the current block height/hash. If the target blockhash is the current
tip, it will return immediately.

waitforblockheight waits until the tip has reached a certain height or higher,
then returns the current height and hash.

waitforblockheight is used to avoid polling in the rpc tests.
2016-09-07 12:46:01 -04:00
Jonas Schnelli
04802930d4
[Qt][CoinControl] fix UI bug that could result in paying unexpected fee 2016-09-07 16:05:27 +02:00
Pavel Janík
125b946cb4 Do not shadow upper local variable 'send', prevent -Wshadow compiler warning. 2016-09-07 13:45:13 +02:00
Pieter Wuille
5b2ea29cf4
Merge #8594: Do not add random inbound peers to addrman.
eb3596f Do not add random inbound peers to addrman. (Gregory Maxwell)
2016-09-07 13:19:53 +02:00
Pieter Wuille
e2a1a1ee89
Merge #8606: Fix some locks
144ed76 Fix some locks (Pieter Wuille)
2016-09-07 13:10:10 +02:00
Hampus Sjöberg
c015634400 qt: Adding transaction size to transaction details window 2016-09-06 22:31:36 +02:00
Hampus Sjöberg
fdf82fba31 Adding method GetTotalSize() to CTransaction
GetTotalSize() returns the total transaction size (including witness) in
bytes.
2016-09-06 22:30:30 +02:00
Jeremy Rubin
426e7bce0e Fix obvious assignment/equality error in test 2016-09-06 16:22:13 -04:00
Jeremy Rubin
f71d4a3786 Minimal fix to slow prevector tests as stopgap measure 2016-09-06 16:19:25 -04:00
Wladimir J. van der Laan
d077f43f7e
Merge #8663: trivial: remove unnecessary variable fDaemon
ff2ed7a trivial: remove unnecessary variable fDaemon (mruddy)
2016-09-06 15:20:08 +02:00
Pieter Wuille
34521e4d7d Do not store witness txn in rejection cache 2016-09-05 17:48:56 +02:00
Pieter Wuille
e82fb872ff
Merge #8651: Predeclare PrecomputedTransactionData as struct
4424af5 Predeclare PrecomputedTransactionData as sturct (Pieter Wuille)
2016-09-05 13:30:09 +02:00
Suhas Daftuar
c40b034327 Clear witness with vin/vout in CWallet::CreateTransaction() 2016-09-04 20:09:13 -04:00
mruddy
ff2ed7a5bc trivial: remove unnecessary variable fDaemon 2016-09-04 11:42:07 -04:00
Gregory Maxwell
6d0ced1865 Do not set an addr time penalty when a peer advertises itself.
Claims a peer makes about itself are inherently more credible.
2016-09-03 10:24:37 +00:00
Pavel Janík
7c069a7093 Do not shadow global variable 2016-09-02 20:50:59 +02:00
Wladimir J. van der Laan
cbe9ae8c69
Merge #8466: [Trivial] Do not shadow variables in networking code
b7c349d Do not shadow variables in networking code (Pavel Janík)
2016-09-02 12:51:56 +02:00
Wladimir J. van der Laan
381d0ddc8a
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)
2016-09-02 12:25:59 +02:00
Pieter Wuille
4424af5190 Predeclare PrecomputedTransactionData as sturct 2016-09-02 11:43:06 +02:00
Wladimir J. van der Laan
6f939c9080
Merge #8629: C++11: s/boost::scoped_ptr/std::unique_ptr/
cdd79eb C++11: s/boost::scoped_ptr/std::unique_ptr/ (Jorge Timón)
2016-09-02 09:56:33 +02:00
Jorge Timón
cdd79eb70f C++11: s/boost::scoped_ptr/std::unique_ptr/ 2016-09-01 19:05:07 +02:00
Pieter Wuille
854f1af22e Make the dummy argument to getaddednodeinfo optional 2016-09-01 16:27:30 +02:00
Wladimir J. van der Laan
f061415d12
Merge #8638: rest.cpp: change HTTP_INTERNAL_SERVER_ERROR to HTTP_BAD_REQUEST
f012a85 rest.cpp: change HTTP_INTERNAL_SERVER_ERROR to HTTP_BAD_REQUEST (djpnewton)
2016-09-01 15:58:43 +02:00
Wladimir J. van der Laan
0e563d89c0
Merge #8472: Do not shadow LOCK's criticalblock variable for LOCK inside LOCK
33d15a3 Do not shadow LOCK's criticalblock variable for LOCK inside LOCK (Pavel Janík)
2016-09-01 14:42:00 +02:00
Pieter Wuille
19b0f33de0
Merge #8524: Precompute sighashes
35fe039 Rename to PrecomputedTransactionData (Pieter Wuille)
ab48c5e Unit test for sighash caching (Nicolas DORIER)
d2c5d04 Precompute sighashes (Pieter Wuille)
2016-09-01 12:20:43 +02:00
djpnewton
f012a857f5 rest.cpp: change HTTP_INTERNAL_SERVER_ERROR to HTTP_BAD_REQUEST 2016-09-01 22:12:19 +12:00
Wladimir J. van der Laan
84decb54f2
Merge #8612: Check for compatibility with download in FindNextBlocksToDownload
887919c Check for compatibility with download in FindNextBlocksToDownload (Pieter Wuille)
2016-08-31 17:59:56 +02:00
Wladimir J. van der Laan
abc677c9a9
Merge #8191: Do not shadow variables in src/wallet
b175cb7 Do not shadow variables. (Pavel Janík)
2016-08-31 16:40:29 +02:00
Wladimir J. van der Laan
5cac8b123e
Merge #8291: [util] CopyrightHolders: Check for untranslated substitution
33336e1 [util] CopyrightHolders: Check for untranslated substitution (MarcoFalke)
2016-08-31 16:17:00 +02:00
Pavel Janík
b175cb755b Do not shadow variables. 2016-08-31 16:16:05 +02:00
Wladimir J. van der Laan
0c8875d23b
Merge #8163: Do not shadow global RPC table variable (tableRPC)
de1bbe3 Do not shadow global RPC table variable (tableRPC) (Pavel Janík)
2016-08-31 16:07:58 +02:00
Wladimir J. van der Laan
df3f12d409
Merge #8626: Berkeley DB v6 compatibility fix
323a5fe Berkeley DB v6 compatibility fix (Alexey Vesnin)
2016-08-31 14:42:45 +02:00
Johnson Lau
482f852da6 Implement NULLDUMMY softfork 2016-08-31 19:38:23 +08:00
Wladimir J. van der Laan
2b23dbaee5
Merge #8611: Reduce default number of blocks to check at startup
203f212 Reduce default number of blocks to check at startup (Pieter Wuille)
2016-08-30 13:38:42 +02:00
Alexey Vesnin
323a5fe06a Berkeley DB v6 compatibility fix
Fixes building error looking like this:
CXX wallet/libbitcoin_wallet_a-db.o
wallet/db.cpp: In member function ‘void CDBEnv::EnvShutdown()’:
wallet/db.cpp:46:16: error: call of overloaded ‘DbEnv(int)’ is ambiguous
DbEnv(0).remove(strPath.c_str(), 0);
^
wallet/db.cpp:46:16: note: candidates are:
In file included from wallet/db.h:21:0,
from wallet/db.cpp:6:
/usr/include/db_cxx.h:916:2: note: DbEnv::DbEnv(const DbEnv&)
DbEnv(const DbEnv &);
^
/usr/include/db_cxx.h:518:2: note: DbEnv::DbEnv(DB_ENV)
DbEnv(DB_ENV *dbenv);
^
/usr/include/db_cxx.h:516:2: note: DbEnv::DbEnv(u_int32_t)
DbEnv(u_int32_t flags);
^
Makefile:5780: recipe for target 'wallet/libbitcoin_wallet_a-db.o' failed
make[2]: ** [wallet/libbitcoin_wallet_a-db.o] Error 1
2016-08-30 09:00:55 +03:00
Pieter Wuille
01680195f8
Merge #8564: [Wallet] remove unused code/conditions in ReadAtCursor
beef966 [Wallet] remove unused code/conditions in ReadAtCursor (Jonas Schnelli)
2016-08-29 16:16:23 +02:00
Wladimir J. van der Laan
a5bb6387f7
Merge #8607: [doc] Fix doxygen off-by-one comments, fix typos
fafe7b3 contrib: Make fix-copyright-headers.py more portable (MarcoFalke)
fa27c0a [doc] Fix typos in comments, doxygen: Fix comment syntax (MarcoFalke)
fabfd5d [qa] pull-tester: Don't mute zmq ImportError (MarcoFalke)
67a5502 init: Fix typo in help message for -whitelistforcerelay (Wladimir J. van der Laan)
2016-08-28 16:06:03 +02:00
Pieter Wuille
05e1c85fb6
Merge #8573: Set jonasschnellis dns-seeder filter flag
40a95cf Set jonasschnellis dns-seeder filter flag (Jonas Schnelli)
2016-08-28 13:17:30 +02:00
Pieter Wuille
203f2121be Reduce default number of blocks to check at startup 2016-08-27 15:28:20 +02:00
Pieter Wuille
5127c4f21c Add preciousblock RPC
Includes a bugfix by Luke-Jr.
2016-08-26 23:05:45 +02:00
Pieter Wuille
887919c7b7 Check for compatibility with download in FindNextBlocksToDownload 2016-08-26 21:44:44 +02:00
Pieter Wuille
144ed76ea0 Fix some locks
This makes sure that cs_filter is never held while taking cs_main
or CNode::cs_vSend.
2016-08-26 21:11:57 +02:00
Pieter Wuille
35fe0393f2 Rename to PrecomputedTransactionData 2016-08-26 18:44:10 +02:00
Pieter Wuille
9a0ed08b40
Merge #8109: Do not shadow member variables
ff8d279 Do not shadow member variables (Pavel Janík)
2016-08-26 18:13:22 +02:00
Wladimir J. van der Laan
12892dbb9f
Merge #8590: Remove unused variables
fa6dc9f Remove unused variables (MarcoFalke)
2016-08-26 13:24:12 +02:00
Wladimir J. van der Laan
05fa823bf6 wallet: Add BIP125 comment for MAXINT-1/-2 behavior 2016-08-26 12:57:28 +02:00
Peter Todd
152f45ba58 Add option to opt into full-RBF when sending funds 2016-08-26 12:10:42 +02:00
Jonas Schnelli
e3245b43d5
[Qt] add out-of-sync modal info layer 2016-08-26 11:34:30 +02:00
Wladimir J. van der Laan
65837375d9
Merge #8581: [wallet] rpc: Drop misleading option
fab5ecb [wallet] rpc: Drop misleading option (MarcoFalke)
2016-08-26 11:21:55 +02:00
Wladimir J. van der Laan
c19f8a4a77
Merge #8583: Show XTHIN in GUI
4c3e2cb Show XTHIN in GUI (R E Broadley)
2016-08-26 11:20:36 +02:00
Wladimir J. van der Laan
6c9f1b8c24
Merge #8561: Show "end" instead of many zeros when getheaders request received with a hashStop of Null
259ee09 Show "end" instead of many zeros when getheaders request received with a hashStop of Null. (R E Broadley)
2016-08-26 10:04:26 +02:00
Jonas Schnelli
e47052f6b5
[Qt] ClientModel add method to get the height of the header chain 2016-08-26 09:53:09 +02:00
Jonas Schnelli
a001f18802
[Qt] Always pass the numBlocksChanged signal for headers tip changed 2016-08-26 09:53:09 +02:00
Jonas Schnelli
bd44a04dc3
[Qt] make Out-Of-Sync warning icon clickable 2016-08-26 09:53:09 +02:00
Jonas Schnelli
0904c3cda4
[Refactor] refactor function that forms human readable text out of a timeoffset 2016-08-26 09:53:09 +02:00
Gregory Maxwell
eb3596f7c2 Do not add random inbound peers to addrman.
We should learn about new peers via address messages.

An inbound peer connecting to us tells us nothing about
 its ability to accept incoming connections from us, so
 we shouldn't assume that we can connect to it based on
 this.

The vast majority of nodes on the network do not accept
 incoming connections, adding them will only slow down
 the process of making a successful connection in the
 future.

Nodes which have configured themselves to not announce would prefer we
 not violate their privacy by announcing them in GETADDR responses.
2016-08-25 23:48:59 +00:00
MarcoFalke
fa8b02d36d [rpc] rawtx: Prepare fLimitFree to make it an option 2016-08-25 15:28:04 +02:00
MarcoFalke
fa28bfa341 [wallet] Set fLimitFree = true 2016-08-25 15:27:48 +02:00
Pieter Wuille
53f8f226bd
Merge #8462: Move AdvertiseLocal debug output to net category
f13c1ba Move AdvertiseLocal debug output to net category (Michael Rotarius)
2016-08-25 15:15:16 +02:00
Pavel Janík
de1bbe3b78 Do not shadow global RPC table variable (tableRPC) 2016-08-25 15:02:26 +02:00
MarcoFalke
fa6dc9f0e5 Remove unused variables 2016-08-25 14:59:38 +02:00
Jonas Schnelli
0606f95b1e
Merge #7579: [Qt] show network/chain errors in the GUI
2f32c82 [Qt] show network/chain errors in the GUI (Jonas Schnelli)
2016-08-25 14:55:26 +02:00
Jonas Schnelli
d26234a9e2
Merge #8487: Persist the datadir after option reset
57acb82 Load choose datadir dialog after options reset (Andrew Chow)
15df3c1 Persist the datadir after option reset (Andrew Chow)
2016-08-25 11:42:57 +02:00
MarcoFalke
95a983d56d
Merge #8578: [test] Remove unused code
fa1cf9e [test] Remove unused code (MarcoFalke)
2016-08-25 11:00:21 +02:00
Wladimir J. van der Laan
026c6edac9
Merge #8282: net: Feeler connections to increase online addrs in the tried table.
dbb1f64 Added feeler connections increasing good addrs in the tried table. (Ethan Heilman)
2016-08-25 10:48:24 +02:00
R E Broadley
4c3e2cb2df Show XTHIN in GUI 2016-08-25 09:22:46 +07:00
MarcoFalke
fa1cf9e7b8 [test] Remove unused code 2016-08-24 20:21:31 +02:00
MarcoFalke
fab5ecb771 [wallet] rpc: Drop misleading option 2016-08-24 19:28:04 +02:00
Andrew Chow
57acb82e70 Load choose datadir dialog after options reset 2016-08-24 09:40:48 -04:00
Jonas Schnelli
62a5a8a018
Merge #8463: [qt] Remove Priority from coincontrol dialog
fa8dd78 [qt] Remove Priority from coincontrol dialog (MarcoFalke)
2016-08-24 13:58:43 +02:00
Wladimir J. van der Laan
21857d2bf7
Merge #8450: [Test] Replace rpc_wallet_tests.cpp with python RPC unit tests
9578333 Remove rpc_wallet_tests.cpp (Patrick Strateman)
25400c4 Account wallet feature RPC tests. (Patrick Strateman)
2016-08-24 12:10:42 +02:00
MarcoFalke
fa8dd785a2 [qt] Remove Priority from coincontrol dialog 2016-08-24 11:37:30 +02:00
Pieter Wuille
f12d2b5a8a
Merge #8560: Trivial: Fix two VarInt examples in serialize.h
7bd5ff4 Trivial: Fix two VarInt examples in serialize.h (Christian Barcenas)
2016-08-24 10:42:08 +02:00
Wladimir J. van der Laan
f9167003d9
Merge #8445: Move CWallet::setKeyPool to private section of CWallet.
8680d3a Move wallet initialization logic from AppInit2 to CWallet::InitLoadWallet (Patrick Strateman)
e86eb71 Move CWallet::setKeyPool to private section of CWallet (Patrick Strateman)
2016-08-24 10:33:16 +02:00
Jonas Schnelli
40a95cfd8f
Set jonasschnellis dns-seeder filter flag 2016-08-24 09:06:56 +02:00
Ethan Heilman
dbb1f640e6 Added feeler connections increasing good addrs in the tried table.
Tests if addresses are online or offline by briefly connecting to them. These short lived connections are referred to as feeler connections. Feeler connections are designed to increase the number of fresh online addresses in tried by selecting and connecting to addresses in new. One feeler connection is attempted on average once every two minutes.

This change was suggested as Countermeasure 4 in
Eclipse Attacks on Bitcoin’s Peer-to-Peer Network, Ethan Heilman,
Alison Kendler, Aviv Zohar, Sharon Goldberg. ePrint Archive Report
2015/263. March 2015.
2016-08-23 16:26:42 -04:00
Jonas Schnelli
beef966e36
[Wallet] remove unused code/conditions in ReadAtCursor 2016-08-23 15:36:23 +02:00
Jonas Schnelli
15860448d3
[Qt] RPC-Console: support nested commands and simple value queries
Commands can be executed with bracket syntax, example: `getwalletinfo()`.
Commands can be nested, example: `sendtoaddress(getnewaddress(), 10)`.
Simple queries are possible: `listunspent()[0][txid]`
Object values are accessed with a non-quoted string, example: [txid].

Fully backward compatible.
`generate 101` is identical to `generate(101)`
Result value queries indicated with `[]` require the new brackets syntax.
Comma as argument separator is now also possible: `sendtoaddress,<address>,<amount>`
Space as argument separator works also with the bracket syntax, example: `sendtoaddress(getnewaddress() 10)

No dept limitation, complex commands are possible:
`decoderawtransaction(getrawtransaction(getblock(getbestblockhash())[tx][0]))[vout][0][value]`
2016-08-23 15:32:39 +02:00
R E Broadley
259ee09f88 Show "end" instead of many zeros when getheaders request received with a hashStop of Null. 2016-08-23 13:14:07 +07:00
Christian Barcenas
7bd5ff4623 Trivial: Fix two VarInt examples in serialize.h 2016-08-22 20:49:36 -04:00
Wladimir J. van der Laan
41d8e78f94
Merge #8539: CDB: fix debug output
fab2e26 CDB: fix debug output (crowning-)
2016-08-22 16:40:08 +02:00
MarcoFalke
fa27c0a2c4 [doc] Fix typos in comments, doxygen: Fix comment syntax 2016-08-22 10:51:41 +02:00
Wladimir J. van der Laan
67a55025a1 init: Fix typo in help message for -whitelistforcerelay
Reported by pryds on Transifex in the Danish translation.
2016-08-22 10:51:13 +02:00
Wladimir J. van der Laan
37e77c106c
Merge #8554: trivial: remove unused variable
4207630 trivial: remove unused variable (Daniel Kraft)
2016-08-22 10:36:37 +02:00
Wladimir J. van der Laan
bb0f763a25
Merge #8558: Add copyright header to wallet_text_fixture.cpp
653bb3d Add copyright header to wallet_text_fixture.cpp (Wladimir J. van der Laan)
2016-08-22 10:32:30 +02:00
Wladimir J. van der Laan
a55a018d5f
Merge #8548: [wallet] Use __func__ to get function name for output printing
fa785d1 Use __func__ to get function name for output printing (MarcoFalke)
2016-08-22 09:58:28 +02:00
Wladimir J. van der Laan
653bb3d640 Add copyright header to wallet_text_fixture.cpp
I created the file but forgot to add this header.
2016-08-22 09:24:50 +02:00
Patrick Strateman
8680d3aa80 Move wallet initialization logic from AppInit2 to CWallet::InitLoadWallet 2016-08-20 14:03:47 -07:00
Daniel Kraft
4207630f5a trivial: remove unused variable
Remove the unused variable "blockTmp" in CMerkleTx::SetMerkleBranch.  It
was previously used to read the block from disk if not provided as
argument, but is no longer needed.
2016-08-20 10:28:06 +02:00
MarcoFalke
fa785d1211 Use __func__ to get function name for output printing 2016-08-19 18:59:00 +02:00
Jonas Schnelli
2468292a03
Merge #8517: [Qt] show wallet HD state in statusbar
914154f [Qt] add HD enabled/disabled icon to the status bar (Jonas Schnelli)
2016-08-19 18:47:49 +02:00
Jonas Schnelli
56ac046960
Merge #8443: [Wallet] Trivial cleanup of HD wallet changes
7e5d94d [Wallet] Trivial cleanup of HD wallet changes (Jonas Schnelli)
2016-08-19 18:39:19 +02:00
Jonas Schnelli
7e5d94df1f
[Wallet] Trivial cleanup of HD wallet changes 2016-08-19 16:23:37 +02:00
Wladimir J. van der Laan
f4e777819c
Merge #8461: document return value of networkhashps for getmininginfo RPC endpoint
65f4532 document return value of networkhashps for getmininginfo RPC endpoint (Jameson Lopp)
2016-08-19 12:18:42 +02:00
Jonas Schnelli
914154f0cc
[Qt] add HD enabled/disabled icon to the status bar 2016-08-19 09:21:04 +02:00
Wladimir J. van der Laan
b4a9aa511c qt: Fix random segfault when closing "Choose data directory" dialog
The `pickDataDirectory()` function was calling `exit(0)` to quit
the application when the user closes the dialog without choosing
a data directory.

This is a bad idea because a background thread is created (to
check free space on the drive of the currently selected datadir).
The thread is not stopped and unwound properly, resulting in a potential
race condition somewhere deep in Qt.

So replace the `exit()` by a boolean return value, and let the
stack unwind normally.
2016-08-18 16:58:25 +02:00
crowning-
fab2e26d20 CDB: fix debug output
It doesn't really help to clear a variable before printing it to the debug log.
2016-08-18 16:52:38 +02:00
Pieter Wuille
8250de1358
Merge #8453: Bring secp256k1 subtree up to date with master
b213535 Squashed 'src/secp256k1/' changes from 6c527ec..7a49cac (Wladimir J. van der Laan)
2016-08-18 13:53:41 +02:00
Patrick Strateman
e86eb71604 Move CWallet::setKeyPool to private section of CWallet 2016-08-17 15:24:57 -07:00
Wladimir J. van der Laan
e753eaeb34
Merge #8505: Trivial: Fix typos in various files
1aacfc2 various typos (leijurv)
2016-08-17 12:51:16 +02:00
Wladimir J. van der Laan
65e6444181
Merge #8513: Fix a type error that would not compile on OSX.
8194a6e Fix a type error that would not compile on Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn) (Jeremy Rubin)
2016-08-17 12:32:58 +02:00
Wladimir J. van der Laan
29496fc9e0
Merge #8512: Trivial: Corrected JSON typo on setban of net.cpp
6ffd996 Corrected JSON typo on setban of net.cpp (Sev)
2016-08-17 12:01:46 +02:00
Nicolas DORIER
ab48c5e721 Unit test for sighash caching 2016-08-16 15:37:56 +02:00
Pieter Wuille
d2c5d044d0 Precompute sighashes
Original version by Nicolas Dorier. Precomputing version by Pieter Wuille.
2016-08-16 15:35:45 +02:00
Wladimir J. van der Laan
0237096df5 Merge commit 'b2135359b3ad37cf2ac09b008079ddb237eff2c9' 2016-08-16 11:34:43 +02:00
Wladimir J. van der Laan
b2135359b3 Squashed 'src/secp256k1/' changes from 6c527ec..7a49cac
7a49cac Merge #410: Add string.h include to ecmult_impl
0bbd5d4 Add string.h include to ecmult_impl
c5b32e1 Merge #405: Make secp256k1_fe_sqrt constant time
926836a Make secp256k1_fe_sqrt constant time
e2a8e92 Merge #404: Replace 3M + 4S doubling formula with 2M + 5S one
8ec49d8 Add note about 2M + 5S doubling formula
5a91bd7 Merge #400: A couple minor cleanups
ac01378 build: add -DSECP256K1_BUILD to benchmark_internal build flags
a6c6f99 Remove a bunch of unused stdlib #includes
65285a6 Merge #403: configure: add flag to disable OpenSSL tests
a9b2a5d configure: add flag to disable OpenSSL tests
b340123 Merge #402: Add support for testing quadratic residues
e6e9805 Add function for testing quadratic residue field/group elements.
efd953a Add Jacobi symbol test via GMP
fa36a0d Merge #401: ecmult_const: unify endomorphism and non-endomorphism skew cases
c6191fd ecmult_const: unify endomorphism and non-endomorphism skew cases
0b3e618 Merge #378: .gitignore build-aux cleanup
6042217 Merge #384: JNI: align shared files copyright/comments to bitcoinj's
24ad20f Merge #399: build: verify that the native compiler works for static precomp
b3be852 Merge #398: Test whether ECDH and Schnorr are enabled for JNI
aa0b1fd build: verify that the native compiler works for static precomp
eee808d Test whether ECDH and Schnorr are enabled for JNI
7b0fb18 Merge #366: ARM assembly implementation of field_10x26 inner (rebase of #173)
001f176 ARM assembly implementation of field_10x26 inner
0172be9 Merge #397: Small fixes for sha256
3f8b78e Fix undefs in hash_impl.h
2ab4695 Fix state size in sha256 struct
6875b01 Merge #386: Add some missing `VERIFY_CHECK(ctx != NULL)`
2c52b5d Merge #389: Cast pointers through uintptr_t under JNI
43097a4 Merge #390: Update bitcoin-core GitHub links
31c9c12 Merge #391: JNI: Only call ecdsa_verify if its inputs parsed correctly
1cb2302 Merge #392: Add testcase which hits additional branch in secp256k1_scalar_sqr
d2ee340 Merge #388: bench_ecdh: fix call to secp256k1_context_create
093a497 Add testcase which hits additional branch in secp256k1_scalar_sqr
a40c701 JNI: Only call ecdsa_verify if its inputs parsed correctly
faa2a11 Update bitcoin-core GitHub links
47b9e78 Cast pointers through uintptr_t under JNI
f36f9c6 bench_ecdh: fix call to secp256k1_context_create
bcc4881 Add some missing `VERIFY_CHECK(ctx != NULL)` for functions that use `ARG_CHECK`
6ceea2c align shared files copyright/comments to bitcoinj's
70141a8 Update .gitignore
7b549b1 Merge #373: build: fix x86_64 asm detection for some compilers
bc7c93c Merge #374: Add note about y=0 being possible on one of the sextic twists
e457018 Merge #364: JNI rebased
86e2d07 JNI library: cleanup, removed unimplemented code
3093576a JNI library
bd2895f Merge pull request #371
e72e93a Add note about y=0 being possible on one of the sextic twists
3f8fdfb build: fix x86_64 asm detection for some compilers
e5a9047 [Trivial] Remove double semicolons
c18b869 Merge pull request #360
3026daa Merge pull request #302
03d4611 Add sage verification script for the group laws
a965937 Merge pull request #361
83221ec Add experimental features to configure
5d4c5a3 Prevent damage_array in the signature test from going out of bounds.
419bf7f Merge pull request #356
03d84a4 Benchmark against OpenSSL verification

git-subtree-dir: src/secp256k1
git-subtree-split: 7a49cacd3937311fcb1cb36b6ba3336fca811991
2016-08-16 11:34:11 +02:00
instagibbs
edb6cf1432 remove no-longer-used InitError logic 2016-08-15 10:28:53 -04:00
MarcoFalke
6e5e5abba6
Merge #8270: Tests: Use portable #! in python scripts (/usr/bin/env)
7b01ce2 Favour python over python2 as per PR #7723 (Matthew King)
873e81f Use portable #! in python scripts (/usr/bin/env) (Matthew King)
2016-08-15 15:45:20 +02:00
Jonas Schnelli
c503863150
Merge #8192: [trivial] Remove URLs from About dialog translations
208d37f [trivial] Remove URLs from About dialog translations (fanquake)
2016-08-15 15:36:42 +02:00
Pavel Janík
b7c349d5e7 Do not shadow variables in networking code 2016-08-15 14:10:07 +02:00
Wladimir J. van der Laan
1030fa718c
Merge #8128: Net: Turn net structures into dumb storage classes
9e9d644 net: fixup nits (Cory Fields)
8945384 net: Have LookupNumeric return a CService directly (Cory Fields)
21ba407 net: narrow include scope after moving to netaddress (Cory Fields)
21e5b96 net: move CNetAddr/CService/CSubNet out of netbase (Cory Fields)
1017b8a net: Add direct tests for new CSubNet constructors (Cory Fields)
b6c3ff3 net: Split resolving out of CSubNet (Cory Fields)
f96c7c4 net: Split resolving out of CService (Cory Fields)
31d6b1d net: Split resolving out of CNetAddr (Cory Fields)
2016-08-15 13:35:27 +02:00
Pieter Wuille
d727f77e39
Merge #7946: Reduce cs_main locks during ConnectTip/SyncWithWallets
b3b3c2a Reduce cs_main locks during ConnectTip/SyncWithWallets (Jonas Schnelli)
2016-08-15 11:56:37 +02:00
Jeremy Rubin
8194a6e525 Fix a type error that would not compile on Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn) 2016-08-14 20:45:46 -04:00
leijurv
1aacfc2da5
various typos 2016-08-14 07:57:11 -06:00
Sev
6ffd996b8e Corrected JSON typo on setban of net.cpp 2016-08-14 15:36:22 +03:00
Wladimir J. van der Laan
3859072963
Merge #8353: Trivial: tiny c++11 refactors
c784086 use std::map::emplace() instead of std::map::insert() (whythat)
5e187e7 use c++11 std::unique_ptr instead of boost::shared_ptr (whythat)
947913f use std::map::erase(const_iterator, const_iterator) to get non-constant iterator (whythat)
2016-08-13 15:55:09 +02:00
Cory Fields
9e9d644f51 net: fixup nits 2016-08-12 14:22:49 -04:00
Jonas Schnelli
b3b3c2a562
Reduce cs_main locks during ConnectTip/SyncWithWallets 2016-08-12 14:53:10 +02:00
Wladimir J. van der Laan
0d0abcac1e
Merge #8481: Qt: Fix minimize and close bugs
05242e9 Fix minimize and close bugs (adlawren)
2016-08-11 15:23:05 +02:00
Andrew Chow
15df3c196b Persist the datadir after option reset
After a reset is performed, the datadir setting is saved and readded to the settings so that it is persisted across option resets.
2016-08-10 15:09:19 -04:00
Wladimir J. van der Laan
edebf425a2
Merge #8489: Bugfix: Use pre-BIP141 sigops until segwit activates (GBT)
239cbd2 qa/rpc-tests/segwit: Test GBT sigops before and after activation (Luke Dashjr)
160f895 Bugfix: Use pre-BIP141 sigops until segwit activates (Luke Dashjr)
2016-08-10 09:21:34 +02:00
MarcoFalke
fa5d276c90 [init] ParameterInteraction() iff wallet enabled 2016-08-10 08:40:57 +02:00
whythat
c784086075 use std::map::emplace() instead of std::map::insert() 2016-08-09 03:11:45 +03:00
whythat
5e187e7001 use c++11 std::unique_ptr instead of boost::shared_ptr 2016-08-09 03:11:45 +03:00
whythat
947913fc54 use std::map::erase(const_iterator, const_iterator) to get non-constant iterator 2016-08-09 03:11:28 +03:00
Luke Dashjr
160f895a80 Bugfix: Use pre-BIP141 sigops until segwit activates 2016-08-08 21:56:32 +00:00
Patrick Strateman
9578333ec4 Remove rpc_wallet_tests.cpp 2016-08-07 19:30:20 -07:00
adlawren
05242e937d Fix minimize and close bugs
refs #8225

To ensure the GUI closes when the "Minimize on close" window option is disabled, and the "Minimize to the tray instead of the taskbar" window option is enbaled, remove a check made against the "Minimize to the tray instead of the taskbar" value, made during GUI closure.

To ensure the GUI minimizes to the taskbar when the "Minimize on close" window option is enabled, and the "Minimize to the tray instead of the taskbar" window option is disabled, minimize the GUI and ignore the closure event.
2016-08-06 23:58:30 -07:00
Pavel Janík
33d15a3a76 Do not shadow LOCK's criticalblock variable for LOCK inside LOCK 2016-08-06 10:54:29 +02:00
Pavel Janík
4a35e0f34c Do not shadow members in dbwrapper 2016-08-05 21:17:50 +02:00
Pavel Janík
a159f25e19 Remove redundand (and shadowing) declaration 2016-08-05 20:03:01 +02:00
Michael Rotarius
f13c1bae52 Move AdvertiseLocal debug output to net category 2016-08-05 18:34:32 +02:00
Jameson Lopp
65f4532f13 document return value of networkhashps for getmininginfo RPC endpoint 2016-08-05 04:04:07 -04:00
Cory Fields
8945384bca net: Have LookupNumeric return a CService directly
Also fix up a few small issues:
- Lookup with "badip:port" now sets the port to 0
- Don't allow assert to have side-effects
2016-08-04 16:41:39 -04:00
Wladimir J. van der Laan
f97d335942
Merge #8392: Fix several node initialization issues
9d4eb9a Do diskspace check before import thread is started (Pieter Wuille)
aa59f2e Add extra message to avoid a long 'Loading banlist' (Pieter Wuille)
0fd2a33 Use a signal to continue init after genesis activation (Pieter Wuille)
2016-08-04 12:33:21 +02:00
Wladimir J. van der Laan
37d83bb0a9
Merge #8391: Consensus: Remove ISM
122786d Consensus: Remove ISM (NicolasDorier)
2016-08-04 12:20:35 +02:00
Pavel Janík
cce3024c23 Do not shadow local variable, cleanup 2016-08-03 20:35:29 +02:00
Wladimir J. van der Laan
194110fb91
Merge #8189: rename mapAddrCount to mapNetGroupNodes
657fc19 rename mapAddrCount to mapNetGroupNodes (instagibbs)
2016-08-03 11:50:45 +02:00
Wladimir J. van der Laan
ced2d5ef7c
Merge #8446: [Trivial] BIP9 parameters on regtest cleanup
0fc00be Do not shadow previous local variable (Pavel Janík)
115265b Trivial: bip -> BIP in help text and comment (Pavel Janík)
2016-08-03 11:05:29 +02:00
Wladimir J. van der Laan
fc93486d2a
Merge #8428: Update README.md inside of src/test/
b8db185 Update README.md (Chris Stewart)
2016-08-03 11:00:30 +02:00
Pavel Janík
0fc00bea5d Do not shadow previous local variable 2016-08-02 10:26:54 +02:00
Pavel Janík
115265bb10 Trivial: bip -> BIP in help text and comment 2016-08-02 10:26:05 +02:00
Wladimir J. van der Laan
63c03dd41c
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)
2016-08-02 08:26:57 +02:00
Wladimir J. van der Laan
ea268747b6
Merge #8419: Enable size accounting in mining unit tests
8bfd708 Enable size accounting in mining unit tests (Suhas Daftuar)
2016-08-01 10:42:31 +02:00
Pieter Wuille
c7e05b35ab
Merge #8432: Make CWallet::fFileBacked private.
29c2d99 Make CWallet::fFileBacked private. (Patrick Strateman)
2016-08-01 02:12:47 +02:00
Pieter Wuille
b9c1cd8184
Merge #8152: [Wallet] Remove CWalletDB* parameter from CWallet::AddToWallet
5723bb4 Remove unused pwalletdb from CWallet::AddToWallet (Patrick Strateman)
867f842 Remove CWalletDB* parameter from CWallet::AddToWallet (Patrick Strateman)
00f09c9 Split CWallet::AddToWallet into AddToWallet and LoadToWallet. (Patrick Strateman)
2016-08-01 02:06:42 +02:00
Pieter Wuille
8ea7d31e38
Merge #8413: Trivial: pass Consensus::Params& instead of CChainParams& in ContextualCheckBlock
c8664ee Trivial: pass Consensus::Params& instead of CChainParams& in ContextualCheckBlock (Jorge Timón)
2016-08-01 01:53:29 +02:00
Pieter Wuille
f798b891bc
Merge #8346: Mempool: Use Consensus::CheckTxInputs direclty over main::CheckInputs
a6cc299 Mempool: Use Consensus::CheckTxInputs direclty over main::CheckInputs (Jorge Timón)
2016-08-01 00:09:14 +02:00
Pavel Janík
ff8d279a78 Do not shadow member variables 2016-07-31 20:55:09 +02:00
Cory Fields
21ba407a73 net: narrow include scope after moving to netaddress
Net functionality is no longer needed for CAddress/CAddrman/etc. now that
CNetAddr/CService/CSubNet are dumb storage classes.
2016-07-31 14:01:44 -04:00
Cory Fields
21e5b96ff4 net: move CNetAddr/CService/CSubNet out of netbase 2016-07-31 14:01:44 -04:00
Cory Fields
1017b8a960 net: Add direct tests for new CSubNet constructors 2016-07-31 14:01:43 -04:00
Cory Fields
b6c3ff3dae net: Split resolving out of CSubNet 2016-07-31 14:01:43 -04:00