Skip to content

@torkelrogstad torkelrogstad released this Jun 7, 2019 · 243 commits to master since this release

Important notes

This release is the first release of Bitcoin-S that's published to Sonatype, making us available on Maven Central. This means there's no need to add custom resolvers to your build configuration. We also had to change the organization name when we publish. This used to be org.bitcoins, this is now org.bitcoin-s. That means your sbt configuration should change slightly. Previously, adding Bitcoin-S looked like this:

libraryDependencies += "org.bitcoins" %% "bitcoin-s-core" % "0.0.4"

This now looks like:

libraryDependencies += "org.bitcoin-s" %% "bitcoin-s-core" % "0.1.0"

Getting the JARs

The JARs are available on Maven Central, and should be automatically downloaded when you add Bitcoin-S through your favorite build tools. You can also combine them yourself:

$ sbt publishLocal # places them in $HOME/.ivy2/local/org/bitcoin-s
$ sbt publishM2 # places them in $HOME/.m2/repository/org/bitcoin-s

Highlights

  • New website - Bitcoin-S has a brand new website now! It's available at https://bitcoin-s.org. It currently contains a user showcase of people using Bitcoin-S in production, some guides to using functionality in the core module, some guides to using the bitcoind RPC client, a contributing guide and the Scaladocs for Bitcoin-S. The website is a work in progress, you can expect more information to be made available there in the coming weeks and months. (#465)
  • Our bitcoind RPC client is updated to support the 0.17 series (#384). This is of course very late, seeing as 0.18 is now released. This will hopefully take shorter time to implement than our 0.17 client 🙂.
  • Mnemonic codes and BIP39 seed support (#353)
  • BIP84, 44 and 32 (HD derivation path standards for legacy, SegWit and SegWit-in-P2SH addresses) - Combined with support for mnemonic codes and BIP39 seeds these BIPs are crucial for implementing a wallet with Bitcoin-S (#444 and #379)
  • Support for nBits compression encoding (#390)
  • Separate between big endian and small endian hash types (#364) - Frustratingly, Satoshi decided that common data structures are encoded differently in the user facing RPC interfaces and the underlying Bitcoin P2P network. This is a common source of bugs, as it's often not clear what encoding we are dealing with. We now differentiate these on the type level.

Minor changes and improvements

  • Natural language syntax for currencies - #440
  • Our Bech32 implementation was reworked, adding support for RegTest addresses from Bitcoin Core (#360)
  • We now support the new bitcoin.conf format with network prefixes and sections (#478)
  • It's now possible to use the bitcoind RPC with zero configuration, assuming you have a bitcoind instance running. BitcoindRpcClient.fromDataDir() is all you need! 🎉 (#478)
  • Utils for AES encryption and decryption (#395)
  • Bloop support was added (#412), enabling a better dev experience

node branch

There's also been a lot of working going into the node branch. This is our feature branch for three new upcoming modules in Bitcoin-S. A wallet, a SPV node and a chain syncing module. These features are not yet released, but we will have exciting news to share about this in the coming weeks.

Thanks

Thanks to @Christewart, @torkelrogstad , @nkohen @piu130 and @floreslorca for contributing to this release.

Assets 2
You can’t perform that action at this time.