aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Do not shadow variable, use deprecated MAP_ANON if MAP_ANONYMOUS is not defined.Pavel Janík2016-11-021-3/+10
|
* Merge #8753: Locked memory managerWladimir J. van der Laan2016-11-0215-410/+966
|\ | | | | | | | | | | | | | | 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)
| * bench: Add benchmark for lockedpool allocation/deallocationWladimir J. van der Laan2016-10-272-1/+49
| |
| * rpc: Add `getmemoryinfo` callWladimir J. van der Laan2016-10-271-0/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ``` 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/ ```
| * support: Add LockedPoolWladimir J. van der Laan2016-10-277-328/+832
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * wallet: Get rid of LockObject and UnlockObject calls in key.hWladimir J. van der Laan2016-10-193-55/+23
| | | | | | | | | | | | | | | | | | | | | | | | 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.
| * wallet: Change CCrypter to use vectors with secure allocatorWladimir J. van der Laan2016-10-193-26/+19
| | | | | | | | | | | | | | 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.
* | Merge #9032: test: Add format-dependent comparison to bctestWladimir J. van der Laan2016-11-021-3/+27
|\ \ | | | | | | | | | 6c5cd9d test: Add format-dependent comparison to bctest (Wladimir J. van der Laan)
| * | test: Add format-dependent comparison to bctestWladimir J. van der Laan2016-10-281-3/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Merge #8448: Store mempool and prioritization data to diskWladimir J. van der Laan2016-11-025-7/+146
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 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)
| * | | Add DumpMempool and LoadMempoolPieter Wuille2016-10-313-0/+122
| | | |
| * | | Add AcceptToMemoryPoolWithTime functionPieter Wuille2016-10-302-5/+15
| | | |
| * | | Add feedelta to TxMempoolInfoPieter Wuille2016-10-302-2/+9
| | | |
* | | | Merge #9043: [qt] Return useful error message on ATMP failureJonas Schnelli2016-11-013-4/+8
|\ \ \ \ | | | | | | | | | | | | | | | 3333e5a [qt] Return useful error message on ATMP failure (MarcoFalke)
| * | | | [qt] Return useful error message on ATMP failureMarcoFalke2016-10-303-4/+8
| |/ / /
* / / / Change all instance of 'GMT epoch' to 'Unix epoch'matthias2016-10-312-2/+2
|/ / /
* | | Merge #8989: [Qt] overhaul smart-fee slider, adjust default confirmation targetWladimir J. van der Laan2016-10-287-13/+64
|\ \ \ | | | | | | | | | | | | | | | | | | | | 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)
| * | | [Qt] overhaul smart-fee slider, adjust default confirmation targetJonas Schnelli2016-10-283-11/+47
| | | |
| * | | [Qt] Hide nTxConfirmTarget behind WalletModelJonas Schnelli2016-10-282-0/+7
| | | |
| * | | CoinControl: add option for custom confirmation targetJonas Schnelli2016-10-282-2/+10
| | | |
* | | | Merge #9016: Return useful error message on ATMP failureWladimir J. van der Laan2016-10-284-13/+22
|\ \ \ \ | |/ / / |/| | | | | | | 169bdab Return useful error message on ATMP failure (instagibbs)
| * | | Return useful error message on ATMP failureinstagibbs2016-10-264-13/+22
| | | |
* | | | instance of 'mem pool' to 'mempool'S. Matthew English2016-10-272-2/+2
| |/ / |/| | | | | | | | there was only one instance of 'mem pool' and not 'mempool', so I changed it to conform to the others
* | | rpc: Remove invalid explanation from wallet fee messageWladimir J. van der Laan2016-10-261-1/+1
| | |
* | | Merge #8515: A few mempool removal optimizationsWladimir J. van der Laan2016-10-257-50/+51
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 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)
| * | | Add some missing includesPieter Wuille2016-10-211-0/+4
| | | |
| * | | Return shared_ptr<CTransaction> from mempool removesPieter Wuille2016-10-215-15/+15
| | | |
| * | | Make removed and conflicted arguments optional to removePieter Wuille2016-10-217-35/+31
| | | |
| * | | Bypass removeRecursive in removeForReorgPieter Wuille2016-10-211-7/+8
| |/ /
* | | Merge #9008: [net] Remove assert(nMaxInbound > 0)Wladimir J. van der Laan2016-10-251-1/+0
|\ \ \ | | | | | | | | | | | | fa1c3c2 [net] Remove assert(nMaxInbound > 0) (MarcoFalke)
| * | | [net] Remove assert(nMaxInbound > 0)MarcoFalke2016-10-241-1/+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.
* | | | Merge #9002: Make connect=0 disable automatic outbound connections.Wladimir J. van der Laan2016-10-252-5/+6
|\ \ \ \ | |/ / / |/| | | | | | | 515e264 Make connect=0 disable automatic outbound connections. (Gregory Maxwell)
| * | | Make connect=0 disable automatic outbound connections.Gregory Maxwell2016-10-252-5/+6
| |/ / | | | | | | | | | | | | Otherwise it just responds to this obvious bit of configuration by trying to connect to "0" in a loop.
* | | Merge #8995: Add missing cs_main lock to ::GETBLOCKTXN processingWladimir J. van der Laan2016-10-241-0/+2
|\ \ \ | | | | | | | | | | | | dfe7906 Add missing cs_main lock to ::GETBLOCKTXN processing (Matt Corallo)
| * | | Add missing cs_main lock to ::GETBLOCKTXN processingMatt Corallo2016-10-211-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | Fix doxygen comment: the transaction is returned in txOutPavel Janík2016-10-211-1/+1
| |/ / |/| |
* | | Merge #8982: Eliminating Inconsistencies in Textual OutputMarcoFalke2016-10-211-3/+3
|\ \ \ | |/ / |/| | | | | 3a286ab Eliminating Inconsistencies in Textual Output (S. Matthew English)
| * | Eliminating Inconsistencies in Textual OutputS. Matthew English2016-10-201-3/+3
| | | | | | | | | 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.
* | | Merge #8968: Don't hold cs_main when calling ProcessNewBlock from a cmpctblockWladimir J. van der Laan2016-10-211-21/+26
|\ \ \ | | | | | | | | | | | | 72ca7d9 Don't hold cs_main when calling ProcessNewBlock from a cmpctblock (Matt Corallo)
| * | | Don't hold cs_main when calling ProcessNewBlock from a cmpctblockMatt Corallo2016-10-181-21/+26
| | | |
* | | | Merge #8975: Chainparams: Trivial: In AppInit2(), s/Params()/chainparams/Wladimir J. van der Laan2016-10-211-4/+4
|\ \ \ \ | | | | | | | | | | | | | | | 6f2f639 Chainparams: Trivial: In AppInit2(), s/Params()/chainparams/ (Jorge Timón)
| * | | | Chainparams: Trivial: In AppInit2(), s/Params()/chainparams/Jorge Timón2016-10-191-4/+4
| | | | |
* | | | | Merge #8990: moveonly: move `coincontrol` to `src/wallet`Wladimir J. van der Laan2016-10-215-7/+7
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | 1ae5839 moveonly: move `coincontrol` to `src/wallet` (Wladimir J. van der Laan)
| * | | | | moveonly: move `coincontrol` to `src/wallet`Wladimir J. van der Laan2016-10-215-7/+7
| | | | | |
* | | | | | Merge #8985: Use pindexBestHeader instead of setBlockIndexCandidates for ↵Jonas Schnelli2016-10-214-12/+9
|\ \ \ \ \ \ | |/ / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)
| * | | | | [Qt] use NotifyHeaderTip's height and date for the progress updateJonas Schnelli2016-10-203-9/+7
| | | | | |
| * | | | | Use pindexBestHeader instead of setBlockIndexCandidates for NotifyHeaderTip()Jonas Schnelli2016-10-201-3/+2
| | |_|/ / | |/| | |
* / | | | RPC: importmulti: Avoid using boost::variant::operator!=, which is only in ↵Luke Dashjr2016-10-201-4/+4
|/ / / / | | | | | | | | | | | | newer boost versions
* | | | Merge #7551: Add importmulti RPC callWladimir J. van der Laan2016-10-205-0/+436
|\ \ \ \ | |/ / / |/| | | | | | | | | | | 215caba Add consistency check to RPC call importmulti (Pedro Branco) cb08fdb Add importmulti rpc call (Pedro Branco)
| * | | Add consistency check to RPC call importmultiPedro Branco2016-10-191-8/+40
| | | |