1. 18 Aug, 2014 1 commit
  2. 04 Aug, 2014 1 commit
  3. 01 Aug, 2014 1 commit
  4. 30 Jul, 2014 1 commit
  5. 29 Jul, 2014 1 commit
  6. 26 Jul, 2014 1 commit
    • Pieter Wuille's avatar
      Rework block processing benchmark code · d70bc52e
      Pieter Wuille authored
      * Replace -benchmark (and the related fBenchmark) with a regular debug option, -debug=bench.
      * Increase coverage and granularity of individual block processing steps.
      * Add cummulative times.
      d70bc52e
  7. 21 Jul, 2014 2 commits
  8. 18 Jul, 2014 1 commit
  9. 16 Jul, 2014 1 commit
  10. 15 Jul, 2014 1 commit
  11. 14 Jul, 2014 2 commits
  12. 12 Jul, 2014 1 commit
  13. 09 Jul, 2014 2 commits
    • Pieter Wuille's avatar
      Introduce whitelisted peers. · dc942e6f
      Pieter Wuille authored
      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).
      dc942e6f
    • Philip Kaufmann's avatar
      init.cpp: log fee estimates filename on error · 00d1980b
      Philip Kaufmann authored
      - small changes to Shutdown(), buffer __func__, which is now used in
        all LogPrintf() calls and format for better readability
      - order using namespace alpabetically
      00d1980b
  14. 08 Jul, 2014 1 commit
  15. 07 Jul, 2014 3 commits
  16. 04 Jul, 2014 1 commit
  17. 03 Jul, 2014 3 commits
    • Gavin Andresen's avatar
      Move fee policy out of core · 13fc83c7
      Gavin Andresen authored
      13fc83c7
    • Gavin Andresen's avatar
      Use fee/priority estimates in wallet CreateTransaction · b33d1f5e
      Gavin Andresen authored
      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.
      b33d1f5e
    • Wladimir J. van der Laan's avatar
      Clarify error message when invalid -rpcallowip · 4278b1df
      Wladimir J. van der Laan authored
      Also add to HelpMessage() what specifications are valid.
      4278b1df
  18. 02 Jul, 2014 1 commit
  19. 27 Jun, 2014 2 commits
    • Tom Harding's avatar
      Add -respendnotify option and new RPC data · 9004798e
      Tom Harding authored
      -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).
      9004798e
    • Tom Harding's avatar
      Relay double-spends, subject to anti-DOS · d640a3ce
      Tom Harding authored
      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.
      d640a3ce
  20. 26 Jun, 2014 1 commit
  21. 24 Jun, 2014 1 commit
  22. 23 Jun, 2014 1 commit
    • Cory Fields's avatar
      build: fix build weirdness after 54372482. · f3967bcc
      Cory Fields authored
      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.
      f3967bcc
  23. 21 Jun, 2014 1 commit
  24. 17 Jun, 2014 1 commit
  25. 16 Jun, 2014 3 commits
  26. 12 Jun, 2014 1 commit
  27. 11 Jun, 2014 2 commits
    • Philip Kaufmann's avatar
      rework help messages for fee-related options · 4aaa0178
      Philip Kaufmann authored
      - mention the units and show the default for -paytxfee
      4aaa0178
    • Philip Kaufmann's avatar
      [Qt] allow setting listen via GUI · 56b07d2d
      Philip Kaufmann authored
      - 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()!
      56b07d2d
  28. 06 Jun, 2014 2 commits
    • Gavin Andresen's avatar
      estimatefee / estimatepriority RPC methods · 171ca774
      Gavin Andresen authored
      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.
      171ca774
    • Gavin Andresen's avatar
      Type-safe CFeeRate class · c6cb21d1
      Gavin Andresen authored
      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.
      c6cb21d1