From: Mike Hearn <mike@plan99.net>
To: Bitcoin Dev <bitcoin-development@lists.sourceforge.net>
Subject: [Bitcoin-development] bitcoinj 0.7 released
Date: Tue, 19 Feb 2013 23:26:21 +0100 [thread overview]
Message-ID: <CANEZrP30LFDHmJ11JBC5LzY-3fc6ME+bVgBMGcS7zwmj5zcptg@mail.gmail.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 4502 bytes --]
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.
[-- Attachment #2: Type: text/html, Size: 8770 bytes --]
reply other threads:[~2013-02-19 22:26 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CANEZrP30LFDHmJ11JBC5LzY-3fc6ME+bVgBMGcS7zwmj5zcptg@mail.gmail.com \
--to=mike@plan99.net \
--cc=bitcoin-development@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox