aboutsummaryrefslogtreecommitdiff
path: root/src/init.cpp
AgeCommit message (Collapse)Author
2017-01-16Merge #9484: Introduce assumevalid setting to skip validation presumed valid ↵Pieter Wuille
scripts. 7b5e3fe Add assumevalid testcase (John Newbery) e440ac7 Introduce assumevalid setting to skip presumed valid scripts. (Gregory Maxwell)
2017-01-16Merge #9380: Separate different uses of minimum feesWladimir J. van der Laan
eb30d1a Introduce -dustrelayfee (Alex Morcos) 7b1add3 Introduce -incrementalrelayfee (Alex Morcos) daec955 Introduce -blockmintxfee (Alex Morcos)
2017-01-16Introduce -dustrelayfeeAlex Morcos
2017-01-16Introduce -incrementalrelayfeeAlex Morcos
2017-01-13Introduce assumevalid setting to skip presumed valid scripts.Gregory Maxwell
This disentangles the script validation skipping from checkpoints. A new option is introduced "assumevalid" which specifies a block whos ancestors we assume all have valid scriptsigs and so we do not check them when they are also burried under the best header by two weeks worth of work. Unlike checkpoints this has no influence on consensus unless you set it to a block with an invalid history. Because of this it can be easily be updated without risk of influencing the network consensus. This results in a massive IBD speedup. This approach was independently recommended by Peter Todd and Luke-Jr since POW based signature skipping (see PR#9180) does not have the verifiable properties of a specific hash and may create bad incentives. The downside is that, like checkpoints, the defaults bitrot and older releases will sync slower. On the plus side users can provide their own value here, and if they set it to something crazy all that will happen is more time will be spend validating signatures. Checkblocks and checklevel are also moved to the hidden debug options: Especially now that checkblocks has a low default there is little need to change these settings, and users frequently misunderstand them as influencing security or IBD speed. By hiding them we offset the space added by this new option.
2017-01-10Add pruneblockchain RPC to enable manual block file pruning.mrbandrews
2017-01-06Merge #9408: Allow shutdown during LoadMempool, dump only when necessaryPieter Wuille
325e400 [Qt] Do proper shutdown (Jonas Schnelli) 9479f8d Allow shutdown during LoadMempool, dump only when necessary (Jonas Schnelli)
2017-01-06Merge #9319: Break addnode out from the outbound connection limits.Pieter Wuille
032ba3f RPC help documentation for addnode peerinfo. (Gregory Maxwell) 90f13e1 Add release notes for addnode changes. (Gregory Maxwell) 50bd12c Break addnode out from the outbound connection limits. (Gregory Maxwell)
2017-01-05Merge #8610: Share unused mempool memory with coincachePieter Wuille
ba3cecf Share unused mempool memory with coincache (Pieter Wuille)
2017-01-05Break addnode out from the outbound connection limits.Gregory Maxwell
Previously addnodes were in competition with outbound connections for access to the eight outbound slots. One result of this is that frequently a node with several addnode configured peers would end up connected to none of them, because while the addnode loop was in its two minute sleep the automatic connection logic would fill any free slots with random peers. This is particularly unwelcome to users trying to maintain links to specific nodes for fast block relay or purposes. Another result is that a group of nine or more nodes which are have addnode configured towards each other can become partitioned from the public network. This commit introduces a new limit of eight connections just for addnode peers which is not subject to any of the other connection limitations (including maxconnections). The choice of eight is sufficient so that under no condition would a user find themselves connected to fewer addnoded peers than previously. It is also low enough that users who are confused about the significance of more connections and have gotten too copy-and-paste happy will not consume more than twice the slot usage of a typical user. Any additional load on the network resulting from this will likely be offset by a reduction in users applying even more wasteful workaround for the prior behavior. The retry delays are reduced to avoid nodes sitting around without their added peers up, but are still sufficient to prevent overly aggressive repeated connections. The reduced delays also make the system much more responsive to the addnode RPC. Ban-disconnects are also exempted for peers added via addnode since the outbound addnode logic ignores bans. Previously it would ban an addnode then immediately reconnect to it. A minor change was also made to CSemaphoreGrant so that it is possible to re-acquire via an object whos grant was moved.
2017-01-04Introduce -blockmintxfeeAlex Morcos
2017-01-04Merge #9401: Make rpcauth help message clearer, add example in example .confMarcoFalke
0513c70 Make rpcauth help message clearer, add example in example .conf (Gregory Sanders)
2017-01-04Merge #9289: net: drop boost::thread_groupWladimir J. van der Laan
67ee4ec net: misc header cleanups (Cory Fields) 8b3159e net: make proxy receives interruptible (Cory Fields) 5cb0fce net: remove thread_interrupted catch (Cory Fields) d3d7056 net: make net processing interruptible (Cory Fields) 0985052 net: make net interruptible (Cory Fields) 799df91 net: add CThreadInterrupt and InterruptibleSleep (Cory Fields) 7325b15 net: a few small cleanups before replacing boost threads (Cory Fields)
2017-01-03net: make net interruptibleCory Fields
Also now that net threads are interruptible, switch them to use std threads/binds/mutexes/condvars.
2016-12-31Increment MIT Licence copyright header year on files modified in 2016isle2983
Edited via: $ contrib/devtools/copyright_header.py update .
2016-12-24Un-expose mapArgs from utils.hMatt Corallo
2016-12-24Get rid of mapArgs direct access in ZMQ constructionMatt Corallo
2016-12-23Introduce (and use) an IsArgSet accessor methodMatt Corallo
2016-12-23Fix non-const mapMultiArgs[] access after init.Matt Corallo
Swap mapMultiArgs for a const-reference to a _mapMultiArgs which is only accessed in util.cpp
2016-12-23Allow shutdown during LoadMempool, dump only when necessaryJonas Schnelli
2016-12-22Share unused mempool memory with coincachePieter Wuille
If the mempool is not completely full, treat the difference between the maximum size and the actual usage as available for the coin cache. This also changes the early flush trigger from (usage > 0.9 * space) to (usage > 0.9 * space && usage > space - 100MB). This means we're not permanently leaving 10% of the space unused when the space is large.
2016-12-21Make rpcauth help message clearer, add example in example .confGregory Sanders
2016-12-19Merge #9236: Fix races for strMiscWarning and fLargeWork*Found, make QT ↵Wladimir J. van der Laan
runawayException use GetWarnings 749be01 Move GetWarnings() into its own file. (Gregory Maxwell) e3ba0ef Eliminate data races for strMiscWarning and fLargeWork*Found. (Gregory Maxwell) c63198f Make QT runawayException call GetWarnings instead of directly access strMiscWarning. (Gregory Maxwell)
2016-12-15Merge #9322: [qa] Don't set unknown rpcserialversionWladimir J. van der Laan
fa615d3 [qa] Don't set unknown rpcserialversion (MarcoFalke) 80d073c Complain when unknown rpcserialversion is specified (Pieter Wuille)
2016-12-14Merge #8895: Better SigCache ImplementationPieter Wuille
67dac4e Add unit tests for the CuckooCache (Jeremy Rubin) c9e69fb Add CuckooCache implementation and replace the sigcache map_type with it (Jeremy Rubin)
2016-12-14Add CuckooCache implementation and replace the sigcache map_type with itJeremy Rubin
SQUASHME: Change cuckoocache to only work for powers of two, to avoid mod operator SQUASHME: Update Documentation and simplify logarithm logic SQUASHME: OSX Build Errors SQUASHME: minor Feedback from sipa + bluematt SQUASHME: DOCONLY: Clarify a few comments.
2016-12-05Complain when unknown rpcserialversion is specifiedPieter Wuille
2016-12-05Add option to return non-segwit serialization via rpcGregory Sanders
2016-12-03Move GetWarnings() into its own file.Gregory Maxwell
2016-12-02Merge #9260: Mrs Peacock in The Library with The Candlestick (killed ↵Pieter Wuille
main.{h,cpp}) 76faa3c Rename the remaining main.{h,cpp} to validation.{h,cpp} (Matt Corallo) e736772 Move network-msg-processing code out of main to its own file (Matt Corallo) 87c35f5 Remove orphan state wipe from UnloadBlockIndex. (Matt Corallo)
2016-12-02Merge #9251: Improvement of documentation of command line parameter 'whitelist'MarcoFalke
8a70a9d Improvement of documentation of command line parameter 'whitelist' (wodry)
2016-12-02Rename the remaining main.{h,cpp} to validation.{h,cpp}Matt Corallo
2016-12-02Move network-msg-processing code out of main to its own fileMatt Corallo
2016-11-30Fix calculation of number of bound sockets to useMatt Corallo
2016-11-30Merge #9010: Split up AppInit2 into multiple phases, daemonize after datadir ↵Pieter Wuille
lock errors deec83f init: Get rid of fServer flag (Wladimir J. van der Laan) 16ca0bf init: Try to aquire datadir lock before and after daemonization (Wladimir J. van der Laan) 0cc8b6b init: Split up AppInit2 into multiple phases (Wladimir J. van der Laan)
2016-11-30Improvement of documentation of command line parameter 'whitelist'wodry
2016-11-29init: Get rid of fServer flagWladimir J. van der Laan
There is no need to store this flag globally, the variable is only used inside the initialization process. Thanks to Alex Morcos for the idea.
2016-11-29init: Try to aquire datadir lock before and after daemonizationWladimir J. van der Laan
Before daemonization, just probe the data directory lock and print an early error message if possible. After daemonization get the data directory lock again and hold on to it until exit This creates a slight window for a race condition to happen, however this condition is harmless: it will at most make us exit without printing a message to console. $ src/bitcoind -testnet -daemon Bitcoin server starting $ src/bitcoind -testnet -daemon Error: Cannot obtain a lock on data directory /home/orion/.bitcoin/testnet3. Bitcoin Core is probably already running.
2016-11-29init: Split up AppInit2 into multiple phasesWladimir J. van der Laan
This allows doing some of the steps before e.g. daemonization and some fater.
2016-11-23Merge #9142: Move -salvagewallet, -zap(wtx) to where they belongWladimir J. van der Laan
2e44893 Move -salvagewallet, -zap(wtx) to where they belong (Jonas Schnelli)
2016-11-12Move -salvagewallet, -zap(wtx) to where they belongJonas Schnelli
2016-11-11Unset fImporting for loading mempoolAlex Morcos
2016-11-03Merge #8969: Decouple peer-processing-logic from block-connection-logic (#2)Wladimir J. van der Laan
f5b960b Move nTimeBestReceived updating into net processing code (Matt Corallo) d8670fb Move all calls to CheckBlockIndex out of net-processing logic (Matt Corallo) d6ea737 Remove network state wipe from UnloadBlockIndex. (Matt Corallo) fc0c24f Move MarkBlockAsReceived out of ProcessNewMessage (Matt Corallo) 65f35eb Move FlushStateToDisk call out of ProcessMessages::TX into ATMP (Matt Corallo)
2016-11-02Merge #8977: [Wallet] Refactor wallet/init interaction (Reaccept wtx, flush ↵Wladimir J. van der Laan
thread) cab1da7 [Wallet] Refactor wallet/init interaction (Reaccept wtx, flush thread) (Jonas Schnelli)
2016-11-02Merge #9013: Trivial: Explicitly pass const CChainParams& to LoadBlockIndexDB()Wladimir J. van der Laan
d0b01f3 Explicitly pass const CChainParams& to LoadBlockIndexDB() (Geoffrey Tsui)
2016-10-31Remove network state wipe from UnloadBlockIndex.Matt Corallo
UnloadBlockIndex is only used during init if we end up reindexing to clear our block state so that we can start over. However, at that time no connections have been brought up as CConnman hasn't been started yet, so all of the network processing state logic is empty when its called. Additionally, the initialization of the recentRejects set is moved to InitPeerLogic.
2016-10-31Add DumpMempool and LoadMempoolPieter Wuille
2016-10-25Explicitly pass const CChainParams& to LoadBlockIndexDB()Geoffrey Tsui
2016-10-25Make connect=0 disable automatic outbound connections.Gregory Maxwell
Otherwise it just responds to this obvious bit of configuration by trying to connect to "0" in a loop.
2016-10-20[Wallet] Refactor wallet/init interaction (Reaccept wtx, flush thread)Jonas Schnelli