Gavin Andresen



Offline



Activity: 1652

Merit: 1066





Chief Scientist







LegendaryActivity: 1652Merit: 1066Chief Scientist Bitcoin-Qt / bitcoind version 0.8.0 release candidate 1 February 09, 2013, 03:52:08 PM

Last edit: February 10, 2013, 01:24:37 AM by Gavin Andresen #1

http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.0/test



This is a major release designed to improve performance and handle the

increasing volume of transactions on the network.



Please report bugs using the issue tracker at github:

https://github.com/bitcoin/bitcoin/issues



Release-candidate 1 notes:



The OSX binary reports its version as "0.8.0rc1-1-gba1d080-beta" due to

issue

before the final 0.8.0 release.



The Windows binaries could not be reproducibly built, due to issue

. This will also be fixed

before the final 0.8.0 release. The rc1 Windows binaries were built

by me (Gavin).







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 bitcoin-qt (on Linux).



The first time you run after the upgrade a re-indexing process will be

started that will take anywhere from 30 minutes to several hours,

depending on the speed of your machine. If you have enough

memory, running with the -dbcache setting (e.g. -dbcache=1000 )

may make re-indexing faster.



Special notes for release candidate 1:

--------------------------------------



If you helped test pre-release versions, there are two changes that you

should be aware of:



1. Subdirectories in the data directory changed names; to avoid re-indexing

the blockchain, rename:

mkdir $DATADIR/blocks && mv $DATADIR/blktree $DATADIR/blocks/index

mv $DATADIR/coins $DATADIR/chainstate



2. The "undo file" format changed; if you see errors at startup during block

validation re-run with the -reindex flag to fix them.



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

------------



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.



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).



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.



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").



New/changed settings (command-line or bitcoin.conf file)

--------------------------------------------------------



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.



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.



txindex : maintains an extra index of old, spent transaction ids so they will be found

by the getrawtransaction JSON-RPC method.



reindex : rebuild block and transaction indices from the downloaded block data.



New JSON-RPC API Features

-------------------------



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

------------------



Qt 4.8.3 (compiling against older versions of Qt 4 should continue to work)





Thanks to everybody who contributed to this release:

----------------------------------------------------



Alexander Kjeldaas

Andrey Alekseenko

Arnav Singh

Christian von Roques

Eric Lombrozo

Forrest Voight

Gavin Andresen

Gregory Maxwell

Jeff Garzik

Luke Dashjr

Matt Corallo

Mike Cassano

Mike Hearn

Peter Todd

Philip Kaufmann

Pieter Wuille

Richard Schwab

Robert Backhaus

Rune K. Svendsen

Sergio Demian Lerner

Wladimir J. van der Laan

burger2

default

fanquake

grimd34th

justmoon

redshark1802

tucenaber

xanatos Bitcoin version 0.8.0 release candidate 1 is now available from:http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.0/testThis is a major release designed to improve performance and handle theincreasing volume of transactions on the network.Please report bugs using the issue tracker at github:https://github.com/bitcoin/bitcoin/issuesRelease-candidate 1 notes:The OSX binary reports its version as "0.8.0rc1-1-gba1d080-beta" due toissue https://github.com/bitcoin/bitcoin/issues/2285 . This will be fixedbefore the final 0.8.0 release.The Windows binaries could not be reproducibly built, due to issue https://github.com/bitcoin/bitcoin/issues/2288 . This will also be fixedbefore the final 0.8.0 release. The rc1 Windows binaries were builtby me (Gavin).How to Upgrade--------------If you are running an older version, shut it down. Waituntil it has completely shut down (which might take a few minutes for olderversions), then run the installer (on Windows) or just copy over/Applications/Bitcoin-Qt (on Mac) or bitcoin-qt (on Linux).The first time you run after the upgrade a re-indexing process will bestarted that will take anywhere from 30 minutes to several hours,depending on the speed of your machine. If you have enoughmemory, running with the -dbcache setting (e.g. -dbcache=1000 )may make re-indexing faster.Special notes for release candidate 1:--------------------------------------If you helped test pre-release versions, there are two changes that youshould be aware of:1. Subdirectories in the data directory changed names; to avoid re-indexingthe blockchain, rename:mkdir $DATADIR/blocks && mv $DATADIR/blktree $DATADIR/blocks/indexmv $DATADIR/coins $DATADIR/chainstate2. The "undo file" format changed; if you see errors at startup during blockvalidation re-run with the -reindex flag to fix them.Incompatible Changes--------------------This release no longer maintains a full index of historical transaction idsby default, so looking up an arbitrary transaction using the getrawtransactionRPC call will not work. If you need that functionality, you must run oncewith -txindex=1 -reindex=1 to rebuild block-chain indices (see below for moredetails).Improvements------------Mac and Windows binaries are signed with certificates owned by the BitcoinFoundation, to be compatible with the new security features in OSX 10.8 andWindows 8.LevelDB, a fast, open-source, non-relational database from Google, isnow used to store transaction and block indices. LevelDB works much betteron machines with slow I/O and is faster in general. Berkeley DB is now onlyused for the wallet.dat file (public and private wallet keys and transactionsrelevant to you).Pieter Wuille implemented many optimizations to the way transactions areverified, so a running, synchronized node uses much less memory and doesmuch less I/O. He also implemented parallel signature checking, so if youhave a multi-CPU machine all CPUs will be used to verify transactions.New Features------------"Bloom filter" support in the network protocol for sending only relevant transactions tolightweight clients.contrib/verifysfbinaries is a shell-script to verify that the binary downloadsat sourceforge have not been tampered with. If you are able, you can help makeeverybody's downloads more secure by running this occasionally to check PGPsignatures against download file checksums.contrib/spendfrom is a python-language command-line utility that demonstrateshow to use the "raw transactions" JSON-RPC api to send coins received from particularaddresses (also known as "coin control").New/changed settings (command-line or bitcoin.conf file)--------------------------------------------------------dbcache : now controls LevelDB memory usage. Running with (for example) -dbcache=1000will use a gigabyte of memory and might make the initial blockchain download faster.par : controls how many threads to use to validate transactions. Defaults to the numberof CPUs on your machine, use -par=1 to limit to a single CPU.txindex : maintains an extra index of old, spent transaction ids so they will be foundby the getrawtransaction JSON-RPC method.reindex : rebuild block and transaction indices from the downloaded block data.New JSON-RPC API Features-------------------------lockunspent / listlockunspent allow locking transaction outputs for a period of time sothey 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 whetheror 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 beingproperly randomized, making network analysis of the transaction graph to identifyusers' wallets easier.Zero-confirmation transaction vulnerability: accepting zero-confirmation transactions(transactions that have not yet been included in a block) from somebody you do nottrust is still not recommended, because there will always be ways for attackers todouble-spend zero-confirmation transactions. However, this release includes a bugfix that makes it a little bit more difficult for attackers to double-spend acertain type ("lockTime in the future") of zero-confirmation transaction.Dependency Changes------------------Qt 4.8.3 (compiling against older versions of Qt 4 should continue to work)Thanks to everybody who contributed to this release:----------------------------------------------------Alexander KjeldaasAndrey AlekseenkoArnav SinghChristian von RoquesEric LombrozoForrest VoightGavin AndresenGregory MaxwellJeff GarzikLuke DashjrMatt CoralloMike CassanoMike HearnPeter ToddPhilip KaufmannPieter WuilleRichard SchwabRobert BackhausRune K. SvendsenSergio Demian LernerWladimir J. van der Laanburger2defaultfanquakegrimd34thjustmoonredshark1802tucenaberxanatos How often do you get the chance to work on a potentially world-changing project?

phatsphere



Offline



Activity: 764

Merit: 500







Hero MemberActivity: 764Merit: 500 Re: Bitcoin-Qt / bitcoind version 0.8.0 release candidate 1 February 09, 2013, 05:04:25 PM #6 well, it is a fantastic improvement ... but still slow. since neither the disk is on the brink of dying, nor is the cpu above 5%, the network is the bottleneck.



i'm just curious, are there plans to speed up the data transfer rates? on weaker connections like mine, it will still take a long time to sync. this applies even more to less well connected 3rd world countries!



Is there some monitoring tool, that might also help to pinpoint problems with the networking (wireshark log?). looking into stream compression, or even other ways to compress based on references in the existing database ... and bundling up even more blocks in larger transfers is probably the only way to go?

Mike Hearn



Offline



Activity: 1526

Merit: 1008







LegendaryActivity: 1526Merit: 1008 Re: Bitcoin-Qt / bitcoind version 0.8.0 release candidate 1 February 09, 2013, 05:24:36 PM #7 Are you sure network is the bottleneck for you? Are you on an unusually slow connection? When syncing the chain at least, most nodes should be bottlenecked on disk seeks. So use iotop or something to look at that.



If network is the bottleneck then you probably want to switch from a full node to a lightweight node. The Bloom filtering that 0.8 provides can make them dramatically faster and use very little bandwidth.

jgarzik



Offline



Activity: 1596

Merit: 1007







LegendaryActivity: 1596Merit: 1007 Re: Bitcoin-Qt / bitcoind version 0.8.0 release candidate 1 February 09, 2013, 05:33:18 PM #8

My own notes:



Pieter gets a lions share of credit, for his ultraprune work

Please test! Even an "it works for me" report is useful (just make sure to include your OS version and other helpful details in your "it works" post...)

If you still have a slow block download, simply close the program and restart. That will start the download again, with another peer. There are still known issues with peer selection. "restart program" is an ugly but useful workaround.

My own notes: Jeff Garzik, Bloq CEO, former bitcoin core dev team; opinions are my own.

Visit bloq.com / metronome.io

Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj

phatsphere



Offline



Activity: 764

Merit: 500







Hero MemberActivity: 764Merit: 500 Re: Bitcoin-Qt / bitcoind version 0.8.0 release candidate 1 February 09, 2013, 05:59:32 PM #11 Quote from: Mike Hearn on February 09, 2013, 05:24:36 PM Are you sure network is the bottleneck for you? Are you on an unusually slow connection?

i used htop with the "r+w summary IO" column. there i get over a few seconds: 0, 0, ~150, ~27, 0, 0, ~150, ~20, 0, 0, ... for disk IO [edit: peak values could go up to over 1000]. I'm on a HDSPA mobile network, no port to the outside, and using a VPN w/o port forwarding. Yes, It's fine for browsing, but it has a unusual long latency.



But I'm not in a hurry, don't worry. I just did this including the VPN on purpose to test the networking speed. It's in my eyes (as an coder and admin but not a bitcoin dev.) definitely something which could be optimized. lightweight nodes are great, yes, but if you want to run your own node in a far-off country, you likely don't want it :-)



edit: watched the IO activity a bit longer. indeed, when there are somehow "harder" blocks, the IO goes up to 5000 and more -- and then still falls back to 0 for 1-2 seconds. interesting, so it might be IO, just not so obvious as before :-) i used htop with the "r+w summary IO" column. there i get over a few seconds: 0, 0, ~150, ~27, 0, 0, ~150, ~20, 0, 0, ... for disk IO [edit: peak values could go up to over 1000]. I'm on a HDSPA mobile network, no port to the outside, and using a VPN w/o port forwarding. Yes, It's fine for browsing, but it has a unusual long latency.But I'm not in a hurry, don't worry. I just did this including the VPN on purpose to test the networking speed. It's in my eyes (as an coder and admin but not a bitcoin dev.) definitely something which could be optimized. lightweight nodes are great, yes, but if you want to run your own node in a far-off country, you likely don't want it :-)edit: watched the IO activity a bit longer. indeed, when there are somehow "harder" blocks, the IO goes up to 5000 and more -- and then still falls back to 0 for 1-2 seconds. interesting, so it might be IO, just not so obvious as before :-)

hazek



Offline



Activity: 1078

Merit: 1001







LegendaryActivity: 1078Merit: 1001 Re: Bitcoin-Qt / bitcoind version 0.8.0 release candidate 1 February 09, 2013, 06:10:48 PM #12 Btw are there any plans for adding the option to enter a username and password for a proxy? My personality type: INTJ - please forgive my weaknesses (Not naturally in tune with others feelings; may be insensitive at times, tend to respond to conflict with logic and reason, tend to believe I'm always right)



If however you enjoyed my post: 15j781DjuJeVsZgYbDVt2NZsGrWKRWFHpp

Stapleddiet



Offline



Activity: 82

Merit: 10









MemberActivity: 82Merit: 10 Re: Bitcoin-Qt / bitcoind version 0.8.0 release candidate 1 February 09, 2013, 06:30:12 PM #13 Quote from: jgarzik on February 09, 2013, 05:33:18 PM

My own notes:



Please test! Even an "it works for me" report is useful (just make sure to include your OS version and other helpful details in your "it works" post...)



My own notes:

Please keep repeating that, I forget that it helps you folk who are developing to know whats going on.

I only start my wallet to keep updated with the blockchain every other day, I am in Australia in an area where expensive mobile data is my only option for the net, I feel guilty when I dont seed things but hey thanks to all the folk who can.

Win7, ATI 6950 downgraded from 5 cards in my mining days. I salute you who are developing BTC. Please keep repeating that, I forget that it helps you folk who are developing to know whats going on.I only start my wallet to keep updated with the blockchain every other day, I am in Australia in an area where expensive mobile data is my only option for the net, I feel guilty when I dont seed things but hey thanks to all the folk who can.Win7, ATI 6950 downgraded from 5 cards in my mining days. I salute you who are developing BTC.

evoorhees



Offline



Activity: 1008

Merit: 1005





Democracy is the original 51% attack







LegendaryActivity: 1008Merit: 1005Democracy is the original 51% attack Re: Bitcoin-Qt / bitcoind version 0.8.0 release candidate 1 February 09, 2013, 07:29:24 PM #14 Nice! Thank you amazing Dev Team. You fill my dreams with beautiful visions of the future, and my waking hours with endless opportunity.



I've said it before and I'll say it again, the Dev Team is at the core of the most important project occurring anywhere on the planet. Downloading now.

oOoOo



Offline



Activity: 238

Merit: 100







Full MemberActivity: 238Merit: 100 Re: Bitcoin-Qt / bitcoind version 0.8.0 release candidate 1 February 09, 2013, 07:40:29 PM #15



2. crashes on OSX 10.6.8 at shutdown:



Code: Exception Type: EXC_BAD_ACCESS (SIGBUS)

Exception Codes: KERN_PROTECTION_FAILURE at 0x0000000000000000



Thread 4 Crashed:

0 com.yourcompany.Bitcoin-Qt 0x0023e963 CLevelDB::WriteBatch(CLevelDBBatch&, bool) + 35

1 com.yourcompany.Bitcoin-Qt 0x0023fc86 CBlockTreeDB::WriteBlockFileInfo(int, CBlockFileInfo const&) + 102

2 com.yourcompany.Bitcoin-Qt 0x000a1dd1 FindBlockPos(CValidationState&, CDiskBlockPos&, unsigned int, unsigned int, unsigned long long, bool) + 913

3 com.yourcompany.Bitcoin-Qt 0x000a2474 CBlock::AcceptBlock(CValidationState&, CDiskBlockPos*) + 1092

4 com.yourcompany.Bitcoin-Qt 0x000a39e6 ProcessBlock(CValidationState&, CNode*, CBlock*, CDiskBlockPos*) + 2758

5 com.yourcompany.Bitcoin-Qt 0x000aa208 LoadExternalBlockFile(__sFILE*, CDiskBlockPos*) + 1384

6 com.yourcompany.Bitcoin-Qt 0x000f4930 ThreadImport(void*) + 208

7 com.yourcompany.Bitcoin-Qt 0x0006b9fa boost::detail::thread_data<boost::_bi::bind_t<void, void (*)(void*), boost::_bi::list1<boost::_bi::value<void*> > > >::run() + 42

8 libboost_thread-mt.dylib 0x00b52845 boost::detail::thread_data_base::~thread_data_base() + 779

9 libSystem.B.dylib 0x96ee8259 _pthread_start + 345

10 libSystem.B.dylib



. 1. Can we now delete the legacy blk000x.dat behemoth files?2. crashes on OSX 10.6.8 at shutdown: