| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |/ /
| |
| |
| | |
Fixes a memory exhaustion attack on low-memory peers.
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| |
| |
| | |
main.h
|
| | | |
|
| | |
| |
| |
| | |
in main.h
|
| |\ \
| |/
|/| |
RPC: add 'verifychain' to verify chain database at runtime
|
| | | |
|
| | | |
|
| |\ \
| | |
| | | |
Refactor fee rules to make them actually readable.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This (nearly) doesn't change fee rules at all:
* To make it into the fee transaction area, the dPriority comparison
changed from < to <=
* We now just ignore transactions > MAX_BLOCK_SIZE/4 instead of
doing some calculations to require increasingly large fees as
size increases.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The new class is accessed via the Params() method and holds
most things that vary between main, test and regtest networks.
The regtest mode has two purposes, one is to run the
bitcoind/bitcoinj comparison tool which compares two separate
implementations of the Bitcoin protocol looking for divergence.
The other is that when run, you get a local node which can mine
a single block instantly, which is highly convenient for testing
apps during development as there's no need to wait 10 minutes for
a block on the testnet.
|
| | |/
|/|
| |
| |
| | |
Move out of main.h to improve compile times and add documentation
for what the methods do.
|
| |/ |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the mempool instance.
Removed AreInputsStandard from CTransaction, made it a regular function in main.
Moved CTransaction::GetOutputFor to CCoinsViewCache.
Moved GetLegacySigOpCount and GetP2SHSigOpCount out of CTransaction into regular functions in main.
Moved GetValueIn and HaveInputs from CTransaction into CCoinsViewCache.
Moved AllowFree, ClientCheckInputs, CheckInputs, UpdateCoins, and CheckTransaction out of CTransaction and into main.
Moved IsStandard and IsFinal out of CTransaction and put them in main as IsStandardTx and IsFinalTx. Moved GetValueOut out of CTransaction into main. Moved CTxIn, CTxOut, and CTransaction into core.
Added minimum fee parameter to CTxOut::IsDust() temporarily until CTransaction is moved to core.h so that CTxOut needn't know about CTransaction.
|
| |
|
|
| |
regular function in main.
|
| |
|
|
| |
CBlockLocator.
|
| | |
|
| |
|
|
|
|
|
|
| |
- explicitly set the default of all GetBoolArg() calls
- rework getarg_test.cpp and util_tests.cpp to cover this change
- some indentation fixes
- move macdockiconhandler.h include in bitcoin.cpp to the "our headers"
section
|
| |\
| |
| | |
Make FindBlockByHeight constant-time
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |\ \
| | |
| | | |
It's after 2013-05-15 forever now, so remove the code for the May 15 fork
|
| | |/ |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Write bestblock records in wallets:
* Every 20160 blocks synced, no matter what (before: none during IBD)
* Every 144 blocks after IBD (before: for every block, slow)
* When creating a new wallet
* At shutdown
This should result in far fewer spurious rescans.
|
| |/ |
|
| |\
| |
| | |
Treat dust outputs as non-standard, un-hardcode TX_FEE constants
|
| | |
| |
| |
| |
| |
| |
| | |
Allow setting of MIN_TX_FEE / MIN_RELAY_TX_FEE with
-mintxfee / -mintxrelayfee
Default values are the same (0.0001 BTC).
|
| | | |
|
| |/
|
|
| |
This solves the issue where no default key can be added after -salvagewallet.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
| |
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.
|
| |\
| |
| | |
Always print full hashes (tx, block, inv)
|
| | | |
|
| |/
|
|
|
|
|
|
|
| |
This introduces the concept of the 'sync node', which is the one we
asked for missing blocks. In case the sync node goes away, a new one
will be selected.
For now, the heuristic is very simple, but it can easily be extended
later to add better policies.
|
| | |
|
| |\
| |
| | |
Limited mapAlreadyAskedFor
|
| | |
| |
| |
| |
| |
| |
| | |
This reverts commit 643160f6e7e5e8ca84bc7d2c1a0f37d9cf43a6e1.
Turns out this commit was useless after a more careful reading of
CNode::AskFor
|
| |\ \
| | |
| | | |
Thread / shutdown cleanup
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Two reasons for this change:
1. Need to always use boost::thread's sleep, even on Windows, so the
sleeps can be interrupted (prior code used Windows' built-in Sleep).
2. I always forgot what units the old Sleep took.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Create a boost::thread_group object at the qt/bitcoind main-loop level
that will hold pointers to all the main-loop threads.
This will replace the vnThreadsRunning[] array.
For testing, ported the BitcoinMiner threads to use its
own boost::thread_group.
|
| |\ \ \
| |/ /
|/| | |
Update transaction statistics
|