bitcoin-s/release-notes/release-notes-1.7.0.md
Chris Stewart b75d1259c1
Add first draft for release notes for 1.7 (#3346)
* Add first draft for release notes for 1.7

* Add high level descriptions of what changed in modules

* Add latest commits

* Add boilerplate section for verifying sigs
2021-07-07 15:50:39 -05:00

16 KiB

1.7.0 DLC wallet & Installers

Running Bitcoin-S

If you want to run the standalone server binary, after verifying gpg signatures, you can unzip bitcoin-s-server-1.7.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-1.7.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-1.7.0.tgz
aa1084edb5fcd3d1dbcafe0d0fba787abf4cd455bbe38809bd9a65a49c0cd0eb bitcoin-s-server-1.7.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

https://bitcoin-s.org/

Releases

https://repo1.maven.org/maven2/org/bitcoin-s/

Snapshot releases

https://oss.sonatype.org/content/repositories/snapshots/org/bitcoin-s/

Executive Summary

DLC Wallet

This release merges our feature branch called adaptor-dlc into master. This means that all DLC features are now in our master branch.

Installers

We now support installers for mac, windows, and linux (deb) builds. Everytime a PR is merged into master, we publish artifacts for that commit. For more information, please see our website

With these installers, you can install the bitcoin-s wallet and start using DLCs with a rudimentary GUI. In future releases, we will be iterating and improving the GUI user experience.

Versioning changes

To support publishing artifacts for both mac and windows, we had to drop the leading v on our version scheme. We also were required by apple to add a leading 1 to our version scheme. Thus, this release will be 1.7.0 rather than the expected version of v0.7.0.

New modules

DLC wallet

This new module contains all logic for our DLC Wallet

Tor

We are beginning to integrate TOR support into bitcoin-s to for a variety of reasons. In this release, we have added bare bones support, in future releases we will be integrating this deeper into other modules.

Updates for modules

App commons

c72c5f84e3 Add extranious json readers, writers, and column mappers (#3325)

5a79acb59c Fix DLCStatusPickler (#3190)

App server

This release optimizes the support for bitcoind as a backend in the app server. It also fixes a variety of bugs adds a few new endpoints. You can find all supported end points on our website here

629c2a2c31 Set sync height on new wallet (#3368)

af9bf21058 Improve logs in BitcoindRpcBackendUtil (#3339)

d6878b0226 Use same network as bitcoind backend (#3285)

7ecf3edbd6 Update utxo states correctly for bitcoind backend (#3276)

5036c419be Add from file ability for AddDLCSigsAndBroadcast DLCs (#3219)

46b33ec0b8 Make add sigs broadcast the funding transaction (#3179)

66e160a918 Send txId instead of full serialized transaction (#3175)

55db4fbd6b Remove logging requests and responses for directives unless logging is DEBUG level (#3141)

1e87cb0fde Remove need for bitcoind install with remote (#3114)

11d58813c1 Remove zmq configurations for bitcoind backend setup as they aren't needed (#3080)

8e29b5c6f6 Change outpoint output format for cli commands (#3048)

1cda5cbf1e Allow remote bitcoind backend (#3034)

507f5c772e Remove request rejection duplication in ServerRoute (#3010)

Build

Most build related commits are related to automatically publishing installers everytime a commit is merged into master.

d669bd58ae Resolve bundle config and read/write in tmp file (#3327)

cb5ec20eac Silence all scaladoc warnings (#3336)

94081502c8 Remove previous stable version usage for windows builds as for some reason it doesn't work when setting up dev envs for the first time (#3292)

6cd85765a5 Try downgrading the jdk to 15 for linux release builds (#3287)

898ebed4e9 Windows packaging (#3210)

11cef133e0 2021 06 15 issue 3266 (#3269)

4c9f174a4b Remove all flyway plugin sbt config (#3215)

8432712dba Fix sbt deprecation warnings (#3163)

fcf55df165 2021 05 19 jpackage bundle release (#3108)

aff2374f45 Update README.md (#3071)

9b06cdd832 2021 05 07 cleanup build (#3055)

Bundle

Bundle combines both the GUI and AppServer project and bundles them together to make a standalone application. One problem we encountered this release is how to allow users to configure their node from the GUI on first startup.

In #3142 we added support for this by adding a new configuration file that is automatically generated and written to ~/.bitcoin-s/bitcoin-s-bundle.conf. This file saves the user's configuration, and uses it the next time the bundle is started.

bc79a24f53 Get both bundle and app server logging working (#3362)

2f7e5876d3 Set default neutrino peer based on network (#3360)

bd877c80a9 Get logging working in bundle (#3200)

96fc544572 Fix logging in bundle (#3167)

6c9d82166e Fix main class in bundle (#3161)

379ffebd9c Add startup config flow for bundle (#3142)

caf6c2e724 Enable java app packaging on bundle project (#3144)

80e6a91056 Add application.conf to bundle (#3118)

ba91ba5596 Add assembly instructions for bundle project (#3104)

Chain

639043227c Add logs to make it more apparent that No Common Ancestors isn't necessarily bad (#3354)

Cli

42966b3cbe Remove logback from the cli module (#3117)

Core

Most changes in the core module this release is related to optimizing adaptor point computations. This is very important as when doing numeric DLCs we have to generate thousands of points. We use parallelism to speed up this computation.

The other notable change in core is adding DLCAccounting. This is used to caclulate things like PNL and rate of return for a DLC you were in.

e098aba680 Create and implement OrderedAnnouncements type (#3356)

78e2fceb90 Use OrderedNonces type in DLC data types (#3352)

a9292fcad8 Add FutureUtil tests (#3126)

d7b753a869 Add invariant and better error message for invalid numeric contract descriptor (#3338)

5685371e11 Sorted and Ordered Vector Type Support (#3310)

9234cf3ca2 Add new BIP 32 leading zero test vectors (#3313)

fc5bb956dc Try making the dlc fee test suite async (#3227)

bf02e89faa 2021 05 29 dlc pnl (#3198)

4b42b90784 Multi-threaded DLC CET signature verification (#3176)

eafaff9ee8 Made DLCTxSigner's async signing methods actually multi-threaded (#3122)

87f353b08f DLC Adaptor Point Computation Memoization (#3110)

ac3bae403b Pulled down all remaining non-wallet non-gui code on adaptor-dlc (#3101)

3205e4e275 Implement createCETsAndCETSigsAsync() to fix performance issue in test (#3089)

58070f4120 Pulled down dlc and dlcTest projects into core and dlcTest (#3068)

aacba1c077 Pulled down core diff from adaptor-dlc (#3038)

a55a97ba6f Optimize shift operations in Number (#3025)

Crypto

This release for the crypto module reduces unnecessary computation that was being when instantiating a ECPrivateKey and ECPublicKey pair. This was done to improve performance when computing adaptor points, for which ECPrivateKey and ECPublicKey are used.

745e4c89fa Removed point multiplication from ECPrivateKey.freshPrivateKey (#3116)

6bc0943a62 Call decompression on public keys less (#2988)

78f4dfb8c6 Pubkey Refactor (#2936)

63a6f9309d Introduced AsyncAdaptorSign and AdaptorSign traits (#3037)

DB Commons

88187abf1a Add LnInvoice db mapper (#3286)

dee044eb4e 2021 05 26 uint64 mapper (#3155)

17d1145504 Removed extraneous findAll call from CRUD.updateAll (#3154)

DLC Wallet

cada6fdc63 Fix DLC not storing nSequence for funding inputs (#3342)

Numerous optimization, bug fixes, and support for multi-wallet DLC wallet.

0d2bc7a927 Remove unneeded asInstanceOf calls in DLCWallet (#3345)

cfe0c2f0d8 Multi wallet support for DLC database (#3289)

ca2ddbb7ec Preserve noncedb outcomes when adding oracle (#3273)

e63a12e47f Better error message for invalid DLC refunds (#3209)

a526ad14ee Fix DLC Accounting errors (#3249)

c2237ab6fe Only unreserve our utxos when canceling a DLC (#3250)

95f6c0d790 Skip adding DLC sigs if we already have them (#3236)

9431be2f25 2021 06 07 dlc wallet pnl (#3229)

a56086b751 Use nonceDb's outcome to calc oracle outcome (#3217)

2269a052b1 Rework findDLC() (#3214)

43a5c5fc49 Add dlc wallet test to postgres matrix (#3199)

0e701bc9d0 Fix verify funding sigs (#3194)

45d24facee Add announcement data tests (#3173)

dd865c7329 Fix serialId columns to use a String instead of Integer (#3170)

fb81552f6d Don't fetch all DLC data when canceling DLC (#3159)

80ace5a911 Use groupByExistingAnnouncements when accepting (#3157)

880c8898da Upsert remote txs in DLC Wallet (#3150)

be8e965367 DLC Wallet pulldown (#3138)

Fee rate provider

a98a26c929 Make mempool.space fee provider network specific (#3316)

41f3cb4dbf Fix CachedHttpFeeRateProvider (#3069)

GUI

Numerous improvements to the GUI. The most notable is the auto population of a dialogs when files are attached to the dialog or announcements/contract infos are pasted into the dialog.

There is also quality of life improvements such as showing the sync height of the wallet, showing wallet wide PNL and rate of return.

6af9e47e38 Fix showing error popups in GUI (#3353)

6414833111 Call trim on DLC message text boxes (#3348)

81fe7d76ee Remove canceled DLCs from table (#3349)

53cafa7898 Set closing txid on execute from View Dialog (#3340)

1f43a1910f Add ExplorerEnv.fromBitcoinNetwork() and use for View on Oracle Explorer siteUrl (#3332)

88b99b03b5 Add view on oracle explorer button (#3328)

05204e6235 Make it so table doesn't reorder on single update (#3321)

b8538f0300 Fix DLC Table View not being updated (#3315)

00e11b4930 Fix rows in ViewDLCDialog (#3275)

63083bf642 Make getDLCs async to improve performance (#3222)

935354993b Populate Broadcast DLC GUI (#3260)

65f096f65a Populate Sign GUI when choosing a file (#3243)

cd59aff063 Fix for showing txid on send (#3237)

a61c11acfc Implement sharing of actor systems across the GUI and backend app server (#3220)

1af9465881 Update balance on cancel DLC (#3205)

549d840d02 Only update DLC we are viewing (#3211)

deb0862e07 Fix showing reserved balance instead of unconfirmed in GUI (#3207)

d3f827a127 Update DLC Table with scheduler (#3204)

acc3d228d1 Better messaging while syncing headers (#3202)

4f4c342f80 Sort points in numeric gui (#3203)

ccc4035056 Sync Height on screen (#3196)

5580771f03 Add export and copy result buttons (#3193)

7a5e108ff2 Add button to zip datadir in GUI (#3183)

bcda2467ef Add error messages for when DLC GUI functions timeout (#3184)

03a0ca5ee9 Add QR Code to get adress dialog (#3186)

604194293c Replace GUI balance thread with a akka scheduler (#3174)

f8d5202974 Add contract info to ViewDLC (#3177)

957c5c3a8a Open bundle GUI at last used tab (#3164)

521a1e2555 Remove unused AcceptDLCDialog file (#3158)

180d7dfcd3 Make loading icon appear until server is full started (#3168)

3d728837ee Add ability to enter contract info in offer dialogue (#3160)

c7bb783b1a DLC GUI pulldown (#3148)

Lnd rpc

Upgrades to lnd-rpc to support the latest release v0.13.0-beta

639adf1181 Use PaymentHashTag type in LndRpcClient (#3333)

fafc564da8 Update LND to v0.13.0-beta (#3290)

db486163f9 Remove caveat for supressing 2.12.x warnings on lnd rpc (#3057)

Node

This release for node fixes a bug where we had a race condition when syncing compact filters.

7ba7f8b9ba Try to add block generate to address in fixture setup to get around compact filter sync edge case (#3231)

41e22b3cbc 2021 05 23 Sync race condition (#3129)

a104787985 Fix Node.sync() bug that was caused by not starting filter header sync from the current best filter headers block hash (#3092)

Oracle

2b8ac08cdc Give oracle ability to sign messages with private key (#3070)

Oracle explorer Client

c3b982726e Fix error messages in SbExplorerClient (#3323)

Secp256k1jni

37a4b5c1ea Add secp256k1jni tests to Mac & Windows CI (#3367)

8374ddf601 Removes dead symlinks for secp256k1 on osx_arm64 (#3279)

b23b5ad55f Make sure secp256k1 is published for java8, not the class version of the jdk it was built on (#3145)

8b8066d1f3 Fix windows secp bindings (#3075)

Server routes

4146876369 Add DatadirUtil to centralize logic for finding our actual datadir (#3171)

Wallet

This release for the wallet was focused on optimizing performance when receiving a block.

fdba5ad6be Silence warning log if no error (#3314)

bd11c84462 Add ability to sweep wallet (#3274)

aaa7b42ae7 Add unit test we can handle spending funds and receiving funds in same tx (#3185)

5caf7ee38b 2021 06 10 cache spendinginfodbs for block (#3245)

af8aaa7bad 2021 06 07 markasspent optimization (#3244)

8574edede7 Move addressDb database read out of inner loop (#3239)

c9798d6842 Test for processing a block we receive and send in (#3189)

701418f89f Fix issue 3102 to allow a user to create an offer with an announcement embedded inside a contract info that the user's wallet has seen before (#3140)

cea8802c05 parallelize matching compact filters as this is a bottleneck during IBD (#3137)

68c7bc1040 2021 05 21 fetch height parallel (#3124)

9c9e27a8f5 Add optimzations for IBD when the wallet is empty, basically skip all logic for matching filters since there is nothing to match against (#3121)

7468cbec23 Optimize updateUtxoConfirmedStates() to fetch confirmations for blocks in parallel (#3094)

72636b7180 2021 05 09 received utxos (#3063)

f86f90dc32 Add getbalances cli command (#3022)

Tor

02c4505948 Initial Tor support (#3043)

Website

e47cee85d0 Add high level descriptions of what changed in modules

0b5b2adb34 Add first draft for release notes for 1.7

feeb3749bd Fix most warnings in documentation code (#3358)

50804fe999 Add docs for backing up the wallet (#3351)

cc1cfe6594 Add more explicit instructions for install java9+ for getting-setup.md (#3347)

3ef842eca5 Adjust --depth doc from 100 -> 500 (#3300)

97785561ba Add link to installers, add docs for requirement of java9+ for development environments (#3299)

cdee40b379 Fixed bitcoin-s-cli dir location under bin (#3293)

410ea15224 update website, remove references to a DLC specific branch (#3280)

13409d29c3 Fix header on configuration.md (#3153)

73668bb66c Remove old ZMQ config from documentation (#3090)

97a854c5bb 2021 05 07 fix getting setup (#3053)

4381b93afb 2021 05 03 improve release notes (#3019)

d25dff14b4 Add 0.6.0 website (#3020)

zmq

5df7a8bdf3 Add test for ZMQ Polling backend (#3088)