# Gavin Andresen
# 2012-09-06 19:59:48
# https://bitcointalk.org/index.php?topic=106236.msg1165551#msg1165551

Bitcoin version 0.7.0 release candidate 3 is now available for download at: @p{brk}
  @s{(link)} @p{par}

Unless another critical bug is found, this should be the final 0.7.0 release. @p{par}

How to Upgrade @p{brk}
@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{--} @p{par}

If you are running an older version, shut it down. Wait @p{brk}
until it has completely shut down (which might take a few minutes for older @p{brk}
versions), then run the installer (on Windows) or just copy over @p{brk}
/Applications/Bitcoin-Qt (on Mac) or bitcoind/bitcoin-qt (on Linux). @p{par}

If you were running on Linux with a version that might have been compiled @p{brk}
with a different version of Berkeley DB (for example, if you were using an @p{brk}
Ubuntu PPA version), then run the old version again with the -detachdb @p{brk}
argument and shut it down; if you do not, then the new version will not @p{brk}
be able to read the database files and will exit with an error. @p{par}

Incompatible Changes @p{brk}
@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{--} @p{brk}
* Replaced the 'getmemorypool' RPC command with 'getblocktemplate/submitblock' @p{brk}
  and 'getrawmempool' commands. @p{brk}
* Remove deprecated RPC 'getblocknumber' @p{par}

Bitcoin Improvement Proposals implemented @p{brk}
@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{--} @p{brk}
BIP 22 - 'getblocktemplate', 'submitblock' RPCs @p{brk}
BIP 34 - block version 2, height in coinbase @p{brk}
BIP 35 - 'mempool' message, extended 'getdata' message behavior @p{par}

 @p{brk}
Core bitcoin handling and blockchain database @p{brk}
@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-} @p{brk}
* Reduced CPU usage, by eliminating some redundant hash calculations @p{brk}
* Cache signature verifications, to eliminate redundant signature checks @p{brk}
* Transactions with zero-value outputs are considered non-standard @p{brk}
* Mining: when creating new blocks, sort 'paid' area by fee-per-kb @p{brk}
* Database: better validation of on-disk stored data @p{brk}
* Database: minor optimizations and reliability improvements @p{brk}
* -loadblock=FILE will import an external block file @p{brk}
* Additional DoS (denial-of-service) prevention measures @p{brk}
* New blockchain checkpoint at block 193,000 @p{par}

 @p{brk}
JSON-RPC API @p{brk}
@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-} @p{brk}
* Internal HTTP server is now thread-per-connection, rather than @p{brk}
  a single-threaded queue that would stall on network I/O. @p{brk}
* Internal HTTP server supports HTTP/1.1, pipelined requests and @p{brk}
  connection keep-alive. @p{brk}
* Support JSON-RPC 2.0 batches, to encapsulate multiple JSON-RPC requests @p{brk}
  within a single HTTP request. @p{brk}
* IPv6 support @p{brk}
* Added raw transaction API.  See @s{(link)} @p{brk}
* Added 'getrawmempool', to list contents of TX memory pool @p{brk}
* Added 'getpeerinfo', to list data about each connected network peer @p{brk}
* Added 'listaddressgroupings' for better coin control @p{brk}
* Rework gettransaction, getblock calls. 'gettransaction' responds for @p{brk}
  non-wallet TXs now. @p{brk}
* Remove deprecated RPC 'getblocknumber' @p{brk}
* Remove superceded RPC 'getmemorypool' (see BIP 22, above) @p{brk}
* listtransactions output now displays "smart" times for transactions, @p{brk}
  and 'blocktime' and 'timereceived' fields were added @p{par}

 @p{brk}
P2P networking @p{brk}
@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{--} @p{brk}
* IPv6 support @p{brk}
* Tor hidden service support (see doc/Tor.txt) @p{brk}
* Attempts to fix "stuck blockchain download" problems @p{brk}
* Replace BDB database "addr.dat" with internally-managed "peers.dat" @p{brk}
  file containing peer address data. @p{brk}
* Lower default send buffer from 10MB to 1MB @p{brk}
* proxy: SOCKS5 by default @p{brk}
* Support connecting by hostnames passed to proxy @p{brk}
* Add -seednode connections, and use this instead of DNS seeds when proxied @p{brk}
* Added -externalip and -discover @p{brk}
* Add -onlynet to connect only to a given network (IPv4, IPv6, or Tor) @p{brk}
* Separate listening sockets, -bind=@p{lt}addr@s{gt} @p{par}

 @p{brk}
Qt GUI @p{brk}
@p{@p{--}-}@p{@p{--}-} @p{brk}
* Add UI RPC console / debug window @p{brk}
* Re-Enable URI handling on Windows, add safety checks and tray-notifications @p{brk}
* Harmonize the use of ellipsis ("...") to be used in menus, but not on buttons @p{brk}
* Add 2 labels to the overviewpage that display Wallet and Transaction status (obsolete or current) @p{brk}
* Extend the optionsdialog (e.g. language selection) and re-work it to a tabbed UI @p{brk}
* Merge sign/verify message into a single window with tabbed UI @p{brk}
* Ensure a changed bitcoin unit immediately updates all GUI elements that use units @p{brk}
* Update QR Code dialog @p{brk}
* Improve error reporting at startup @p{brk}
* Fine-grained UI updates for a much smoother UI during block downloads @p{brk}
* Remove autocorrection of 0/i in addresses in UI @p{brk}
* Reorganize tray icon menu into more logical order @p{brk}
* Persistently poll for balance change when number of blocks changed @p{brk}
* Much better translations @p{brk}
* Override progress bar design on platforms with segmented progress bars to assist with readability @p{brk}
* Added 'immature balance' display on the overview page @p{brk}
* (Windows only): enable ASLR and DEP for bitcoin-qt.exe @p{brk}
* (Windows only): add meta-data to bitcoin-qt.exe (e.g. description) @p{par}

Internal codebase @p{brk}
@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{--} @p{brk}
* Additional unit tests @p{brk}
* Compile warning fixes @p{par}

 @p{brk}
Miscellaneous @p{brk}
@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}- @p{brk}
* Reopen debug.log upon SIGHUP @p{brk}
* Bash programmable completion for bitcoind(1) @p{brk}
* On supported OS's, each thread is given a useful name @p{brk}