1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
|
Received: from sog-mx-1.v43.ch3.sourceforge.com ([172.29.43.191]
helo=mx.sourceforge.net)
by sfs-ml-1.v29.ch3.sourceforge.com with esmtp (Exim 4.76)
(envelope-from <mh.in.england@gmail.com>) id 1U7vdx-0004zn-HK
for bitcoin-development@lists.sourceforge.net;
Tue, 19 Feb 2013 22:26:33 +0000
Received-SPF: pass (sog-mx-1.v43.ch3.sourceforge.com: domain of gmail.com
designates 209.85.214.178 as permitted sender)
client-ip=209.85.214.178; envelope-from=mh.in.england@gmail.com;
helo=mail-ob0-f178.google.com;
Received: from mail-ob0-f178.google.com ([209.85.214.178])
by sog-mx-1.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128)
(Exim 4.76) id 1U7vdr-000894-BU
for bitcoin-development@lists.sourceforge.net;
Tue, 19 Feb 2013 22:26:33 +0000
Received: by mail-ob0-f178.google.com with SMTP id wd20so6995701obb.23
for <bitcoin-development@lists.sourceforge.net>;
Tue, 19 Feb 2013 14:26:22 -0800 (PST)
MIME-Version: 1.0
X-Received: by 10.60.171.5 with SMTP id aq5mr8705516oec.38.1361312781967; Tue,
19 Feb 2013 14:26:21 -0800 (PST)
Sender: mh.in.england@gmail.com
Received: by 10.76.86.169 with HTTP; Tue, 19 Feb 2013 14:26:21 -0800 (PST)
Date: Tue, 19 Feb 2013 23:26:21 +0100
X-Google-Sender-Auth: qC_xLePWs-lZzjD-gfuz7Zz_dYo
Message-ID: <CANEZrP30LFDHmJ11JBC5LzY-3fc6ME+bVgBMGcS7zwmj5zcptg@mail.gmail.com>
From: Mike Hearn <mike@plan99.net>
To: Bitcoin Dev <bitcoin-development@lists.sourceforge.net>
Content-Type: multipart/alternative; boundary=bcaec5523dcccc20d304d61b540c
X-Spam-Score: -0.5 (/)
X-Spam-Report: Spam Filtering performed by mx.sourceforge.net.
See http://spamassassin.org/tag/ for more details.
-1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for
sender-domain
0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider
(mh.in.england[at]gmail.com)
-0.0 SPF_PASS SPF: sender matches SPF record
0.0 HTML_OBFUSCATE_05_10 BODY: Message is 5% to 10% HTML obfuscation
1.0 HTML_MESSAGE BODY: HTML included in message
0.1 DKIM_SIGNED Message has a DKIM or DK signature,
not necessarily valid
-0.1 DKIM_VALID Message has at least one valid DKIM or DK signature
X-Headers-End: 1U7vdr-000894-BU
Subject: [Bitcoin-development] bitcoinj 0.7 released
X-BeenThere: bitcoin-development@lists.sourceforge.net
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: <bitcoin-development.lists.sourceforge.net>
List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
<mailto:bitcoin-development-request@lists.sourceforge.net?subject=unsubscribe>
List-Archive: <http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development>
List-Post: <mailto:bitcoin-development@lists.sourceforge.net>
List-Help: <mailto:bitcoin-development-request@lists.sourceforge.net?subject=help>
List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
<mailto:bitcoin-development-request@lists.sourceforge.net?subject=subscribe>
X-List-Received-Date: Tue, 19 Feb 2013 22:26:33 -0000
--bcaec5523dcccc20d304d61b540c
Content-Type: text/plain; charset=UTF-8
I'm pleased to announce the release of version 0.7 of the bitcoinj Java
library for working with Bitcoin. Bitcoinj forms the foundation of
MultiBit, Bitcoin Wallet for Android, SatoshiDice and more.
To get bitcoinj 0.7, check out our source from git and then run *git reset
--hard a9bd8631b904*. This will place you on the 0.7 release in a secure
manner. This paragraph was written on Tuesday 19th February 2013 and is
signed with the following key, which will be used in all release
announcements in future: 16vSNFP5Acsa6RBbjEA7QYCCRDRGXRFH4m.
Signature for the last
paragraph: IMvY1FsQobjU2t83ztQL3CTA+V+7WWKBFwMC+UWKCOMyTKA+73iSsFnCHdbFjAOEFMQH/NvJMTgGeVCSV/F9hfs=
If you want to, you can check that the original announcement mail sent to
bitcoinj@googlegroups.com is correctly signed with the google.com DKIM key,
to establish a full chain of trust.
*Release notes*
- Thanks to Matt Corallo, we now support a* fully verifying mode* in
addition to simplified verification. This is a tremendous amount of work
that wouldn't have happened without Matt! Right now, we strongly discourage
anyone from using it for mining (which is not supported out of the box
anyway). Use it in a production environment only if you know what you're
doing and are willing to risk losing money. If you do use it, let us know
so we can contact you when problems are discovered. Read the documentation
carefully before you begin.
- Also thanks to Matt, *Bloom filtering* is now implemented and
activated by default. When bitcoinj connects to a peer that supports Bloom
filtering, only transactions relevant to the wallet will be downloaded
which makes bandwidth usage scale with the size of your wallet, not global
system activity. A configurable false positive ratio allows you to trade
off bandwidth vs privacy. App developers don't need to do anything to take
advantage of this, it is enabled automatically.
- PeerGroup now pings its peers and calculates moving averages of the
ping times. Ping time, versions and block heights are taken into account
when selecting the peer to download the chain from.
- You can now customize which outputs the wallet uses to create spends.
The new default coin selector object allows you to spend unconfirmed change
as long as it's been seen propagating across the network, addressing a
common end-user pain point in wallet apps.
- Optimized networking code for faster startup.
- A new PeerMonitor example app shows how to put properties of connected
peers into a GUI.
- The Wallet is now decoupled from the BlockChain using the new
BlockChainListener interface. This will simplify the development of some
apps that want to process transactions but not maintain an actual wallet.
- The dependencies of broadcast transactions are now downloaded and risk
analyzed. At the moment they are only being checked for having a timelock.
In future we may also analyze tree depth. The goal is to make certain kinds
of protocol abuse harder. Wallets will reject timelocked transactions by
default, this can be overridden via a property.
- You can now create timelocked transactions with
WalletTool?<http://code.google.com/p/bitcoinj/w/edit/WalletTool> if
you want to.
- Compressed public keys are now used by default.
- Support testnet3
- Support bitcoin-qt compatible message signing and verification.
- ECDSA key recovery is now implemented and allows you to obtain the
public key from an extended signature. If the signature is not extended
then there are multiple key possibilities returned.
- Many bugfixes and minor improvements
API changes:
- ECKey.sign() now takes a Sha256Hash as an argument and returns an
ECDSASignature object in response. To get DER encoded signatures, use
the encodeToDER() method of ECDSASignature.
- ECKey.publicKeyFromPrivate now takes an additional compressed
parameter.
- PeerGroup.start()/PeerGroup.shutDown() now run asynchronously and
return futures you can use to wait for them. You cannot restart a
PeerGroup once it has been shut down any more.
*Credits*
*
*
Thanks to Matt Corallo (a.k.a. BlueMatt) for his huge contributions to this
release.
As always, thanks to Andreas Schildbach for his thorough testing, ideas and
high volume of quality bug reports. Also thanks to Jim Burton for the same
reasons.
Finally thanks to Ben (piuk) of blockchain.info for funding the ECDSA key
recovery feature.
--bcaec5523dcccc20d304d61b540c
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><span style=3D"font-family:arial,sans-serif;font-size:13px=
">I'm pleased to announce the release of version 0.7 of the bitcoinj Ja=
va library for working with Bitcoin. Bitcoinj forms the foundation of Multi=
Bit, Bitcoin Wallet for Android, SatoshiDice and more.</span><div style=3D"=
font-family:arial,sans-serif;font-size:13px">
<br></div><div style=3D"font-family:arial,sans-serif;font-size:13px">To get=
bitcoinj 0.7, check out our source from git and then run=C2=A0<b>git reset=
--hard=C2=A0a9bd8631b904</b>. This will place you on the 0.7 release in a =
secure manner. This paragraph was written on Tuesday 19th February 2013 and=
is signed with the following key, which will be used in all release announ=
cements in future:=C2=A016vSNFP5Acsa6RBbjEA7QYCCRDRGXRFH4m.</div>
<div style=3D"font-family:arial,sans-serif;font-size:13px"><br></div><div s=
tyle=3D"font-family:arial,sans-serif;font-size:13px">Signature for the last=
paragraph:=C2=A0IMvY1FsQobjU2t83ztQL3CTA+V+7WWKBFwMC+UWKCOMyTKA+73iSsFnCHd=
bFjAOEFMQH/NvJMTgGeVCSV/F9hfs=3D</div>
<div style=3D"font-family:arial,sans-serif;font-size:13px"><br></div><div s=
tyle=3D"font-family:arial,sans-serif;font-size:13px">If you want to, you ca=
n check that the original announcement mail sent to <a href=3D"mailto:bitco=
inj@googlegroups.com">bitcoinj@googlegroups.com</a> is correctly signed wit=
h the=C2=A0<a href=3D"http://google.com/" target=3D"_blank">google.com</a>=
=C2=A0DKIM key, to establish a full chain of trust.</div>
<div style=3D"font-family:arial,sans-serif;font-size:13px"><br></div><div s=
tyle=3D"font-family:arial,sans-serif;font-size:13px"><b>Release notes</b></=
div><div style=3D"font-family:arial,sans-serif;font-size:13px"><ul style=3D=
"padding-left:25px;max-width:62em">
<li style=3D"margin-left:15px;margin-bottom:0.3em">Thanks to Matt Corallo, =
we now support a<b>=C2=A0fully verifying mode</b>=C2=A0in addition to simpl=
ified verification. This is a tremendous amount of work that wouldn't h=
ave happened without Matt! Right now, we strongly discourage anyone from us=
ing it for mining (which is not supported out of the box anyway). Use it in=
a production environment only if you know what you're doing and are wi=
lling to risk losing money. If you do use it, let us know so we can contact=
you when problems are discovered. Read the documentation carefully before =
you begin.</li>
<li style=3D"margin-left:15px;margin-bottom:0.3em">Also thanks to Matt,=C2=
=A0<b>Bloom filtering</b>=C2=A0is now implemented and activated by default.=
When bitcoinj connects to a peer that supports Bloom filtering, only trans=
actions relevant to the wallet will be downloaded which makes bandwidth usa=
ge scale with the size of your wallet, not global system activity. A config=
urable false positive ratio allows you to trade off bandwidth vs privacy. A=
pp developers don't need to do anything to take advantage of this, it i=
s enabled automatically.</li>
<li style=3D"margin-left:15px;margin-bottom:0.3em"><tt style=3D"font-family=
:Monaco,'DejaVu Sans Mono','Bitstream Vera Sans Mono','=
Lucida Console',monospace;font-size:12px;max-width:66em">PeerGroup</tt>=
=C2=A0now pings its peers and calculates moving averages of the ping times.=
Ping time, versions and block heights are taken into account when selectin=
g the peer to download the chain from.</li>
<li style=3D"margin-left:15px;margin-bottom:0.3em">You can now customize wh=
ich outputs the wallet uses to create spends. The new default coin selector=
object allows you to spend unconfirmed change as long as it's been see=
n propagating across the network, addressing a common end-user pain point i=
n wallet apps.</li>
<li style=3D"margin-left:15px;margin-bottom:0.3em">Optimized networking cod=
e for faster startup.</li><li style=3D"margin-left:15px;margin-bottom:0.3em=
">A new=C2=A0<tt style=3D"font-family:Monaco,'DejaVu Sans Mono',=
9;Bitstream Vera Sans Mono','Lucida Console',monospace;font-siz=
e:12px;max-width:66em">PeerMonitor</tt>=C2=A0example app shows how to put p=
roperties of connected peers into a GUI.</li>
<li style=3D"margin-left:15px;margin-bottom:0.3em">The Wallet is now decoup=
led from the=C2=A0<tt style=3D"font-family:Monaco,'DejaVu Sans Mono'=
;,'Bitstream Vera Sans Mono','Lucida Console',monospace;fon=
t-size:12px;max-width:66em">BlockChain</tt>=C2=A0using the new=C2=A0<tt sty=
le=3D"font-family:Monaco,'DejaVu Sans Mono','Bitstream Vera San=
s Mono','Lucida Console',monospace;font-size:12px;max-width:66e=
m">BlockChainListener</tt>=C2=A0interface. This will simplify the developme=
nt of some apps that want to process transactions but not maintain an actua=
l wallet.</li>
<li style=3D"margin-left:15px;margin-bottom:0.3em">The dependencies of broa=
dcast transactions are now downloaded and risk analyzed. At the moment they=
are only being checked for having a timelock. In future we may also analyz=
e tree depth. The goal is to make certain kinds of protocol abuse harder. W=
allets will reject timelocked transactions by default, this can be overridd=
en via a property.</li>
<li style=3D"margin-left:15px;margin-bottom:0.3em">You can now create timel=
ocked transactions with WalletTool<a href=3D"http://code.google.com/p/bitco=
inj/w/edit/WalletTool" target=3D"_blank" style=3D"color:rgb(0,0,204)">?</a>=
=C2=A0if you want to.</li>
<li style=3D"margin-left:15px;margin-bottom:0.3em">Compressed public keys a=
re now used by default.</li><li style=3D"margin-left:15px;margin-bottom:0.3=
em">Support testnet3</li><li style=3D"margin-left:15px;margin-bottom:0.3em"=
>Support bitcoin-qt compatible message signing and verification.</li>
<li style=3D"margin-left:15px;margin-bottom:0.3em">ECDSA key recovery is no=
w implemented and allows you to obtain the public key from an extended sign=
ature. If the signature is not extended then there are multiple key possibi=
lities returned.</li>
<li style=3D"margin-left:15px;margin-bottom:0.3em">Many bugfixes and minor =
improvements</li></ul><p style=3D"line-height:1.25em;max-width:64em">API ch=
anges:</p><ul style=3D"padding-left:25px;max-width:62em"><li style=3D"margi=
n-left:15px;margin-bottom:0.3em">
<tt style=3D"font-family:Monaco,'DejaVu Sans Mono','Bitstream V=
era Sans Mono','Lucida Console',monospace;font-size:12px;max-wi=
dth:66em">ECKey.sign()</tt>=C2=A0now takes a=C2=A0<tt style=3D"font-family:=
Monaco,'DejaVu Sans Mono','Bitstream Vera Sans Mono','L=
ucida Console',monospace;font-size:12px;max-width:66em">Sha256Hash</tt>=
=C2=A0as an argument and returns an=C2=A0<tt style=3D"font-family:Monaco,&#=
39;DejaVu Sans Mono','Bitstream Vera Sans Mono','Lucida Con=
sole',monospace;font-size:12px;max-width:66em">ECDSASignature</tt>=C2=
=A0object in response. To get DER encoded signatures, use the=C2=A0<tt styl=
e=3D"font-family:Monaco,'DejaVu Sans Mono','Bitstream Vera Sans=
Mono','Lucida Console',monospace;font-size:12px;max-width:66em=
">encodeToDER()</tt>=C2=A0method of=C2=A0<tt style=3D"font-family:Monaco,&#=
39;DejaVu Sans Mono','Bitstream Vera Sans Mono','Lucida Con=
sole',monospace;font-size:12px;max-width:66em">ECDSASignature</tt>.</li=
>
<li style=3D"margin-left:15px;margin-bottom:0.3em"><tt style=3D"font-family=
:Monaco,'DejaVu Sans Mono','Bitstream Vera Sans Mono','=
Lucida Console',monospace;font-size:12px;max-width:66em">ECKey.publicKe=
yFromPrivate</tt>=C2=A0now takes an additional compressed parameter.</li>
<li style=3D"margin-left:15px;margin-bottom:0.3em"><tt style=3D"font-family=
:Monaco,'DejaVu Sans Mono','Bitstream Vera Sans Mono','=
Lucida Console',monospace;font-size:12px;max-width:66em">PeerGroup.star=
t()/PeerGroup.shutDown()</tt>=C2=A0now run asynchronously and return future=
s you can use to wait for them. You cannot restart a<tt style=3D"font-famil=
y:Monaco,'DejaVu Sans Mono','Bitstream Vera Sans Mono','=
;Lucida Console',monospace;font-size:12px;max-width:66em">PeerGroup</tt=
>=C2=A0once it has been shut down any more.</li>
</ul><div><font color=3D"#000000" face=3D"arial, sans-serif"><b>Credits</b>=
</font></div><div><font color=3D"#000000" face=3D"arial, sans-serif"><b><br=
></b></font></div><div><font color=3D"#000000" face=3D"arial, sans-serif">T=
hanks to Matt Corallo (a.k.a. BlueMatt) for his huge contributions to this =
release.</font></div>
<div><font color=3D"#000000" face=3D"arial, sans-serif"><br></font></div><d=
iv><font color=3D"#000000" face=3D"arial, sans-serif">As always, thanks to =
Andreas Schildbach for his thorough testing, ideas and high volume of quali=
ty bug reports. Also thanks to Jim Burton for the same reasons.</font></div=
>
<div><font color=3D"#000000" face=3D"arial, sans-serif"><br></font></div><d=
iv><font color=3D"#000000" face=3D"arial, sans-serif">Finally thanks to Ben=
(piuk) of=C2=A0<a href=3D"http://blockchain.info/" target=3D"_blank">block=
chain.info</a>=C2=A0for funding the ECDSA key recovery feature.</font></div=
>
</div></div>
--bcaec5523dcccc20d304d61b540c--
|