aboutsummaryrefslogtreecommitdiff
path: root/src/main.h
AgeCommit message (Collapse)Author
2014-03-10Merge pull request #3514Wladimir J. van der Laan
f59d8f0 Per-peer block download tracking and stalled download detection. (Pieter Wuille)
2014-03-08Minor code cleanup: remove indentationMark Friedenbach
This indentation should have been stripped out when AreInputsStandard was made a top-level function instead of a CTransaction method.
2014-02-16remove orphan fHaveGUI from main.hPhilip Kaufmann
2014-02-16Merge pull request #3646Wladimir J. van der Laan
5770254 Copyright header updates s/2013/2014 on files whose last git commit was done in 2014. contrib/devtools/fix-copyright-headers.py script to be able to perform this maintenance task with ease during the rest of the year, every year. Modifications to contrib/devtools/README.md to document what fix-copyright-headers.py does. (gubatron)
2014-02-14Handle "conflicted" transactions properlyGavin Andresen
Extend CMerkleTx::GetDepthInMainChain with the concept of a "conflicted" transaction-- a transaction generated by the wallet that is not in the main chain or in the mempool, and, therefore, will likely never be confirmed. GetDepthInMainChain() now returns -1 for conflicted transactions (0 for unconfirmed-but-in-the-mempool, and >1 for confirmed). This makes getbalance, getbalance '*', and listunspent all agree when there are mutated transactions in the wallet. Before: listunspent: one 49BTC output getbalance: 96 BTC (change counted twice) getbalance '*': 46 BTC (spends counted twice) After: all agree, 49 BTC available to spend.
2014-02-09Copyright header updates s/2013/2014 on files whose last git commit was done ↵gubatron
in 2014. contrib/devtools/fix-copyright-headers.py script to be able to perform this maintenance task with ease during the rest of the year, every year. Modifications to contrib/devtools/README.md to document what fix-copyright-headers.py does.
2014-02-08Per-peer block download tracking and stalled download detection.Pieter Wuille
Keep track of which block is being requested (and to be requested) from each peer, and limit the number of blocks in-flight per peer. In addition, detect stalled downloads, and disconnect if they persist for too long. This means blocks are never requested twice, and should eliminate duplicate downloads during synchronization.
2014-01-31Limit the number of orphan blocksPieter Wuille
In case the total number of orphan blocks in memory exceeds a limit (currently set to 750), a random orphan block (which is not depended on by another orphan block) is dropped. This means it will need to be downloaded again, but it won't consume memory until then.
2014-01-30Merge pull request #3592Wladimir J. van der Laan
c117d9e Support for error messages and a few more rejection reasons (Luke Dashjr) 14e7ffc Use standard BIP 22 rejection reasons where applicable (Luke Dashjr)
2014-01-29Support for error messages and a few more rejection reasonsLuke Dashjr
2014-01-27Prepare block connection logic for headers-first.Pieter Wuille
This changes the block processing logic from "try to atomically switch to a new block" to a continuous "(dis)connect a block, aiming for the assumed best chain". This means the smallest atomic operations on the chainstate become individual block connections or disconnections, instead of entire reorganizations. It may mean that we try to reorganize to one block, fail, and rereorganize again to the old block. This is slower, but doesn't require unbounded RAM. It also means that a ConnectBlock which fails may be no longer called from the ProcessBlock which knows which node sent it. To deal with that, a mapBlockSource is kept, and invalid blocks cause asynchronous "reject" messages and banning (if necessary).
2014-01-06better std::exception logging for block/undo filesPhilip Kaufmann
2013-12-13Move `nTransactionFee` from main.cpp to wallet.cppWladimir J. van der Laan
Transaction fee is only used by the wallet. No need for it to be in main.cpp.
2013-12-13Merge pull request #3326Wladimir J. van der Laan
ad898b4 Increase default -blockmaxsize/prioritysize to 750K/50K (Gavin Andresen)
2013-12-08Add main-specific node statePieter Wuille
2013-11-30Refactor: move GetValueIn(tx) to tx.GetValueIn()Gavin Andresen
GetValueIn makes more sense as a CTransaction member.
2013-11-30Increase default -blockmaxsize/prioritysize to 750K/50KGavin Andresen
2013-11-25Fix uninitialized variable added in b33b9a6fetheuni
After discussing with BlueMatt, this appears to be harmless in its current state since it's always set before it's used. Initialize it anyway for readability and future safety.
2013-11-14pass nBytes as parameter to GetMinFee(..)Cozz Lovan
2013-11-10Merge pull request #3199 from sipa/mempoolmoveGavin Andresen
Cleanup refactoring of coins/mempool
2013-11-11New reject p2p messageGavin Andresen
2013-11-10Move CCoins-related logic to coins.{cpp.h}Pieter Wuille
2013-11-10Make CCoinsView use block hashes instead of indicesPieter Wuille
2013-11-10Cleanup code using forward declarations.Brandon Dahler
Use misc methods of avoiding unnecesary header includes. Replace int typedefs with int##_t from stdint.h. Replace PRI64[xdu] with PRI[xdu]64 from inttypes.h. Normalize QT_VERSION ifs where possible. Resolve some indirect dependencies as direct ones. Remove extern declarations from .cpp files.
2013-11-04Refactor: CTxMempool class to its own txmempool.{cpp,h}Gavin Andresen
2013-11-01Make some globals in main non-public.Pieter Wuille
This means they are declared static, and their extern definition in main.h is removed. Also moved CBlockIndexWorkComparator to the .cpp file.
2013-11-01Do not use the redundant BestInvalidWork record in the block database.Pieter Wuille
As block index entries have a flag for marking invalid blocks, the 'best invalid work' information can be derived from there. In addition, remove the global from main.h
2013-10-29Merge pull request #3115 from sipa/walletmainGavin Andresen
Interaction cleanups between main and wallet
2013-10-27Fix comparison tool by asking for blocks more aggressivelyMatt Corallo
2013-10-26Use boost signals for callbacks from main to walletPieter Wuille
2013-10-20Merge pull request #3119Pieter Wuille
db0e8cc Bump Year Number to 2013 (super3)
2013-10-20Bump Year Number to 2013super3
2013-10-15Move CBlockLocator to core.hPieter Wuille
As CBlockLocator is a P2P data structure, and independent from the validation logic, it can be moved to core.
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-11Refactor/encapsulate chain globals into a CChain classPieter Wuille
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-22Merge pull request #2949 from gmaxwell/fewer_fee_footgunsGavin Andresen
[raw] reject insanely high fees by default in sendrawtransaction
2013-09-20fix some printf -> LogPrintf leftoversPhilip Kaufmann
2013-09-19Bugfix: nHeightLast instead of nHeightFirstPieter Wuille
2013-09-18Replace printf with LogPrintf / LogPrintGavin Andresen
2013-09-05autotools: switch to autotools buildsystemCory Fields
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-15Mempool consistency checkPieter Wuille
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.
2013-07-31Move internal miner/block creation to separate miner.cpp module.Jeff Garzik
Public functions referenced elsewhere are added to miner.h.
2013-07-31Minor miner fixes (hey hey it's fun to say)Jeff Garzik
* Fix UpdateCoins() definition in main.h * Remove pwalletMain reference from BitcoinMiner(), as it is passed a wallet argument.
2013-07-10Merge pull request #2743 from jgarzik/reject-reasonJeff Garzik
Log reason for non-standard transaction rejection
2013-06-24Calling UnregisterAllWallets() instead of UnregisterWallet(pwalletMain) in ↵Eric Lombrozo
init.cpp
2013-06-23Moved CBlock from main.h to core.hEric Lombrozo
2013-06-23Pulled AcceptBlock out of CBlock.Eric Lombrozo