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
MarcoFalke
fa3a38a7f2
[qa] pull-tester: Cleanup (run keypool, tidy stdout)
...
* Run keypool (takes 6 seconds)
* Print duration of each rpc test
* Structure output (bold, new lines)
2015-11-30 16:01:57 +01:00
Wladimir J. van der Laan
34e02e0147
Merge pull request #7094
...
1bb289f
Assert now > 0 in GetTime GetTimeMillis GetTimeMicros (Patick Strateman)
2015-11-30 14:49:57 +01:00
Wladimir J. van der Laan
eb7741605b
Merge pull request #7008
...
c035306
Change GetPriority calculation. (Alex Morcos)
71f1d9f
Modify variable names for entry height and priority (Alex Morcos)
5945819
Remove default arguments for CTxMemPoolEntry() (Alex Morcos)
2015-11-30 14:37:05 +01:00
Wladimir J. van der Laan
9b8fc6c89a
Merge pull request #7035
...
4531fc4
torcontrol: only output disconnect if -debug=tor (Daniel Cousens)
2015-11-30 14:20:22 +01:00
Jonas Schnelli
ff723da6f6
[Qt] improve minimum absolute fee option
...
- Only display the minimum absolute fee control if CoinControl is enabled
2015-11-30 14:18:57 +01:00
Jonas Schnelli
31b508a18b
[Qt] make use of the nMinimumTotalFee (absolute) in coincontrols fee calculation
2015-11-30 14:09:05 +01:00
Jonas Schnelli
80462dda0a
[Qt] use ASYMP_UTF8 (≈) whenever we show a fee that is not absolute
2015-11-30 14:09:04 +01:00