|
|
|
@ -3,71 +3,91 @@ release time)
@@ -3,71 +3,91 @@ release time)
|
|
|
|
|
|
|
|
|
|
Building this from |
|
|
|
|
|
|
|
|
|
$ git shortlog --no-merges v0.7.0.. |
|
|
|
|
|
|
|
|
|
How to Upgrade |
|
|
|
|
-------------- |
|
|
|
|
|
|
|
|
|
If you are running an older version, shut it down. Wait |
|
|
|
|
until it has completely shut down (which might take a few minutes for older |
|
|
|
|
versions), then run the installer (on Windows) or just copy over |
|
|
|
|
/Applications/Bitcoin-Qt (on Mac) or bitcoind/bitcoin-qt (on Linux). |
|
|
|
|
|
|
|
|
|
If you were running on Linux with a version that might have been compiled |
|
|
|
|
with a different version of Berkeley DB (for example, if you were using an |
|
|
|
|
Ubuntu PPA version), then run the old version again with the -detachdb |
|
|
|
|
argument and shut it down; if you do not, then the new version will not |
|
|
|
|
be able to read the database files and will exit with an error. |
|
|
|
|
|
|
|
|
|
Explanation of -detachdb (and the new "stop true" RPC command): |
|
|
|
|
The Berkeley DB database library stores data in both ".dat" and |
|
|
|
|
"log" files, so the database is always in a consistent state, |
|
|
|
|
even in case of power failure or other sudden shutdown. The |
|
|
|
|
format of the ".dat" files is portable between different |
|
|
|
|
versions of Berkeley DB, but the "log" files are not-- even minor |
|
|
|
|
version differences may have incompatible "log" files. The |
|
|
|
|
-detachdb option moves any pending changes from the "log" files |
|
|
|
|
to the "blkindex.dat" file for maximum compatibility, but makes |
|
|
|
|
shutdown much slower. Note that the "wallet.dat" file is always |
|
|
|
|
detached, and versions prior to 0.6.0 detached all databases |
|
|
|
|
at shutdown. |
|
|
|
|
|
|
|
|
|
New features |
|
|
|
|
$ git shortlog --no-merges v0.7.1.. |
|
|
|
|
|
|
|
|
|
Incompatible Changes |
|
|
|
|
-------------------- |
|
|
|
|
|
|
|
|
|
This release no longer maintains a full index of historical transaction ids |
|
|
|
|
by default, so looking up an arbitrary transaction using the getrawtransaction |
|
|
|
|
RPC call will not work. If you need that functionality, you must run once |
|
|
|
|
with -txindex=1 -reindex=1 to rebuild block-chain indices (see below for more |
|
|
|
|
details). |
|
|
|
|
|
|
|
|
|
Improvements |
|
|
|
|
------------ |
|
|
|
|
|
|
|
|
|
* Added a boolean argument to the RPC 'stop' command, if true sets |
|
|
|
|
-detachdb to create standalone database .dat files before shutting down. |
|
|
|
|
Mac and Windows binaries are signed with certificates owned by the Bitcoin |
|
|
|
|
Foundation, to be compatible with the new security features in OSX 10.8 and |
|
|
|
|
Windows 8. |
|
|
|
|
|
|
|
|
|
* -salvagewallet command-line option, which moves any existing wallet.dat |
|
|
|
|
to wallet.{timestamp}.dat and then attempts to salvage public/private |
|
|
|
|
keys and master encryption keys (if the wallet is encrypted) into |
|
|
|
|
a new wallet.dat. This should only be used if your wallet becomes |
|
|
|
|
corrupted, and is not intended to replace regular wallet backups. |
|
|
|
|
LevelDB, a fast, open-source, non-relational database from Google, is |
|
|
|
|
now used to store transaction and block indices. LevelDB works much better |
|
|
|
|
on machines with slow I/O and is faster in general. Berkeley DB is now only |
|
|
|
|
used for the wallet.dat file (public and private wallet keys and transactions |
|
|
|
|
relevant to you). |
|
|
|
|
|
|
|
|
|
* Import $DataDir/bootstrap.dat automatically, if it exists. |
|
|
|
|
Pieter Wuille implemented many optimizations to the way transactions are |
|
|
|
|
verified, so a running, synchronized node uses much less memory and does |
|
|
|
|
much less I/O. He also implemented parallel signature checking, so if you |
|
|
|
|
have a multi-CPU machine all CPUs will be used to verify transactions. |
|
|
|
|
|
|
|
|
|
Dependency changes |
|
|
|
|
------------------ |
|
|
|
|
New Features |
|
|
|
|
------------ |
|
|
|
|
|
|
|
|
|
"Bloom filter" support in the network protocol for sending only relevant transactions to |
|
|
|
|
lightweight clients. |
|
|
|
|
|
|
|
|
|
contrib/verifysfbinaries is a shell-script to verify that the binary downloads |
|
|
|
|
at sourceforge have not been tampered with. If you are able, you can help make |
|
|
|
|
everybody's downloads more secure by running this occasionally to check PGP |
|
|
|
|
signatures against download file checksums. |
|
|
|
|
|
|
|
|
|
contrib/spendfrom is a python-language command-line utility that demonstrates |
|
|
|
|
how to use the "raw transactions" JSON-RPC api to send coins received from particular |
|
|
|
|
addresses (also known as "coin control"). |
|
|
|
|
|
|
|
|
|
* Qt 4.8.2 for Windows builds |
|
|
|
|
New/changed settings (command-line or bitcoin.conf file) |
|
|
|
|
-------------------------------------------------------- |
|
|
|
|
|
|
|
|
|
* openssl 1.0.1c |
|
|
|
|
dbcache : now controls LevelDB memory usage. Running with (for example) -dbcache=1000 |
|
|
|
|
will use a gigabyte of memory and might make the initial blockchain download faster. |
|
|
|
|
|
|
|
|
|
Bug fixes |
|
|
|
|
--------- |
|
|
|
|
par : controls how many threads to use to validate transactions. Defaults to the number |
|
|
|
|
of CPUs on your machine, use -par=1 to limit to a single CPU. |
|
|
|
|
|
|
|
|
|
* When running -testnet, use RPC port 18332 by default. |
|
|
|
|
txindex : maintains an extra index of old, spent transaction ids so they will be found |
|
|
|
|
by the getrawtransaction JSON-RPC method. |
|
|
|
|
|
|
|
|
|
* Better detection and handling of corrupt wallet.dat and blkindex.dat files. |
|
|
|
|
Previous versions would crash with a DB_RUNRECOVERY exception, this |
|
|
|
|
version detects most problems and tells you how to recover if it |
|
|
|
|
cannot recover itself. |
|
|
|
|
reindex : rebuild block and transaction indices from the downloaded block data. |
|
|
|
|
|
|
|
|
|
* Fixed an uninitialized variable bug that could cause transactions to |
|
|
|
|
be reported out of order. |
|
|
|
|
New JSON-RPC API Features |
|
|
|
|
------------------------- |
|
|
|
|
|
|
|
|
|
* Fixed a bug that could cause occasional crashes on exit. |
|
|
|
|
lockunspent / listlockunspent allow locking transaction outputs for a period of time so |
|
|
|
|
they will not be spent by other processes that might be accessing the same wallet. |
|
|
|
|
|
|
|
|
|
addnode / getaddednodeinfo methods, to connect to specific peers without restarting. |
|
|
|
|
|
|
|
|
|
importprivkey now takes an optional boolean parameter (default true) to control whether |
|
|
|
|
or not to rescan the blockchain for transactions after importing a new private key. |
|
|
|
|
|
|
|
|
|
Important Bug Fixes |
|
|
|
|
------------------- |
|
|
|
|
|
|
|
|
|
Privacy leak: the position of the "change" output in most transactions was not being |
|
|
|
|
properly randomized, making network analysis of the transaction graph to identify |
|
|
|
|
users' wallets easier. |
|
|
|
|
|
|
|
|
|
Zero-confirmation transaction vulnerability: accepting zero-confirmation transactions |
|
|
|
|
(transactions that have not yet been included in a block) from somebody you do not |
|
|
|
|
trust is still not recommended, because there will always be ways for attackers to |
|
|
|
|
double-spend zero-confirmation transactions. However, this release includes a bug |
|
|
|
|
fix that makes it a little bit more difficult for attackers to double-spend a |
|
|
|
|
certain type ("lockTime in the future") of zero-confirmation transaction. |
|
|
|
|
|
|
|
|
|
Dependency Changes |
|
|
|
|
------------------ |
|
|
|
|
|
|
|
|
|
* Warn the user that they need to create fresh wallet backups after they |
|
|
|
|
encrypt their wallet. |
|
|
|
|
Qt 4.8.3 (compiling against older versions of Qt 4 should continue to work) |
|
|
|
|
|
|
|
|
|