Commit Graph

11990 Commits

Author SHA1 Message Date
Kaz Wesley b3ddc5e76f LockedPool: avoid quadratic-time allocation
Use separate maps for used/free chunks to avoid linear scan through alloced
chunks for each alloc.
2016-11-02 16:52:56 -07:00
Kaz Wesley 0b59f80625 LockedPool: fix explosion for illegal-sized alloc
Check for unreasonable alloc size in LockedPool rather than lancing through new
Arenas until we improbably find one worthy of the quixotic request or the system
can support no more Arenas.
2016-11-02 14:41:40 -07:00
Kaz Wesley 21b8f3db31 LockedPool: test handling of invalid allocations
(Currently fails due to bug)
2016-11-02 14:05:07 -07:00
Wladimir J. van der Laan a4fd8dff68
Merge #8828: Move CWalletDB::ReorderTransactions to CWallet
86029e7 Move CWalletDB::ReorderTransactions to CWallet (Patrick Strateman)
2016-11-02 15:37:42 +01:00
Wladimir J. van der Laan bae81b83d6
Merge #8674: tools for analyzing, updating and adding copyright headers in source files
159597a [devtools] script support for managing source file copyright headers (isle2983)
2016-11-02 15:35:27 +01:00
Wladimir J. van der Laan 1107653d05
Merge #9060: trivial: fix bloom filter init to isEmpty = true
cccf73d trivial: fix bloom filter init to isEmpty = true (Robert McLaughlin)
2016-11-02 15:30:47 +01:00
Wladimir J. van der Laan f2a6e8243f
Merge #9063: Do not shadow variable, use deprecated MAP_ANON if MAP_ANONYMOUS is not defined
4a9f3c5 Do not shadow variable, use deprecated MAP_ANON if MAP_ANONYMOUS is not defined. (Pavel Janík)
2016-11-02 14:41:36 +01:00
Pavel Janík 4a9f3c50cc Do not shadow variable, use deprecated MAP_ANON if MAP_ANONYMOUS is not defined. 2016-11-02 14:18:19 +01:00
Wladimir J. van der Laan f8723d2318
Merge #8753: Locked memory manager
444c673 bench: Add benchmark for lockedpool allocation/deallocation (Wladimir J. van der Laan)
6567999 rpc: Add `getmemoryinfo` call (Wladimir J. van der Laan)
4536148 support: Add LockedPool (Wladimir J. van der Laan)
f4d1fc2 wallet: Get rid of LockObject and UnlockObject calls in key.h (Wladimir J. van der Laan)
999e4c9 wallet: Change CCrypter to use vectors with secure allocator (Wladimir J. van der Laan)
2016-11-02 11:16:29 +01:00
Wladimir J. van der Laan 6a8be7ba99
Merge #9032: test: Add format-dependent comparison to bctest
6c5cd9d test: Add format-dependent comparison to bctest (Wladimir J. van der Laan)
2016-11-02 11:15:36 +01:00
Wladimir J. van der Laan 101c642bef
Merge #8448: Store mempool and prioritization data to disk
582068a Add mempool.dat to doc/files.md (Pieter Wuille)
3f78562 Add DumpMempool and LoadMempool (Pieter Wuille)
ced7c94 Add AcceptToMemoryPoolWithTime function (Pieter Wuille)
c3efb58 Add feedelta to TxMempoolInfo (Pieter Wuille)
2016-11-02 11:12:58 +01:00
Robert McLaughlin cccf73db04 trivial: fix bloom filter init to isEmpty = true
Fixes newly initialized bloom filters being
constructed with isEmpty(false), which still
works but loses the possible speedup when
checking for key membership in an empty filter.
2016-11-01 21:04:26 -04:00
Jonas Schnelli 273bde37d8
Merge #9043: [qt] Return useful error message on ATMP failure
3333e5a [qt] Return useful error message on ATMP failure (MarcoFalke)
2016-11-01 08:33:17 +01:00
MarcoFalke 3d69ecb4ed
Merge #9041: keypoololdest denote Unix epoch, not GMT
7f61b49 Change all instance of 'GMT epoch' to 'Unix epoch' (matthias)
2016-10-31 19:49:12 +01:00
Pieter Wuille 582068aa90 Add mempool.dat to doc/files.md 2016-10-31 00:10:36 -07:00
Pieter Wuille 3f78562df5 Add DumpMempool and LoadMempool 2016-10-31 00:10:36 -07:00
Pieter Wuille ced7c949e8 Add AcceptToMemoryPoolWithTime function 2016-10-30 23:24:41 -07:00
Pieter Wuille c3efb58622 Add feedelta to TxMempoolInfo 2016-10-30 23:12:09 -07:00
matthias 7f61b49de8 Change all instance of 'GMT epoch' to 'Unix epoch' 2016-10-31 01:11:46 +01:00
MarcoFalke 3333e5a1e5 [qt] Return useful error message on ATMP failure 2016-10-30 18:23:37 +01:00
Patrick Strateman 86029e72c9 Move CWalletDB::ReorderTransactions to CWallet 2016-10-30 02:15:49 -07:00
Wladimir J. van der Laan 6c5cd9d022 test: Add format-dependent comparison to bctest
This splits the output comparison for `bitcoin-tx` into two steps:

- First, check for data mismatch, parsing the data as json or hex
  depending on the extension of the output file

- Then, check if the literal string matches

For either of these cases give a different error.

This prevents wild goose chases when e.g. a trailing space doesn't match
exactly, and makes sure that both test output and examples are valid
data of the purported format.
2016-10-28 14:20:59 +02:00
Wladimir J. van der Laan d2143dc937
Merge #8989: [Qt] overhaul smart-fee slider, adjust default confirmation target
cfe77ef [Qt] overhaul smart-fee slider, adjust default confirmation target (Jonas Schnelli)
6f02899 [Qt] Hide nTxConfirmTarget behind WalletModel (Jonas Schnelli)
004168d CoinControl: add option for custom confirmation target (Jonas Schnelli)
2016-10-28 14:14:55 +02:00
Wladimir J. van der Laan 0dcb888266
Merge #9016: Return useful error message on ATMP failure
169bdab Return useful error message on ATMP failure (instagibbs)
2016-10-28 13:49:15 +02:00
Jonas Schnelli cfe77ef412
[Qt] overhaul smart-fee slider, adjust default confirmation target 2016-10-28 10:44:30 +02:00
Jonas Schnelli 6f0289967f
[Qt] Hide nTxConfirmTarget behind WalletModel 2016-10-28 10:44:30 +02:00
Jonas Schnelli 004168dcb7
CoinControl: add option for custom confirmation target 2016-10-28 10:44:30 +02:00
Wladimir J. van der Laan fea5e05a63
Merge #9029: instance of 'mem pool' to 'mempool'
1c3ecc7 instance of 'mem pool' to 'mempool' (S. Matthew English)
2016-10-27 16:46:44 +02:00
S. Matthew English 1c3ecc70c8 instance of 'mem pool' to 'mempool'
there was only one instance of  'mem pool' and not 'mempool', so I changed it to conform to the others
2016-10-27 16:45:09 +02:00
Wladimir J. van der Laan 83234d4d17
Merge #9033: Update build notes for dropping osx 10.7 support (fanquake)
ba26d41 Update build notes for dropping osx 10.7 support (Michael Ford)
2016-10-27 14:59:19 +02:00
Wladimir J. van der Laan a49b4a75a1
doc: Add release notes for 0.13.1 release 2016-10-27 14:57:41 +02:00
Michael Ford ba26d415c0 Update build notes for dropping osx 10.7 support
Github-Pull: #9022
Rebased-From: 1d1246314f
2016-10-27 14:29:06 +02:00
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
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
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
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