* Move things around, remove redundancy * Add more stuff to release notes * Finish section paragraphs * Add caveat about lnd rpc * Add latest commits
21 KiB
v0.6.0 - Javascript!
Running Bitcoin-S
If you want to run the standalone server binary, after verifying gpg signatures, you
can unzip bitcoin-s-server-0.6.0.zip
and then run it with ./bin/bitcoin-s-server
to start the node. You will need to
configure the node properly first, you can find example
configurations here.
You can then unzip the bitcoin-s-cli-0.6.0.zip
folder and start using the bitcoin-s-cli
like this:
./bin/bitcoin-s-cli --help
Usage: bitcoin-s-cli [options] [<cmd>]
-n, --network <value> Select the active network.
--debug Print debugging information
--rpcport <value> The port to send our rpc request to on the server
-h, --help Display this help message and exit
For more information on what commands bitcoin-s-cli
supports check the documentation, here is where to
start: https://bitcoin-s.org/docs/next/applications/server#server-endpoints
Verifying signatures
This release is signed with Chris's signing key with
fingerprint 339A49229576050819083EB3F99724872F822910
To do the verification, first hash the executable using sha256sum
. You should check that the result is listed in
the SHA256SUMS.asc
file next to its file name. After doing that you can use gpg --verify
to authenticate the
signature.
Example:
UPDATE ME!!!!!!!
$ sha256sum bitcoin-s-server-0.6.0.tgz
aa1084edb5fcd3d1dbcafe0d0fba787abf4cd455bbe38809bd9a65a49c0cd0eb bitcoin-s-server-0.6.0.tgz
$ gpg --verify SHA256SUMS.asc
gpg: Signature made Thu 24 Sep 2020 12:49:39 PM CDT
gpg: using RSA key 339A49229576050819083EB3F99724872F822910
gpg: issuer "stewart.chris1234@gmail.com"
gpg: Good signature from "Chris Stewart <stewart.chris1234@gmail.com>"
Website
Releases
https://repo1.maven.org/maven2/org/bitcoin-s/
Snapshot releases
https://oss.sonatype.org/content/repositories/snapshots/org/bitcoin-s/
Executive Summary
This release support scalajs for both the crypto
and core
module. You can now use these modules from javascript.
We now support docker for our oracleServer and appServer projects.
Follow these links for docker builds for appServer
and oracleServer
We support the latest bitcoind rpc client (0.21.1
) that has the taproot activation code baked into it.
New modules
We added a few new modules in the 0.6. We will provide brief descriptions for the new modules below.
CoreJS & CryptoJS
This are scalajs compatible modules for our crypto
and core
projects.
This means that you can now use the crypto
and core
modules in both
the browser and nodejs runtimes.
TestkitCore
We split testkit
into two modules this release. Now testkitcore
is scalajs
compatible, while testkit
still takes in heavier weight JVM dependencies. testkitcore
is
used to test the scalajs projects like cryptoJS
and coreJS
.
c6c4e83e9e
Remove logging from testkit core (#2813)
1959495cec
Add testkit-core module (#2726)
Lnd rpc client
This is a new lnd rpc client for the bitcoin-s project. You can now interact with a lnd daemon using bitcoin-s.
Not all lnd rpc functions are implemented as of this release.
8ec93c6632
Add protoc exception for apples new chip arch. This requires protoc to be built manually as they do not natively ship m1 support yet (#3013)
b874c1c54d
Add Lnd macaroon to GRPC client settings (#2996)
07e0b19ec6
Add GetTransactions funciton to lnd (#2959)
be14de459e
Fix lnd build warning (#2899)
5310efc5aa
Fix parsing comments in LndConfig (#2864)
825024fa1a
Add sendouputs function to lnd rpc (#2858)
4055de7690
Inital LND rpc with some tests (#2836)
AsyncUtil
This is basic async functionality that is compatible with scalajs. This is used by testkitcore
to test async code.
65cb0d1615
Move tests out of bitcoindRpcTest that belong in async-utils (#2796)
e06c9e44cc
2021 03 09 async utils tests (#2781)
7a068ac036
2021 02 25 async utils (#2725)
Suredbits Oracle Explorer Client
This is an implementation of our API for the oracle server. You can now use this to post announcements, and attestations to the oracle explorer. For more information on the API please see the docs.
eab5e51f34
Fix ExplorerEnv from string (#2968)
7b600bb5ba
Add get oracle name to explorer client (#2969)
3916a0b58e
2021 04 07 issue 2875 (#2879)
ac495647d9
Add website url to ExplorerEnv (#2868)
7968b234b7
Rework oracle explorer client to use new api paths (#2866)
a4454e83a1
Add helper functions for hashing annoucements for SbExplorerClient (#2861)
49b6d39ab4
Implement Oracle Explorer Client (#2838)
Scripts
This is a new module that provides useful scripts to run with bitcoin-s. We have two as of the time of this writing
ScanBitcoind
- scans against bitcoind with a height range. You need bitcoind connection configured in yourbitcoin-s.conf
ZipDatadir
- compresses the bitcoin-s datadir into a.zip
file
9ecea9f710
2021 04 24 bitcoin s scripts (#2961)
136d6f50f9
2021 04 19 Zip Bitcoin-s datadir (#2927)
Existing modules
App server
The primary changes in appServer
are api bug fixes, adding new endpoints (estimateee
)
and using akka streams to improve efficiency when processing blocks from bitcoind.
84661bd122
Refactor BitcoinSRunner to use StartStop[Async] (#2986)
bf831ae32e
Fix lockunspent RPC (#2984)
6fbaf9f9ce
Add estimate fee cli command (#2983)
105942efa2
Use filters for bitcoind backend syncing if available (#2926)
0aa32916ab
Implement workaround for spendinginfodb by rescanning to find missing spendingTxId (#2918)
4e1ace2706
2021 04 18 Use akka streams in BitcoindRpcBackendUtil.syncWalletToBitcoind (#2916)
b1be3347c9
Fix ZMQ Config with bitcoind backend (#2897)
Crypto
The primary changes in the crypto module are adding support for ecdsa adaptor signatures which are a fundamental primitive discreet log contracts.
The other major change in the crypto module is adding support for scalajs. To implement
this we decided to use bcrypto
as the javascript implementation of crypto.
To do this, we now have a CryptoRuntime
trait that gives an interface to be implemented against
for generic crypto runtimes support in bitcoin-s.
7fd9aca304
Add Schnorr and Adaptor Secp Bindings and Update Adaptor (#2885)
c2409b46c4
Silence scalajs warnings for org.bitcoins.crypto package (#2822)
e6899b20b1
Made ECPrivateKey signing synchronous and got src compiling (#2652)
85f6ee889c
Adaptor signatures for Scala.js (#2794)
911fca5825
Schnorr js (#2805)
78448b277c
Revert "Schnorr sigs for Scala.js (#2784)" (#2802)
8e7bde0ed9
Schnorr sigs for Scala.js (#2784)
7e23eecb20
SipHash for Scala.js (#2797)
5a2f95c38e
WIP: Implement bcrypto facades (#2743)
e59057483f
Resturcutre cryptoTest & coreTest to work with scalajs build (#2731)
5ba7b553b0
2021 02 27 dersignatureutil mv (#2730)
c90f318fd7
Refactor crypto module to be compatible with Scala.js part 1 (#2719)
b1fc575ff5
CryptoRuntime abstraction (#2658)
Core
This release begins incorporating discreet log contract data structures in our core module.
This module also now supports scalajs.
There are also performance improvements and bug fixes in this release for core
279b93f9e0
Rework P2SHScriptSignature.isStandardNonP2SH() (#2963)
a3954dbcae
2021 04 17 spendinfodb invariant (#2912)
8b8d5dcc0e
Fix conversion from sats/vb to sats/kw (#2895)
85fb931cba
Implement BIP32Path.fromHardenedString(). (#2886)
68a82deac3
Initial DLC Templates (#2847)
fa80f36d2f
Get all of Core working with JS (#2826)
8cd481650d
Fix potential unordered nonces in announcement (#2831)
7aa3ccd974
Attempt to find type name when parsing incorrect tlv type (#2820)
50d4e1f969
Move hard coded test vectors from resource files into scala files (#2818)
07514e2348
Remove logging from core (#2810)
b0f7d6f26b
Implement bech32m (#2572)
12bff309c2
Add Broadcast TxoState (#2735)
8b6c0652a2
Completely remove range event descriptors (#2764)
f322a74ab0
2021 02 21 cheap redeemscript check (#2707)
63e44974f7
2021 02 20 number byte representation (#2703)
a0476e979a
Decrease false positive rate to avoid spurious CI failures (#2698)
b30fdf88ca
Fix normalized string comparison (#2695)
74a30fe9b8
Optimized sigPoint computation to use non-custom secp functions (#2665)
bcd2df6051
Compute sigPoint
s eagerly but asynchronously (#2642)
e68ffb49da
Use specific functions for Oracle Signing version (#2659)
d1cc5e0ade
Refactor HDCoinType to be ADT (#2657)
097fa24e58
Create ScriptFactory.isValidAsm() to standardize how check validity o… (#2629)
ea75d62571
Add number cache trait, use it in all number types (u8,u32,etc) and S… (#2627)
bbd1dbc15d
Do cheap checks in predicates first before more expensive ones (#2628)
0d38721b3d
Added utilities to created linear approximations of Long => Long functions (#2537)
Chain
Bug fixes and usage of caching of bitcoind for chain
tests.
a27d4acd9f
Get FilterSync test working with cached bitcoind in chainTest project (#2952)
85087b0f70
Refactoring chain
(#2662)
Db commons
Unique naming of database connection pools and reduce the amount of logging.
db45ef9ca2
Name each database connection pool uniquely (#2973)
4f1f53e7ad
Bump hikari logging interval to 10 minutes (#2888)
Fee Provider
Small quality of live improvements.
c7b717fa91
Allow HttpFeeRateProvider to have a specified return type (#2970)
Node
Some refactoring and improvements to get CI passing reliability.
e3017fd17d
Peer Message Receiver Refactor (#2938)
16538980e3
Fix missing super.stop() to shutdown DbAppConfig db connection pool (#2943)
7764828b3a
Bump timeout on bind to avoid spurious ci failures hopefully (#2791)
Wallet
This wallet release moves all OS resources such as threads into WalleAppConfig
.
Now you need to call WalletAppConfig.stop()
to free those resources.
Now you can treat the Wallet
data structure as any old Scala/Java object rather
than having to worry about leaking resources.
There are also a variety of bug fixes and performance improvements in this release.
27afb66220
2021 04 23 issue Move rebroadcast scheduling into WalletAppConfig (#2957)
cbfbdd17ba
Call .hex on all txIds and blockhashes in logs for TxProcessing (#2939)
c95c0f9706
Move wallet scheduler into WalletAppConfig (#2933)
13fc3c2b4e
2021 04 18 Reset txo state when overwriting spendingTxId (#2919)
38fdbb33c4
Add test for tx that doesn't originate from wallet (#2932)
238c083aad
2021 04 18 wallet received txo state (#2914)
d0629486ab
Wallet Rebroadcast Transactions thread (#2711)
c3c96a61c3
Reduce fee rate for spending coinbase utxos (#2815)
9494eec1b8
Move blockhash to tx table from spending info table (#2744)
bf4afd63d1
Begin re-introducing parallelism in the wallet to make everything faster (#2705)
1a2ddf6a0d
Reduce usage of .findAll() (doesn't scale for large dbs). Now pass in… (#2706)
b63333327f
Allow implicit execution context to be passed in to RescanHandling.findMatches() & RescanHandling.fetchFiltersInRange() (#2704)
a5252b20ba
Bump the timeout for address queue exception test to make sure we get correct exception (#2697)
Secp256k1jni
libsecp256k1 natives for the new osx_arm64
used by the m1 chip.
1339abe410
2021 05 02 m1 secp256k1 natives (#3014)
Testkit
This release for testkit focuses on fixing resource leaks in the fixture code. There were multiple places we were not shutting down threads and connection pools through out the testkit project.
This project also introduces the CachedBitcoind
abstraction. Previously we would
spin up a new bitcoind for EVERY test that is ran. This is obviously inefficient.
Now we cache a bitcoind and re-use it for the entire test suite. This improves CI reliability greatly, and reduces required resources to run our test suites.
a2911f31ed
Fix race condition with BitcoindChainHandlerViaZmqTest (#2990)
38baea5e24
refactor BitcoindRpcTestUtil test methods to take ZmqConfig rather than zmqPort (#3002)
f792fb3480
Fix database pool name for postgres database connection pools (#2997)
77cd94ac41
2021 04 27 wallet fixtures config (#2980)
85fed08c58
Reduce pg connections from 300 -> 50 in test cases (#2974)
73939a15fc
Call WalletAppConfig.stop() when destroying wallet in test fixtures (#2975)
3483a461f1
Don't wrap pg.close() in a Try and then do nothing with it, propogate the exception (#2972)
de5f7fc7f9
Reduce number of threads in postgres connection pool for tests (#2931)
19319494cd
2021 04 19 Cleanup after ourselves in postgres tests (#2921)
2287c6ced9
Implement caching of bitcoind in the walletTest,nodeTest, and partially bitcoindRpcTest project (#2792)
392eb316f6
Add guard for the case when listFiles returns null (#2696)
DLC oracle
This release makes the oracle have its own directory $HOME/.bitcoin-s/oracle
We also now provide the ability to delete and oracle's signatures. This is useful for when you accidentally submit signatures for an attestment, but don't publish it anywhere.
** DELETING SIGNATURES AND RE-ATTESTING CAN BE DANGEROUS, YOU CAN LEAK YOUR PRIVATE KEY IF YOU BROADCAST THE PREVIOUS ATTESTATIONS **
3dbeac276e
Add ability to delete Oracle signatures (#2851)
2a6da6a4ea
Fix DLCOracle to be Network Agnostic (#2749)
a0180884c5
Make sure DLCOracleAppConfig creates the oracle directory (#2720)
93ec7ed4cb
Change oracle db to have its own directory (#2667)
Oracle Server
The theme for the oracle server release is segregating
the oracleServer
configuration from the appServer
configuration.
There is also simplifications and bug fixes included in this release for the oracle server.
4bf4f0a027
Add signed outcome to getevent
rpc, fix other small api bugs (#2757)
7aa68998f1
Correct log location and logs for oracle server (#2722)
d94a4ed87e
2021 02 15 appserver docker (#2673)
a78de18815
Fix docs to use correct oracle server port (#2666)
931a528723
Give oracle server its own port (#2653)
86566c575d
Simplify oracle server RPC api (#2656)
Bitcoind rpc
This release includes a rpc client compatible with the 0.21.1
release of bitcoin core
that includes taproot activation logic.
There are also various bug fixes included in this release.
52f609e235
Use bitcoind v0.21.1 (#3006)
e064cd77ea
Fix missing teardown code for MultiWalletRpcTest (#2946)
d726c498d0
Have BitcoindV21RpcClientTest wait for indexes to sync (#2855)
bfe7b3fb6f
Create NativeProcessFactory, extend it in both Client.scala & EclairRpcClient.scala (#2800)
5b4aac5178
Refactor starting second bitcoind in MempoolRpcTest, remove Thread.sleep (#2776)
355fc6eefc
Wrap entire Client.getPayload() into try catch to avoid exceptions leaking (#2767)
be18b1baf2
Cache httpClient in bitcoind, rename Test.akkaHttp -> Test.akkaHttpTestkit (#2702)
Documentation / Website
ff39945777
More release notes updates, mostly add boiler plate (#3018)
2e8790f3e5
Add descriptions for new projects (#3016)
7dc6acdce6
Add missing list resevedutxos docs (#3015)
d6f275b359
Redo release notes draft as we rewrote the git history (#3011)
93822c71ec
Make sure call ci matrixs run on java11 (#2985)
acac751c5b
Updated links in adaptor signature doc (#2950)
b80b039457
Lnd rpc docs (#2896)
5abf399e40
Use markdowns detail tags to collapse optional sections, remove the secp256k1 section on getting-setup.md (#2890)
bb379ecfcf
Add docs for using CachedBitcoind (#2880)
17e088d8f0
2021 04 07 first 0.6 release notes (#2872)
89c2e6c9a9
Add testkit-core.md (#2881)
c3e952a18b
Add docs for getblockheader (#2811)
9b954c9c03
Make website publish work with teh latest stable version (#2766)
d03bb2d22d
Make it clear on the getting-setup.md page that this is only for development, you can find binaries in getting-started.md (#2759)
e61e0cdb5b
Update docs to use the latest docker image names (#2758)
b7030bb66a
2021 02 19 dockerhub docs (#2693)
f4d0f369ec
2021 02 10 Website fixes (#2643)
f8694eb097
Fix/typos (#2633)
593b1e2ce1
Update README to have correct latest version (#2631)
Build
991ce38208
Use release flag rather than target flag as that is what is intended (#2976)
4c859f1ad1
Add timeouts to our CI workflows (#2908)
c738f23e58
Fix build warnings that came with sbt 1.5.0 (#2857)
eb9b2de38b
Enable scalajsbundler plugin on coreJS (#2853)
2554665e89
Enable publishing of scalajs artifacts (#2849)
60c1ad1919
Rework the website scaladoc aggregation and website (#2846)
a275668734
Update gitignore file with recommendations from unidoc (#2845)
00df875ec2
update Base docker image to a ubuntu buster (#2799)
49544fc7f3
Turn off parallelExecution and remove extra AsyncUtil test class (#2790)
7245eb0ec9
Update all deps that failed because of bad build (#2774)
aed21f02c7
Add fetch depth zero to everything to fix bug introduced in #2766 (#2773)
8a4739d509
2021 03 04 fix publish pt2 (#2763)
6b4812848b
Add new JS projects to list in build.sbt (#2761)
99c5d6e29b
Enable 'dockerUpdateLatest' option to give us the latest tag on publishing artifacts (#2752)
63e1320f52
Fix unidoc issue with scala-js modules, this now ignores them from un… (#2742)
2d25fe41ab
Skip publishing of js projects (#2734)
94934e113d
Rework docker configuration to pass in a custom configuration file (#2718)
203b45c140
Workaround for issue 2708 (#2709)
477597ea72
Set fetch-depth to 100 so we don't take forever to clone repo on ci (#2694)
56a14325e1
Get basic docker image working with oracle server (#2668)
2f85b67c3f
Add github workflow steps to publish to dockerhub (#2684)
d27f24e190
Make sure dynver versions use '-' instead of '+' (#2681)
89745c201a
Add --depth 100 restriction when cloning bitcoin-s repo to speed up clone time (#2674)
Dependencies
e7d34a9ba9
Update metrics-core to 4.1.21 (#3003)
56d177bb67
Update javafx-base, javafx-controls, ... to 17-ea+8 (#2978)
0f8903e67e
Upgrade to scalac 2.12.13 (#2509)
e6d78c7c08
Update sbt-scoverage to 1.7.0 (#2982)
0bf6df77a5
Update scalatest + scodec deps (#2937)
7a73dc5cbb
Update sourcecode to 0.2.6 (#2928)
0cad0edaaf
Update metrics-core to 4.1.20 (#2958)
23d77b2f43
Update sbt to 1.5.1 (#2971)
a194adba98
Update scalafx to 16.0.0-R22 (#2942)
00efd8bccc
Update scala-java-time to 2.2.2 (#2941)
27752062d4
Update postgresql to 42.2.20 (#2945)
27992ed37d
Update sbt-mdoc to 2.2.20 (#2930)
0d546f3b65
Update javafx-base, javafx-controls, ... to 17-ea+7 (#2911)
b5b98492aa
Update breeze-viz to 1.2 (#2907)
b6337b834d
Bump website dependencies by running yarn update (#2884)
ce36112da2
Update akka-actor, akka-discovery, ... to 2.6.14 (#2878)
112067c905
Update metrics-core to 4.1.19 (#2877)
969dee78f6
Update javafx-base, javafx-controls, ... to 17-ea+6 (#2852)
a2628cacd1
Update scala-java-time to 2.2.1 (#2862)
89e84fff67
Update sbt to 1.5.0 (#2854)
4d2532538b
Update sourcecode to 0.2.5 (#2848)
832d9308b5
Update scalatest to 3.2.7 (#2843)
6e574931c6
Update sbt-scalajs, scalajs-compiler, ... to 1.5.1 (#2837)
703f9585ef
Update scala-collection-compat to 2.4.3 (#2834)
a9ccf23366
Update sbt-mdoc to 2.2.19 (#2833)
c2e054d906
Update scodec-bits to 1.1.25 (#2835)
85ff255df3
Update akka to v10.2.4 (#2832)
2cc2da9761
Update javafx-base, javafx-controls, ... to 17-ea+5 (#2829)
c5a3b5ac3f
Update sbt-ci-release to 1.5.7 (#2819)
1daba85ddf
Update javafx-base, javafx-controls, ... to 17-ea+3 (#2804)
fba880e5a9
Update sbt-native-packager to 1.8.1 (#2798)
77ee3f7e8d
Update sbt-ci-release to 1.5.6 (#2789)
ecae07c8e1
Update javafx-base, javafx-controls, ... to 17-ea+2 (#2728)
06654f4e05
Update akka-http, akka-http-testkit to 10.1.14 (#2723)
54dc824391
Update metrics-core to 4.1.18 (#2716)
eb24b18363
Upgrade scalac to 2.13.5 (#2713)
07488dd3f3
Update akka-actor, akka-slf4j, akka-stream, ... to 2.6.13 (#2714)
fca9e4b7d0
Update scalatest to 3.2.5 (#2687)
fe70391d0b
Update sbt-bloop to 1.4.8 (#2683)
fb2e5d52e3
Update postgresql to 42.2.19 (#2686)
a19f35e603
Update scalatest to 3.2.4 (#2677)
42f3523210
Update sbt-mdoc to 2.2.18 (#2676)
e4b0f1ff42
Update scala-collection-compat to 2.4.2 (#2670)
775aa67975
Update scodec-bits to 1.1.24 (#2671)
d929af4f9a
Update scalacheck to 1.15.3 (#2669)
0d5863b2f5
Update sbt-bloop to 1.4.7 (#2661)
a5d592ac40
Update javafx-base, javafx-controls, ... to 16-ea+7 (#2654)
19b47b8eb9
Update janino to 3.1.3 (#2559)
0c9bba8267
Update sbt-mdoc to 2.2.17 (#2632)