Bitcoin Implementation in Scala
Find a file
Chris Stewart 2287c6ced9 Implement caching of bitcoind in the walletTest,nodeTest, and partially bitcoindRpcTest project (#2792)
* Create CachedBitcoind, implement it in FundTransactionHandlingTest

* Add BaseWalletTest, extend it with BitcoinSWalletTest & BitcoinSWalletTestCachedBitcoind, add CachedBitcoinV19 and use it RescanHandlingTest

* Make ProcessBlockTest work with cached bitcoind

* Make trait for CachedBitcoindNewest for the newest version of bitcoind

* Make UTXOLifeCycleTest use cached bitcoind

* Add WalletBloom, WalletSyncTest to use cached bitcoinds

* Add WalletIntegrationTest

* Rework beforeAll() and afterAll() into the super trait like BaseWalletTest

* Add standlone BitcoindFixtures, use it in BitcoindBackendTest

* Use new BitcoindFixtures in BitcoindBlockPollingTest

* Introduce BaseNodeTest, start implementing the usage of cached bitcoinds in the nodeTest project

* Use cached bitcoind's with SpvNodeTest & SpvNodeWithWalletTest

* Fix bug on postgres with reusing database, upsert the genesis header rather than create it

* Get NeutrinoNode tests workign with cached bitcoinds

* Fix NeutrinoNodeWithWallet by destroying wallet state for Postgres

* Add teardown helper method for bitcoind

* Teardown chain project when using node fixtures since node is dependent upon the chain project.

* Turn off parallelExecution again

* Switch the parallelExecution flag to only be set on CI, so we can get better performance when running locally

* Start implementing BitcoindFixtures, use BitcoindFixturesCachedTriple on TestUtilRpcTest

* Fix compiler errors, begin implementing NodePair

* Refactor TestRpcUtilTest to use 2 bitcoinds rather than 2

* Reduce the number of bitcoinds that MultiWalletRpcTest needs from 3 -> 1

* Reduce number of bitcoinds used in WalletRpcTest from 3 -> 2

* Add some documentation

* Try to re-add parallelExecution

* Reduce the number of bitcoinds used in PsbtRpcTest from 3 -> 2

* Disable parallelExecution in Test again

* Make BitcoindV21RpcClientTest & BitcoindV20RpcClientTest reduce bitcoind usage from 2 -> 1

* Make BitcoindV19RpcClienttest reduce bitcoind usage from 2 -> 1

* Rework MempoolRpcTest to use fixtures, add BitcoindVersion to CachedBitcoindCollection

* Make sure clientAccumm has to be specified as a paramter now rather than filling in by default

* Begin parameterizing NodePair/NodeTriple to retain type information for the specific version of bitcoind that was used

* Don't implement version in super trait

* Fix docs

* Fix async issue in V21 test suite

* Append to vectors in CachedBitcoinCollection rather than replace

* Fix rebase issues

* Add scaladocs

* Fix BitcoindV18RpcClient address info test

* Implement fixtures in BitcoindV17RpcClientTest fixtures

* Cleanup v17 PsbtRpcTest

* Reduce bitcoind usage from 3 -> 1 in BitcoindV18RpcClientTest

* Remove abandon transaction test, this allows us to reduce the number of bitcoind's used in MempoolRpcTest from 3 -> 2

* Remove the requirement to inject  BitcoinSAsyncFixtureTest, add it in the test traits explicitly to make things easier. Also add explicit afterAll() method to tear down both the CachedBitcoind & BitcoinSAsyncFixtureTest

* Fix missing Await.result() in BitcoindRpcTest.afterAll()

* Rework MultiWalletRpcTest to use a NodePair

* Rework BlockchainRpcTest to use fixtures

* Rework Client start()/stop() methods. Now use an AtomicBoolean to indicate when a user has requested a client to start/stop rather than sending pings to bitcoind that can fail because the conneciton pool has been shutdown in test cases

* Try my luck with turning on parallelExecution in CI again

* Revert parallelExecution, now testes do not run in parallel on CI

* Only turn off parallelExecution for bitcoindRpcTest

* Adjust build to only have bitcoindRpcTest NOT in run parallel on mac, reduce number of blocks used in BitcoindRpcTestUtil.createNodeSequence

* Run less tests in the rpc test suite as that takes the longest, move them over to node/wallet/dlc test suite on mac osx CI

* Don't run eclair tests in parallel either

* Remove CachedBitcoind from BitcoinSWalletTest

* Fix async bug in test case

* Push to github to force re-run of CI

* Push to github to force re-run of CI

* Push to github to force re-run of CI
2021-03-19 06:37:53 -05:00
.github Implement caching of bitcoind in the walletTest,nodeTest, and partially bitcoindRpcTest project (#2792) 2021-03-19 06:37:53 -05:00
app Move blockhash to tx table from spending info table (#2744) 2021-03-16 10:05:29 -05:00
app-commons Add signed outcome to getevent rpc, fix other small api bugs (#2757) 2021-03-08 10:55:47 -06:00
app-commons-test/src/test/scala/org/bitcoins/commons Add testkit-core module (#2726) 2021-03-02 07:05:21 -06:00
async-utils/src/main/scala/org/bitcoins/asyncutil Move tests out of bitcoindRpcTest that belong in async-utils (#2796) 2021-03-16 07:48:06 -05:00
async-utils-test/src/test/scala/org/bitcoins/asyncutil Move tests out of bitcoindRpcTest that belong in async-utils (#2796) 2021-03-16 07:48:06 -05:00
bench Update scalafmt (#2619) 2021-02-03 16:37:12 -06:00
bitcoin-s-docs Make website publish work with teh latest stable version (#2766) 2021-03-07 14:57:45 -06:00
bitcoind-rpc Implement caching of bitcoind in the walletTest,nodeTest, and partially bitcoindRpcTest project (#2792) 2021-03-19 06:37:53 -05:00
bitcoind-rpc-test Implement caching of bitcoind in the walletTest,nodeTest, and partially bitcoindRpcTest project (#2792) 2021-03-19 06:37:53 -05:00
chain Refactoring chain (#2662) 2021-02-13 14:10:40 -06:00
chain-test/src/test Add testkit-core module (#2726) 2021-03-02 07:05:21 -06:00
core Implement bech32m (#2572) 2021-03-18 18:04:38 -05:00
core-test Implement bech32m (#2572) 2021-03-18 18:04:38 -05:00
crypto Revert "Schnorr sigs for Scala.js (#2784)" (#2802) 2021-03-16 13:19:16 -05:00
crypto-test Revert "Schnorr sigs for Scala.js (#2784)" (#2802) 2021-03-16 13:19:16 -05:00
db-commons Add signed outcome to getevent rpc, fix other small api bugs (#2757) 2021-03-08 10:55:47 -06:00
db-commons-test/src/test/scala/org/bitcoins/db Move blockhash to tx table from spending info table (#2744) 2021-03-16 10:05:29 -05:00
dlc-oracle/src/main Completely remove range event descriptors (#2764) 2021-03-04 15:18:33 -06:00
dlc-oracle-test/src/test/scala/org/bitcoins/dlc/oracle Completely remove range event descriptors (#2764) 2021-03-04 15:18:33 -06:00
docs Implement caching of bitcoind in the walletTest,nodeTest, and partially bitcoindRpcTest project (#2792) 2021-03-19 06:37:53 -05:00
eclair-rpc Create NativeProcessFactory, extend it in both Client.scala & EclairRpcClient.scala (#2800) 2021-03-17 09:23:13 -05:00
eclair-rpc-test 2021 02 25 async utils (#2725) 2021-02-25 13:26:38 -06:00
fee-provider/src/main/scala/org/bitcoins/feeprovider 2020 12 18 enable lint options (#2454) 2021-01-03 08:01:26 -06:00
fee-provider-test/src/test/scala/org/bitcoins/feeprovider Create more of a project structure in org.bitcoins.core.api, move DbR… (#1799) 2020-08-12 06:13:23 -05:00
key-manager Refactoring chain (#2662) 2021-02-13 14:10:40 -06:00
key-manager-test/src/test/scala/org/bitcoins/keymanager Add testkit-core module (#2726) 2021-03-02 07:05:21 -06:00
node Bump timeout on bind to avoid spurious ci failures hopefully (#2791) 2021-03-11 12:24:28 -06:00
node-test/src/test/scala/org/bitcoins/node Implement caching of bitcoind in the walletTest,nodeTest, and partially bitcoindRpcTest project (#2792) 2021-03-19 06:37:53 -05:00
project Implement caching of bitcoind in the walletTest,nodeTest, and partially bitcoindRpcTest project (#2792) 2021-03-19 06:37:53 -05:00
release-notes v0.5.0 release notes (#2384) 2021-02-03 17:59:11 -06:00
secp256k1@e2e7cf2fba Update secp branch with synced java files (#2448) 2020-12-30 17:34:27 -06:00
secp256k1jni Windows Secp Update & fix for parsing Windows paths (#2398) 2020-12-21 16:34:53 -06:00
testkit Implement caching of bitcoind in the walletTest,nodeTest, and partially bitcoindRpcTest project (#2792) 2021-03-19 06:37:53 -05:00
testkit-core Implement bech32m (#2572) 2021-03-18 18:04:38 -05:00
wallet Add Broadcast TxoState (#2735) 2021-03-18 14:16:53 -05:00
wallet-test/src/test Implement caching of bitcoind in the walletTest,nodeTest, and partially bitcoindRpcTest project (#2792) 2021-03-19 06:37:53 -05:00
website 2021 02 10 Website fixes (#2643) 2021-02-11 09:53:45 -06:00
zmq Fix/typos (#2633) 2021-02-07 15:00:25 -06:00
.dockerignore WIP: Docusaurus website (#465) 2019-05-14 18:05:14 -05:00
.gitignore Refactor HDCoinType to be ADT (#2657) 2021-02-12 09:53:43 -06:00
.gitmodules Update Secp256k1 (#1310) 2020-04-14 15:42:58 -05:00
.jvmopts Update all deps that failed because of bad build (#2774) 2021-03-10 06:48:21 -06:00
.scalafmt.conf Update scalafmt (#2619) 2021-02-03 16:37:12 -06:00
build.sbt Implement caching of bitcoind in the walletTest,nodeTest, and partially bitcoindRpcTest project (#2792) 2021-03-19 06:37:53 -05:00
CONTRIBUTING.md WIP: Docusaurus website (#465) 2019-05-14 18:05:14 -05:00
docker-compose.yml Docs: removes blog from website 2019-06-11 12:59:58 +02:00
Dockerfile WIP: Docusaurus website (#465) 2019-05-14 18:05:14 -05:00
inThisBuild.sbt Upgrade scalac to 2.13.5 (#2713) 2021-02-24 07:03:52 -06:00
LICENSE Update LICENSE year (#2474) 2021-01-06 06:41:18 -06:00
README.md 2021 02 19 dockerhub docs (#2693) 2021-02-20 05:24:04 -06:00
try-bitcoin-s.sh Update try-bitcoin-s.sh (#1165) 2020-02-26 07:50:17 -06:00

Bitcoin-S logo Build Status Coverage Status Maven Central Gitter chat

Feature-rich toolkit for making Bitcoin and Lightning applications on the JVM.

For a complete guide on how to get started with Bitcoin-S, see our website at Bitcoin-S.org

Getting started

https://bitcoin-s.org/docs/getting-started

Adding bitcoin-s to your library

The latest release of bitcoin-s is v0.5.0, here is how you can use the dependencies in your projects:

libraryDependencies += "org.bitcoin-s" % "bitcoin-s-secp256k1jni" % "0.5.0"

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

libraryDependencies += "org.bitcoin-s" %% "bitcoin-s-crypto" % "0.5.0"

libraryDependencies += "org.bitcoin-s" %% "bitcoin-s-chain" % "0.5.0"

libraryDependencies += "org.bitcoin-s" %% "bitcoin-s-dlc-oracle" % "0.5.0"

libraryDependencies += "org.bitcoin-s" %% "bitcoin-s-db-commons" % "0.5.0"

libraryDependencies += "org.bitcoin-s" %% "bitcoin-s-fee-provider" % "0.5.0"

libraryDependencies += "org.bitcoin-s" %% "bitcoin-s-bitcoind-rpc" % "0.5.0"

libraryDependencies += "org.bitcoin-s" %% "bitcoin-s-eclair-rpc" % "0.5.0"

libraryDependencies += "org.bitcoin-s" %% "bitcoin-s-key-manager" % "0.5.0"

libraryDependencies += "org.bitcoin-s" %% "bitcoin-s-node" % "0.5.0"

libraryDependencies += "org.bitcoin-s" %% "bitcoin-s-wallet" % "0.5.0"

libraryDependencies += "org.bitcoin-s" %% "bitcoin-s-testkit" % "0.5.0"

libraryDependencies += "org.bitcoin-s" %% "bitcoin-s-zmq" % "0.5.0"

Docker images

We publish docker images to docker hub on every PR merge and tag on github. You can obtain the images for both the app server and oracle server on these docker hub repos

bitcoin-s docker hub repo

oracle-server docker hub repo