Merge #8879: [doc] Rework docs

eeeebdd [doc] Rework docs (MarcoFalke)
This commit is contained in:
Wladimir J. van der Laan 2016-10-05 05:06:39 +02:00
commit f92805025d
No known key found for this signature in database
GPG key ID: 74810B012346C9A6
7 changed files with 24 additions and 55 deletions

View file

@ -3,7 +3,9 @@ Bitcoin Core 0.13.99
Setup Setup
--------------------- ---------------------
[Bitcoin Core](http://bitcoin.org/en/download) is the original Bitcoin client and it builds the backbone of the network. However, it downloads and stores the entire history of Bitcoin transactions (which is currently several GBs); depending on the speed of your computer and network connection, the synchronization process can take anywhere from a few hours to a day or more. Bitcoin Core is the original Bitcoin client and it builds the backbone of the network. However, it downloads and stores the entire history of Bitcoin transactions (which is currently several GBs); depending on the speed of your computer and network connection, the synchronization process can take anywhere from a few hours to a day or more.
To download Bitcoin Core, visit [bitcoincore.org](https://bitcoincore.org/en/releases/).
Running Running
--------------------- ---------------------
@ -46,13 +48,13 @@ Development
The Bitcoin repo's [root README](/README.md) contains relevant information on the development process and automated testing. The Bitcoin repo's [root README](/README.md) contains relevant information on the development process and automated testing.
- [Developer Notes](developer-notes.md) - [Developer Notes](developer-notes.md)
- [Multiwallet Qt Development](multiwallet-qt.md)
- [Release Notes](release-notes.md) - [Release Notes](release-notes.md)
- [Release Process](release-process.md) - [Release Process](release-process.md)
- [Source Code Documentation (External Link)](https://dev.visucore.com/bitcoin/doxygen/) - [Source Code Documentation (External Link)](https://dev.visucore.com/bitcoin/doxygen/)
- [Translation Process](translation_process.md) - [Translation Process](translation_process.md)
- [Translation Strings Policy](translation_strings_policy.md) - [Translation Strings Policy](translation_strings_policy.md)
- [Unit Tests](unit-tests.md) - [Unit Tests](unit-tests.md)
- [Travis CI](travis-ci.md)
- [Unauthenticated REST Interface](REST-interface.md) - [Unauthenticated REST Interface](REST-interface.md)
- [Shared Libraries](shared-libraries.md) - [Shared Libraries](shared-libraries.md)
- [BIPS](bips.md) - [BIPS](bips.md)
@ -67,11 +69,13 @@ The Bitcoin repo's [root README](/README.md) contains relevant information on th
### Miscellaneous ### Miscellaneous
- [Assets Attribution](assets-attribution.md) - [Assets Attribution](assets-attribution.md)
- [Files](files.md) - [Files](files.md)
- [Reduce Traffic](reduce-traffic.md)
- [Tor Support](tor.md) - [Tor Support](tor.md)
- [Init Scripts (systemd/upstart/openrc)](init.md) - [Init Scripts (systemd/upstart/openrc)](init.md)
- [ZMQ](zmq.md)
License License
--------------------- ---------------------
Distributed under the [MIT software license](http://www.opensource.org/licenses/mit-license.php). Distributed under the [MIT software license](/COPYING).
This product includes software developed by the OpenSSL Project for use in the [OpenSSL Toolkit](https://www.openssl.org/). This product includes This product includes software developed by the OpenSSL Project for use in the [OpenSSL Toolkit](https://www.openssl.org/). This product includes
cryptographic software written by Eric Young ([eay@cryptsoft.com](mailto:eay@cryptsoft.com)), and UPnP software written by Thomas Bernard. cryptographic software written by Eric Young ([eay@cryptsoft.com](mailto:eay@cryptsoft.com)), and UPnP software written by Thomas Bernard.

View file

@ -1,48 +0,0 @@
Multiwallet Qt Development and Integration Strategy
===================================================
In order to support loading of multiple wallets in bitcoin-qt, a few changes in the UI architecture will be needed.
Fortunately, only four of the files in the existing project are affected by this change.
Two new classes have been implemented in two new .h/.cpp file pairs, with much of the functionality that was previously
implemented in the BitcoinGUI class moved over to these new classes.
The two existing files most affected, by far, are bitcoingui.h and bitcoingui.cpp, as the BitcoinGUI class will require
some major retrofitting.
Only requiring some minor changes is bitcoin.cpp.
Finally, two new headers and source files will have to be added to bitcoin-qt.pro.
Changes to class BitcoinGUI
---------------------------
The principal change to the BitcoinGUI class concerns the QStackedWidget instance called centralWidget.
This widget owns five page views: overviewPage, transactionsPage, addressBookPage, receiveCoinsPage, and sendCoinsPage.
A new class called *WalletView* inheriting from QStackedWidget has been written to handle all renderings and updates of
these page views. In addition to owning these five page views, a WalletView also has a pointer to a WalletModel instance.
This allows the construction of multiple WalletView objects, each rendering a distinct wallet.
A second class called *WalletFrame* inheriting from QFrame has been written as a container for embedding all wallet-related
controls into BitcoinGUI. At present it contains the WalletView instances for the wallets and does little more than passing on messages
from BitcoinGUI to the currently selected WalletView. It is a WalletFrame instance
that takes the place of what used to be centralWidget in BitcoinGUI. The purpose of this class is to allow future
refinements of the wallet controls with minimal need for further modifications to BitcoinGUI, thus greatly simplifying
merges while reducing the risk of breaking top-level stuff.
Changes to bitcoin.cpp
----------------------
bitcoin.cpp is the entry point into bitcoin-qt, and as such, will require some minor modifications to provide hooks for
multiple wallet support. Most importantly will be the way it instantiates WalletModels and passes them to the
singleton BitcoinGUI instance called window. Formerly, BitcoinGUI kept a pointer to a single instance of a WalletModel.
The initial change required is very simple: rather than calling `window.setWalletModel(&walletModel);` we perform the
following two steps:
window.addWallet("~Default", &walletModel);
window.setCurrentWallet("~Default");
The string parameter is just an arbitrary name given to the default wallet. It's been prepended with a tilde to avoid name collisions in the future with additional wallets.
The shutdown call `window.setWalletModel(0)` has also been removed. In its place is now:
window.removeAllWallets();

View file

@ -643,7 +643,7 @@ git merge commit are mentioned.
- #8041 `5b736dd` Fix bip9-softforks blockstore issue (MarcoFalke) - #8041 `5b736dd` Fix bip9-softforks blockstore issue (MarcoFalke)
- #7994 `1f01443` Add op csv tests to script_tests.json (Christewart) - #7994 `1f01443` Add op csv tests to script_tests.json (Christewart)
- #8038 `e2bf830` Various minor fixes (MarcoFalke) - #8038 `e2bf830` Various minor fixes (MarcoFalke)
- #8072 `1b87e5b` Travis: 'make check' in parallel and verbose (MarcoFalke) - #8072 `1b87e5b` Travis: 'make check' in parallel and verbose (theuni)
- #8056 `8844ef1` Remove hardcoded "4 nodes" from test_framework (MarcoFalke) - #8056 `8844ef1` Remove hardcoded "4 nodes" from test_framework (MarcoFalke)
- #8047 `37f9a1f` Test_framework: Set wait-timeout for bitcoind procs (MarcoFalke) - #8047 `37f9a1f` Test_framework: Set wait-timeout for bitcoind procs (MarcoFalke)
- #8095 `6700cc9` Test framework: only cleanup on successful test runs (sdaftuar) - #8095 `6700cc9` Test framework: only cleanup on successful test runs (sdaftuar)

View file

@ -16,6 +16,7 @@ Before every minor and major release:
Before every major release: Before every major release:
* Update hardcoded [seeds](/contrib/seeds/README.md), see [this pull request](https://github.com/bitcoin/bitcoin/pull/7415) for an example. * Update hardcoded [seeds](/contrib/seeds/README.md), see [this pull request](https://github.com/bitcoin/bitcoin/pull/7415) for an example.
* Update [`BLOCK_CHAIN_SIZE`](/src/qt/intro.cpp) to the current size plus some overhead.
### First time / New builders ### First time / New builders

View file

@ -1,5 +1,8 @@
Travis CI
=========
Support for using travis-ci has been added in order to automate pull-testing. Support for using travis-ci has been added in order to automate pull-testing.
See https://travis-ci.org/ for more info See [travis-ci.org](https://travis-ci.org/) for more info
This procedure is different than the pull-tester that came before it in a few This procedure is different than the pull-tester that came before it in a few
ways. ways.
@ -7,7 +10,7 @@ ways.
There is nothing to administer. This is a major feature as it means There is nothing to administer. This is a major feature as it means
that builds have no local state. Because there is no ability to login to the that builds have no local state. Because there is no ability to login to the
builders to install packages (tools, dependencies, etc), the entire build builders to install packages (tools, dependencies, etc), the entire build
procedure must instead be controlled by a declarative script (.travis.yml). procedure must instead be controlled by a declarative script `.travis.yml`.
This script declares each build configuration, creates virtual machines as This script declares each build configuration, creates virtual machines as
necessary, builds, then discards the virtual machines. necessary, builds, then discards the virtual machines.
@ -16,7 +19,7 @@ than a single pass/fail. This helps to catch build failures and logic errors
that present on platforms other than the ones the author has tested. This that present on platforms other than the ones the author has tested. This
matrix is defined in the build script and can be changed at any time. matrix is defined in the build script and can be changed at any time.
All builders use the dependency-generator in the depends dir, rather than All builders use the dependency-generator in the [depends dir](/depends), rather than
using apt-get to install build dependencies. This guarantees that the tester using apt-get to install build dependencies. This guarantees that the tester
is using the same versions as Gitian, so the build results are nearly identical is using the same versions as Gitian, so the build results are nearly identical
to what would be found in a final release. However, this also means that builds to what would be found in a final release. However, this also means that builds

View file

@ -74,6 +74,8 @@ const std::string BitcoinGUI::DEFAULT_UIPLATFORM =
#endif #endif
; ;
/** Display name for default wallet name. Uses tilde to avoid name
* collisions in the future with additional wallets */
const QString BitcoinGUI::DEFAULT_WALLET = "~Default"; const QString BitcoinGUI::DEFAULT_WALLET = "~Default";
BitcoinGUI::BitcoinGUI(const PlatformStyle *_platformStyle, const NetworkStyle *networkStyle, QWidget *parent) : BitcoinGUI::BitcoinGUI(const PlatformStyle *_platformStyle, const NetworkStyle *networkStyle, QWidget *parent) :

View file

@ -19,6 +19,13 @@ QT_BEGIN_NAMESPACE
class QStackedWidget; class QStackedWidget;
QT_END_NAMESPACE QT_END_NAMESPACE
/**
* A container for embedding all wallet-related
* controls into BitcoinGUI. The purpose of this class is to allow future
* refinements of the wallet controls with minimal need for further
* modifications to BitcoinGUI, thus greatly simplifying merges while
* reducing the risk of breaking top-level stuff.
*/
class WalletFrame : public QFrame class WalletFrame : public QFrame
{ {
Q_OBJECT Q_OBJECT