171ca7745e
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. |
||
---|---|---|
.. | ||
gitian-building | ||
img | ||
release-notes | ||
assets-attribution.md | ||
bitcoin_logo_doxygen.png | ||
bootstrap.md | ||
build-msw.md | ||
build-osx.md | ||
build-unix.md | ||
coding.md | ||
Doxyfile | ||
files.md | ||
gitian-building.md | ||
multiwallet-qt.md | ||
README_osx.txt | ||
README_windows.txt | ||
README.md | ||
release-notes.md | ||
release-process.md | ||
tor.md | ||
translation_process.md | ||
unit-tests.md |
Bitcoin 0.9.99 BETA
Copyright (c) 2009-2014 Bitcoin Developers
Setup
Bitcoin Core is the original Bitcoin client and it builds the backbone of the network. However, it downloads and stores the entire history of Bitcoin transactions (which is currently several GBs); depending on the speed of your computer and network connection, the synchronization process can take anywhere from a few hours to a day or more. Thankfully you only have to do this once. If you would like the process to go faster you can download the blockchain directly.
Running
The following are some helpful notes on how to run Bitcoin on your native platform.
Unix
You need the Qt4 run-time libraries to run Bitcoin-Qt. On Debian or Ubuntu:
sudo apt-get install libqtgui4
Unpack the files into a directory and run:
- bin/32/bitcoin-qt (GUI, 32-bit) or bin/32/bitcoind (headless, 32-bit)
- bin/64/bitcoin-qt (GUI, 64-bit) or bin/64/bitcoind (headless, 64-bit)
Windows
Unpack the files into a directory, and then run bitcoin-qt.exe.
OSX
Drag Bitcoin-Qt to your applications folder, and then run Bitcoin-Qt.
Need Help?
- See the documentation at the Bitcoin Wiki for help and more information.
- Ask for help on #bitcoin on Freenode. If you don't have an IRC client use webchat here.
- Ask for help on the BitcoinTalk forums, in the Technical Support board.
Building
The following are developer notes on how to build Bitcoin on your native platform. They are not complete guides, but include notes on the necessary libraries, compile flags, etc.
Development
The Bitcoin repo's root README contains relevant information on the development process and automated testing.
- Coding Guidelines
- Multiwallet Qt Development
- Release Notes
- Release Process
- Source Code Documentation (External Link)
- Translation Process
- Unit Tests
Resources
- Discuss on the BitcoinTalk forums, in the Development & Technical Discussion board.
- Discuss on #bitcoin-dev on Freenode. If you don't have an IRC client use webchat here.
Miscellaneous
License
Distributed under the MIT/X11 software license. This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. This product includes cryptographic software written by Eric Young (eay@cryptsoft.com), and UPnP software written by Thomas Bernard.