bitcoin-s/README.md
Chris Stewart 9dfbc9ed24
version 0.0.3 (#290)
* version 0.0.3

* Fix cross compile issues so we can now compile and publish a dependency for the scala 2.11 series

scalafmt

* bump versions on readme, try to fix scoverage crossversion issue

* Downgrade scoverage to try and get it to work with ci

* Tinker with scoverage versions

* Add suggestion from scoverage people to exclude secp256k1jni from build coverage
2019-01-10 09:07:18 -06:00

3.2 KiB

Build Status Coverage Status IRC NetworkGitter chat

Bitcoin-S

Design Principles

  • Immutable data structures everywhere
  • Algebraic Data Types to allow the compiler to check for exhaustiveness on match statements
  • Using property based testing to test robustness of code
  • Minimize dependencies to reduce attack surface

Projects

  1. core - this is where protocol data structures live, like Transactions, Blocks, or PrivateKeys. For more info read core/README.md

  2. core-test - this is where all test cases for the core project live

  3. rpc - this is a RPC client implementation for bitcoind. For more info read rpc/README.md

  4. eclair-rpc - this is a RPC client implementation for Eclair, which is a Lightning Network implementation. For more information please read eclair-rpc/README.md

  5. bench - benchmarks for Bitcoin-S. For more information please read bench/README.md

  6. testkit - This is a useful testkit for testing Bitcoin related applications. You can spin up Bitcoin and Lightning nodes arbitrarily and set them in specific states. For more information please read testkit/README.md

  7. zmq - bitcoind has a setting that publishes information about the state of the network over ZMQ. This project implements a subscriber that allows you to read and parse that information. For more information see zmq/README.md as well as the official Bitcoin Core ZMQ documentation

Artifacts

You need to add the Bitcoin-S Bintray to your resolvers to be able to access published artifacts.

With sbt, this can be done like this:

resolvers += Resolver.bintrayRepo("bitcoin-s", "bitcoin-s-core"),

Now you should be able to add Bitcoin-S artifacts like this:


"org.bitcoins" % "bitcoin-s-secp256k1jni" % "0.0.3"

"org.bitcoins" %% "bitcoin-s-core" % "0.0.3" withSources() withJavadoc()

"org.bitcoins" %% "bitcoin-s-bitcoind-rpc" % "0.0.3" withSources() withJavadoc()

"org.bitcoins" %% "bitcoin-s-eclair-rpc" % "0.0.3" withSources() withJavadoc()

"org.bitcoins" %% "bitcoin-s-testkit" % "0.0.3" withSources() withJavadoc()

"org.bitcoins" %% "bitcoin-s-zmq" % "0.0.3" withSources() withJavadoc()