Commit graph

13475 commits

Author SHA1 Message Date
Wladimir J. van der Laan
444c673d85 bench: Add benchmark for lockedpool allocation/deallocation 2016-10-27 13:17:26 +02:00
Wladimir J. van der Laan
6567999096 rpc: Add getmemoryinfo call
```
getmemoryinfo
Returns an object containing information about memory usage.

Result:
{
  "locked": {               (json object) Information about locked memory manager
    "used": xxxxx,          (numeric) Number of bytes used
    "free": xxxxx,          (numeric) Number of bytes available in current arenas
    "total": xxxxxxx,       (numeric) Total number of bytes managed
    "locked": xxxxxx,       (numeric) Amount of bytes that succeeded locking. If this number is smaller than total, locking pages failed at some point and key data could be swapped to disk.
  }
}

Examples:
> bitcoin-cli getmemoryinfo
> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getmemoryinfo", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:8332/
```
2016-10-27 13:17:26 +02:00
Wladimir J. van der Laan
4536148b15 support: Add LockedPool
Add a pool for locked memory chunks, replacing LockedPageManager.

This is something I've been wanting to do for a long time. The current
approach of locking objects where they happen to be on the stack or heap
in-place causes a lot of mlock/munlock system call overhead, slowing
down any handling of keys.

Also locked memory is a limited resource on many operating systems (and
using a lot of it bogs down the system), so the previous approach of
locking every page that may contain any key information (but also other
information) is wasteful.
2016-10-27 13:17:25 +02:00
instagibbs
169bdabe14 Return useful error message on ATMP failure 2016-10-26 15:59:33 -04:00
Wladimir J. van der Laan
86f9e3dbba
Merge #9020: rpc: Remove invalid explanation from wallet fee message
04c1c15 rpc: Remove invalid explanation from wallet fee message (Wladimir J. van der Laan)
2016-10-26 13:20:20 +02:00
Wladimir J. van der Laan
04c1c15544 rpc: Remove invalid explanation from wallet fee message 2016-10-26 11:57:27 +02:00
Wladimir J. van der Laan
54259370ae
Merge #9015: release: bump required osx version to 10.8. (jonasschnelli)
339c4b6 release: bump required osx version to 10.8. Credit jonasschnelli. (Cory Fields)
2016-10-26 10:06:29 +02:00
Russell Yanofsky
67c6326abd Send tip change notification from invalidateblock
This change is needed to prevent sync_blocks timeouts in the mempool_reorg
test after the sync_blocks update in the upcoming commit
"[qa] Change sync_blocks to pick smarter maxheight".

This change was initially suggested by Suhas Daftuar <sdaftuar@chaincode.com>
in https://github.com/bitcoin/bitcoin/pull/8680#r78209060
2016-10-25 15:30:55 -04:00
Cory Fields
339c4b6c3a release: bump required osx version to 10.8. Credit jonasschnelli.
libc++ on 10.7 causes too many issues.

See #8577 for discussion/details.
2016-10-25 14:29:03 -04:00
Geoffrey Tsui
d0b01f3a85 Explicitly pass const CChainParams& to LoadBlockIndexDB() 2016-10-25 22:35:26 +08:00
Wladimir J. van der Laan
9bdf5269f8
Merge #8515: A few mempool removal optimizations
0334430 Add some missing includes (Pieter Wuille)
4100499 Return shared_ptr<CTransaction> from mempool removes (Pieter Wuille)
51f2783 Make removed and conflicted arguments optional to remove (Pieter Wuille)
f48211b Bypass removeRecursive in removeForReorg (Pieter Wuille)
2016-10-25 14:21:57 +02:00
Wladimir J. van der Laan
e077e00303
Merge #8948: [TRIVIAL] reorder Windows gitian build order to match Linux
3f7581d [TRIVIAL] reorder Windows gitian build order to match Linux (Micha)
2016-10-25 13:24:43 +02:00
Wladimir J. van der Laan
f14f07cb94
Merge #9008: [net] Remove assert(nMaxInbound > 0)
fa1c3c2 [net] Remove assert(nMaxInbound > 0) (MarcoFalke)
2016-10-25 12:37:05 +02:00
Wladimir J. van der Laan
e1d1f57b56
Merge #9002: Make connect=0 disable automatic outbound connections.
515e264 Make connect=0 disable automatic outbound connections. (Gregory Maxwell)
2016-10-25 12:27:24 +02:00
Gregory Maxwell
515e2642eb Make connect=0 disable automatic outbound connections.
Otherwise it just responds to this obvious bit of configuration by
 trying to connect to "0" in a loop.
2016-10-25 06:17:43 +00:00
Wladimir J. van der Laan
67728a389c
Merge #9004: Clarify listenonion
3421e74 Clarify `listenonion` (unsystemizer)
2016-10-25 07:37:30 +02:00
MarcoFalke
fa1c3c2eb0 [net] Remove assert(nMaxInbound > 0)
nMaxInbound might very well be 0 or -1, if the user prefers to keep
a small number of maxconnections.

Note: nMaxInbound of -1 means that the user set maxconnections
to 8 or less, but we still want to keep an additional slot for
the feeler connection.
2016-10-24 22:12:48 +02:00
Luke Dashjr
19f46f177e Qt: New network_disabled icon 2016-10-24 10:23:58 +00:00
Luke Dashjr
54cf99745f RPC/Net: Use boolean consistently for networkactive, and remove from getinfo 2016-10-24 10:23:58 +00:00
Jonas Schnelli
b2b33d9017 Overhaul network activity toggle
- Rename RPC command "togglenetwork" to "setnetworkactive (true|false)"
- Add simple test case
- GUI toggle added to connections icon in statusbar
2016-10-24 10:23:58 +00:00
Jon Lund Steffensen
32efa79e0e Qt: Add GUI feedback and control of network activity state.
Add getNetworkActive()/setNetworkActive() method to client model.
Send network active status through NotifyNetworkActiveChanged.
Indicate in tool tip of gui status bar network indicator whether network activity is disabled.
Indicate in debug window whether network activity is disabled and add button to allow user to toggle network activity state.
2016-10-24 10:23:58 +00:00
Jon Lund Steffensen
e38993bb36 RPC: Add "togglenetwork" method to toggle network activity temporarily
RPC command "togglenetwork" toggles network and returns new state after command.
RPC command "getinfo" returns "networkactive" field in output.
2016-10-24 10:23:58 +00:00
Jon Lund Steffensen
7c9a98aac8 Allow network activity to be temporarily suspended.
Added the function SetNetworkActive() which when called with argument set to false disconnects all nodes and sets the flag fNetworkActive to false. As long as this flag is false no new connections are attempted and no incoming connections are accepted. Network activity is reenabled by calling the function with argument true.
2016-10-24 10:23:58 +00:00
Wladimir J. van der Laan
ced22d035a
Merge #8995: Add missing cs_main lock to ::GETBLOCKTXN processing
dfe7906 Add missing cs_main lock to ::GETBLOCKTXN processing (Matt Corallo)
2016-10-24 11:17:07 +02:00
unsystemizer
3421e74601 Clarify listenonion
> This new feature is enabled by default if Bitcoin Core is listening, and a connection to Tor can be made. It can be configured with the -listenonion, -torcontrol and -torpassword settings. To show verbose debugging information, pass -debug=tor.

But it is correct to say that the feature is enabled *regardless* of whether a connection to Tor can be made.

I propose to clarify that so that users can eliminate these in their logs (when `listen=1` and no Tor).
And I think it's okay to clarify about the `listen` option, because on several occasions when I read this before I always assumed `listening` meant `server=1` which cost me a lot of time in troubleshooting.

```
2016-10-24 06:19:22.551029 tor: Error connecting to Tor control socket
2016-10-24 06:19:22.551700 tor: Not connected to Tor control port 127.0.0.1:9051, trying to reconnect
```

### What version of bitcoin-core are you using?
0.12.1
2016-10-24 15:49:46 +08:00
Wladimir J. van der Laan
fd29348dbe
Merge #8993: Trivial: Fix doxygen comment: the transaction is returned in txOut
1d8e12b Fix doxygen comment: the transaction is returned in txOut (Pavel Janík)
2016-10-24 09:18:27 +02:00
Pieter Wuille
0334430b39 Add some missing includes 2016-10-21 19:22:43 -07:00
Pieter Wuille
4100499db4 Return shared_ptr<CTransaction> from mempool removes 2016-10-21 19:22:43 -07:00
Pieter Wuille
51f278329d Make removed and conflicted arguments optional to remove 2016-10-21 19:22:43 -07:00
Pieter Wuille
f48211b700 Bypass removeRecursive in removeForReorg 2016-10-21 19:22:43 -07:00
Pavel Janík
1d8e12ba48 Fix doxygen comment: the transaction is returned in txOut 2016-10-21 23:42:37 +02:00
MarcoFalke
f08222e882
Merge #8982: Eliminating Inconsistencies in Textual Output
3a286ab Eliminating Inconsistencies in Textual Output (S. Matthew English)
2016-10-21 19:39:46 +02:00
Matt Corallo
dfe79060a6 Add missing cs_main lock to ::GETBLOCKTXN processing
Note that this is not a major issue as, in order for the missing
lock to cause issues, you have to receive a GETBLOCKTXN message
while reindexing, adding a block header via RPC, etc, which results
in either a table rehash or an insert into the bucket which you are
currently looking at.
2016-10-21 12:15:19 -04:00
Wladimir J. van der Laan
3cf496d102
Merge #8968: Don't hold cs_main when calling ProcessNewBlock from a cmpctblock
72ca7d9 Don't hold cs_main when calling ProcessNewBlock from a cmpctblock (Matt Corallo)
2016-10-21 16:58:44 +02:00
Wladimir J. van der Laan
5af9a7117c
Merge #8975: Chainparams: Trivial: In AppInit2(), s/Params()/chainparams/
6f2f639 Chainparams: Trivial: In AppInit2(), s/Params()/chainparams/ (Jorge Timón)
2016-10-21 16:57:50 +02:00
Wladimir J. van der Laan
3fb3fade3c
Merge #8990: moveonly: move coincontrol to src/wallet
1ae5839 moveonly: move `coincontrol` to `src/wallet` (Wladimir J. van der Laan)
2016-10-21 15:30:28 +02:00
Jonas Schnelli
7b1bfa3a87
Merge #8985: Use pindexBestHeader instead of setBlockIndexCandidates for NotifyHeaderTip()
3154d6e [Qt] use NotifyHeaderTip's height and date for the progress update (Jonas Schnelli)
0a261b6 Use pindexBestHeader instead of setBlockIndexCandidates for NotifyHeaderTip() (Jonas Schnelli)
2016-10-21 14:30:02 +02:00
Wladimir J. van der Laan
1ae5839ff0 moveonly: move coincontrol to src/wallet 2016-10-21 11:48:18 +02:00
Wladimir J. van der Laan
0e228557f2
Merge #8980: RPC: importmulti: Avoid using boost::variant::operator!=, which is only in newer boost versions
7942d31 RPC: importmulti: Avoid using boost::variant::operator!=, which is only in newer boost versions (Luke Dashjr)
2016-10-20 20:27:37 +02:00
Wladimir J. van der Laan
5ca8ef299a libconsensus: Add input validation of flags
Makes it an error to use flags that have not been defined
on the libconsensus API.

There has been some confusion as to what pass to libconsensus, and
(combined with mention in the release notes) this should clear it up.

Using undocumented flags is a risk because their meaning,
and what combinations are allowed, changes from release to release.
E.g. it is no longer possible to pass (CLEANSTACK | P2SH) without
running into an assertion after the segwit changes.
2016-10-20 19:26:36 +02:00
Jonas Schnelli
3154d6e3a2
[Qt] use NotifyHeaderTip's height and date for the progress update 2016-10-20 19:02:59 +02:00
Jonas Schnelli
0a261b63fd
Use pindexBestHeader instead of setBlockIndexCandidates for NotifyHeaderTip() 2016-10-20 19:02:48 +02:00
S. Matthew English
3a286abf8f Eliminating Inconsistencies in Textual Output
There were discrepancies between usage of "block chain" and "blockchain", I've changed them to the latter. The reason for this was that Wikipedia when describing this data structure writes "A blockchain — *originally block chain*", so it seemed the more appropriate term.
2016-10-20 12:39:48 +02:00
Pavel Janík
ff6639b0f5 Do not shadow local variable 2016-10-20 12:31:05 +02:00
Luke Dashjr
7942d31d5f RPC: importmulti: Avoid using boost::variant::operator!=, which is only in newer boost versions 2016-10-20 10:18:05 +00:00
Jonas Schnelli
cab1da745b
[Wallet] Refactor wallet/init interaction (Reaccept wtx, flush thread) 2016-10-20 09:22:13 +02:00
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