Commit Graph

9873 Commits

Author SHA1 Message Date
Matt Corallo
bde953e281 Uncache input txn in utxo cache if a tx is not accepted to mempool 2015-12-01 15:52:09 -08:00
Matt Corallo
97bf377bd1 Add CCoinsViewCache::HaveCoinsInCache to check if a tx is cached 2015-12-01 15:52:09 -08:00
Matt Corallo
677aa3d88c Discard txn cache entries that were loaded for removed mempool txn 2015-12-01 15:52:07 -08:00
Matt Corallo
b2e74bd292 Get the set of now-uncacheable-txn from CTxMemPool::TrimToSize 2015-12-01 15:50:39 -08:00
Matt Corallo
74d0f90262 Add method to remove a tx from CCoinsViewCache if it is unchanged 2015-12-01 15:50:39 -08:00
Luke Dashjr
45b8e278fb -bytespersigop option to additionally limit sigops in transactions we relay and mine 2015-12-01 20:57:08 +00:00
Pieter Wuille
4077ad20d0
Merge pull request #6898
553cad9 Rewrite CreateNewBlock (Alex Morcos)
5f12263 Expose FormatStateMessage (Alex Morcos)
1f09287 Make accessing mempool parents and children public (Alex Morcos)
7230187 Add TxPriority class and comparator (Alex Morcos)
f3fe836 Add a score index to the mempool. (Alex Morcos)
c49d5bc Store the total sig op count of a tx. (Alex Morcos)
2015-12-01 20:30:54 +01:00
Alex Morcos
553cad94e2 Rewrite CreateNewBlock
Use the score index on the mempool to only add sorted txs in order.  Remove much of the validation while building the block, relying on mempool to be consistent and only contain txs that can be mined.
The mempool is assumed to be consistent as far as not containing txs which spend non-existent outputs or double spends, and scripts are valid.  Finality of txs is still checked (except not coinbase maturity, assumed in mempool).
Still TestBlockValidity in case mempool consistency breaks and return error state if an invalid block was created.
Unit tests are modified to realize that invalid blocks can now be constructed if the mempool breaks its consistency assumptions and also updated to have the right fees, since the cached value is now used for block construction.

Conflicts:
	src/miner.cpp
2015-12-01 12:09:37 -05:00
Alex Morcos
5f12263302 Expose FormatStateMessage 2015-12-01 10:10:25 -05:00
Alex Morcos
1f09287c66 Make accessing mempool parents and children public 2015-12-01 10:10:25 -05:00
Alex Morcos
7230187b1d Add TxPriority class and comparator 2015-12-01 10:10:25 -05:00
Alex Morcos
f3fe83673e Add a score index to the mempool.
The score index is meant to represent the order of priority for being included in a block for miners.  Initially this is set to the transactions modified (by any feeDelta) fee rate.  Index improvements and unit tests by sdaftuar.
2015-12-01 10:10:25 -05:00
Alex Morcos
c49d5bc9e6 Store the total sig op count of a tx.
Store sum of legacy and P2SH sig op counts.  This is calculated in AcceptToMemory pool and storing it saves redoing the expensive calculation in block template creation.
2015-12-01 10:10:25 -05:00
Wladimir J. van der Laan
8f0d79e3c8 test: Disable scheduler test manythreads
It causes occasional deadlocks, resulting in false negatives in Travis.

Disable the test for now.
Works around #6540.
2015-12-01 14:43:38 +01:00
Wladimir J. van der Laan
16f4a6e0fe
Merge pull request #7137
cfdc662 Explicitly set chain limits in replace-by-fee test (Suhas Daftuar)
2015-12-01 13:32:21 +01:00
Wladimir J. van der Laan
bc1f427570
qt: periodic translations update 2015-12-01 13:26:50 +01:00
Wladimir J. van der Laan
c0c08c7c68
Merge pull request #7141
aabc897 rpc: Don't translate warning messages (Wladimir J. van der Laan)
2015-12-01 13:21:16 +01:00
Wladimir J. van der Laan
a60538bc45
Merge pull request #7143
6da12df qt: use QMetaObject::invokeMethod for cross-thread signaling in clientmodel (Wladimir J. van der Laan)
2015-12-01 13:20:34 +01:00
Wladimir J. van der Laan
2ef5ffa59a
Merge pull request #6915
2d8860e Fix removeForReorg to use MedianTimePast (Suhas Daftuar)
b7fa4aa Don't call removeForReorg if DisconnectTip fails (Suhas Daftuar)
7e49f5f Track coinbase spends in CTxMemPoolEntry (Suhas Daftuar)
bb8ea1f removeForReorg calls once-per-disconnect-> once-per-reorg (Matt Corallo)
474b84a Make indentation in ActivateBestChainStep readable (Matt Corallo)
b0a064c Fix comment in removeForReorg (Matt Corallo)
9b060e5 Fix removal of time-locked transactions during reorg (Matt Corallo)
0c9959a Add failing test checking timelocked-txn removal during reorg (Matt Corallo)
2015-12-01 13:17:34 +01:00
Wladimir J. van der Laan
9afbd96919
Merge pull request #7022
50947ef Change default block priority size to 0 (Alex Morcos)
2015-12-01 12:39:34 +01:00
Wladimir J. van der Laan
6da12dff28 qt: use QMetaObject::invokeMethod for cross-thread signaling in clientmodel
It's surprising to me that Q_EMIT even worked for this.

But it doesn't build in Qt4, so switch back to
`QMetaObject::invokeMethod`. Fixes #7138.
2015-12-01 11:55:10 +01:00
Pavel Janík
b212f94dd9 Describe maxmempool and mempoolminfee in the getmempoolinfo RPC help. 2015-12-01 11:26:32 +01:00
Luke Dashjr
02354c93be Constrain rpcport default values to a single location in code 2015-12-01 10:18:18 +00:00
Wladimir J. van der Laan
6abf6eb7bb
Merge pull request #7063
2b31ab9 Add rpc test for prioritisetransaction (Suhas Daftuar)
6e8b07f Add rounding helper function to util.py (Suhas Daftuar)
2015-12-01 11:04:32 +01:00
Suhas Daftuar
2b31ab90c4 Add rpc test for prioritisetransaction 2015-12-01 11:03:57 +01:00
Suhas Daftuar
6e8b07f5f3 Add rounding helper function to util.py 2015-12-01 11:03:37 +01:00
Wladimir J. van der Laan
8f761e87c3
Merge pull request #7136
fa19a58 HelpMessage: Don't hide -mintxfee behind showDebug (MarcoFalke)
faffc17 rpcwallet: Clarify what settxfee does (MarcoFalke)
9999cb0 Fix url in .travis.yml (MarcoFalke)
fa22a10 contrib: Del. gitian downloader config and update gitian README (MarcoFalke)
fad3035 [doc] Minor markdown fixes (MarcoFalke)
2015-12-01 10:23:05 +01:00
Wladimir J. van der Laan
327291af02
Merge pull request #6914
114b581 Prevector type (Pieter Wuille)
2015-12-01 10:22:14 +01:00
Wladimir J. van der Laan
aabc897801 rpc: Don't translate warning messages
But keep translating them in the GUI.
This - necessarily - requires duplication of a few messages.
Alternative take on #7134, that keeps the translations from being wiped.

Also document GetWarnings() input argument.

Fixes #5895.
2015-12-01 10:07:22 +01:00
Wladimir J. van der Laan
9490bd71bd
Merge pull request #7096
ff723da [Qt] improve minimum absolute fee option - Only display the minimum absolute fee control if CoinControl is enabled (Jonas Schnelli)
31b508a [Qt] make use of the nMinimumTotalFee (absolute) in coincontrols fee calculation (Jonas Schnelli)
80462dd [Qt] use ASYMP_UTF8 (≈) whenever we show a fee that is not absolute (Jonas Schnelli)
ecc7c82 Move fPayAtLeastCustomFee function to CC (Pieter Wuille)
2015-12-01 09:59:03 +01:00
Wladimir J. van der Laan
eb3d1b3487
Merge pull request #7135
fa3a38a [qa] pull-tester: Cleanup (run keypool, tidy stdout) (MarcoFalke)
2015-12-01 09:56:09 +01:00
Wladimir J. van der Laan
30c2d8c635
Merge pull request #7105
9ac63d6 Keep track of explicit wallet conflicts instead of using mempool (Pieter Wuille)
2015-12-01 09:22:08 +01:00
Wladimir J. van der Laan
1b5118bfa0
Merge pull request #7079
ebb25f4 Limit setAskFor and retire requested entries only when a getdata returns. (Gregory Maxwell)
5029698 prevent peer flooding request queue for an inv (kazcw)
2015-12-01 09:02:33 +01:00
Gregory Maxwell
c143c499c8
Merge pull request #7072
996d311 [RPC] Add transaction size to JSON output (Nick)
2015-11-30 22:58:43 -08:00
Alex Morcos
50947ef23f Change default block priority size to 0
Make RPC tests have a default block priority size of 50000 (the old default) so we can still use free transactions in RPC tests.  When priority is eliminated, we will have to make a different change if we want to continue allowing free txs.
2015-11-30 16:16:24 -05:00
Gregory Maxwell
438ee59839
Merge pull request #7044
d52fbf0 Added additional config option for multiple RPC users. (Gregory Sanders)
2015-11-30 12:25:28 -08:00
Suhas Daftuar
2d8860e820 Fix removeForReorg to use MedianTimePast 2015-11-30 14:35:17 -05:00
Suhas Daftuar
b7fa4aa387 Don't call removeForReorg if DisconnectTip fails 2015-11-30 13:12:55 -05:00
Suhas Daftuar
7e49f5f8b4 Track coinbase spends in CTxMemPoolEntry
This allows us to optimize CTxMemPool::removeForReorg.
2015-11-30 13:12:53 -05:00
Matt Corallo
bb8ea1f630 removeForReorg calls once-per-disconnect-> once-per-reorg 2015-11-30 13:03:57 -05:00
Matt Corallo
474b84a741 Make indentation in ActivateBestChainStep readable 2015-11-30 13:03:56 -05:00
Matt Corallo
b0a064c4b8 Fix comment in removeForReorg 2015-11-30 13:02:05 -05:00
Matt Corallo
9b060e5cfb Fix removal of time-locked transactions during reorg 2015-11-30 13:02:04 -05:00
Matt Corallo
0c9959a308 Add failing test checking timelocked-txn removal during reorg 2015-11-30 13:02:04 -05:00
Suhas Daftuar
cfdc66280f Explicitly set chain limits in replace-by-fee test 2015-11-30 12:35:24 -05:00
MarcoFalke
fa19a588b9 HelpMessage: Don't hide -mintxfee behind showDebug 2015-11-30 18:02:12 +01:00
MarcoFalke
faffc172ec rpcwallet: Clarify what settxfee does 2015-11-30 18:01:43 +01:00
MarcoFalke
9999cb0626 Fix url in .travis.yml 2015-11-30 16:34:33 +01:00
MarcoFalke
fa22a10028 contrib: Del. gitian downloader config and update gitian README 2015-11-30 16:34:11 +01:00
MarcoFalke
fad3035e8d [doc] Minor markdown fixes 2015-11-30 16:33:15 +01:00