1 Bitcoin Core version 0.9.0 is now available from:
3 https://bitcoin.org/bin/0.9.0/
5 This is a new major version release, bringing both new features and
8 Please report bugs using the issue tracker at github:
10 https://github.com/bitcoin/bitcoin/issues
15 If you are running an older version, shut it down. Wait until it has completely
16 shut down (which might take a few minutes for older versions), uninstall all
17 earlier versions of Bitcoin, then run the installer (on Windows) or just copy
18 over /Applications/Bitcoin-Qt (on Mac) or bitcoind/bitcoin-qt (on Linux).
20 If you are upgrading from version 0.7.2 or earlier, the first time you run
21 0.9.0 your blockchain files will be re-indexed, which will take anywhere from
22 30 minutes to several hours, depending on the speed of your machine.
24 On Windows, do not forget to uninstall all earlier versions of the Bitcoin
25 client first, especially if you are switching to the 64-bit version.
27 Windows 64-bit installer
28 -------------------------
30 New in 0.9.0 is the Windows 64-bit version of the client. There have been
31 frequent reports of users running out of virtual memory on 32-bit systems
32 during the initial sync. Because of this it is recommended to install the
33 64-bit version if your system supports it.
35 NOTE: Release candidate 2 Windows binaries are not code-signed; use PGP
36 and the SHA256SUMS.asc file to make sure your binaries are correct.
37 In the final 0.9.0 release, Windows setup.exe binaries will be code-signed.
39 OSX 10.5 / 32-bit no longer supported
40 -------------------------------------
42 0.9.0 drops support for older Macs. The minimum requirements are now:
43 * A 64-bit-capable CPU (see http://support.apple.com/kb/ht3696);
44 * Mac OS 10.6 or later (see https://support.apple.com/kb/ht1633).
49 The 'chainstate' for this release is not always compatible with previous
50 releases, so if you run 0.9 and then decide to switch back to a
51 0.8.x release you might get a blockchain validation error when starting the
52 old release (due to 'pruned outputs' being omitted from the index of
53 unspent transaction outputs).
55 Running the old release with the -reindex option will rebuild the chainstate
56 data structures and correct the problem.
58 Also, the first time you run a 0.8.x release on a 0.9 wallet it will rescan
59 the blockchain for missing spent coins, which will take a long time (tens
60 of minutes on a typical machine).
62 Rebranding to Bitcoin Core
63 ---------------------------
65 To reduce confusion between Bitcoin-the-network and Bitcoin-the-software we
66 have renamed the reference client to Bitcoin Core.
69 OP_RETURN and data in the block chain
70 -------------------------------------
71 On OP_RETURN: There was been some confusion and misunderstanding in
72 the community, regarding the OP_RETURN feature in 0.9 and data in the
73 blockchain. This change is not an endorsement of storing data in the
74 blockchain. The OP_RETURN change creates a provably-prunable output,
75 to avoid data storage schemes -- some of which were already deployed --
76 that were storing arbitrary data such as images as forever-unspendable
77 TX outputs, bloating bitcoin's UTXO database.
79 Storing arbitrary data in the blockchain is still a bad idea; it is less
80 costly and far more efficient to store non-currency data elsewhere.
82 Autotools build system
83 -----------------------
85 For 0.9.0 we switched to an autotools-based build system instead of individual
88 Using the standard "./autogen.sh; ./configure; make" to build Bitcoin-Qt and
89 bitcoind makes it easier for experienced open source developers to contribute
92 Be sure to check doc/build-*.md for your platform before building from source.
97 Another change in the 0.9 release is moving away from the bitcoind executable
98 functioning both as a server and as a RPC client. The RPC client functionality
99 ("tell the running bitcoin daemon to do THIS") was split into a separate
100 executable, 'bitcoin-cli'. The RPC client code will eventually be removed from
101 bitcoind, but will be kept for backwards compatibility for a release or two.
103 `walletpassphrase` RPC
104 -----------------------
106 The behavior of the `walletpassphrase` RPC when the wallet is already unlocked
107 has changed between 0.8 and 0.9.
109 The 0.8 behavior of `walletpassphrase` is to fail when the wallet is already unlocked:
111 > walletpassphrase 1000
112 walletunlocktime = now + 1000
113 > walletpassphrase 10
114 Error: Wallet is already unlocked (old unlock time stays)
116 The new behavior of `walletpassphrase` is to set a new unlock time overriding
119 > walletpassphrase 1000
120 walletunlocktime = now + 1000
121 > walletpassphrase 10
122 walletunlocktime = now + 10 (overriding the old unlock time)
124 Transaction malleability-related fixes
125 --------------------------------------
127 This release contains a few fixes for transaction ID (TXID) malleability
130 - -nospendzeroconfchange command-line option, to avoid spending
131 zero-confirmation change
132 - IsStandard() transaction rules tightened to prevent relaying and mining of
134 - Additional information in listtransactions/gettransaction output to
135 report wallet transactions that conflict with each other because
136 they spend the same outputs.
137 - Bug fixes to the getbalance/listaccounts RPC commands, which would report
138 incorrect balances for double-spent (or mutated) transactions.
139 - New option: -zapwallettxes to rebuild the wallet's transaction information
144 This release drops the default fee required to relay transactions across the
145 network and for miners to consider the transaction in their blocks to
146 0.01mBTC per kilobyte.
148 Note that getting a transaction relayed across the network does NOT guarantee
149 that the transaction will be accepted by a miner; by default, miners fill
150 their blocks with 50 kilobytes of high-priority transactions, and then with
151 700 kilobytes of the highest-fee-per-kilobyte transactions.
153 The minimum relay/mining fee-per-kilobyte may be changed with the
154 minrelaytxfee option. Note that previous releases incorrectly used
155 the mintxfee setting to determine which low-priority transactions should
156 be considered for inclusion in blocks.
158 The wallet code still uses a default fee for low-priority transactions of
159 0.1mBTC per kilobyte. During periods of heavy transaction volume, even this
160 fee may not be enough to get transactions confirmed quickly; the mintxfee
161 option may be used to override the default.
164 =======================
168 - New notion of 'conflicted' transactions, reported as confirmations: -1
169 - 'listreceivedbyaddress' now provides tx ids
170 - Add raw transaction hex to 'gettransaction' output
171 - Updated help and tests for 'getreceivedby(account|address)'
172 - In 'getblock', accept 2nd 'verbose' parameter, similar to getrawtransaction,
173 but defaulting to 1 for backward compatibility
174 - Add 'verifychain', to verify chain database at runtime
175 - Add 'dumpwallet' and 'importwallet' RPCs
176 - 'keypoolrefill' gains optional size parameter
177 - Add 'getbestblockhash', to return tip of best chain
178 - Add 'chainwork' (the total work done by all blocks since the genesis block)
180 - Make RPC password resistant to timing attacks
181 - Clarify help messages and add examples
182 - Add 'getrawchangeaddress' call for raw transaction change destinations
183 - Reject insanely high fees by default in 'sendrawtransaction'
184 - Add RPC call 'decodescript' to decode a hex-encoded transaction script
185 - Make 'validateaddress' provide redeemScript
186 - Add 'getnetworkhashps' to get the calculated network hashrate
187 - New RPC 'ping' command to request ping, new 'pingtime' and 'pingwait' fields
188 in 'getpeerinfo' output
189 - Adding new 'addrlocal' field to 'getpeerinfo' output
190 - Add verbose boolean to 'getrawmempool'
191 - Add rpc command 'getunconfirmedbalance' to obtain total unconfirmed balance
192 - Explicitly ensure that wallet is unlocked in `importprivkey`
193 - Add check for valid keys in `importprivkey`
195 Command-line options:
197 - New option: -nospendzeroconfchange to never spend unconfirmed change outputs
198 - New option: -zapwallettxes to rebuild the wallet's transaction information
199 - Rename option '-tor' to '-onion' to better reflect what it does
200 - Add '-disablewallet' mode to let bitcoind run entirely without wallet (when
202 - Update default '-rpcsslciphers' to include TLSv1.2
203 - make '-logtimestamps' default on and rework help-message
204 - RPC client option: '-rpcwait', to wait for server start
205 - Remove '-logtodebugger'
206 - Allow `-noserver` with bitcoind
208 Block-chain handling and storage:
210 - Update leveldb to 1.15
211 - Check for correct genesis (prevent cases where a datadir from the wrong
212 network is accidentally loaded)
213 - Allow txindex to be removed and add a reindex dialog
214 - Log aborted block database rebuilds
215 - Store orphan blocks in serialized form, to save memory
216 - Limit the number of orphan blocks in memory to 750
217 - Fix non-standard disconnected transactions causing mempool orphans
218 - Add a new checkpoint at block 279,000
222 - Bug fixes and new regression tests to correctly compute
223 the balance of wallets containing double-spent (or mutated) transactions
224 - Store key creation time. Calculate whole-wallet birthday.
225 - Optimize rescan to skip blocks prior to birthday
226 - Let user select wallet file with -wallet=foo.dat
227 - Consider generated coins mature at 101 instead of 120 blocks
228 - Improve wallet load time
229 - Don't count txins for priority to encourage sweeping
230 - Don't create empty transactions when reading a corrupted wallet
231 - Fix rescan to start from beginning after importprivkey
232 - Only create signatures with low S values
236 - Increase default -blockmaxsize/prioritysize to 750K/50K
237 - 'getblocktemplate' does not require a key to create a block template
238 - Mining code fee policy now matches relay fee policy
240 Protocol and network:
242 - Drop the fee required to relay a transaction to 0.01mBTC per kilobyte
243 - Send tx relay flag with version
244 - New 'reject' P2P message (BIP 0061, see
245 https://gist.github.com/gavinandresen/7079034 for draft)
246 - Dump addresses every 15 minutes instead of 10 seconds
247 - Relay OP_RETURN data TxOut as standard transaction type
248 - Remove CENT-output free transaction rule when relaying
249 - Lower maximum size for free transaction creation
250 - Send multiple inv messages if mempool.size > MAX_INV_SZ
251 - Split MIN_PROTO_VERSION into INIT_PROTO_VERSION and MIN_PEER_PROTO_VERSION
252 - Do not treat fFromMe transaction differently when broadcasting
253 - Process received messages one at a time without sleeping between messages
254 - Improve logging of failed connections
255 - Bump protocol version to 70002
256 - Add some additional logging to give extra network insight
257 - Added new DNS seed from bitcoinstats.com
261 - Log reason for non-standard transaction rejection
262 - Prune provably-unspendable outputs, and adapt consistency check for it.
263 - Detect any sufficiently long fork and add a warning
264 - Call the -alertnotify script when we see a long or invalid fork
265 - Fix multi-block reorg transaction resurrection
266 - Reject non-canonically-encoded serialization sizes
267 - Reject dust amounts during validation
268 - Accept nLockTime transactions that finalize in the next block
272 - Switch to autotools-based build system
273 - Build without wallet by passing `--disable-wallet` to configure, this
274 removes the BerkeleyDB dependency
275 - Upgrade gitian dependencies (libpng, libz, libupnpc, boost, openssl) to more
277 - Windows 64-bit build support
278 - Solaris compatibility fixes
279 - Check integrity of gitian input source tarballs
280 - Enable full GCC Stack-smashing protection for all OSes
284 - Switch to Qt 5.2.0 for Windows build
285 - Add payment request (BIP 0070) support
286 - Improve options dialog
287 - Show transaction fee in new send confirmation dialog
288 - Add total balance in overview page
289 - Allow user to choose data directory on first start, when data directory is
290 missing, or when the -choosedatadir option is passed
291 - Save and restore window positions
292 - Add vout index to transaction id in transactions details dialog
293 - Add network traffic graph in debug window
294 - Add open URI dialog
295 - Add Coin Control Features
296 - Improve receive coins workflow: make the 'Receive' tab into a form to request
297 payments, and move historical address list functionality to File menu.
298 - Rebrand to `Bitcoin Core`
299 - Move initialization/shutdown to a thread. This prevents "Not responding"
300 messages during startup. Also show a window during shutdown.
301 - Don't regenerate autostart link on every client startup
302 - Show and store message of normal bitcoin:URI
303 - Fix richtext detection hang issue on very old Qt versions
304 - OS X: Make use of the 10.8+ user notification center to display Growl-like
306 - OS X: Added NSHighResolutionCapable flag to Info.plist for better font
307 rendering on Retina displays.
308 - OS X: Fix bitcoin-qt startup crash when clicking dock icon
309 - Linux: Fix Gnome bitcoin: URI handler
313 - Add Linux script (contrib/qos/tc.sh) to limit outgoing bandwidth
314 - Add '-regtest' mode, similar to testnet but private with instant block
315 generation with 'setgenerate' RPC.
316 - Add 'linearize.py' script to contrib, for creating bootstrap.dat
317 - Add separate bitcoin-cli client
322 Thanks to everyone who contributed to this release:
326 - b6393ce9-d324-4fe1-996b-acf82dbc3d53
331 - Christian von Roques
351 - Guillermo Céspedes Tabárez
362 - Julian Langschaedel
407 - vhf / victor felder
411 - Wladimir J. van der Laan