aboutsummaryrefslogtreecommitdiff
path: root/src/init.cpp
AgeCommit message (Collapse)Author
2012-12-13Merge pull request #2096 from 94m3k1n9/fix-time-formatsPieter Wuille
Change timestamps to use ISO8601 formatting
2012-12-12Merge pull request #2048 from jgarzik/no-checkpointsGavin Andresen
Add "checkpoints" option, to permit disabling of checkpoint logic.
2012-12-12Merge pull request #2059 from sipa/benchmarkGavin Andresen
Add -benchmark for reporting block processing times
2012-12-12Merge pull request #2062 from sipa/nocoinsGavin Andresen
Reconstruct coins/ database when missing
2012-12-12Change timestamps to use ISO8601 formattingRichard Schwab
2012-12-06Allow lengthy block reconnections to be interruptedPieter Wuille
When the coin database is out of date with the block database, the best block in it is automatically switched to. This reconnection process can take time, so allow it to be interrupted. This also stops block connection as soon as shutdown is requested, leading to a faster shutdown.
2012-12-06Reconstruct coins/ from scratch when missing.Pieter Wuille
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-28Add "checkpoints" option, to permit disabling of checkpoint logic.Jeff Garzik
2012-11-26update CClientUIInterface and remove orphan Wx stuffPhilip Kaufmann
- fix ThreadSafeMessageBox always displays error icon - allow to specify MSG_ERROR / MSG_WARNING or MSG_INFORMATION without a custom caption / title - allow to specify CClientUIInterface::ICON_ERROR / ICON_WARNING and ICON_INFORMATION (which is default) as message box icon - remove CClientUIInterface::OK from ThreadSafeMessageBox-calls, as the OK button will be set as default, if none is specified - prepend "Bitcoin - " to used captions - rename BitcoinGUI::error() -> BitcoinGUI::message() and add function documentation - change all style parameters and enum flags to unsigned - update code to use that new API - update Client- and WalletModel to use new BitcoinGUI::message() and rename the classes error() method into message() - include the possibility to supply the wanted icon for messages from Client- and WalletModel via "style" parameter
2012-11-14make enum and parameter used in Bind() unsignedPhilip Kaufmann
- it's good practise to use unsigned int for enum flags, so change this one, as I introduced this for Bind()
2012-11-10allow listening on -bind=address for blocked networksPhilip Kaufmann
- this allows the client to listen on via -bind specified addresses (e.g. 127.0.0.1), even when a network (IPv4 in that case) was blocked via e.g -onlynet="Tor" - introduce enum BindFlags to avoid passing multiple bools to Bind() - make -bind help text clear we ALWAYS listen on the specified address - remove an unused variable - remove 2 unneeded IsLimited() checks before calling Bind(), which does these checks anyway - usage case: specify -bind=127.0.0.1 -onlynet="Tor" to allow incoming connections to a Tor hidden service, but still don't allow other IPv4 nodes to connect / get connected
2012-11-09Merge pull request #1943 from sipa/reindex2Pieter Wuille
Add -reindex, to perform in-place reindexing of block chain files
2012-11-09Merge pull request #1978 from sipa/nodetachPieter Wuille
Remove -detachdb and stop's detach argument.
2012-11-09Add -reindex, to perform in-place reindexing of block chain filesPieter Wuille
Flushes the blktree/ and coins/ databases, and reindexes the block chain files, as if their contents was loaded via -loadblock. Based on earlier work by Jeff Garzik.
2012-11-09Move ThreadImport to init.cppPieter Wuille
2012-11-08Merge pull request #1981 from sipa/cachesPieter Wuille
Cache size optimizations
2012-11-04Cache size optimizationsPieter Wuille
2012-11-04Remove -detachdb and stop's detach argument.Pieter Wuille
As the only BDB database left is the wallet, and it is always detached. Also remove IsChainFile() predicate and related chainfile-specific logic.
2012-10-25fix some double-spaces in stringsPhilip Kaufmann
- remove some unneeded stuff in sendcoinsentry.ui - harmonize some "Error:"-messages
2012-10-25First flush block tree, then coin setPieter Wuille
As the coinset data refers to the best block, stored in the block tree. Flushing the coin set first can cause inconsistencies if the process gets killed in between.
2012-10-25Added checks for null pointers in Shutdowntucenaber
Estetics
2012-10-21change blockchain -> block chain (spelling)Philip Kaufmann
- Wiki says "block chain" is correct ;) - remove some unneeded spaces I found in the source, while fixing the spelling
2012-10-20Add LevelDB MemEnv supportPieter Wuille
Support LevelDB memory-backed environments, and use them in unit tests.
2012-10-20LevelDB block and coin databasesPieter Wuille
Split off CBlockTreeDB and CCoinsViewDB into txdb-*.{cpp,h} files, implemented by either LevelDB or BDB. Based on code from earlier commits by Mike Hearn in his leveldb branch.
2012-10-20Use singleton block tree database instancePieter Wuille
2012-10-20Prepare database format for multi-stage block processingPieter Wuille
This commit adds a status field and a transaction counter to the block indexes.
2012-10-20Automatically reorganize at startup to best known blockPieter Wuille
Given that the block tree database (chain.dat) and the active chain database (coins.dat) are entirely separate now, it becomes legal to swap one with another instance without affecting the other. This commit introduces a check in the startup code that detects the presence of a better chain in chain.dat that has not been activated yet, and does so efficiently (in batch, while reusing the blk???.dat files).
2012-10-20Batch block connection during IBDPieter Wuille
During the initial block download (or -loadblock), delay connection of new blocks a bit, and perform them in a single action. This reduces the load on the database engine, as subsequent blocks often update an earlier block's transaction already.
2012-10-20UltraprunePieter Wuille
This switches bitcoin's transaction/block verification logic to use a "coin database", which contains all unredeemed transaction output scripts, amounts and heights. The name ultraprune comes from the fact that instead of a full transaction index, we only (need to) keep an index with unspent outputs. For now, the blocks themselves are kept as usual, although they are only necessary for serving, rescanning and reorganizing. The basic datastructures are CCoins (representing the coins of a single transaction), and CCoinsView (representing a state of the coins database). There are several implementations for CCoinsView. A dummy, one backed by the coins database (coins.dat), one backed by the memory pool, and one that adds a cache on top of it. FetchInputs, ConnectInputs, ConnectBlock, DisconnectBlock, ... now operate on a generic CCoinsView. The block switching logic now builds a single cached CCoinsView with changes to be committed to the database before any changes are made. This means no uncommitted changes are ever read from the database, and should ease the transition to another database layer which does not support transactions (but does support atomic writes), like LevelDB. For the getrawtransaction() RPC call, access to a txid-to-disk index would be preferable. As this index is not necessary or even useful for any other part of the implementation, it is not provided. Instead, getrawtransaction() uses the coin database to find the block height, and then scans that block to find the requested transaction. This is slow, but should suffice for debug purposes.
2012-10-20Move external block import to separate threadPieter Wuille
2012-10-12Fix a use-after-free problem in initialization (#1920)Wladimir J. van der Laan
Don't store the result of c_str(). Luckily, this only affects logging, though it could crash or leak sensitive data to the log in rare cases.
2012-10-09Fix bad merge, pszDataDir duplicationGavin Andresen
2012-10-09Merge branch 'wallet_exceptions' of github.com:gavinandresen/bitcoin-gitGavin Andresen
2012-10-08Revert "Send 'mempool' P2P command at the start of each P2P session"Jeff Garzik
Fat-fingered on github, and merged this too early. This reverts commit 22f9b069035c9ba0416a62714db167eea5ba762f.
2012-10-08Merge pull request #1833 from jgarzik/mempool-queryJeff Garzik
Send 'mempool' P2P command at the start of each P2P session
2012-10-08Don't try to verify a non-existent wallet.datGavin Andresen
2012-10-08Handle corrupt wallets gracefully.Gavin Andresen
Corrupt wallets used to cause a DB_RUNRECOVERY uncaught exception and a crash. This commit does three things: 1) Runs a BDB verify early in the startup process, and if there is a low-level problem with the database: + Moves the bad wallet.dat to wallet.timestamp.bak + Runs a 'salvage' operation to get key/value pairs, and writes them to a new wallet.dat + Continues with startup. 2) Much more tolerant of serialization errors. All errors in deserialization are reported by tolerated EXCEPT for errors related to reading keypairs or master key records-- those are reported and then shut down, so the user can get help (or recover from a backup). 3) Adds a new -salvagewallet option, which: + Moves the wallet.dat to wallet.timestamp.bak + extracts ONLY keypairs and master keys into a new wallet.dat + soft-sets -rescan, to recreate transaction history This was tested by randomly corrupting testnet wallets using a little python script I wrote (https://gist.github.com/3812689)
2012-10-08Handle incompatible BDB environmentsGavin Andresen
Before, opening a -datadir that was created with a new version of Berkeley DB would result in an un-caught DB_RUNRECOVERY exception. After these changes, the error is caught and the user is told that there is a problem and is told how to try to recover from it.
2012-10-08Merge branch 'BDB_DOWNGRADE'Gavin Andresen
2012-10-08Handle incompatible BDB environmentsGavin Andresen
Before, opening a -datadir that was created with a new version of Berkeley DB would result in an un-caught DB_RUNRECOVERY exception. After these changes, the error is caught and the user is told that there is a problem and is told how to try to recover from it.
2012-10-04Send --help message to stdout i.s.o stderrWladimir J. van der Laan
This allows fun stuff such as `bitcoin --help | less`, and more easy piping to files. Looking at other tools such as bash, gcc, they all send their help text to stdout.
2012-10-01fix -Wformat warnings all over the sourcePhilip Kaufmann
2012-09-28Merge pull request #1862 from kjj2/testportsPieter Wuille
Fix: when testnet=1 specified, change default RPC port to 18332
2012-09-24Fix: when testnet=1 specified, change default ports to 18332 and 18333kjj2
2012-09-24Send 'mempool' P2P command at the start of each P2P sessionJeff Garzik
to query remote node mempool contents.
2012-09-24Import $DataDir/bootstrap.dat automatically, if it exists.Jeff Garzik
As discussed on IRC. Intended to make using an external blockchain download solution just a bit easier.
2012-09-06Fix double-paren typoGavin Andresen
2012-09-05remove double logging of startup time, when !fLogTimestampsPhilip Kaufmann