aboutsummaryrefslogtreecommitdiff
path: root/src/main.cpp
AgeCommit message (Collapse)Author
2013-10-29Merge pull request #3115 from sipa/walletmainGavin Andresen
Interaction cleanups between main and wallet
2013-10-28Generalize the remove-outputs check for fully-prunable transactions.Pieter Wuille
Instead of explicitly testing for the presence of any output, and dealing with this case specially, just interpret it as an empty CCoins. The case previously caught using the HaveCoins check, is now handled by the generic outs != outsBlock test.
2013-10-27Fix comparison tool by asking for blocks more aggressivelyMatt Corallo
2013-10-26Break dependency of init on wallet.Pieter Wuille
This required some code movement (what was CWalletTx::AcceptToMemoryPool doing in main?), and adding a few explicit includes that used to be implicit through init.h.
2013-10-26Use boost signals for callbacks from main to walletPieter Wuille
2013-10-26Remove broken PrintWallet functionalityPieter Wuille
2013-10-26Do not treat fFromMe transaction differently when broadcastingPieter Wuille
2013-10-26Send multiple inv messages if mempool.size > MAX_INV_SZGavin Andresen
Changes the response to the 'mempool' command so that if the memory pool has more than MAX_INV_SZ transactions (50,000) it will respond with multiple 'inv' messages.
2013-10-21Merge pull request #2738 from jgarzik/op_returnGavin Andresen
Relay OP_RETURN data TxOut as standard transaction type.
2013-10-20Merge pull request #2840 from sipa/nosendlockGavin Andresen
Allow SendMessages to run partially without cs_main
2013-10-20Merge pull request #3119Pieter Wuille
db0e8cc Bump Year Number to 2013 (super3)
2013-10-20Bump Year Number to 2013super3
2013-10-19Merge pull request #2884 from gavinandresen/canonicalsizes2Gavin Andresen
Reject non-canonically-encoded CompactSize
2013-10-19Merge pull request #3008 from gavinandresen/CENTruleGavin Andresen
Two small free transaction policy changes
2013-10-15Merge pull request #3083 from sipa/chainlocatorGavin Andresen
CBlockLocator improvements & move to core
2013-10-15Push down cs_main locking in ProcessMessagePieter Wuille
2013-10-15Allow SendMessages to run partially without cs_mainPieter Wuille
SendMessages() tries to acquire a cs_main lock now, but this isn't nessecary for much of its functionality. Move those parts out of the locked section, so they can always be performed, and we hold cs_main for a shorter time.
2013-10-15replace %zu with %"PRIszu" macro to prevent compiler warningsPhilip Kaufmann
2013-10-15Reimplement CBlockLocator's chain-related logic in CChain.Pieter Wuille
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.
2013-10-14Merge pull request #3077 from sipa/chainGavin Andresen
Refactor/encapsulate chain globals into a CChain class
2013-10-13Merge pull request #2937Pieter Wuille
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)
2013-10-11Refactor/encapsulate chain globals into a CChain classPieter Wuille
2013-10-07style-police: fixed badly readable code in ProcessMessage()Philip Kaufmann
- I introduced the problem and fixed it with better readable code
2013-10-04Lower maximum size for free transaction creationGavin Andresen
Changes the maximum size of a free transaction that will be created from 10,000 bytes to 1,000 bytes. The idea behind this change is to make the free transaction area available to a greater number of people; with the default 27K-per-block, just three very-large very-high-priority transactions could fill the space.
2013-10-04Remove CENT-output free transaction rule when relayingGavin Andresen
Remove the (relay/mempool) rule that all outputs of free transactions must be greater than 0.01 XBT. Dust spam is now taken care of by making dusty outputs non-standard.
2013-10-04Added ping time measurement.Josh Lehan
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.
2013-10-04special case DoS value == 0 in ProcessMessage()Philip Kaufmann
- prevents unneeded log messages, which could make users think something bad was happening
2013-10-03Merge pull request #2947 from gmaxwell/theyre_maturing_faster_these_daysGavin Andresen
[wallet] Consider generated coins mature at COINBASE_MATURITY+1
2013-10-02Relay OP_RETURN data TxOut as standard transaction typeJeff Garzik
2013-09-25internal miner: move 2 globals from main to minerPhilip Kaufmann
- 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
2013-09-24Skip unspendable outputs in consistency checkPieter Wuille
2013-09-22Merge pull request #2949 from gmaxwell/fewer_fee_footgunsGavin Andresen
[raw] reject insanely high fees by default in sendrawtransaction
2013-09-18Replace printf with LogPrintf / LogPrintGavin Andresen
2013-09-10Merge pull request #2982 from gmaxwell/20130908_ccoins_corruptGregory Maxwell
Longer term workaround for chainstate corruption from negative versions.
2013-09-09fix some cosmetic glitches in the codebasePhilip Kaufmann
- 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
2013-09-09Longer term workaround for chainstate corruption from negative versions.Gregory Maxwell
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.
2013-09-03Don't warn about forks while fIsInitialDownloadMatt Corallo
2013-08-28[raw] reject insanely high fees by default in sendrawtransactionGregory Maxwell
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.
2013-08-28[wallet] Consider generated coins mature at COINBASE_MATURITY+1Gregory Maxwell
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.
2013-08-24Fix out-of-bounds checkPieter Wuille
2013-08-20Update the bloom state on the real object, not the temporary one.Gregory Maxwell
This resulted in just passing all transactions to filtered wallets which worked surprisingly well, except where it didn't.
2013-08-20Performance optimization for bloom filters.Gregory Maxwell
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.
2013-08-15Mempool consistency checkPieter Wuille
2013-08-15Fix non-standard disconnected transactions causing mempool orphansPieter Wuille
2013-08-12Merge pull request #2658 from TheBlueMatt/forkalertGavin Andresen
Detect any sufficiently long fork and alert the user just like any other alert
2013-08-10do not call BuildMerkleTree() unnecessarily twiceCozz Lovan
2013-08-09Reject non-canonically-encoded sizesGavin Andresen
The length of vectors, maps, sets, etc are serialized using Write/ReadCompactSize -- which, unfortunately, do not use a unique encoding. So deserializing and then re-serializing a transaction (for example) can give you different bits than you started with. That doesn't cause any problems that we are aware of, but it is exactly the type of subtle mismatch that can lead to exploits. With this pull, reading a non-canonical CompactSize throws an exception, which means nodes will ignore 'tx' or 'block' or other messages that are not properly encoded. Please check my logic... but this change is safe with respect to causing a network split. Old clients that receive non-canonically-encoded transactions or blocks deserialize them into CTransaction/CBlock structures in memory, and then re-serialize them before relaying them to peers. And please check my logic with respect to causing a blockchain split: there are no CompactSize fields in the block header, so the block hash is always canonical. The merkle root in the block header is computed on a vector<CTransaction>, so any non-canonical encoding of the transactions in 'tx' or 'block' messages is erased as they are read into memory by old clients, and does not affect the block hash. And, as noted above, old clients re-serialize (with canonical encoding) 'tx' and 'block' messages before relaying to peers.
2013-08-06Merge pull request #2871 from gavinandresen/simplify_maporphanGavin Andresen
Simplify storage of orphan transactions, fix CVE-2013-4627
2013-08-05Merge pull request #2851 from TheBlueMatt/masterGavin Andresen
Prepare for mempool testing in pull-tester and fix multi-block transaction resurrection
2013-08-02Simplify storage of orphan transactionsGavin Andresen
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.