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
- 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
coremodule, some guides to using the
bitcoindRPC 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)
bitcoindRPC 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
nBitscompression 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.confformat with network prefixes and sections (#478)
- It's now possible to use the
bitcoindRPC with zero configuration, assuming you have a
BitcoindRpcClient.fromDataDir()is all you need!
- Utils for AES encryption and decryption (#395)
- Bloop support was added (#412), enabling a better dev experience
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.