public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: Kristov Atlas <kristovatlas.lists@gmail.com>
To: Mike Hearn <mike@plan99.net>
Cc: Bitcoin Dev <bitcoin-development@lists.sourceforge.net>
Subject: Re: [Bitcoin-development] bitcoinj 0.12
Date: Sat, 4 Oct 2014 02:44:30 -0400	[thread overview]
Message-ID: <CAGH37SJ_vdpM6iWbegggRULVKkg7GV=yNQafWv-hyC4MbfccvA@mail.gmail.com> (raw)
In-Reply-To: <E3D224C5-302E-494C-92CD-7DEC85284201@plan99.net>

[-- Attachment #1: Type: text/plain, Size: 10491 bytes --]

Congrats, and thanks for your hard work.

I hate to reply to a release that includes a huge number of new features
with yet another feature request, so -- with apologies -- any plans for
bitcoinj to support stealth address sending and/or receiving?

https://wiki.unsystem.net/en/index.php/DarkWallet/Stealth

Sincerely,
Kristov Atlas
On Oct 3, 2014 8:50 AM, "Mike Hearn" <mike@plan99.net> wrote:

> I’m pleased to announce version 0.12 of bitcoinj, one of the worlds most
> popular Bitcoin libraries. It is used by at least four Android wallets,
> three desktop wallets, blockchain.info, Circle, biteasy, CryptoCorp,
> Lighthouse, BlueMatt’s relay network, bitpos, countless alt coin wallets,
> for academic research projects and much more.
>
> This release represents 8 months of work. The biggest new feature is HD
> wallets. Other notable enhancements include a bundled Tor client that can
> be activated with one line of code, support for multisig wallets, much
> faster and deterministic ECDSA, many API improvements and big upgrades to
> the included GUI wallet which can be seen in a new screencasted tutorial
> <https://bitcoinj.github.io/simple-gui-wallet>.
>
> The commit hash of bitcoinj 0.12
> is 83a9a71f3fff3f223d0737ad758b519a39dbbd62.
>
> New in this release
>
>    - Privacy enhancements:
>       - Wallets are now hierarchical and deterministic (HD) by default,
>       using the BIP32 specification. Support for mnemonic codes (BIP 39) is also
>       included. Change and receive addresses are no longer being reused. Old
>       wallets are upgraded in place using the private key of the oldest
>       non-rotating key as the seed bytes, so old backups remain valid.
>       - Thanks to devrandom, we have an integrated Tor mode using the
>       Orchid library. The user does not have to install the Tor client as it’s
>       all pure Java. WalletAppKit users can enable usage of Tor with a single
>       line of code. This support should be considered experimental for now.
>    - Thanks to Kosta Korenkov, we have an experimental multisig wallets
>    implementation. Multisig (also “married”) wallets are HD wallets that are
>    connected to a third party risk analysis service or device. When married,
>    the wallet tracks multiple BIP32 key trees, keeps them in sync and starts
>    vending P2SH addresses.
>       - As part of this work, transaction signing is now pluggable.
>       TransactionSigner implementations can be added to the wallet and will be
>       serialized into and out of the users saved wallet file. Signers are given a
>       transaction to sign in sequence. This is intended for risk analysis
>       providers to provide a class that talks to their server to get a signature
>       of the right form, so that all bitcoinj based wallets can be easily
>       upgraded to support the new provider.
>    - Reject messages are now deserialized and logged, though not yet
>    exposed in the API.
>    - Upgraded to Guava 16 and Bouncy Castle 1.51. Thanks to Peter Dettman
>    and the rest of the Bouncy Castle team, bitcoinj now uses deterministic
>    ECDSA for signing and we’re now using an accelerated secp256k1
>    implementation that exploits the special properties of this curve, for
>    dramatically faster calculations.
>    - Payment protocol code improvements: Some X.509 utility code was
>    refactored out of PaymentSession for general usage. StartCom was added to
>    the default trust store which was promoted to override the system trust
>    store on non-Android platforms. A command line tool to dump requests to
>    stdout was added.
>    - Thanks to Andreas Schildbach:
>       - We are now BIP62 (canonical push encodings) compliant.
>       - A new Coin class replaces usage of BigInteger for marking values
>       that are quantities of bitcoin. Formatting has moved into the new
>       MonetaryFormat class.
>       - The wallet now saves the fee paid on transactions we calculated
>       ourselves. This is useful for putting it into a wallet user interface.
>       - Transactions can have user memos and exchange rates attached,
>       that will be saved by the wallet.
>       - Support for decrypting BIP 38 protected private keys has been
>       added.
>       - Checkpoints can now be stored textually as well as in the old
>       binary format.
>    - There is also a new BtcFormat API that provides an alternative to
>    MonetaryFormat that plugs in to the java.text framework.
>    - Added new DNS seed from Addy Yeow.
>    - Wallets can now have string->byte[] mappings attached to them, for
>    lighter weight extensions.
>    - Thanks to Richard Green, there is now a Python version of the
>    ForwardingService program from the getting started tutorial. This shows how
>    to use bitcoinj from Python using the Jython interpreter.
>    - bitcoinj now probes localhost for a Bitcoin node and automatically
>    uses that instead of the P2P network, when present. This means any bitcoinj
>    based app can be easily upgraded from SPV to full security just by running
>    Core at the same time: no setup needed.
>    - Thanks to Michael Bumann, there are now more example apps showing
>    how to use parts of the API.
>    - WalletTemplate/WalletAppKit improvements. WalletTemplate is a demo
>    app that shows how to create a cross-platform GUI wallet with a modern
>    style and 60fps animations. WalletAppKit is a very high level API for
>    creating apps that have a Bitcoin wallet:
>       - Now supports mnemonic code and restore from seed words. A date
>       picker is provided to cut down on the amount of chain that needs to be
>       rescanned.
>       - Support for encrypting wallets. Password is requested when
>       needed. The difficulty of the scrypt function is selected to always take a
>       fixed number of seconds even if hardware gets more powerful.
>       - Some new animation and utility code backported from Lighthouse.
>       - Tor support
>    - Thanks to Martin Zachrison, the micropayment channels implementation
>    has received various improvements.
>    - Thanks to Eric Tierney (Circle), the Postgres store can now take a
>    custom schema.
>    - The Bloom filtering API has been extended so FilteredBlock objects
>    can now be produced from Block objects given a BloomFilter. Previously
>    there was support for client-side Bloom usage but no implementation of the
>    generation part.
>    - Many other bugfixes, cleanups, minor tweaks and small new APIs.
>
> *Documentation and tutorials*
>
>    - A JavaScript tutorial <https://bitcoinj.github.io/getting-started-js> has
>    been added, showing how to use bitcoinj from this language. More tutorials
>    in other languages will come in future.
>    - The “Working with the wallet
>    <https://bitcoinj.github.io/working-with-the-wallet>” document has
>    been significantly extended to cover encryption, watching wallets, HD
>    wallets and multisig/married wallets.
>    - A new document and accompanying screencast
>    <https://bitcoinj.github.io/simple-gui-wallet> shows how to extend the
>    WalletTemplate app to have a transactions list, and then make a
>    native/bundled packages that don’t need the user to install Java. By
>    following this tutorial you will learn how to make a basic cross platform
>    desktop wallet of your own.
>    - All other docs were refreshed to the latest APIs.
>
> *API changes*
>
>    - The package name has changed to org.bitcoinj and the core Maven
>    artifact name is now “bitcoinj-core”. You can auto-port most of your code
>    by running find . -name '*.java' \| xargs sed -i .bak
>    's/com.google.bitcoin./import org.bitcoinj./g
>    - Wallet.completeTx now throws more precise unchecked exceptions in
>    edge cases, instead of IllegalArgumentException.
>    - The use of BigInteger to represent quantities of Bitcoin has been
>    replaced with the more efficient, type safe and useful class Coin. Coin is
>    mostly source compatible with BigInteger so you can probably just do a
>    search and replace to update your codebase.
>    Utils.bitcoinValueToFriendlyString and friends moved to CoinFormat.
>    - NetworkParameters.getProofOfWorkLimit was renamed to getMaxTarget
>    for consistency with other Bitcoin codebases.
>    - The library no longer uses the misleading term “nanocoins” to mean
>    satoshis (the old term predated the use of the word satoshi to describe the
>    smallest possible amount of bitcoin).
>    - TransactionConfidence no longer tracks total work done.
>    - Because outputs are now shuffled any code during that assumes the
>    ordering is preserved will break. You can set the shuffleOutputs field of
>    SendRequest to false to disable this behaviour if you need to.
>    - The ECKey and HD API’s have changed quite a bit: several
>    constructors were replaced with clearer static factory methods that make it
>    more obvious how their parameters are interpreted. The new methods don’t
>    change their behaviour depending on the pattern of nulls passed into them.
>    - Some unit testing utilities have been moved to the new testing
>    subpackage and cleaned up/rearranged. It should be easier to write unit
>    tests for your app that need a simulated network now. DeterministicKey now
>    derives from ECKey.
>    - We now use Utils.HEX.encode() and Utils.HEX.decode() to do
>    translation to and from base 16.
>    - Transaction.hashTransactionForSignature was renamed to just
>    hashForSignature.
>    - The subVer string sent by bitcoinj now has a lower cased first
>    component.
>
>
>
>
> ------------------------------------------------------------------------------
> Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
> Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
> Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
> Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
>
> http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
> _______________________________________________
> Bitcoin-development mailing list
> Bitcoin-development@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>
>

[-- Attachment #2: Type: text/html, Size: 13730 bytes --]

  parent reply	other threads:[~2014-10-04  6:44 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-03 12:49 [Bitcoin-development] bitcoinj 0.12 Mike Hearn
2014-10-03 13:02 ` Pavol Rusnak
2014-10-03 13:25 ` Wladimir
2014-10-03 23:29 ` Tom Harding
2014-10-04  6:44 ` Kristov Atlas [this message]
2014-10-04 13:26   ` Mike Hearn

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='CAGH37SJ_vdpM6iWbegggRULVKkg7GV=yNQafWv-hyC4MbfccvA@mail.gmail.com' \
    --to=kristovatlas.lists@gmail.com \
    --cc=bitcoin-development@lists.sourceforge.net \
    --cc=mike@plan99.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