aboutsummaryrefslogtreecommitdiff
path: root/src/main.h
AgeCommit message (Collapse)Author
2013-05-12Make FindBlockByHeight constant-time.Pieter Wuille
Remove the pnext pointer in CBlockIndex, and replace it with a vBlockIndexByHeight vector (no effect on memory usage). pnext can now be replaced by vBlockIndexByHeight[nHeight+1], but FindBlockByHeight becomes constant-time. This also means the entire mapBlockIndex structure and the block index entries in it become purely blocktree-related data, and independent from the currently active chain, potentially allowing them to be protected by separate mutexes in the future.
2013-05-04Merge pull request #2577 from gavinandresen/fee_bandaidGavin Andresen
Treat dust outputs as non-standard, un-hardcode TX_FEE constants
2013-05-03Un-hardcode TX_FEE constantsGavin Andresen
Allow setting of MIN_TX_FEE / MIN_RELAY_TX_FEE with -mintxfee / -mintxrelayfee Default values are the same (0.0001 BTC).
2013-05-03Define dust transaction outputs, and make them non-standardGavin Andresen
2013-05-01Improve gettxoutsetinfo commandPieter Wuille
* Bugfix: output the correct best block hash (during IBD, it can differ from the actual current best block) * Add height to output * Add hash_serialized, which is a hash of the entire UTXO state. Can be useful to compare two nodes. * Add total_amount, the sum of all UTXOs' values.
2013-04-12Use a uint256 for bnChainWorkPieter Wuille
Every block index entry currently requires a separately-allocated CBigNum. By replacing them with uint256, it's just 32 bytes extra in CBlockIndex itself. This should save us a few megabytes in RAM, and less allocation overhead.
2013-04-09Merge pull request #2478 from sipa/fullhashGavin Andresen
Always print full hashes (tx, block, inv)
2013-04-08Merge pull request #2403 from gmaxwell/minfee-to-relayfeePieter Wuille
Make MIN_TX_FEE match MIN_RELAY_TX_FEE.
2013-04-07Always print full hashes (tx, block, inv)Pieter Wuille
2013-04-03Port Thread* methods to boost::thread_groupGavin Andresen
2013-03-22Make MIN_TX_FEE match MIN_RELAY_TX_FEE.Gregory Maxwell
Current relay behavior is widely deployed. Supplying a higher minfee than mining and relaying just irritates users without anti-spam gain.
2013-02-23Merge pull request #2186 from Diapolo/misc_stuffWladimir J. van der Laan
small changes in init, main, checkpoints.h and bitcoin-qt.pro
2013-02-22Merge pull request #2221 from sipa/perfoGavin Andresen
Various performance tweaks to CCoinsView
2013-02-20small changes in init, main, checkpoints.h and bitcoin-qt.proPhilip Kaufmann
- remove an unneeded MODAL flag, as MSG_ERROR sets MODAL - re-order an if-clause in main to have bool checks before a function call - fix some log messages that used wrong function names - make a log message use a correct ellipsis - remove some unneded spaces, brackets and line-breaks - fix style for adding files in the Qt project
2013-02-17Improve block database load error reportingPieter Wuille
2013-02-05Merge branch 'reindexgen' of git://github.com/sipa/bitcoinGavin Andresen
2013-02-05Make transactions larger than 100K non-standardGavin Andresen
Extremely large transactions with lots of inputs can cost the network almost as much to process as they cost the sender in fees. We would never create transactions larger than 100K big; this change makes transactions larger than 100K non-standard, so they are not relayed/mined by default. This is most important for miners that might create blocks larger than 250K big, who could be vulnerable to a make-your-blocks-so-expensive-to-verify-they-get-orphaned attack.
2013-02-01Make sure the genesis block is present after reindexPieter Wuille
2013-01-29Merge pull request #2224 from sipa/valstateGavin Andresen
Improve error handling during validation
2013-01-29Fix two clang3.3 warningsGavin Andresen
2013-01-30Improve dealing with abort conditionsPieter Wuille
2013-01-30CValidationState frameworkPieter Wuille
2013-01-28Remove support for pre-checksum undo filesPieter Wuille
2013-01-26Merge pull request #2182 from gavinandresen/addressoracleGavin Andresen
Remove IsFromMe() check in CTxMemPool::accept()
2013-01-26Various performance tweaks to CCoinsViewPieter Wuille
* Pass txid's to CCoinsView functions by reference instead of by value * Add a method to swap CCoins, and use it in some places to avoid a allocating copy + destruct. * Optimize CCoinsViewCache::FetchCoins to do only a single search through the backing map.
2013-01-18Add optional transaction index to databasesPieter Wuille
By specifying -txindex when initializing the database, a txid-to-diskpos index is maintained in the blktree database. This database is used to help answering getrawtransaction() RPC queries, when enabled. Changing the -txindex value requires a -reindex; the client will abort at startup if the database and the specified -txindex mismatch.
2013-01-17Merge pull request #2060 from sipa/parallelGavin Andresen
Parallel script verification
2013-01-16Use CPartialMerkleTree for CMerkleBlock transactions.Matt Corallo
2013-01-16Add CPartialMerkleTreePieter Wuille
This adds a compact representation for a subset of a merkle tree's nodes.
2013-01-16Add a CMerkleBlock to store merkle branches of filtered txes.Matt Corallo
2013-01-16Add a CBlock.GetBlockHeaderMatt Corallo
2013-01-15Remove IsFromMe() check in CTxMemPool::accept()Gavin Andresen
Fixes issue #2178 : attacker could penny-flood with invalid-signature transactions to deduce which addresses belonged to your node. I'm committing this early for code review; I still need to write up a test plan. Executive summary of fix: check all transactions received from the network for penny-flood rate-limiting before adding to the memory pool. But do NOT ratelimit transactions added to the memory pool: - because of blockchain reorgs - stored in the wallet and added at startup - sent from the GUI or one of the send* RPC commands (CWallet::CommitTransaction) The limit-free-transactions code really should be a method on CNode, with counters per-peer. But that is a bigger change for another day.
2013-01-11small main.h cleanup (no code changes)Philip Kaufmann
- removes some obsolete comments about CTransaction::FetchInputs(), a space and a few new-lines
2013-01-11Merge pull request #2145 from sipa/checkcoinsGregory Maxwell
Coin database checks
2013-01-08Parallelize script verificationPieter Wuille
* During block verification (when parallelism is requested), script check actions are stored instead of being executed immediately. * After every processed transactions, its signature actions are pushed to a CScriptCheckQueue, which maintains a queue and some synchronization mechanism. * Two or more threads (if enabled) start processing elements from this queue, * When the block connection code is finished processing transactions, it joins the worker pool until the queue is empty. As cs_main is held the entire time, and all verification must be finished before the block continues processing, this does not reach the best possible performance. It is a less drastic change than some more advanced mechanisms (like doing verification out-of-band entirely, and rolling back blocks when a failure is detected). The -par=N flag controls the number of threads (1-16). 0 means auto, and is the default.
2013-01-08Remove CheckSig_mode and move logic out of CheckInputs()Pieter Wuille
2013-01-08Add CScriptCheck: a closure representing a script checkPieter Wuille
2013-01-08Move VerifySignature to mainPieter Wuille
2013-01-04New database check routinePieter Wuille
-checklevel gets a new meaning: 0: verify blocks can be read from disk (like before) 1: verify (contextless) block validity (like before) 2: verify undo files can be read and have good checksums 3: verify coin database is consistent with the last few blocks (close to level 6 before) 4: verify all validity rules of the last few blocks Level 3 is the new default, as it's reasonably fast. As level 3 and 4 are implemented using an in-memory rollback of the database, they are limited to as many blocks as possible without exceeding the limits set by -dbcache. The default of -dbcache=25 allows for some 150-200 blocks to be rolled back. In case an error is found, the application quits with a message instructing the user to restart with -reindex. Better instructions, and automatic recovery (when possible) or automatic reindexing are left as future work.
2013-01-03Add checksums to undo dataPieter Wuille
This should be compatible with older code that didn't write checksums.
2013-01-03Make DisconnectBlock fault-tolerantPieter Wuille
2012-12-19changed CreateNewBlock to return a CBlockTemplate object, which includes ↵Forrest Voight
per-tx fee and sigop count data
2012-12-17Fix two typos in main.hfanquake
Break one long comment down into 3 lines so it's readable.
2012-12-05Add -benchmark for reporting block processing timesPieter Wuille
2012-12-03add 2 constructors in CDiskBlockPos to simplify class usagePhilip Kaufmann
- add a default-constructor, which simply calls SetNull() and a constructor to directly pass nFile and nPos - change code to use that new constructors
2012-11-30Merge pull request #2033 from sipa/kickconflictsPieter Wuille
Bugfix: remove conflicting transactions from memory pool
2012-11-25Bugfix: remove conflicting transactions from memory poolPieter Wuille
When a transaction A is in the memory pool, while a transaction B (which shares an input with A) gets accepted into a block, A was kept forever in the memory pool. This commit adds a CTxMemPool::removeConflicts method, which removes transactions that conflict with a given transaction, and all their children. This results in less transactions in the memory pool, and faster construction of new blocks.
2012-11-24Merge pull request #2013 from sipa/blockheaderPieter Wuille
Split off CBlockHeader from CBlock
2012-11-15Merge pull request #1670 from luke-jr/blksubstrJeff Garzik
Use full block hash as unique identifier in debug.log
2012-11-15Merge pull request #2005 from Diapolo/fixes_mainJeff Garzik
some small fixes for main.cpp/.h