Skip to content

Commit f4e4dd6

Browse files
committed
Merge bitcoin tag 'v0.12.1' into dash v0.12.1.x
Merging Bitcoin 0.12.1 into Dash 0.12.1.x
2 parents 9c302a7 + 9779e1e commit f4e4dd6

56 files changed

Lines changed: 3056 additions & 222 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

contrib/gitian-descriptors/gitian-linux.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ files: []
2626
script: |
2727
WRAP_DIR=$HOME/wrapped
2828
HOSTS="i686-pc-linux-gnu x86_64-unknown-linux-gnu"
29-
CONFIGFLAGS="--enable-glibc-back-compat --enable-reduce-exports --disable-bench --disable-gui-tests"
29+
CONFIGFLAGS="--enable-glibc-back-compat --enable-reduce-exports --disable-bench --disable-gui-tests LDFLAGS=-static-libstdc++"
3030
FAKETIME_HOST_PROGS=""
3131
FAKETIME_PROGS="date ar ranlib nm strip objcopy"
3232
HOST_CFLAGS="-O2 -g"

contrib/verifysfbinaries/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
### Verify SF Binaries ###
1+
### Verify Binaries ###
22
This script attempts to download the signature file `SHA256SUMS.asc` from https://bitcoin.org.
33

44
It first checks if the signature passes, and then downloads the files specified in the file, and checks if the hashes of these files match those that are specified in the signature file.
55

6-
The script returns 0 if everything passes the checks. It returns 1 if either the signature check or the hash check doesn't pass. If an error occurs the return value is 2.
6+
The script returns 0 if everything passes the checks. It returns 1 if either the signature check or the hash check doesn't pass. If an error occurs the return value is 2.

doc/Doxyfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ PROJECT_NAME = Dash
3434
# This could be handy for archiving the generated documentation or
3535
# if some version control system is used.
3636

37-
PROJECT_NUMBER = 0.12.0
37+
PROJECT_NUMBER = 0.12.1
3838

3939
# Using the PROJECT_BRIEF tag one can provide an optional one line description
4040
# for a project that appears at the top of each page and should give viewer

doc/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Dash Core 0.12.0
1+
Dash Core 0.12.1
22
=====================
33

44
This is the official reference wallet for Dash digital currency and comprises the backbone of the Dash peer-to-peer network. You can [download Dash Core](https://www.dash.org/downloads/) or [build it yourself](#building) using the guides below.
@@ -47,7 +47,7 @@ The following are developer notes on how to build Dash on your native platform.
4747

4848
Development
4949
---------------------
50-
The Dash repo's [root README](https://github.com/dashpay/dash/blob/master/README.md) contains relevant information on the development process and automated testing.
50+
The Dash repo's [root README](/README.md) contains relevant information on the development process and automated testing.
5151

5252
- [Developer Notes](developer-notes.md)
5353
- [Multiwallet Qt Development](multiwallet-qt.md)

doc/README_windows.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Dash Core 0.12.0
1+
Dash Core 0.12.1
22
=====================
33

44
Intro

doc/build-unix.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,3 +236,30 @@ In this case there is no dependency on Berkeley DB 4.8.
236236

237237
Mining is also possible in disable-wallet mode, but only using the `getblocktemplate` RPC
238238
call not `getwork`.
239+
240+
Additional Configure Flags
241+
--------------------------
242+
A list of additional configure flags can be displayed with:
243+
244+
./configure --help
245+
246+
ARM Cross-compilation
247+
-------------------
248+
These steps can be performed on, for example, an Ubuntu VM. The depends system
249+
will also work on other Linux distributions, however the commands for
250+
installing the toolchain will be different.
251+
252+
First install the toolchain:
253+
254+
sudo apt-get install g++-arm-linux-gnueabihf
255+
256+
To build executables for ARM:
257+
258+
cd depends
259+
make HOST=arm-linux-gnueabihf NO_QT=1
260+
cd ..
261+
./configure --prefix=$PWD/depends/arm-linux-gnueabihf --enable-glibc-back-compat --enable-reduce-exports LDFLAGS=-static-libstdc++
262+
make
263+
264+
265+
For further documentation on the depends system see [README.md](../depends/README.md) in the depends directory.

doc/release-notes.md

Lines changed: 134 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
Dash Core 0.12
2-
==================
1+
Dash Core version 0.12.1 is now available from:
32

4-
Dash Core tree 0.12.1.x release notes can be found here:
5-
- [v0.12.1](release-notes/dash/release-notes-0.12.1.md)
3+
<https://www.dash.org/downloads/>
64

7-
Dash Core tree 0.12.1.x is a fork of Bitcoin Core tree 0.12
5+
This is a new minor version release, including the BIP9, BIP68 and BIP112
6+
softfork, various bugfixes and updated translations.
87

98

109

@@ -29,10 +28,109 @@ earlier.
2928
Notable changes
3029
===============
3130

32-
Example item
33-
---------------------------------------
34-
35-
Example text.
31+
First version bits BIP9 softfork deployment
32+
-------------------------------------------
33+
34+
This release includes a soft fork deployment to enforce [BIP68][],
35+
[BIP112][] and [BIP113][] using the [BIP9][] deployment mechanism.
36+
37+
The deployment sets the block version number to 0x20000001 between
38+
midnight 1st May 2016 and midnight 1st May 2017 to signal readiness for
39+
deployment. The version number consists of 0x20000000 to indicate version
40+
bits together with setting bit 0 to indicate support for this combined
41+
deployment, shown as "csv" in the `getblockchaininfo` RPC call.
42+
43+
For more information about the soft forking change, please see
44+
<https://github.com/bitcoin/bitcoin/pull/7648>
45+
46+
This specific backport pull-request can be viewed at
47+
<https://github.com/bitcoin/bitcoin/pull/7543>
48+
49+
[BIP9]: https://github.com/bitcoin/bips/blob/master/bip-0009.mediawiki
50+
[BIP68]: https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki
51+
[BIP112]: https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki
52+
[BIP113]: https://github.com/bitcoin/bips/blob/master/bip-0113.mediawiki
53+
54+
BIP68 soft fork to enforce sequence locks for relative locktime
55+
---------------------------------------------------------------
56+
57+
[BIP68][] introduces relative lock-time consensus-enforced semantics of
58+
the sequence number field to enable a signed transaction input to remain
59+
invalid for a defined period of time after confirmation of its corresponding
60+
outpoint.
61+
62+
For more information about the implementation, see
63+
<https://github.com/bitcoin/bitcoin/pull/7184>
64+
65+
BIP112 soft fork to enforce OP_CHECKSEQUENCEVERIFY
66+
--------------------------------------------------
67+
68+
[BIP112][] redefines the existing OP_NOP3 as OP_CHECKSEQUENCEVERIFY (CSV)
69+
for a new opcode in the Bitcoin scripting system that in combination with
70+
[BIP68][] allows execution pathways of a script to be restricted based
71+
on the age of the output being spent.
72+
73+
For more information about the implementation, see
74+
<https://github.com/bitcoin/bitcoin/pull/7524>
75+
76+
BIP113 locktime enforcement soft fork
77+
-------------------------------------
78+
79+
Bitcoin Core 0.11.2 previously introduced mempool-only locktime
80+
enforcement using GetMedianTimePast(). This release seeks to
81+
consensus enforce the rule.
82+
83+
Bitcoin transactions currently may specify a locktime indicating when
84+
they may be added to a valid block. Current consensus rules require
85+
that blocks have a block header time greater than the locktime specified
86+
in any transaction in that block.
87+
88+
Miners get to choose what time they use for their header time, with the
89+
consensus rule being that no node will accept a block whose time is more
90+
than two hours in the future. This creates a incentive for miners to
91+
set their header times to future values in order to include locktimed
92+
transactions which weren't supposed to be included for up to two more
93+
hours.
94+
95+
The consensus rules also specify that valid blocks may have a header
96+
time greater than that of the median of the 11 previous blocks. This
97+
GetMedianTimePast() time has a key feature we generally associate with
98+
time: it can't go backwards.
99+
100+
[BIP113][] specifies a soft fork enforced in this release that
101+
weakens this perverse incentive for individual miners to use a future
102+
time by requiring that valid blocks have a computed GetMedianTimePast()
103+
greater than the locktime specified in any transaction in that block.
104+
105+
Mempool inclusion rules currently require transactions to be valid for
106+
immediate inclusion in a block in order to be accepted into the mempool.
107+
This release begins applying the BIP113 rule to received transactions,
108+
so transaction whose time is greater than the GetMedianTimePast() will
109+
no longer be accepted into the mempool.
110+
111+
**Implication for miners:** you will begin rejecting transactions that
112+
would not be valid under BIP113, which will prevent you from producing
113+
invalid blocks when BIP113 is enforced on the network. Any
114+
transactions which are valid under the current rules but not yet valid
115+
under the BIP113 rules will either be mined by other miners or delayed
116+
until they are valid under BIP113. Note, however, that time-based
117+
locktime transactions are more or less unseen on the network currently.
118+
119+
**Implication for users:** GetMedianTimePast() always trails behind the
120+
current time, so a transaction locktime set to the present time will be
121+
rejected by nodes running this release until the median time moves
122+
forward. To compensate, subtract one hour (3,600 seconds) from your
123+
locktimes to allow those transactions to be included in mempools at
124+
approximately the expected time.
125+
126+
For more information about the implementation, see
127+
<https://github.com/bitcoin/bitcoin/pull/6566>
128+
129+
Miscellaneous
130+
-------------
131+
132+
The p2p alert system is off by default. To turn on, use `-alert` with
133+
startup configuration.
36134

37135
0.12.1 Change log
38136
=================
@@ -42,31 +140,57 @@ behavior, not code moves, refactors and string updates. For convenience in locat
42140
the code changes and accompanying discussion, both the pull request and
43141
git merge commit are mentioned.
44142

45-
### RPC and REST
143+
### RPC and other APIs
144+
- #7739 `7ffc2bd` Add abandoned status to listtransactions (jonasschnelli)
46145

47146
### Configuration and command-line options
48147

49148
### Block and transaction handling
149+
- #7543 `834aaef` Backport BIP9, BIP68 and BIP112 with softfork (btcdrak)
50150

51151
### P2P protocol and network code
152+
- #7804 `90f1d24` Track block download times per individual block (sipa)
153+
- #7832 `4c3a00d` Reduce block timeout to 10 minutes (laanwj)
52154

53155
### Validation
156+
- #7821 `4226aac` init: allow shutdown during 'Activating best chain...' (laanwj)
157+
- #7835 `46898e7` Version 2 transactions remain non-standard until CSV activates (sdaftuar)
54158

55159
### Build system
160+
- #7487 `00d57b4` Workaround Travis-side CI issues (luke-jr)
161+
- #7606 `a10da9a` No need to set -L and --location for curl (MarcoFalke)
162+
- #7614 `ca8f160` Add curl to packages (now needed for depends) (luke-jr)
163+
- #7776 `a784675` Remove unnecessary executables from gitian release (laanwj)
56164

57165
### Wallet
166+
- #7715 `19866c1` Fix calculation of balances and available coins. (morcos)
58167

59168
### GUI
60169

61170
### Tests and QA
62171

63172
### Miscellaneous
173+
- #7617 `f04f4fd` Fix markdown syntax and line terminate LogPrint (MarcoFalke)
174+
- #7747 `4d035bc` added depends cross compile info (accraze)
175+
- #7741 `a0cea89` Mark p2p alert system as deprecated (btcdrak)
176+
- #7780 `c5f94f6` Disable bad-chain alert (btcdrak)
64177

65178
Credits
66179
=======
67180

68181
Thanks to everyone who directly contributed to this release:
69182

183+
- accraze
184+
- Alex Morcos
185+
- BtcDrak
186+
- Jonas Schnelli
187+
- Luke Dashjr
188+
- MarcoFalke
189+
- Mark Friedenbach
190+
- NicolasDorier
191+
- Pieter Wuille
192+
- Suhas Daftuar
193+
- Wladimir J. van der Laan
70194

71195
As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/).
72196

doc/release-process.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ Note: check that SHA256SUMS itself doesn't end up in SHA256SUMS, which is a spur
196196

197197
- Optionally reddit /r/Dashpay, ... but this will usually sort out itself
198198

199-
- Notify Flare (?) ***TODO*** so that he can start building [https://launchpad.net/~dashpay/+archive/ubuntu/dash](the PPAs) ***TODO***
199+
- Notify flare so that he can start building [the PPAs](https://launchpad.net/~dash.org/+archive/ubuntu/dash)
200200

201201
- Add release notes for the new version to the directory `doc/release-notes` in git master
202202

qa/pull-tester/rpc-tests.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@
7474

7575
#Tests
7676
testScripts = [
77+
'bip68-112-113-p2p.py',
7778
'wallet.py',
7879
'listtransactions.py',
7980
'receivedby.py',
@@ -106,10 +107,13 @@
106107
'invalidblockrequest.py', # TODO: works, needs dash_hash
107108
'invalidtxrequest.py', # TODO: works, needs dash_hash
108109
'abandonconflict.py',
110+
'p2p-versionbits-warning.py',
109111
]
110112
testScriptsExt = [
113+
'bip9-softforks.py',
111114
'bip65-cltv.py',
112115
'bip65-cltv-p2p.py', # TODO: works, needs dash_hash
116+
'bip68-sequence.py',
113117
'bipdersig-p2p.py', # TODO: works, needs dash_hash
114118
'bipdersig.py',
115119
'getblocktemplate_longpoll.py', # FIXME: "socket.error: [Errno 54] Connection reset by peer" on my Mac, same as https://github.com/bitcoin/bitcoin/issues/6651

qa/rpc-tests/abandonconflict.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,12 @@ def run_test(self):
8383
# inputs are still spent, but change not received
8484
newbalance = self.nodes[0].getbalance()
8585
assert(newbalance == balance - Decimal("24.9996"))
86+
# Unconfirmed received funds that are not in mempool, also shouldn't show
87+
# up in unconfirmed balance
88+
unconfbalance = self.nodes[0].getunconfirmedbalance() + self.nodes[0].getbalance()
89+
assert(unconfbalance == newbalance)
90+
# Also shouldn't show up in listunspent
91+
assert(not txABC2 in [utxo["txid"] for utxo in self.nodes[0].listunspent(0)])
8692
balance = newbalance
8793

8894
# Abandon original transaction and verify inputs are available again

0 commit comments

Comments
 (0)