From 7ec064b88eac84234776c9cf43f60b2efd0d1d6a Mon Sep 17 00:00:00 2001 From: Gavin Andresen Date: Tue, 25 Oct 2011 12:09:08 -0400 Subject: [PATCH] Update documentation to reflect reality (no win32 gitian builds, new Mac process) --- doc/README | 95 ++--------------------------------------- doc/README_windows.txt | 9 ++-- doc/release-process.txt | 61 +++++++++----------------- 3 files changed, 29 insertions(+), 136 deletions(-) diff --git a/doc/README b/doc/README index 789cc9fb87..01b1d40050 100644 --- a/doc/README +++ b/doc/README @@ -1,4 +1,4 @@ -Bitcoin 0.4.1 BETA +Bitcoin 0.5.0 BETA Copyright (c) 2009-2011 Bitcoin Developers Distributed under the MIT/X11 software license, see the accompanying @@ -19,99 +19,12 @@ with each other, with the help of a P2P network to check for double-spending. Setup ----- Unpack the files into a directory and run: - bin/32/bitcoin (GUI, 32-bit) + bin/32/bitcoin-qt (GUI, 32-bit) bin/32/bitcoind (headless, 32-bit) - bin/64/bitcoin (GUI, 64-bit) + bin/64/bitcoin-qt (GUI, 64-bit) bin/64/bitcoind (headless, 64-bit) -Wallet Encryption ------------------ -Bitcoin supports native wallet encryption so that people who steal your -wallet file don't automatically get access to all of your Bitcoins. -In order to enable this feature, chose "Encrypt Wallet" from the -Options menu. You will be prompted to enter a passphrase, which -will be used as the key to encrypt your wallet and will be needed -every time you wish to send Bitcoins. If you lose this passphrase, -you will lose access to spend all of the bitcoins in your wallet, -no one, not even the Bitcoin developers can recover your Bitcoins. -This means you are responsible for your own security, store your -passphrase in a secure location and do not forget it. - -Remember that the encryption built into bitcoin only encrypts the -actual keys which are required to send your bitcoins, not the full -wallet. This means that someone who steals your wallet file will -be able to see all the addresses which belong to you, as well as the -relevant transactions, you are only protected from someone spending -your coins. - -It is recommended that you backup your wallet file before you -encrypt your wallet. To do this, close the Bitcoin client and -copy the wallet.dat file from ~/.bitcoin/ on Linux, /Users/(user -name)/Application Support/Bitcoin/ on Mac OSX, and %APPDATA%/Bitcoin/ -on Windows (that is /Users/(user name)/AppData/Roaming/Bitcoin on -Windows Vista and 7 and /Documents and Settings/(user name)/Application -Data/Bitcoin on Windows XP). Once you have copied that file to a -safe location, reopen the Bitcoin client and Encrypt your wallet. -If everything goes fine, delete the backup and enjoy your encrypted -wallet. Note that once you encrypt your wallet, you will never be -able to go back to a version of the Bitcoin client older than 0.4. - -Keep in mind that you are always responsible for your own security. -All it takes is a slightly more advanced wallet-stealing trojan which -installs a keylogger to steal your wallet passphrase as you enter it -in addition to your wallet file and you have lost all your Bitcoins. -Wallet encryption cannot keep you safe if you do not practice -good security, such as running up-to-date antivirus software, only -entering your wallet passphrase in the Bitcoin client and using the -same passphrase only as your wallet passphrase. - - -Technical details of wallet encryption --------------------------------------- -Wallet encryption uses AES-256-CBC to encrypt only the private keys -that are held in a wallet. The keys are encrypted with a master key -which is entirely random. This master key is then encrypted with -AES-256-CBC with a key derived from the passphrase using SHA512 and -OpenSSL's EVP_BytesToKey and a dynamic number of rounds determined by -the speed of the machine which does the initial encryption (and is -updated based on the speed of a computer which does a subsequent -passphrase change). Although the underlying code supports multiple -encrypted copies of the same master key (and thus multiple passphrases) -the client does not yet have a method to add additional passphrases. - -At runtime, the client loads the wallet as it normally would, however -the keystore stores the keys in encrypted form. When the passphrase -is required (to top up keypool or send coins) it will either be queried -by a GUI prompt, or must first be entered with the walletpassphrase -RPC command. This will change the wallet to "unlocked" state where the -unencrypted master key is stored in memory (in the case of GUI, only for -long enough to complete the requested operation, in RPC, for as long as -is specified by the second parameter to walletpassphrase). The wallet is -then locked (or can be manually locked using the walletlock RPC command) -and the unencrypted master key is removed from memory. - -Implementation details of wallet encryption -------------------------------------------- -When the wallet is locked, calls to sendtoaddress, sendfrom, sendmany, -and keypoolrefill will return Error -13: "Error: Please enter the wallet -passphrase with walletpassphrase first." - -When the wallet is unlocked, calls to walletpassphrase will fail. - -When a wallet is encrypted, the passphrase is required to top up the -keypool, thus, if the passphrase is rarely entered, it is possible that -keypool might run out. In this case, the default key will be used as the -target for payouts for mining, and calls to getnewaddress and getaccount -address will return an error. In order to prevent such cases, the keypool -is automatically refilled when walletpassphrase is called with a correct -passphrase and when topupkeypool is called (while the wallet is unlocked). -Note that the keypool continues to be topped up on various occasions when -a new key from pool is used and the wallet is unlocked (or unencrypted). - - - See the documentation at the bitcoin wiki: https://en.bitcoin.it/wiki/Main_Page - -... for help and more information. +for help and more information. diff --git a/doc/README_windows.txt b/doc/README_windows.txt index 7ff8834920..ea2f14c42a 100644 --- a/doc/README_windows.txt +++ b/doc/README_windows.txt @@ -1,4 +1,4 @@ -Bitcoin 0.4.1 BETA +Bitcoin 0.5.0 BETA Copyright (c) 2009-2011 Bitcoin Developers Distributed under the MIT/X11 software license, see the accompanying @@ -18,7 +18,7 @@ with each other, with the help of a P2P network to check for double-spending. Setup ----- -Unpack the files into a directory and run bitcoin.exe. +Unpack the files into a directory and run bitcoin-qt.exe. If you have Microsoft Security Essentials, you need to add bitcoin.exe to its "Excluded processes" list. Microsoft Security Essentials->Settings tab, @@ -27,8 +27,9 @@ select Excluded processes, press Add, select bitcoin.exe, OK, Save changes. The software automatically finds other nodes to connect to. You can enable Universal Plug and Play using a menu entry or set your firewall to forward port 8333 (TCP) to your computer so you can receive -incoming connections. Bitcoin work without incoming connections, +incoming connections. Bitcoin works without incoming connections, but allowing incoming connections helps the Bitcoin network. -See the bitcoin wiki at: https://en.bitcoin.it/wiki/Main_Page +See the bitcoin wiki at: + https://en.bitcoin.it/wiki/Main_Page for more help and information. diff --git a/doc/release-process.txt b/doc/release-process.txt index 4d06627006..ceff72483d 100644 --- a/doc/release-process.txt +++ b/doc/release-process.txt @@ -5,65 +5,55 @@ * update (commit) version in OSX app bundle contrib/Bitcoin.app/Contents/Info.plist - * CFBundleShortVersionString should have value like 0.3.23 - * CFBundleVersion should have value like 323 + * CFBundleShortVersionString should have value like 0.5.0 + * CFBundleVersion should have value like 500 * tag version in git - $ git tag -a v0.3.23 + $ git tag -a v0.5.0 * write release notes. git shortlog helps a lot: - $ git shortlog --no-merges v0.3.22.. + $ git shortlog --no-merges v0.4.0.. * create source-only archive - $ git archive --format=tar --prefix=bitcoin-0.3.23/ HEAD | \ - gzip -9c > ~/tmp/bitcoin-0.3.23-src.tar.gz + $ git archive --format=tar --prefix=bitcoin-0.5.0/ HEAD | \ + gzip -9c > ~/tmp/bitcoin-0.5.0-src.tar.gz * perform gitian builds * From a directory containing the bitcoin source, gitian-builder and gitian.sigs - $ export VERSION=0.3.23 + $ export VERSION=0.5.0 $ cd ./gitian-builder $ ./bin/gbuild --commit bitcoin=v$VERSION ../bitcoin/contrib/gitian-descriptors/gitian.yml $ ./bin/gsign --signer (your gitian key, ie bluematt, sipa, etc) --release $VERSION --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian.yml $ cd build/out $ zip bitcoin-$VERSION-linux-gitian.zip * $ mv bitcoin-$VERSION-linux-gitian.zip ../../ - $ ./bin/gbuild --commit bitcoin=v$VERSION ../bitcoin/contrib/gitian-descriptors/gitian-win32.yml - $ ./bin/gsign --signer (your gitian key, ie bluematt, sipa, etc) --release $VERSION-win32 --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-win32.yml - $ cd build/out - $ zip bitcoin-$VERSION-win32-gitian.zip * - $ mv bitcoin-$VERSION-win32-gitian.zip ../../ - + + * NOTE: gitian cross-compiled builds for Windows is broken, we are building + Windows binaries using a public Amazon AWS instance for this release. + Build output expected: 1. linux 32-bit and 64-bit binaries + source (bitcoin-$VERSION-linux-gitian.zip) - 2. windows 32-bit binary, installer + source (bitcoin-$VERSION-win32-gitian.zip) - 3. Gitian signatures (in gitian.sigs/$VERSION[-win32]/(your gitian key)/ + 2. Gitian signatures (in gitian.sigs/$VERSION[-win32]/(your gitian key)/ * repackage gitian builds for release as stand-alone zip/tar/installer exe - * Windows .zip and setup.exe: - $ mkdir bitcoin-$VERSION-win32 - $ cd bitcoin-$VERSION-win32 - $ unzip bitcoin-$VERSION-win32-gitian.zip - $ mv bitcoin-$VERSION-win32-setup.exe .. - $ cd ..; zip bitcoin-$VERSION-win32.zip bitcoin-$VERSION-win32 - * Linux .tar.gz: $ mkdir bitcoin-$VERSION-linux $ cd bitcoin-$VERSION-linux $ unzip bitcoin-$VERSION-linux-gitian.zip $ cd ..; tar czvf bitcoin-$VERSION-linux.tar.gz bitcoin-$VERSION-linux -* perform Mac build - * From the bitcoin source dir - $ cd contrib - $ ./create_osx_dmg.sh - $ mv Bitcoin.dmg bitcoin-$VERSION-macosx.dmg +* Compile Windows .zip and setup.exe on Amazon EC2 instance + TODO: document process -* upload source and builds to SF +* perform Mac build + TODO: document process + +* upload source and builds to SourceForge * create SHA1SUMS for builds, and PGP-sign it @@ -80,18 +70,7 @@ * Collect enough gitian signatures to meet minimum_weight (see contrib/gitian-downloader/*-download-config) * From a directory containing bitcoin source, gitian.sigs and gitian zips - $ export VERSION=0.3.23 - $ mkdir bitcoin-$VERSION-win32-gitian; cd bitcoin-$VERSION-win32-gitian - $ unzip ../bitcoin-$VERSION-win32-gitian.zip - $ mkdir gitian - $ cp ../bitcoin/contrib/gitian-downloader/*.pgp ./gitian/ - $ for file in `ls ../gitian.sigs/$VERSION-win32/`; do - $ cp ../gitian.sigs/$VERSION-win32/$file/bitcoin-build.assert ./gitian/$file-build.assert - $ cp ../gitian.sigs/$VERSION-win32/$file/bitcoin-build.assert.sig ./gitian/$file-build.assert.sig - $ done - $ zip bitcoin-$VERSION-win32-gitian.zip * - $ cp bitcoin-$VERSION-win32-gitian.zip ../ - $ cd .. + $ export VERSION=0.5.0 $ mkdir bitcoin-$VERSION-linux-gitian; cd bitcoin-$VERSION-linux-gitian $ unzip ../bitcoin-$VERSION-linux-gitian.zip $ mkdir gitian @@ -103,6 +82,6 @@ $ zip bitcoin-$VERSION-linux-gitian.zip * $ cp bitcoin-$VERSION-linux-gitian.zip ../ - * Upload gitian zips to SF + * Upload gitian zips to SourceForge