diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/README.md | 10 | ||||
-rw-r--r-- | doc/bips.md | 5 | ||||
-rw-r--r-- | doc/build-unix.md | 32 | ||||
-rw-r--r-- | doc/multiwallet-qt.md | 48 | ||||
-rw-r--r-- | doc/release-notes.md | 2 | ||||
-rw-r--r-- | doc/release-notes/release-notes-0.13.0.md | 2 | ||||
-rw-r--r-- | doc/release-process.md | 1 | ||||
-rw-r--r-- | doc/shared-libraries.md | 5 | ||||
-rw-r--r-- | doc/travis-ci.md (renamed from doc/travis-ci.txt) | 9 |
9 files changed, 59 insertions, 55 deletions
diff --git a/doc/README.md b/doc/README.md index 09a507c9ce..e4fa49614a 100644 --- a/doc/README.md +++ b/doc/README.md @@ -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. diff --git a/doc/bips.md b/doc/bips.md index 039d5114fd..4f41610089 100644 --- a/doc/bips.md +++ b/doc/bips.md @@ -26,4 +26,9 @@ BIPs that are implemented by Bitcoin Core (up-to-date up to **v0.13.0**): * [`BIP 125`](https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki): Opt-in full replace-by-fee signaling honoured in mempool and mining as of **v0.12.0** ([PR 6871](https://github.com/bitcoin/bitcoin/pull/6871)). * [`BIP 130`](https://github.com/bitcoin/bips/blob/master/bip-0130.mediawiki): direct headers announcement is negotiated with peer versions `>=70012` as of **v0.12.0** ([PR 6494](https://github.com/bitcoin/bitcoin/pull/6494)). * [`BIP 133`](https://github.com/bitcoin/bips/blob/master/bip-0133.mediawiki): feefilter messages are respected and sent for peer versions `>=70013` as of **v0.13.0** ([PR 7542](https://github.com/bitcoin/bitcoin/pull/7542)). +* [`BIP 141`](https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki): Segregated Witness (Consensus Layer) as of **v0.13.0** ([PR 8149](https://github.com/bitcoin/bitcoin/pull/8149)), and defined for mainnet as of **v0.13.1** ([PR 8937](https://github.com/bitcoin/bitcoin/pull/8937)). +* [`BIP 143`](https://github.com/bitcoin/bips/blob/master/bip-0143.mediawiki): Transaction Signature Verification for Version 0 Witness Program as of **v0.13.0** ([PR 8149](https://github.com/bitcoin/bitcoin/pull/8149)) and defined for mainnet as of **v0.13.1** ([PR 8937](https://github.com/bitcoin/bitcoin/pull/8937)). +* [`BIP 144`](https://github.com/bitcoin/bips/blob/master/bip-0144.mediawiki): Segregated Witness as of **0.13.0** ([PR 8149](https://github.com/bitcoin/bitcoin/pull/8149)). +* [`BIP 145`](https://github.com/bitcoin/bips/blob/master/bip-0145.mediawiki): getblocktemplate updates for Segregated Witness as of **v0.13.0** ([PR 8149](https://github.com/bitcoin/bitcoin/pull/8149)). +* [`BIP 147`](https://github.com/bitcoin/bips/blob/master/bip-0147.mediawiki): NULLDUMMY softfork as of **v0.13.1** ([PR 8636](https://github.com/bitcoin/bitcoin/pull/8636) and [PR 8937](https://github.com/bitcoin/bitcoin/pull/8937)). * [`BIP 152`](https://github.com/bitcoin/bips/blob/master/bip-0152.mediawiki): Compact block transfer and related optimizations are used as of **v0.13.0** ([PR 8068](https://github.com/bitcoin/bitcoin/pull/8068)). diff --git a/doc/build-unix.md b/doc/build-unix.md index 62e3e793e9..5202072f8b 100644 --- a/doc/build-unix.md +++ b/doc/build-unix.md @@ -308,3 +308,35 @@ To build executables for ARM: For further documentation on the depends system see [README.md](../depends/README.md) in the depends directory. + +Building on FreeBSD +-------------------- + +(Updated as of FreeBSD 10.3) + +Clang is installed by default as `cc` compiler, this makes it easier to get +started than on [OpenBSD](build-openbsd.md). Installing dependencies: + + pkg install autoconf automake libtool pkgconf + pkg install boost-libs openssl libevent2 + +(`libressl` instead of `openssl` will also work) + +For the wallet (optional): + + pkg install db5 + +This will give a warning "configure: WARNING: Found Berkeley DB other +than 4.8; wallets opened by this build will not be portable!", but as FreeBSD never +had a binary release, this may not matter. If backwards compatibility +with 4.8-built Bitcoin Core is needed follow the steps under "Berkeley DB" above. + +Then build using: + + ./autogen.sh + ./configure --with-incompatible-bdb CPPFLAGS=-I/usr/local/include/db5 LDFLAGS=-L/usr/local/lib/db5 + make + +*Note on debugging*: The version of `gdb` installed by default is [ancient and considered harmful](https://wiki.freebsd.org/GdbRetirement). +It is not suitable for debugging a multi-threaded C++ program, not even for getting backtraces. Please install the package `gdb` and +use the versioned gdb command e.g. `gdb7111`. diff --git a/doc/multiwallet-qt.md b/doc/multiwallet-qt.md deleted file mode 100644 index 3caab81807..0000000000 --- a/doc/multiwallet-qt.md +++ /dev/null @@ -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(); diff --git a/doc/release-notes.md b/doc/release-notes.md index 58994a6839..0463cb8a61 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -65,6 +65,8 @@ contain invalid parameters. The first boolean argument to `getaddednodeinfo` has been removed. This is an incompatible change. +Call "getmininginfo" loses the "testnet" field in favor of the more generic "chain" (which has been present for years). + ### Configuration and command-line options ### Block and transaction handling diff --git a/doc/release-notes/release-notes-0.13.0.md b/doc/release-notes/release-notes-0.13.0.md index 5dd3f5a651..f9bf3d75de 100644 --- a/doc/release-notes/release-notes-0.13.0.md +++ b/doc/release-notes/release-notes-0.13.0.md @@ -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) diff --git a/doc/release-process.md b/doc/release-process.md index d07f9a89ad..63f75fb399 100644 --- a/doc/release-process.md +++ b/doc/release-process.md @@ -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 diff --git a/doc/shared-libraries.md b/doc/shared-libraries.md index ec6f16c8aa..dc363582cc 100644 --- a/doc/shared-libraries.md +++ b/doc/shared-libraries.md @@ -30,12 +30,17 @@ The interface is defined in the C header `bitcoinconsensus.h` located in `src/s - `bitcoinconsensus_SCRIPT_FLAGS_VERIFY_NONE` - `bitcoinconsensus_SCRIPT_FLAGS_VERIFY_P2SH` - Evaluate P2SH ([BIP16](https://github.com/bitcoin/bips/blob/master/bip-0016.mediawiki)) subscripts - `bitcoinconsensus_SCRIPT_FLAGS_VERIFY_DERSIG` - Enforce strict DER ([BIP66](https://github.com/bitcoin/bips/blob/master/bip-0066.mediawiki)) compliance +- `bitcoinconsensus_SCRIPT_FLAGS_VERIFY_NULLDUMMY` - Enforce NULLDUMMY ([BIP147](https://github.com/bitcoin/bips/blob/master/bip-0147.mediawiki)) +- `bitcoinconsensus_SCRIPT_FLAGS_VERIFY_CHECKLOCKTIMEVERIFY` - Enable CHECKLOCKTIMEVERIFY ([BIP65](https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki)) +- `bitcoinconsensus_SCRIPT_FLAGS_VERIFY_CHECKSEQUENCEVERIFY` - Enable CHECKSEQUENCEVERIFY ([BIP112](https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki)) +- `bitcoinconsensus_SCRIPT_FLAGS_VERIFY_WITNESS` - Enable WITNESS ([BIP141](https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki)) ##### Errors - `bitcoinconsensus_ERR_OK` - No errors with input parameters *(see the return value of `bitcoinconsensus_verify_script` for the verification status)* - `bitcoinconsensus_ERR_TX_INDEX` - An invalid index for `txTo` - `bitcoinconsensus_ERR_TX_SIZE_MISMATCH` - `txToLen` did not match with the size of `txTo` - `bitcoinconsensus_ERR_DESERIALIZE` - An error deserializing `txTo` +- `bitcoinconsensus_ERR_AMOUNT_REQUIRED` - Input amount is required if WITNESS is used ### Example Implementations - [NBitcoin](https://github.com/NicolasDorier/NBitcoin/blob/master/NBitcoin/Script.cs#L814) (.NET Bindings) diff --git a/doc/travis-ci.txt b/doc/travis-ci.md index 06410405d6..38085cec35 100644 --- a/doc/travis-ci.txt +++ b/doc/travis-ci.md @@ -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 |