aboutsummaryrefslogtreecommitdiff
path: root/src/init.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* | | Avoid querying DNS seeds, if we have open connections.Jeff Garzik2014-07-291-1/+2
| | | | | | | | | | | | The goal is to increase independence and privacy.
* | | Merge pull request #4531Wladimir J. van der Laan2014-07-281-0/+1
|\ \ \ | |/ / |/| | | | | ebdcc36 Add helptexts for -whitelist and rpc prioritisetransaction and switch to bitcoin instead of satoshis (Cozz Lovan)
| * | Add helptexts for -whitelist and rpc prioritisetransaction and switch to ↵Cozz Lovan2014-07-151-0/+1
| | | | | | | | | | | | bitcoin instead of satoshis
* | | Revert "Relay double-spends, subject to anti-DOS"Wladimir J. van der Laan2014-07-211-1/+0
| | | | | | | | | | | | This reverts commit d640a3ceab4f4372c2a0f738c1286cfde4b41b50.
* | | Revert "Remove signal DoubleSpendDetected, use function"Wladimir J. van der Laan2014-07-211-1/+1
| | | | | | | | | | | | This reverts commit 0da6b3fd187da3aa810aaa584d8bd197ad4fa2b9.
* | | Introduce option to disable relay/mining of bare multisig scripts in TX outputsJeff Garzik2014-07-181-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | First and foremost, this defaults to OFF. This option lets a node consider such transactions non-standard, meaning they will not be relayed or mined by default, but other miners are free to mine these as usual.
* | | Make sure CAutoFile for fees estimate goes out of scopePieter Wuille2014-07-161-6/+8
|/ /
* | Add option to disable 077 umask (create new files with system default umask)Rune K. Svendsen2014-07-141-1/+13
| | | | | | | | | | | | | | | | | | The option is only effective for either wallet-less builds or if -disablewallet is specified as well. Rebased-By: Wladimir J. van der Laan <[email protected]> Rebased-From: 34d5fc0 4e1a196 bd4307b d53a33b 7e09b36 Github-Pull: #4286
* | qt: Ignore showNormalIfMinimized in initialization or shutdownWladimir J. van der Laan2014-07-141-2/+2
| | | | | | | | | | | | | | Also get rid of ui_interface flag NOSHOWGUI. It's up to the GUI to decide this. Fixes #4360.
* | Merge pull request #4378Wladimir J. van der Laan2014-07-141-6/+26
|\ \ | | | | | | | | | dc942e6 Introduce whitelisted peers. (Pieter Wuille)
| * | Introduce whitelisted peers.Pieter Wuille2014-07-091-6/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds a -whitelist option to specify subnet ranges from which peers that connect are whitelisted. In addition, there is a -whitebind option which works like -bind, except peers connecting to it are also whitelisted (allowing a separate listen port for trusted connections). Being whitelisted has two effects (for now): * They are immune to DoS disconnection/banning. * Transactions they broadcast (which are valid) are always relayed, even if they were already in the mempool. This means that a node can function as a gateway for a local network, and that rebroadcasts from the local network will work as expected. Whitelisting replaces the magic exemption localhost had for DoS disconnection (local addresses are still never banned, though), which implied hidden service connects (from a localhost Tor node) were incorrectly immune to DoS disconnection as well. This old behaviour is removed for that reason, but can be restored using -whitelist=127.0.0.1 or -whitelist=::1 can be specified. -whitebind is safer to use in case non-trusted localhost connections are expected (like hidden services).
* | | In -? output: -keypool, -gen, -genproclimit depend on ENABLE_WALLETZak Wilcox2014-07-121-1/+3
|/ /
* | init.cpp: log fee estimates filename on errorPhilip Kaufmann2014-07-091-10/+16
| | | | | | | | | | | | - small changes to Shutdown(), buffer __func__, which is now used in all LogPrintf() calls and format for better readability - order using namespace alpabetically
* | Fee fixesCozz Lovan2014-07-081-1/+2
| |
* | Merge pull request #4327Wladimir J. van der Laan2014-07-071-13/+9
|\ \ | | | | | | | | | | | | a339a37 error out, when we detect -socks argument (Philip Kaufmann) 0127a9b remove SOCKS4 support from core and GUI (Philip Kaufmann)
| * | error out, when we detect -socks argumentPhilip Kaufmann2014-07-071-0/+3
| | |
| * | remove SOCKS4 support from core and GUIPhilip Kaufmann2014-07-071-13/+6
| | | | | | | | | | | | - now we support SOCKS5 only
* | | Move ui_interface to bitcoin_server.aWladimir J. van der Laan2014-07-071-0/+1
|/ / | | | | | | | | There is no need for it in the utility libraries or tools. Put it in init.cpp, and in the tests separately (as they can't link init).
* | Merge pull request #3764Wladimir J. van der Laan2014-07-041-0/+2
|\ \ | | | | | | | | | 2e36866 Show nodeid instead of addresses (for anonymity) unless otherwise requested. (R E Broadley)
| * | Show nodeid instead of addresses (for anonymity) unless otherwise requested.R E Broadley2014-07-041-0/+2
| | |
* | | Merge pull request #4450Wladimir J. van der Laan2014-07-041-1/+1
|\ \ \ | | | | | | | | | | | | | | | | 0da6b3f Remove signal DoubleSpendDetected, use function (Tom Harding) 88dd359 Check signatures before respend relay (Tom Harding)
| * | | Remove signal DoubleSpendDetected, use functionTom Harding2014-07-021-1/+1
| |/ / | | | | | | | | | Also removes the need for forward reference to RelayableRespend.
* | | Move fee policy out of coreGavin Andresen2014-07-031-15/+15
| | |
* | | Use fee/priority estimates in wallet CreateTransactionGavin Andresen2014-07-031-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The wallet now uses the mempool fee estimator with a new command-line option: -txconfirmtarget (default: 1) instead of using hard-coded fees or priorities. A new bitcoind that hasn't seen enough transactions to estimate will fall back to the old hard-coded minimum priority or transaction fee. -paytxfee option overrides -txconfirmtarget. Relaying and mining code isn't changed. For Qt, the coin control dialog now uses priority estimates to label transaction priority (instead of hard-coded constants); unspent outputs were consistently labeled with a much higher priority than is justified by the free transactions actually being accepted into blocks. I did not implement any GUI for setting -txconfirmtarget; I would suggest getting rid of the "Pay transaction fee" GUI and replace it with either "target number of confirmations" or maybe a "faster confirmation <--> lower fee" slider or select box.
* | | Clarify error message when invalid -rpcallowipWladimir J. van der Laan2014-07-031-1/+1
|/ / | | | | | | Also add to HelpMessage() what specifications are valid.
* | Merge pull request #4325Wladimir J. van der Laan2014-07-011-3/+3
|\ \ | | | | | | | | | 4aaa017 rework help messages for fee-related options (Philip Kaufmann)
| * | rework help messages for fee-related optionsPhilip Kaufmann2014-06-111-3/+3
| | | | | | | | | | | | - mention the units and show the default for -paytxfee
* | | Add -respendnotify option and new RPC dataTom Harding2014-06-271-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -respendnotify=<cmd> Execute command when a network tx respends wallet tx input (%s=respend TxID, %t=wallet TxID) Add respendsobserved array to gettransaction, listtransactions, and listsinceblock RPCs. This omits the malleated clones that are included in the walletconflicts array. Add RPC help for respendsobserved and walletconflicts (help was missing for the latter).
* | | Relay double-spends, subject to anti-DOSTom Harding2014-06-271-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allows network wallets and other clients to see transactions that respend a prevout already spent in an unconfirmed transaction in this node's mempool. Knowledge of an attempted double-spend is of interest to recipients of the first spend. In some cases, it will allow these recipients to withhold goods or services upon being alerted of a double-spend that deprives them of payment. As before, respends are not added to the mempool. Anti-Denial-of-Service-Attack provisions: - Use a bloom filter to relay only one respend per mempool prevout - Rate-limit respend relays to a default of 100 thousand bytes/minute - Define tx2.IsEquivalentTo(tx1): equality when scriptSigs are not considered - Do not relay these equivalent transactions Remove an unused variable declaration in txmempool.cpp.
* | | Add an option to allow users to disable relaying/mining data carrier ↵Luke Dashjr2014-06-261-0/+2
| | | | | | | | | | | | transactions
* | | Merge pull request #4130Wladimir J. van der Laan2014-06-241-8/+7
|\ \ \ | | | | | | | | | | | | 1c750db remove -tor compatibility code (only allow -onion) (Philip Kaufmann)
| * | | remove -tor compatibility code (only allow -onion)Philip Kaufmann2014-06-241-8/+7
| | | | | | | | | | | | | | | | - exit, if -tor option is found and give error to user
* | | | Merge pull request #3674Wladimir J. van der Laan2014-06-241-3/+31
|\ \ \ \ | |/ / / |/| | | | | | | 77cbd46 Let -zapwallettxes recover transaction meta data (Cozz Lovan)
| * | | Let -zapwallettxes recover transaction meta dataCozz Lovan2014-06-161-3/+31
| | | |
* | | | build: fix build weirdness after 54372482.Cory Fields2014-06-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bitcoin-config.h moved, but the old file is likely to still exist when reconfiguring or switching branches. This would've caused files to not rebuild correctly, and other strange problems. Make the path explicit so that the old one cannot be found. Core libs use config/bitcoin-config.h. Libs (like crypto) which don't want access to bitcoin's headers continue to use -Iconfig and #include bitcoin-config.h.
* | | | Remove getwork() RPC callPieter Wuille2014-06-211-3/+0
| | | |
* | | | Merge pull request #4339Wladimir J. van der Laan2014-06-181-2/+3
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | 92a6220 sanity: hook up sanity checks (Cory Fields) 679240d sanity: add libc/stdlib sanity checks (Cory Fields) 11404af sanity: autoconf check for sys/select.h (Cory Fields)
| * | | | sanity: hook up sanity checksCory Fields2014-06-161-2/+3
| |/ / /
* | | | Merge pull request #4346Wladimir J. van der Laan2014-06-171-0/+6
|\ \ \ \ | | | | | | | | | | | | | | | 1569353 Add `-stopafterblockimport` option (Wladimir J. van der Laan)
| * | | | Add `-stopafterblockimport` optionWladimir J. van der Laan2014-06-161-0/+6
| |/ / / | | | | | | | | | | | | | | | | Stop after importing blocks. This can be useful for development and trouble shooting.
* / / / add comment to HelpMessage() to ensure alphabetical orderingPhilip Kaufmann2014-06-171-3/+4
|/ / / | | | | | | | | | - also rename hmm to mode, to be consistent between .h and .cpp
* | | Add 'about' information to `-version` outputWladimir J. van der Laan2014-06-121-1/+12
| | | | | | | | | | | | | | | | | | | | | Adds a copyright and attribution message to the `-version` output (the same as shown in the About dialog in the GUI). Move the message to a function LicenseInfo in init.cpp.
* | | [Qt] allow setting listen via GUIPhilip Kaufmann2014-06-111-1/+1
|/ / | | | | | | | | | | | | | | | | | | - add DEFAULT_LISTEN in net.h and use in the code (shared setting between core and GUI) Important: This makes it obvious, that we need to re-think the settings/options handling, as GUI settings are processed before any parameter-interaction (which is mostly important for network stuff) in AppInit2()!
* | Merge pull request #4277Wladimir J. van der Laan2014-06-111-0/+21
|\ \ | | | | | | | | | 4a09e1d key.cpp: fail with a friendlier message on missing ssl EC support (Andrew Poelstra)
| * | key.cpp: fail with a friendlier message on missing ssl EC supportAndrew Poelstra2014-06-031-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously if bitcoind is linked with an OpenSSL which is compiled without EC support, this is seen as an assertion failure "pKey != NULL" at key.cpp:134, which occurs after several seconds. It is an esoteric piece of knowledge to interpret this as "oops, I linked with the wrong OpenSSL", and because of the delay it may not even be noticed. The new output is : OpenSSL appears to lack support for elliptic curve cryptography. For more information, visit https://en.bitcoin.it/wiki/OpenSSL_and_EC_Libraries : Initialization sanity check failed. Bitcoin Core is shutting down. which occurs immediately after attempted startup. This also blocks in an InitSanityCheck() function which currently only checks for EC support but should eventually do more. See #4081.
* | | Merge pull request #3824Wladimir J. van der Laan2014-06-091-1/+2
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | f0a83fc Use Params().NetworkID() instead of TestNet() from the payment protocol (jtimon) 2871889 net.h was using std namespace through chainparams.h included in protocol.h (jtimon) c8c52de Replace virtual methods with static attributes, chainparams.h depends on protocol.h instead of the other way around (jtimon) a3d946e Get rid of TestNet() (jtimon) 6fc0fa6 Add RPCisTestNet chain parameter (jtimon) cfeb823 Add RequireStandard chain parameter (jtimon) 21913a9 Add AllowMinDifficultyBlocks chain parameter (jtimon) d754f34 Move majority constants to chainparams (jtimon) 8d26721 Get rid of RegTest() (jtimon) cb9bd83 Add DefaultCheckMemPool chain parameter (jtimon) 2595b9a Add DefaultMinerThreads chain parameter (jtimon) bfa9a1a Add MineBlocksOnDemand chain parameter (jtimon) 1712adb Add MiningRequiresPeers chain parameter (jtimon)
| * | | Add DefaultCheckMemPool chain parameterjtimon2014-06-041-1/+2
| | | |
* | | | estimatefee / estimatepriority RPC methodsGavin Andresen2014-06-061-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New RPC methods: return an estimate of the fee (or priority) a transaction needs to be likely to confirm in a given number of blocks. Mike Hearn created the first version of this method for estimating fees. It works as follows: For transactions that took 1 to N (I picked N=25) blocks to confirm, keep N buckets with at most 100 entries in each recording the fees-per-kilobyte paid by those transactions. (separate buckets are kept for transactions that confirmed because they are high-priority) The buckets are filled as blocks are found, and are saved/restored in a new fee_estiamtes.dat file in the data directory. A few variations on Mike's initial scheme: To estimate the fee needed for a transaction to confirm in X buckets, all of the samples in all of the buckets are used and a median of all of the data is used to make the estimate. For example, imagine 25 buckets each containing the full 100 entries. Those 2,500 samples are sorted, and the estimate of the fee needed to confirm in the very next block is the 50'th-highest-fee-entry in that sorted list; the estimate of the fee needed to confirm in the next two blocks is the 150'th-highest-fee-entry, etc. That algorithm has the nice property that estimates of how much fee you need to pay to get confirmed in block N will always be greater than or equal to the estimate for block N+1. It would clearly be wrong to say "pay 11 uBTC and you'll get confirmed in 3 blocks, but pay 12 uBTC and it will take LONGER". A single block will not contribute more than 10 entries to any one bucket, so a single miner and a large block cannot overwhelm the estimates.
* | | | Type-safe CFeeRate classGavin Andresen2014-06-061-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use CFeeRate instead of an int64_t for quantities that are fee-per-size. Helps prevent unit-conversion mismatches between the wallet, relaying, and mining code.
* | | | Remove global strWalletFileWladimir J. van der Laan2014-06-051-2/+1
| | | | | | | | | | | | | | | | | | | | As it says on the tin. There is no need to have this variable be global, it's only used in AppInit2.