commit
f92805025d
7 changed files with 24 additions and 55 deletions
|
@ -3,7 +3,9 @@ Bitcoin Core 0.13.99
|
|||
|
||||
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
|
||||
---------------------
|
||||
|
@ -46,13 +48,13 @@ Development
|
|||
The Bitcoin repo's [root README](/README.md) contains relevant information on the development process and automated testing.
|
||||
|
||||
- [Developer Notes](developer-notes.md)
|
||||
- [Multiwallet Qt Development](multiwallet-qt.md)
|
||||
- [Release Notes](release-notes.md)
|
||||
- [Release Process](release-process.md)
|
||||
- [Source Code Documentation (External Link)](https://dev.visucore.com/bitcoin/doxygen/)
|
||||
- [Translation Process](translation_process.md)
|
||||
- [Translation Strings Policy](translation_strings_policy.md)
|
||||
- [Unit Tests](unit-tests.md)
|
||||
- [Travis CI](travis-ci.md)
|
||||
- [Unauthenticated REST Interface](REST-interface.md)
|
||||
- [Shared Libraries](shared-libraries.md)
|
||||
- [BIPS](bips.md)
|
||||
|
@ -67,11 +69,13 @@ The Bitcoin repo's [root README](/README.md) contains relevant information on th
|
|||
### Miscellaneous
|
||||
- [Assets Attribution](assets-attribution.md)
|
||||
- [Files](files.md)
|
||||
- [Reduce Traffic](reduce-traffic.md)
|
||||
- [Tor Support](tor.md)
|
||||
- [Init Scripts (systemd/upstart/openrc)](init.md)
|
||||
- [ZMQ](zmq.md)
|
||||
|
||||
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
|
||||
cryptographic software written by Eric Young ([eay@cryptsoft.com](mailto:eay@cryptsoft.com)), and UPnP software written by Thomas Bernard.
|
||||
|
|
|
@ -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();
|
|
@ -643,7 +643,7 @@ git merge commit are mentioned.
|
|||
- #8041 `5b736dd` Fix bip9-softforks blockstore issue (MarcoFalke)
|
||||
- #7994 `1f01443` Add op csv tests to script_tests.json (Christewart)
|
||||
- #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)
|
||||
- #8047 `37f9a1f` Test_framework: Set wait-timeout for bitcoind procs (MarcoFalke)
|
||||
- #8095 `6700cc9` Test framework: only cleanup on successful test runs (sdaftuar)
|
||||
|
|
|
@ -16,6 +16,7 @@ Before every minor and 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 [`BLOCK_CHAIN_SIZE`](/src/qt/intro.cpp) to the current size plus some overhead.
|
||||
|
||||
### First time / New builders
|
||||
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
Travis CI
|
||||
=========
|
||||
|
||||
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
|
||||
ways.
|
||||
|
@ -7,7 +10,7 @@ ways.
|
|||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
|
@ -74,6 +74,8 @@ const std::string BitcoinGUI::DEFAULT_UIPLATFORM =
|
|||
#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";
|
||||
|
||||
BitcoinGUI::BitcoinGUI(const PlatformStyle *_platformStyle, const NetworkStyle *networkStyle, QWidget *parent) :
|
||||
|
|
|
@ -19,6 +19,13 @@ QT_BEGIN_NAMESPACE
|
|||
class QStackedWidget;
|
||||
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
|
||||
{
|
||||
Q_OBJECT
|
||||
|
|
Loading…
Reference in a new issue