# Gavin Andresen
# 2013-02-09 15:52:08
# https://bitcointalk.org/index.php?topic=142151.msg1514426#msg1514426

Bitcoin version 0.8.0 release candidate 1 is now available from: @p{brk}
  @s{(link)} @p{par}

This is a major release designed to improve performance and handle the @p{brk}
increasing volume of transactions on the network. @p{par}

Please report bugs using the issue tracker at github: @p{brk}
  @s{(link)} @p{par}

Release-candidate 1 notes: @p{par}

The OSX binary reports its version as "0.8.0rc1-1-gba1d080-beta" due to @p{brk}
issue @s{(link)} . This will be fixed @p{brk}
before the final 0.8.0 release. @p{par}

The Windows binaries could not be reproducibly built, due to issue @p{brk}
@s{(link)} . This will also be fixed @p{brk}
before the final 0.8.0 release. The rc1 Windows binaries were built @p{brk}
by me (Gavin). @p{par}

 @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 bitcoin-qt (on Linux). @p{par}

The first time you run after the upgrade a re-indexing process will be @p{brk}
started that will take anywhere from 30 minutes to several hours, @p{brk}
depending on the speed of your machine. If you have enough @p{brk}
memory, running with the -dbcache setting (e.g. -dbcache=1000 ) @p{brk}
may make re-indexing faster. @p{par}

Special notes for release candidate 1: @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{par}

If you helped test pre-release versions, there are two changes that you @p{brk}
should be aware of: @p{par}

1. Subdirectories in the data directory changed names; to avoid re-indexing @p{brk}
the blockchain, rename: @p{brk}
  mkdir $DATADIR/blocks && mv $DATADIR/blktree $DATADIR/blocks/index @p{brk}
  mv $DATADIR/coins $DATADIR/chainstate @p{par}

2. The "undo file" format changed; if you see errors at startup during block @p{brk}
validation re-run with the -reindex flag to fix them. @p{par}

Incompatible Changes @p{brk}
@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{--} @p{par}

This release no longer maintains a full index of historical transaction ids @p{brk}
by default, so looking up an arbitrary transaction using the getrawtransaction @p{brk}
RPC call will not work. If you need that functionality, you must run once @p{brk}
with -txindex=1 -reindex=1 to rebuild block-chain indices (see below for more @p{brk}
details). @p{par}

Improvements @p{brk}
@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-} @p{par}

Mac and Windows binaries are signed with certificates owned by the Bitcoin @p{brk}
Foundation, to be compatible with the new security features in OSX 10.8 and @p{brk}
Windows 8. @p{par}

LevelDB, a fast, open-source, non-relational database from Google, is @p{brk}
now used to store transaction and block indices.  LevelDB works much better @p{brk}
on machines with slow I/O and is faster in general. Berkeley DB is now only @p{brk}
used for the wallet.dat file (public and private wallet keys and transactions @p{brk}
relevant to you). @p{par}

Pieter Wuille implemented many optimizations to the way transactions are @p{brk}
verified, so a running, synchronized node uses much less memory and does @p{brk}
much less I/O. He also implemented parallel signature checking, so if you @p{brk}
have a multi-CPU machine all CPUs will be used to verify transactions. @p{par}

New Features @p{brk}
@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-} @p{par}

"Bloom filter" support in the network protocol for sending only relevant transactions to @p{brk}
lightweight clients. @p{par}

contrib/verifysfbinaries is a shell-script to verify that the binary downloads @p{brk}
at sourceforge have not been tampered with. If you are able, you can help make @p{brk}
everybody's downloads more secure by running this occasionally to check PGP @p{brk}
signatures against download file checksums. @p{par}

contrib/spendfrom is a python-language command-line utility that demonstrates @p{brk}
how to use the "raw transactions" JSON-RPC api to send coins received from particular @p{brk}
addresses (also known as "coin control"). @p{par}

New/changed settings (command-line or bitcoin.conf file) @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{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{--} @p{par}

dbcache : now controls LevelDB memory usage. Running with (for example) -dbcache=1000 @p{brk}
will use a gigabyte of memory and might make the initial blockchain download faster. @p{par}

par : controls how many threads to use to validate transactions. Defaults to the number @p{brk}
of CPUs on your machine, use -par=1 to limit to a single CPU. @p{par}

txindex : maintains an extra index of old, spent transaction ids so they will be found @p{brk}
by the getrawtransaction JSON-RPC method. @p{par}

reindex : rebuild block and transaction indices from the downloaded block data. @p{par}

New JSON-RPC API Features @p{brk}
@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}- @p{par}

lockunspent / listlockunspent allow locking transaction outputs for a period of time so @p{brk}
they will not be spent by other processes that might be accessing the same wallet. @p{par}

addnode / getaddednodeinfo methods, to connect to specific peers without restarting. @p{par}

importprivkey now takes an optional boolean parameter (default true) to control whether @p{brk}
or not to rescan the blockchain for transactions after importing a new private key. @p{par}

Important Bug Fixes @p{brk}
@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}- @p{par}

Privacy leak: the position of the "change" output in most transactions was not being @p{brk}
properly randomized, making network analysis of the transaction graph to identify @p{brk}
users' wallets easier.  @p{par}

Zero-confirmation transaction vulnerability: accepting zero-confirmation transactions @p{brk}
(transactions that have not yet been included in a block) from somebody you do not @p{brk}
trust is still not recommended, because there will always be ways for attackers to @p{brk}
double-spend zero-confirmation transactions. However, this release includes a bug @p{brk}
fix that makes it a little bit more difficult for attackers to double-spend a @p{brk}
certain type ("lockTime in the future") of zero-confirmation transaction. @p{par}

Dependency Changes @p{brk}
@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-}@p{@p{--}-} @p{par}

Qt 4.8.3 (compiling against older versions of Qt 4 should continue to work) @p{par}

 @p{brk}
Thanks to everybody who contributed to this release: @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{@p{--}-}@p{@p{--}-}- @p{par}

Alexander Kjeldaas @p{brk}
Andrey Alekseenko @p{brk}
Arnav Singh @p{brk}
Christian von Roques @p{brk}
Eric Lombrozo @p{brk}
Forrest Voight @p{brk}
Gavin Andresen @p{brk}
Gregory Maxwell @p{brk}
Jeff Garzik @p{brk}
Luke Dashjr @p{brk}
Matt Corallo @p{brk}
Mike Cassano @p{brk}
Mike Hearn @p{brk}
Peter Todd @p{brk}
Philip Kaufmann @p{brk}
Pieter Wuille @p{brk}
Richard Schwab @p{brk}
Robert Backhaus @p{brk}
Rune K. Svendsen @p{brk}
Sergio Demian Lerner @p{brk}
Wladimir J. van der Laan @p{brk}
burger2 @p{brk}
default @p{brk}
fanquake @p{brk}
grimd34th @p{brk}
justmoon @p{brk}
redshark1802 @p{brk}
tucenaber @p{brk}
xanatos