Update documentation to reflect reality (no win32 gitian builds, new Mac process)

This commit is contained in:
Gavin Andresen 2011-10-25 12:09:08 -04:00
parent 472bbb750c
commit 7ec064b88e
3 changed files with 29 additions and 136 deletions

View File

@ -1,4 +1,4 @@
Bitcoin 0.4.1 BETA Bitcoin 0.5.0 BETA
Copyright (c) 2009-2011 Bitcoin Developers Copyright (c) 2009-2011 Bitcoin Developers
Distributed under the MIT/X11 software license, see the accompanying 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 Setup
----- -----
Unpack the files into a directory and run: 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/32/bitcoind (headless, 32-bit)
bin/64/bitcoin (GUI, 64-bit) bin/64/bitcoin-qt (GUI, 64-bit)
bin/64/bitcoind (headless, 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: See the documentation at the bitcoin wiki:
https://en.bitcoin.it/wiki/Main_Page https://en.bitcoin.it/wiki/Main_Page
for help and more information.
... for help and more information.

View File

@ -1,4 +1,4 @@
Bitcoin 0.4.1 BETA Bitcoin 0.5.0 BETA
Copyright (c) 2009-2011 Bitcoin Developers Copyright (c) 2009-2011 Bitcoin Developers
Distributed under the MIT/X11 software license, see the accompanying 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 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 If you have Microsoft Security Essentials, you need to add bitcoin.exe to its
"Excluded processes" list. Microsoft Security Essentials->Settings tab, "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 The software automatically finds other nodes to connect to. You can
enable Universal Plug and Play using a menu entry or set your firewall 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 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. 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. for more help and information.

View File

@ -5,65 +5,55 @@
* update (commit) version in OSX app bundle * update (commit) version in OSX app bundle
contrib/Bitcoin.app/Contents/Info.plist contrib/Bitcoin.app/Contents/Info.plist
* CFBundleShortVersionString should have value like 0.3.23 * CFBundleShortVersionString should have value like 0.5.0
* CFBundleVersion should have value like 323 * CFBundleVersion should have value like 500
* tag version in git * tag version in git
$ git tag -a v0.3.23 $ git tag -a v0.5.0
* write release notes. git shortlog helps a lot: * 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 * create source-only archive
$ git archive --format=tar --prefix=bitcoin-0.3.23/ HEAD | \ $ git archive --format=tar --prefix=bitcoin-0.5.0/ HEAD | \
gzip -9c > ~/tmp/bitcoin-0.3.23-src.tar.gz gzip -9c > ~/tmp/bitcoin-0.5.0-src.tar.gz
* perform gitian builds * perform gitian builds
* From a directory containing the bitcoin source, gitian-builder and gitian.sigs * 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 $ cd ./gitian-builder
$ ./bin/gbuild --commit bitcoin=v$VERSION ../bitcoin/contrib/gitian-descriptors/gitian.yml $ ./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 $ ./bin/gsign --signer (your gitian key, ie bluematt, sipa, etc) --release $VERSION --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian.yml
$ cd build/out $ cd build/out
$ zip bitcoin-$VERSION-linux-gitian.zip * $ zip bitcoin-$VERSION-linux-gitian.zip *
$ mv 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 * NOTE: gitian cross-compiled builds for Windows is broken, we are building
$ cd build/out Windows binaries using a public Amazon AWS instance for this release.
$ zip bitcoin-$VERSION-win32-gitian.zip *
$ mv bitcoin-$VERSION-win32-gitian.zip ../../
Build output expected: Build output expected:
1. linux 32-bit and 64-bit binaries + source (bitcoin-$VERSION-linux-gitian.zip) 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) 2. Gitian signatures (in gitian.sigs/$VERSION[-win32]/(your gitian key)/
3. Gitian signatures (in gitian.sigs/$VERSION[-win32]/(your gitian key)/
* repackage gitian builds for release as stand-alone zip/tar/installer exe * 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: * Linux .tar.gz:
$ mkdir bitcoin-$VERSION-linux $ mkdir bitcoin-$VERSION-linux
$ cd bitcoin-$VERSION-linux $ cd bitcoin-$VERSION-linux
$ unzip bitcoin-$VERSION-linux-gitian.zip $ unzip bitcoin-$VERSION-linux-gitian.zip
$ cd ..; tar czvf bitcoin-$VERSION-linux.tar.gz bitcoin-$VERSION-linux $ cd ..; tar czvf bitcoin-$VERSION-linux.tar.gz bitcoin-$VERSION-linux
* perform Mac build * Compile Windows .zip and setup.exe on Amazon EC2 instance
* From the bitcoin source dir TODO: document process
$ cd contrib
$ ./create_osx_dmg.sh
$ mv Bitcoin.dmg bitcoin-$VERSION-macosx.dmg
* 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 * 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) * 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 * From a directory containing bitcoin source, gitian.sigs and gitian zips
$ export VERSION=0.3.23 $ export VERSION=0.5.0
$ 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 ..
$ mkdir bitcoin-$VERSION-linux-gitian; cd bitcoin-$VERSION-linux-gitian $ mkdir bitcoin-$VERSION-linux-gitian; cd bitcoin-$VERSION-linux-gitian
$ unzip ../bitcoin-$VERSION-linux-gitian.zip $ unzip ../bitcoin-$VERSION-linux-gitian.zip
$ mkdir gitian $ mkdir gitian
@ -103,6 +82,6 @@
$ zip bitcoin-$VERSION-linux-gitian.zip * $ zip bitcoin-$VERSION-linux-gitian.zip *
$ cp bitcoin-$VERSION-linux-gitian.zip ../ $ cp bitcoin-$VERSION-linux-gitian.zip ../
* Upload gitian zips to SF * Upload gitian zips to SourceForge