diff --git a/release-notes/release-notes-1.7.0.md b/release-notes/release-notes-1.7.0.md new file mode 100644 index 0000000000..17c072bfa9 --- /dev/null +++ b/release-notes/release-notes-1.7.0.md @@ -0,0 +1,488 @@ +# 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](https://bitcoin-s.org/docs/config/configuration#example-configuration-file). + +You can then unzip the `bitcoin-s-cli-1.7.0.zip` folder and start using the `bitcoin-s-cli` like this: + +```bashrc +./bin/bitcoin-s-cli --help +Usage: bitcoin-s-cli [options] [] + + -n, --network Select the active network. + --debug Print debugging information + --rpcport 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](https://bitcoin-s.org/docs/next/security#disclosure) 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 " +``` + +### 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](https://bitcoin-s.org/docs/next/getting-started#java-binaries) + +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 + +c72c5f84e3d Add extranious json readers, writers, and column mappers (#3325) + +5a79acb59ce 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](https://bitcoin-s.org/docs/next/applications/server#server-endpoints) + +629c2a2c31e Set sync height on new wallet (#3368) + +af9bf210589 Improve logs in BitcoindRpcBackendUtil (#3339) + +d6878b02269 Use same network as bitcoind backend (#3285) + +7ecf3edbd60 Update utxo states correctly for bitcoind backend (#3276) + +5036c419be7 Add from file ability for AddDLCSigsAndBroadcast DLCs (#3219) + +46b33ec0b80 Make add sigs broadcast the funding transaction (#3179) + +66e160a918a Send txId instead of full serialized transaction (#3175) + +55db4fbd6b1 Remove logging requests and responses for directives unless logging is DEBUG level (#3141) + +1e87cb0fdec Remove need for bitcoind install with remote (#3114) + +11d58813c1b Remove zmq configurations for bitcoind backend setup as they aren't needed (#3080) + +8e29b5c6f6a Change outpoint output format for cli commands (#3048) + +1cda5cbf1ec Allow remote bitcoind backend (#3034) + +507f5c772e7 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. + +d669bd58aec Resolve bundle config and read/write in tmp file (#3327) + +cb5ec20eacf Silence all scaladoc warnings (#3336) + +94081502c83 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) + +6cd85765a58 Try downgrading the jdk to 15 for linux release builds (#3287) + +898ebed4e95 Windows packaging (#3210) + +11cef133e02 2021 06 15 issue 3266 (#3269) + +4c9f174a4b9 Remove all flyway plugin sbt config (#3215) + +8432712dba3 Fix sbt deprecation warnings (#3163) + +fcf55df1650 2021 05 19 jpackage bundle release (#3108) + +aff2374f455 Update README.md (#3071) + +9b06cdd832a 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. + +bc79a24f532 Get both bundle and app server logging working (#3362) + +2f7e5876d30 Set default neutrino peer based on network (#3360) + +bd877c80a9f Get logging working in bundle (#3200) + +96fc5445727 Fix logging in bundle (#3167) + +6c9d82166ee Fix main class in bundle (#3161) + +379ffebd9cf Add startup config flow for bundle (#3142) + +caf6c2e7243 Enable java app packaging on bundle project (#3144) + +80e6a910567 Add application.conf to bundle (#3118) + +ba91ba5596d Add assembly instructions for bundle project (#3104) + +## Chain + +639043227c6 Add logs to make it more apparent that No Common Ancestors isn't necessarily bad (#3354) + +## Cli + +42966b3cbe6 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. + +e098aba6806 Create and implement OrderedAnnouncements type (#3356) + +78e2fceb908 Use OrderedNonces type in DLC data types (#3352) + +a9292fcad80 Add FutureUtil tests (#3126) + +d7b753a869d Add invariant and better error message for invalid numeric contract descriptor (#3338) + +5685371e119 Sorted and Ordered Vector Type Support (#3310) + +9234cf3ca23 Add new BIP 32 leading zero test vectors (#3313) + +fc5bb956dcf Try making the dlc fee test suite async (#3227) + +bf02e89faa1 2021 05 29 dlc pnl (#3198) + +4b42b90784b Multi-threaded DLC CET signature verification (#3176) + +eafaff9ee84 Made DLCTxSigner's async signing methods actually multi-threaded (#3122) + +87f353b08f9 DLC Adaptor Point Computation Memoization (#3110) + +ac3bae403bb Pulled down all remaining non-wallet non-gui code on adaptor-dlc (#3101) + +3205e4e2759 Implement createCETsAndCETSigsAsync() to fix performance issue in test (#3089) + +58070f41209 Pulled down dlc and dlcTest projects into core and dlcTest (#3068) + +aacba1c077a Pulled down core diff from adaptor-dlc (#3038) + +a55a97ba6ff 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. + +745e4c89fa2 Removed point multiplication from ECPrivateKey.freshPrivateKey (#3116) + +6bc0943a62f Call decompression on public keys less (#2988) + +78f4dfb8c66 Pubkey Refactor (#2936) + +63a6f9309dc Introduced AsyncAdaptorSign and AdaptorSign traits (#3037) + +## DB Commons + +88187abf1a9 Add LnInvoice db mapper (#3286) + +dee044eb4e2 2021 05 26 uint64 mapper (#3155) + +17d11455049 Removed extraneous findAll call from CRUD.updateAll (#3154) + +## DLC Wallet + +cada6fdc636 Fix DLC not storing nSequence for funding inputs (#3342) + +Numerous optimization, bug fixes, and support for multi-wallet DLC wallet. + +0d2bc7a9270 Remove unneeded asInstanceOf calls in DLCWallet (#3345) + +cfe0c2f0d86 Multi wallet support for DLC database (#3289) + +ca2ddbb7ec1 Preserve noncedb outcomes when adding oracle (#3273) + +e63a12e47f6 Better error message for invalid DLC refunds (#3209) + +a526ad14ee1 Fix DLC Accounting errors (#3249) + +c2237ab6fec Only unreserve our utxos when canceling a DLC (#3250) + +95f6c0d790f Skip adding DLC sigs if we already have them (#3236) + +9431be2f25f 2021 06 07 dlc wallet pnl (#3229) + +a56086b751a Use nonceDb's outcome to calc oracle outcome (#3217) + +2269a052b15 Rework findDLC() (#3214) + +43a5c5fc49a Add dlc wallet test to postgres matrix (#3199) + +0e701bc9d06 Fix verify funding sigs (#3194) + +45d24facee7 Add announcement data tests (#3173) + +dd865c73296 Fix serialId columns to use a String instead of Integer (#3170) + +fb81552f6d0 Don't fetch all DLC data when canceling DLC (#3159) + +80ace5a9119 Use groupByExistingAnnouncements when accepting (#3157) + +880c8898dad Upsert remote txs in DLC Wallet (#3150) + +be8e965367d DLC Wallet pulldown (#3138) + +## Fee rate provider + +a98a26c9296 Make mempool.space fee provider network specific (#3316) + +41f3cb4dbfc 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. + +6af9e47e389 Fix showing error popups in GUI (#3353) + +6414833111a Call trim on DLC message text boxes (#3348) + +81fe7d76eec Remove canceled DLCs from table (#3349) + +53cafa78984 Set closing txid on execute from View Dialog (#3340) + +1f43a1910fd Add ExplorerEnv.fromBitcoinNetwork() and use for View on Oracle Explorer siteUrl (#3332) + +88b99b03b5a Add view on oracle explorer button (#3328) + +05204e6235f Make it so table doesn't reorder on single update (#3321) + +b8538f0300c Fix DLC Table View not being updated (#3315) + +00e11b49307 Fix rows in ViewDLCDialog (#3275) + +63083bf6425 Make getDLCs async to improve performance (#3222) + +935354993ba Populate Broadcast DLC GUI (#3260) + +65f096f65a6 Populate Sign GUI when choosing a file (#3243) + +cd59aff0637 Fix for showing txid on send (#3237) + +a61c11acfc8 Implement sharing of actor systems across the GUI and backend app server (#3220) + +1af94658815 Update balance on cancel DLC (#3205) + +549d840d02f Only update DLC we are viewing (#3211) + +deb0862e07e Fix showing reserved balance instead of unconfirmed in GUI (#3207) + +d3f827a127f Update DLC Table with scheduler (#3204) + +acc3d228d15 Better messaging while syncing headers (#3202) + +4f4c342f80b Sort points in numeric gui (#3203) + +ccc40350560 Sync Height on screen (#3196) + +5580771f03b Add export and copy result buttons (#3193) + +7a5e108ff2b Add button to zip datadir in GUI (#3183) + +bcda2467efa Add error messages for when DLC GUI functions timeout (#3184) + +03a0ca5ee91 Add QR Code to get adress dialog (#3186) + +604194293c8 Replace GUI balance thread with a akka scheduler (#3174) + +f8d5202974e Add contract info to ViewDLC (#3177) + +957c5c3a8a1 Open bundle GUI at last used tab (#3164) + +521a1e25556 Remove unused AcceptDLCDialog file (#3158) + +180d7dfcd3c Make loading icon appear until server is full started (#3168) + +3d728837ee7 Add ability to enter contract info in offer dialogue (#3160) + +c7bb783b1a3 DLC GUI pulldown (#3148) + +## Lnd rpc + +Upgrades to lnd-rpc to support the [latest release](https://github.com/lightningnetwork/lnd/releases/tag/v0.13.0-beta) `v0.13.0-beta` + +639adf1181d Use PaymentHashTag type in LndRpcClient (#3333) + +fafc564da81 Update LND to v0.13.0-beta (#3290) + +db486163f97 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. + +7ba7f8b9ba5 Try to add block generate to address in fixture setup to get around compact filter sync edge case (#3231) + +41e22b3cbcd 2021 05 23 Sync race condition (#3129) + +a104787985c Fix Node.sync() bug that was caused by not starting filter header sync from the current best filter headers block hash (#3092) + +## Oracle + +2b8ac08cdcb Give oracle ability to sign messages with private key (#3070) + +## Oracle explorer Client + +c3b982726e2 Fix error messages in SbExplorerClient (#3323) + +## Secp256k1jni + +37a4b5c1ea8 Add secp256k1jni tests to Mac & Windows CI (#3367) + +8374ddf601c Removes dead symlinks for secp256k1 on osx_arm64 (#3279) + +b23b5ad55f9 Make sure secp256k1 is published for java8, not the class version of the jdk it was built on (#3145) + +8b8066d1f38 Fix windows secp bindings (#3075) + +## Server routes + +41468763695 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. + +fdba5ad6bef Silence warning log if no error (#3314) + +bd11c844621 Add ability to sweep wallet (#3274) + +aaa7b42ae7c Add unit test we can handle spending funds and receiving funds in same tx (#3185) + +5caf7ee38b8 2021 06 10 cache spendinginfodbs for block (#3245) + +af8aaa7bad7 2021 06 07 markasspent optimization (#3244) + +8574edede71 Move addressDb database read out of inner loop (#3239) + +c9798d6842e Test for processing a block we receive and send in (#3189) + +701418f89f3 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) + +cea8802c052 parallelize matching compact filters as this is a bottleneck during IBD (#3137) + +68c7bc1040f 2021 05 21 fetch height parallel (#3124) + +9c9e27a8f5b Add optimzations for IBD when the wallet is empty, basically skip all logic for matching filters since there is nothing to match against (#3121) + +7468cbec238 Optimize updateUtxoConfirmedStates() to fetch confirmations for blocks in parallel (#3094) + +72636b7180a 2021 05 09 received utxos (#3063) + +f86f90dc32a Add getbalances cli command (#3022) + +## Tor + +02c4505948a Initial Tor support (#3043) + +## Website + +e47cee85d06 Add high level descriptions of what changed in modules + +0b5b2adb342 Add first draft for release notes for 1.7 + +feeb3749bdb Fix most warnings in documentation code (#3358) + +50804fe999d Add docs for backing up the wallet (#3351) + +cc1cfe6594c Add more explicit instructions for install java9+ for getting-setup.md (#3347) + +3ef842eca51 Adjust --depth doc from 100 -> 500 (#3300) + +97785561bad Add link to installers, add docs for requirement of java9+ for development environments (#3299) + +cdee40b379d Fixed bitcoin-s-cli dir location under bin (#3293) + +410ea152240 update website, remove references to a DLC specific branch (#3280) + +13409d29c3b Fix header on configuration.md (#3153) + +73668bb66c3 Remove old ZMQ config from documentation (#3090) + +97a854c5bb8 2021 05 07 fix getting setup (#3053) + +4381b93afbd 2021 05 03 improve release notes (#3019) + +d25dff14b46 Add 0.6.0 website (#3020) + +## zmq + +5df7a8bdf32 Add test for ZMQ Polling backend (#3088) \ No newline at end of file