From 3e8ccc765a6d02b701ebc40e556e32e4c0613987 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Mon, 1 Jun 2015 10:33:51 +0200 Subject: [PATCH] Now that 0.11 has been branched, master is 0.11.99 ... in preparation for 0.12 --- configure.ac | 2 +- doc/Doxyfile | 2 +- doc/README.md | 2 +- doc/README_windows.txt | 2 +- doc/release-notes.md | 270 +---------------------------------------- 5 files changed, 7 insertions(+), 271 deletions(-) diff --git a/configure.ac b/configure.ac index c5d08a028..6dd03ea40 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N) AC_PREREQ([2.60]) define(_CLIENT_VERSION_MAJOR, 0) -define(_CLIENT_VERSION_MINOR, 10) +define(_CLIENT_VERSION_MINOR, 11) define(_CLIENT_VERSION_REVISION, 99) define(_CLIENT_VERSION_BUILD, 0) define(_CLIENT_VERSION_IS_RELEASE, false) diff --git a/doc/Doxyfile b/doc/Doxyfile index 8a11d1e8d..925a33ee8 100644 --- a/doc/Doxyfile +++ b/doc/Doxyfile @@ -34,7 +34,7 @@ PROJECT_NAME = Bitcoin # This could be handy for archiving the generated documentation or # if some version control system is used. -PROJECT_NUMBER = 0.10.99 +PROJECT_NUMBER = 0.11.99 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer diff --git a/doc/README.md b/doc/README.md index e3be27d70..ecddf50d4 100644 --- a/doc/README.md +++ b/doc/README.md @@ -1,4 +1,4 @@ -Bitcoin Core 0.10.99 +Bitcoin Core 0.11.99 ===================== Setup diff --git a/doc/README_windows.txt b/doc/README_windows.txt index c58294169..e4fd9bdf9 100644 --- a/doc/README_windows.txt +++ b/doc/README_windows.txt @@ -1,4 +1,4 @@ -Bitcoin Core 0.10.99 +Bitcoin Core 0.11.99 ===================== Intro diff --git a/doc/release-notes.md b/doc/release-notes.md index acff1dc6b..6bb8587d7 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -4,129 +4,12 @@ release-notes at release time) Notable changes =============== -Block file pruning +Example header ---------------------- -This release supports running a fully validating node without maintaining a copy -of the raw block and undo data on disk. To recap, there are four types of data -related to the blockchain in the bitcoin system: the raw blocks as received over -the network (blk???.dat), the undo data (rev???.dat), the block index and the -UTXO set (both LevelDB databases). The databases are built from the raw data. +Example content. -Block pruning allows Bitcoin Core to delete the raw block and undo data once -it's been validated and used to build the databases. At that point, the raw data -is used only to relay blocks to other nodes, to handle reorganizations, to look -up old transactions (if -txindex is enabled or via the RPC/REST interfaces), or -for rescanning the wallet. The block index continues to hold the metadata about -all blocks in the blockchain. - -The user specifies how much space to allot for block & undo files. The minimum -allowed is 550MB. Note that this is in addition to whatever is required for the -block index and UTXO databases. The minimum was chosen so that Bitcoin Core will -be able to maintain at least 288 blocks on disk (two days worth of blocks at 10 -minutes per block). In rare instances it is possible that the amount of space -used will exceed the pruning target in order to keep the required last 288 -blocks on disk. - -Block pruning works during initial sync in the same way as during steady state, -by deleting block files "as you go" whenever disk space is allocated. Thus, if -the user specifies 550MB, once that level is reached the program will begin -deleting the oldest block and undo files, while continuing to download the -blockchain. - -For now, block pruning disables block relay. In the future, nodes with block -pruning will at a minimum relay "new" blocks, meaning blocks that extend their -active chain. - -Block pruning is currently incompatible with running a wallet due to the fact -that block data is used for rescanning the wallet and importing keys or -addresses (which require a rescan.) However, running the wallet with block -pruning will be supported in the near future, subject to those limitations. - -Block pruning is also incompatible with -txindex and will automatically disable -it. - -Once you have pruned blocks, going back to unpruned state requires -re-downloading the entire blockchain. To do this, re-start the node with --reindex. Note also that any problem that would cause a user to reindex (e.g., -disk corruption) will cause a pruned node to redownload the entire blockchain. -Finally, note that when a pruned node reindexes, it will delete any blk???.dat -and rev???.dat files in the data directory prior to restarting the download. - -To enable block pruning on the command line: - -- `-prune=N`: where N is the number of MB to allot for raw block & undo data. - -Modified RPC calls: - -- `getblockchaininfo` now includes whether we are in pruned mode or not. -- `getblock` will check if the block's data has been pruned and if so, return an -error. -- `getrawtransaction` will no longer be able to locate a transaction that has a -UTXO but where its block file has been pruned. - -Pruning is disabled by default. - -Big endian support --------------------- - -Experimental support for big-endian CPU architectures was added in this -release. This has been tested on at least MIPS and PPC hosts. The build -system will automatically detect the endianness of the target. - -Memory usage optimization --------------------------- - -There have been many changes in this release to reduce the default memory usage -of a node, among which: - -- Accurate UTXO cache size accounting (#6102); this makes the option `-dbcache` - precise, where is did a gross underestimation of memory usage before -- Reduce size of per-peer data structure (#6064 and others); this increases the - number of connections that can be supported with the same amount of memory -- Reduce the number of threads (#5964, #5679); lowers the amount of (esp. - virtual) memory needed - -Privacy: Disable wallet transaction broadcast ----------------------------------------------- - -This release adds an option `-walletbroadcast=0` to prevent automatic -transaction broadcast and rebroadcast (#5951). This option allows separating -transaction submission from the node functionality. - -Making use of this, third-party scripts can be written to take care of -transaction (re)broadcast: - -- Send the transaction as normal, either through RPC or the GUI -- Retrieve the transaction data through RPC using `gettransaction` (NOT - `getrawtransaction`). The `hex` field of the result will contain the raw - hexadecimal representation of the transaction -- The transaction can then be broadcasted through arbitrary mechanisms - supported by the script - -One such application is selective Tor usage, where the node runs on the normal -internet but transactions are broadcasted over Tor. - -Privacy: Stream isolation for Tor ----------------------------------- - -This release adds functionality to create a new circuit for every peer -connection, when the software is used with Tor. The new option, -`-proxyrandomize`, is on by default. - -When enabled, every outgoing connection will (potentially) go through a -different exit node. That significantly reduces the chance to get unlucky and -pick a single exit node that is either malicious, or widely banned from the P2P -network. This improves connection reliability as well as privacy, especially -for the initial connections. - -**Important note:** If a non-Tor SOCKS5 proxy is configured that supports -authentication, but doesn't require it, this change may cause it to reject -connections. A user and password is sent where they weren't before. This setup -is exceedingly rare, but in this case `-proxyrandomize=0` can be passed to -disable the behavior. - -0.11.0 Change log +0.12.0 Change log ================= Detailed release notes follow. This overview includes changes that affect @@ -135,169 +18,22 @@ the code changes and accompanying discussion, both the pull request and git merge commit are mentioned. ### RPC and REST -- #5461 `5f7279a` signrawtransaction: validate private key -- #5444 `103f66b` Add /rest/headers//. -- #4964 `95ecc0a` Add scriptPubKey field to validateaddress RPC call -- #5476 `c986972` Add time offset into getpeerinfo output -- #5540 `84eba47` Add unconfirmed and immature balances to getwalletinfo -- #5599 `40e96a3` Get rid of the internal miner's hashmeter -- #5711 `87ecfb0` Push down RPC locks -- #5754 `1c4e3f9` fix getblocktemplate lock issue -- #5756 `5d901d8` Fix getblocktemplate_proposals test by mining one block -- #5548 `d48ce48` Add /rest/chaininfos -- #5992 `4c4f1b4` Push down RPC reqWallet flag -- #6036 `585b5db` Show zero value txouts in listunspent -- #5199 `6364408` Add RPC call `gettxoutproof` to generate and verify merkle blocks -- #5418 `16341cc` Report missing inputs in sendrawtransaction -- #5937 `40f5e8d` show script verification errors in signrawtransaction result -- #5420 `1fd2d39` getutxos REST command (based on Bip64) ### Configuration and command-line options -- #5636 `a353ad4` Add option `-allowselfsignedrootcertificate` to allow self signed root certs (for testing payment requests) -- #5900 `3e8a1f2` Add a consistency check `-checkblockindex` for the block chain data structures -- #5951 `7efc9cf` Make it possible to disable wallet transaction broadcast (using `-walletbroadcast=0`) -- #5911 `b6ea3bc` privacy: Stream isolation for Tor (on by default, use `-proxyrandomize=0` to disable) -- #5863 `c271304` Add autoprune functionality (`-prune=`) ### Block and transaction handling -- #5367 `dcc1304` Do all block index writes in a batch -- #5253 `203632d` Check against MANDATORY flags prior to accepting to mempool -- #5459 `4406c3e` Reject headers that build on an invalid parent -- #5481 `055f3ae` Apply AreSane() checks to the fees from the network -- #5580 `40d65eb` Preemptively catch a few potential bugs -- #5349 `f55c5e9` Implement test for merkle tree malleability in CPartialMerkleTree -- #5564 `a89b837` clarify obscure uses of EvalScript() -- #5521 `8e4578a` Reject non-final txs even in testnet/regtest -- #5707 `6af674e` Change hardcoded character constants to descriptive named constants for db keys -- #5286 `fcf646c` Change the default maximum OP_RETURN size to 80 bytes -- #5710 `175d86e` Add more information to errors in ReadBlockFromDisk -- #5948 `b36f1ce` Use GetAncestor to compute new target -- #5959 `a0bfc69` Add additional block index consistency checks -- #6058 `7e0e7f8` autoprune minor post-merge improvements -- #5159 `2cc1372` New fee estimation code -- #6102 `6fb90d8` Implement accurate UTXO cache size accounting -- #6129 `2a82298` Bug fix for clearing fCheckForPruning -- #5947 `e9af4e6` Alert if it is very likely we are getting a bad chain ### P2P protocol and network code -- #5507 `844ace9` Prevent DOS attacks on in-flight data structures -- #5770 `32a8b6a` Sanitize command strings before logging them -- #5859 `dd4ffce` Add correct bool combiner for net signals -- #5876 `8e4fd0c` Add a NODE_GETUTXO service bit and document NODE_NETWORK -- #6028 `b9311fb` Move nLastTry from CAddress to CAddrInfo -- #5662 `5048465` Change download logic to allow calling getdata on inbound peers -- #5971 `18d2832` replace absolute sleep with conditional wait -- #5918 `7bf5d5e` Use equivalent PoW for non-main-chain requests -- #6059 `f026ab6` chainparams: use SeedSpec6's rather than CAddress's for fixed seeds -- #6080 `31c0bf1` Add jonasschnellis dns seeder -- #5976 `9f7809f` Reduce download timeouts as blocks arrive ### Validation -- #5143 `48e1765` Implement BIP62 rule 6 -- #5713 `41e6e4c` Implement BIP66 ### Build system -- #5501 `c76c9d2` Add mips, mipsel and aarch64 to depends platforms -- #5334 `cf87536` libbitcoinconsensus: Add pkg-config support -- #5514 `ed11d53` Fix 'make distcheck' -- #5505 `a99ef7d` Build winshutdownmonitor.cpp on Windows only -- #5582 `e8a6639` Osx toolchain update -- #5684 `ab64022` osx: bump build sdk to 10.9 -- #5695 `23ef5b7` depends: latest config.guess and config.sub -- #5509 `31dedb4` Fixes when compiling in c++11 mode -- #5819 `f8e68f7` release: use static libstdc++ and disable reduced exports by default -- #5510 `7c3fbc3` Big endian support -- #5149 `c7abfa5` Add script to verify all merge commits are signed -- #6082 `7abbb7e` qt: disable qt tests when one of the checks for the gui fails ### Wallet -- #2340 `811c71d` Discourage fee sniping with nLockTime -- #5485 `d01bcc4` Enforce minRelayTxFee on wallet created tx and add a maxtxfee option -- #5508 `9a5cabf` Add RandAddSeedPerfmon to MakeNewKey -- #4805 `8204e19` Do not flush the wallet in AddToWalletIfInvolvingMe(..) -- #5319 `93b7544` Clean up wallet encryption code -- #5831 `df5c246` Subtract fee from amount -- #6076 `6c97fd1` wallet: fix boost::get usage with boost 1.58 -- #5511 `23c998d` Sort pending wallet transactions before reaccepting -- #6126 `26e08a1` Change default nTxConfirmTarget to 2 ### GUI -- #5219 `f3af0c8` New icons -- #5228 `bb3c75b` HiDPI (retina) support for splash screen -- #5258 `73cbf0a` The RPC Console should be a QWidget to make window more independent -- #5488 `851dfc7` Light blue icon color for regtest -- #5547 `a39aa74` New icon for the debug window -- #5493 `e515309` Adopt style colour for button icons -- #5557 `70477a0` On close of splashscreen interrupt verifyDB -- #5559 `83be8fd` Make the command-line-args dialog better -- #5144 `c5380a9` Elaborate on signverify message dialog warning -- #5489 `d1aa3c6` Optimize PNG files -- #5649 `e0cd2f5` Use text-color icons for system tray Send/Receive menu entries -- #5651 `848f55d` Coin Control: Use U+2248 "ALMOST EQUAL TO" rather than a simple tilde -- #5626 `ab0d798` Fix icon sizes and column width -- #5683 `c7b22aa` add new osx dmg background picture -- #5620 `7823598` Payment request expiration bug fix -- #5729 `9c4a5a5` Allow unit changes for read-only BitcoinAmountField -- #5753 `0f44672` Add bitcoin logo to about screen -- #5629 `a956586` Prevent amount overflow problem with payment requests -- #5830 `215475a` Don't save geometry for options and about/help window -- #5793 `d26f0b2` Honor current network when creating autostart link -- #5847 `f238add` Startup script for centos, with documentation -- #5915 `5bd3a92` Fix a static qt5 crash when using certain versions of libxcb -- #5898 `bb56781` Fix rpc console font size to flexible metrics -- #5467 `bc8535b` Payment request / server work - part 2 -- #6161 `180c164` Remove movable option for toolbar -- #6160 `0d862c2` Overviewpage: make sure warning icons gets colored ### Tests -- #5453 `2f2d337` Add ability to run single test manually to RPC tests -- #5421 `886eb57` Test unexecuted OP_CODESEPARATOR -- #5530 `565b300` Additional rpc tests -- #5611 `37b185c` Fix spurious windows test failures after 012598880c -- #5613 `2eda47b` Fix smartfees test for change to relay policy -- #5612 `e3f5727` Fix zapwallettxes test -- #5642 `30a5b5f` Prepare paymentservertests for new unit tests -- #5784 `e3a3cd7` Fix usage of NegateSignatureS in script_tests -- #5813 `ee9f2bf` Add unit tests for next difficulty calculations -- #5855 `d7989c0` Travis: run unit tests in different orders -- #5852 `cdae53e` Reinitialize state in between individual unit tests. -- #5883 `164d7b6` tests: add a BasicTestingSetup and apply to all tests -- #5940 `446bb70` Regression test for ResendWalletTransactions -- #6052 `cf7adad` fix and enable bip32 unit test -- #6039 `734f80a` tests: Error when setgenerate is used on regtest -- #6074 `948beaf` Correct the PUSHDATA4 minimal encoding test in script_invalid.json -- #6032 `e08886d` Stop nodes after RPC tests, even with --nocleanup -- #6075 `df1609f` Add additional script edge condition tests -- #5981 `da38dc6` Python P2P testing -- #5958 `9ef00c3` Add multisig rpc tests -- #6112 `fec5c0e` Add more script edge condition tests ### Miscellaneous -- #5457, #5506, #5952, #6047 Update libsecp256k1 -- #5437 `84857e8` Add missing CAutoFile::IsNull() check in main -- #5490 `ec20fd7` Replace uint256/uint160 with opaque blobs where possible -- #5654, #5764 Adding jonasschnelli's GPG key -- #5477 `5f04d1d` OS X 10.10: LSSharedFileListItemResolve() is deprecated -- #5679 `beff11a` Get rid of DetectShutdownThread -- #5787 `9bd8c9b` Add fanquake PGP key -- #5366 `47a79bb` No longer check osx compatibility in RenameThread -- #5689 `07f4386` openssl: abstract out OPENSSL_cleanse -- #5708 `8b298ca` Add list of implemented BIPs -- #5809 `46bfbe7` Add bitcoin-cli man page -- #5839 `86eb461` keys: remove libsecp256k1 verification until it's actually supported -- #5749 `d734d87` Help messages correctly formatted (79 chars) -- #5884 `7077fe6` BUGFIX: Stack around the variable 'rv' was corrupted -- #5849 `41259ca` contrib/init/bitcoind.openrc: Compatibility with previous OpenRC init script variables -- #5950 `41113e3` Fix locale fallback and guard tests against invalid locale settings -- #5965 `7c6bfb1` Add git-subtree-check.sh script -- #6033 `1623f6e` FreeBSD, OpenBSD thread renaming -- #6064 `b46e7c2` Several changes to mruset -- #6104 `3e2559c` Show an init message while activating best chain -- #6125 `351f73e` Clean up parsing of bool command line args -- #5964 `b4c219b` Lightweight task scheduler -- #6116 `30dc3c1` [OSX] rename Bitcoin-Qt.app to Bitcoin-Core.app -- #6168 `b3024f0` contrib/linearize: Support linearization of testnet blocks -- #6098 `7708fcd` Update Windows resource files (and add one for bitcoin-tx) -- #6159 `e1412d3` Catch errors on datadir lock and pidfile delete -[up to date until #5976]