Age | Commit message (Collapse) | Author |
|
CBlockLocator improvements & move to core
|
|
|
|
This removes a few unused CBlockLocator methods, and moves the
construction and fork-finding logic to CChain (which can do these
more efficiently, as it has a height-indexable chain available).
It also makes CBlockLocator independent from the validation code.
|
|
Refactor/encapsulate chain globals into a CChain class
|
|
971bb3e Added ping time measurement. New RPC "ping" command to request ping. Implemented "pong" message handler. New "pingtime" field in getpeerinfo, to provide results to user. New "pingwait" field, to show pings still in flight, to better see newly lagging peers. (Josh Lehan)
|
|
|
|
- I introduced the problem and fixed it with better readable code
|
|
New RPC "ping" command to request ping.
Implemented "pong" message handler.
New "pingtime" field in getpeerinfo, to provide results to user.
New "pingwait" field, to show pings still in flight, to better see newly lagging peers.
|
|
- prevents unneeded log messages, which could make users think something
bad was happening
|
|
[wallet] Consider generated coins mature at COINBASE_MATURITY+1
|
|
- moves 2 global variables from main.cpp/h to miner.cpp/h
- also removes 2 unneded includes in miner.cpp, that come from miner.h
already
|
|
|
|
[raw] reject insanely high fees by default in sendrawtransaction
|
|
|
|
Longer term workaround for chainstate corruption from negative versions.
|
|
- rename URL into URI in paymentserver where correct
- add some missing Qt-coding-stuff in paymentserver
- change QSpinBox to QLineEdit as base for BitcoinAmountField in .ui files
(as this is the result when converting the BAF back into base)
- remove some c_str() and replace with QString::fromStdString()
- remove several new-lines
- remove unneeded spaces
- indentation fixes
|
|
This also makes negative transaction versions non-standard.
This avoids an issue triggered in block 256818 where transactions with
negative version numbers were incorrectly serialized into the UTXO set.
On restart nodes detect the inconsistency and refuse to start so long as
a block with these transactions is inside the self-consistency check
window, logging "coin database inconsistencies found". The software
recommends reindexing, but reindexing does not correct the problem.
This should be fixed by changing the chainstate serialization, but
working around it seems harmless for now because the version is not
used by any network rule currently.
A patch free workaround is to start with -checklevel=2 which skips
the consistency checks, but the IsStandard change is important for
miners in order to protect unpatched nodes.
|
|
|
|
There have been several incidents where mainnet experimentation with
raw transactions resulted in insane fees. This is hard to prevent
in the raw transaction api because the inputs may not be known.
Since sending doesn't work if the inputs aren't known, we can catch
it there.
This rejects fees > than 10000 * nMinRelayTxFee or 1 BTC with the
defaults and can be overridden with a bool at the rpc.
|
|
We're not seeing large reorgs that would justify waiting a large
amount past the rule required maturity, and the extra three
hours is just a nuisance. Take one more block to at least give
the 100th block time to propagate.
|
|
|
|
This resulted in just passing all transactions to filtered wallets
which worked surprisingly well, except where it didn't.
|
|
This reduces a peer's ability to attack network resources by
using a full bloom filter, but without reducing the usability
of bloom filters. It sets a default match everything filter
for peers and it generalizes a prior optimization to
cover more cases.
|
|
|
|
|
|
Detect any sufficiently long fork and alert the user just like any other alert
|
|
|
|
Simplify storage of orphan transactions, fix CVE-2013-4627
|
|
Prepare for mempool testing in pull-tester and fix multi-block transaction resurrection
|
|
Orphan transactions were stored as a CDataStream pointer;
this changes the mapOrphanTransactions data structures to
store orphans as a CTransaction.
This also fixes CVE-2013-4627 by always re-serializing
transactions before relaying them.
|
|
This reverts commit c40a5aaaf484855a4350fd702e8e72fd21a68155.
|
|
Public functions referenced elsewhere are added to miner.h.
|
|
* Fix UpdateCoins() definition in main.h
* Remove pwalletMain reference from BitcoinMiner(), as it is passed
a wallet argument.
|
|
Replace the loop macro with while (true). The #define caused
problems for Qt.
|
|
|
|
|
|
|
|
|
|
Such a fork is defined as being at least 7 blocks long and
having a tip which is within 72 blocks of our best block.
|
|
Log reason for non-standard transaction rejection
|
|
Wallet registration locks in main.cpp + UnregisterAllWallet() function
|
|
Move core implementations to core.cpp
|
|
Fixes a memory exhaustion attack on low-memory peers.
|
|
|
|
UnregisterAllWallets function.
|
|
|
|
|
|
|
|
|
|
|