Age | Commit message (Collapse) | Author |
|
Remove fClient
|
|
Coin database checks
|
|
Provide fee data for all txs in RPC getblocktemplate response
|
|
Client (SPV) mode never got implemented entirely, and whatever part was already
working, is likely not been tested (or even executed at all) for the past two
years. This removes it entirely.
If we want an SPV implementation, I think we should first get the block chain
data structures to be encapsulated in a class implementing a standard interface,
and then writing an alternate implementation with SPV semantics.
|
|
- some users reported it as weird, that the estimated block count could be
lower than our own nodes block number (which is indeed true and not good)
- this pull adds a new default behaviour, which displays our own block
number as estimated block number, if own >= est. block count
- the pull raises space for nodes block counts in cPeerBlockCounts to 8 to
be more accurate
- also removes a reduntant setNumBlocks() call in RPCConsole and moves
initialisation of numBlocksAtStartup in ClientModel, where it belongs
|
|
-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.
|
|
This should be compatible with older code that didn't write checksums.
|
|
|
|
|
|
per-tx fee and sigop count data
|
|
Change timestamps to use ISO8601 formatting
|
|
Add -benchmark for reporting block processing times
|
|
Reconstruct coins/ database when missing
|
|
Two minor inconvenience fixes
|
|
|
|
some CheckDiskSpace() related changes
|
|
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.
|
|
This problem is like earth (mostly harmless). After/during a
-reindex, it means the statistics about the last block file
reported in debug.log are always of blk00000.dat instead of the
last file. Apart from that, it means a few more database entries
need to be read when finding a file to append to the first time.
|
|
|
|
FlushBlockFile(): check for valid FILE pointer
|
|
Fixes for obscure mempool-checkpoint interaction
|
|
|
|
add 2 constructors in CDiskBlockPos to simplify class usage
|
|
- even if we are allowed to fail pre-allocating, it's better to check
for sufficient space before calling AllocateFileRange() and if we
are out of disk space return with error()
- the above change allows us to remove the CheckDiskSpace() check
in CBlock::AcceptBlock()
|
|
- add a default-constructor, which simply calls SetNull() and a
constructor to directly pass nFile and nPos
- change code to use that new constructors
|
|
In case a reorganisation fails, the internal state could become
inconsistent (memory only). Previously, a cache per block connect
or disconnect action was used, so blocks could not be applied in
a partial way. Extend this to a cache for the entire reorganisation,
making it atomic entirely. This also simplifies the code a bit.
|
|
- don't call FileCommit() and fclose() if no valid FILE pointer was
returned by OpenBlockFile()
|
|
Bugfix: remove conflicting transactions from memory pool
|
|
|
|
Allow -printpriority without -debug
|
|
|
|
|
|
- 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
|
|
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.
|
|
Split off CBlockHeader from CBlock
|
|
Do not reorganize if new branch has same amount of work
|
|
- I introduced the wrong format macro with my former patch (#2018), this
needs to be signed not unsigned (thanks Luke-Jr)
|
|
- fixes 2 warnings I observed while compiling on Windows with MinGW
|
|
Use full block hash as unique identifier in debug.log
|
|
some small fixes for main.cpp/.h
|
|
Print error for coinbase-pays-too-much case of ConnectBlock failing
|
|
Cleaner and removes the need for the application-specific flags in
serialize.h.
|
|
These flags select features to be enabled/disabled during script
evaluation/checking, instead of several booleans passed along.
Currently these flags are defined:
* SCRIPT_VERIFY_P2SH: enable BIP16-style subscript evaluation
* SCRIPT_VERIFY_STRICTENC: enforce strict adherence to pubkey/sig encoding standards.
|
|
|
|
|
|
- remove an unwanted ";" at the end of the ~CCoinsView() destructor
- in FindBlockPos() and FindUndoPos() only call fclose(), is file is open
- fix an error string in the CBlockUndo class
|
|
|
|
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.
|
|
|
|
|