bitcoin-s/release-notes/release-notes-1.9.8.md
Chris Stewart 00b969b058
init 1.9.8 release notes (#5281)
* init 1.9.8 release notes

* Sort logs upto f8143f3e02

* Sort logs upto 177542a13c

* Sort logs upto 0bd59789e3

* Add commentary

* Add last commit
2024-03-25 09:10:25 -05:00

36 KiB

1.9.8

This release is backwards compatible with the 1.9.x series of bitcoin-s

See the individual module sections for more information on lower level updates to the codebase.

Want to get started quickly? See our docker-compose.yml file. See instructions here

If you are a typescript developer, you can access the backend via our typescript library

Executive Summary

This release reworks the node implementation to use pekko streams. This release of bitcoin-s also moves away from akka to pekko due to akka's licensing changes.

Running bitcoin-s

If you want to run the standalone server binary, after verifying gpg signatures, you can unzip bitcoin-s-server-1.9.8.zip and then run it with chmod +x ./bin/bitcoin-s-server && ./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.9.8.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 9234F4D6AF47C71B741A390F8976CA0AF71A7A2A

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:

$ gpg -d SHA256SUMS.asc > SHA256SUMS.stripped
gpg: Signature made Mon 18 Apr 2022 02:19:54 PM CDT
gpg:                using RSA key 9234F4D6AF47C71B741A390F8976CA0AF71A7A2A
gpg: Good signature from "Chris Stewart <stewart.chris1234@gmail.com>" [ultimate]

$ sha256sum -c SHA256SUMS.stripped

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/

Modules

app commons

c6524b9246 remove usages of new URL() as constructor is deprecated on jdk 20+ (#5219)

App server

Implements a getconnectioncount RPC to query how many peers we are connected to.

4501e138a4 Stop BitcoinSAppConfig last in BitcoinSServerMain.stop() (#5493) b25cc8a8a5 Fix start rescan race condition, previously we would attempt to fetch blocks before our NodeApi had any peers (#5491) 00c84a9c25 Set max-open-requests = 64 for appServerTest (#5442) c407c2e874 2024 02 29 cleanup logback files (#5441) b0cf3d8146 Fix race condition between NodeAppConfig.migrate() calls when bitcoin-s.tor.enabled=false (#5120) 4fd7af04ca Remove check to see if seed exists when loading a wallet, the key manager can initiate the seed if it dne (#5094) 447c6d03de Implement getconnectioncount rpc (#5048) 6b03133a34 Fix empty.tail exception occurring on chain block filter / filter headers callbacks (#5021) e3e1c7f949 Try bumping timeout to 1 second to avoid false positives test failures (#5018) e993335f03 Improve error logging on server (#4896)

bitcoind rpc

Adds support for bitcoind v24. Removes support for bitcoind v19 and v20 as they are past EOL.

a18bd70369 Upgrade to bitcoind 24.2 (#5284) fa34cb4f4d Bump bitcoind minor versions to 24.1/23.2 (#5088) 3db663a387 Remove v20 bitcoind support (#4992) af349d2179 Remove support for v19 of bitcoind (#4991) ff8376ceb6 Call syncwithvalidationinterfacequeue inside of {generatetoaddress,generateblock} (#4987) 9a80644509 Fix UTXORpcTest flakiness (#4986) b329c3670e Add rpc for syncwithvalidationinterfacequeue, use it in NodeUnitTest.syncNeutrinoNode (#4983) 332893b67b Add generateblock bitcoind rpc (#4906) f4244d7a0e Add bitcoind v24 (#4902)

Build

0bd59789e3 Remove neutrino.suredbits.com:8333 from docker-compose.yml (#5492) 58adf4c6fd Fix build warnings for --compress flag in jlink (#5485) 9aa730dd0a Revert yml files (#5449) dd7131306c Consolidate disabled secp256k1 workflow into Compile workflow (#5445) 1317adfdad Add zmq/test and chainTest/test to OS's we weren't previously running on (#5443) 1b25994fc2 Re-add java.sql module to cli jlink image to fix #5411 (#5412) 83a27e2775 Add new macOS CI matrix to try and speed up mac jobs (#5364) db21b8873e Set flag nativeImageInstalled =: true so we don't overwrite system's nativeimage (#5358) a7b67fc78d 2024 01 18 fix native image build (#5357) 16fb5d2dad 2023 12 19 compiler opts (#5330) 1084be80ad Upgrade cache action to v3 (#5326) a93954cc4e Only generate scaladoc on CI to decrease build time (#5220) a18dc6c55f Add java.instrument to jlink dev builds (#5210) dd77eb0566 Add jdk.management.agent module on dev builds (#5115) cb272ddf83 Fix build by ignoring junit transitive dep (#5071)

chain

Fixes a few bugs with filter's and reorgs.

8b23b1f4f6 Add delay to wait for zmq to get setup in chainTest (#5427) 8f812c644f Fix Promise already completed errors in chainTest (#5440) 748121fe8a 2023 01 06 small chainhandler bug fixes (#5345) 3a927edee1 Fix bug when requesting FilterSyncMarker for filter headers (#5344) 5e81ec5ed2 Add ChainApi.getBestChainTips() (#5338) f1775c46d3 Simplify ChainHandler.nextFilterHeaderBatchRange() (#5336) af361167a4 Refactor ChainHandler.findNextHeader() to only take 1 blockchain (#5335) d983a1bac4 2023 12 24 Make filter headers / filters sync work with block header reorgs (#5333) 3e6ff52194 2023 09 27 issue 5139 (#5247) e15bf6cc9d reduce default bitcoin-s.chain.neutrino.filter-batch-size to 250 (#5230) 0e2fddcc57 Optimize bestFilterHeaderHeightQuery (#5223) 8ab9718a48 Reduce best filter height sql query costliness by using a cheap check (#5206) 39cec3ae51 Fix bug where we weren't checking if filters are stale when determing if we need to sync filters (#5203) 4a344f0187 Fix bug in ChainApi.processFilterHeaders() (#5157) dc0e3645d0 2023 03 24 is tip stale (#5024) de0e892b3e 2023 02 27 Fix bug where duplicate filters caused node not to sync (#5008) 7f08458a55 Check compact filter headers if we have already stored them in the database (#5003)

cli

c038d2fa3b 2023 08 30 refactor ConsoleCli (#5217) d1c9228361 Fix getpeers -> getconnectioncount in cli (#5052)

clightning rpc

d53ed7d487 Bump clightning version to v23.02.2 (#5025)

Core

Fixes parsing bugs, caches txid computation to avoid re-computing large transaction's txid.

55e4dab86e Rework NodeApi.downloadBlocks() to use DoubleSha256DigestBE (#5456) b27cebca1c 2024 02 23 TaprootKeyPath.isValid() bug (#5421) 195cfbd273 Fix handling invoice with minimal encoding of feature bits (#5405) d641c3da55 2024 01 25 Cache txid (#5374) 5885f4e99e 2024 01 26 rm lazy bytes (#5373) be1ec842c2 Fix bug in classifying things as MultiSigSPK that do not have enough public keys in the Script (#5371) a66925dba0 Fix bug where IndexOutOfBoundsException was occuring when parsing a script with only OP_CMS (#5370) fd09724f48 2024 01 23 Validate we have maxSigs number of public keys in MultiSignatureScriptPubKey (#5369) 039144c2c8 Add access to underlying MultiSignatureScriptPubKey scriptNumbers represents requiredSigs, maxSigs (#5366) 0f95a1f7bb Fix bounds checking for MultiSignatureScriptPubKey.maxSigsRequired (#5365) 73785706d8 2024 01 20 Fix bug in parsing OP_CLTV and OP_CSV (#5363) 618e1ca2d2 Fix bug in script parsing logic where we weren't checking if a ScriptNumber was negative for a MultiSignatureScriptPubKey (#5362) 421970dcf5 2024 01 11 bip68 bip112 txversion bug (#5346) 522821869d Move filterBatchCache into NodeState.FilterSync (#5253) 4972d0a368 Move NodeState to core (#5249) 99ca1b7abf Add PeerManagerApi.peers (#5170) ef2c96cc99 Add PeerManagerApi (#5164) ba8a0bf75a 2023 07 17 coretest script refactor (#5150) b1e6488bb7 Move Socks5ProxyParams, Credentials into core (#5138) aa8da307b7 Remove batchAndParallelExecute test case (#5122) 3740b4fc35 Implement batchAndParallelExecute with Future.traverse rather than Future.sequence (#5051) 3728b9a9d9 Refactor HDPath pattern matching to be safer. (#5046) 5e6cb0d514 Fix MilliSatoshis.toSatoshis for large values (#5016) 0577b8c1fe Improve Inventory toString messages (#4997) 8bd10d0f40 Correctly handle witness v1+ spks in fallback addresses (#4949) 7a3c6aef36 Fix isLocalhost for 127.0.0.1 (#4900)

Crypto

db commons

c92f2ed009 Add db mapper for ECDigitalSignature (#5002)

DLC node

2b117d349a Remove duplicate Peer class (#5141)

DLC Oracle

DLC Server

556c5e0c39 Fix NullPointerException inside of DLCServer (#5287)

DLC wallet

Eclair rpc

2799d8276a Update Eclair RPC to v0.8.0 (#4994)

gui

fee rate

keymanager

Lnd rpc

f01987160d Lnd v0.17.3 (#5375) 008dd42a08 Upgrade lnd to 0.16.4 (#5194) 08757d536f Lnd 0.16.0 rpc (#5005)

Lnurl

915af37ac9 Add ability to add arbitrary query string params for lnurl pays (#4995) 57b4421f8a Add nostr zaps params for lnurl (#4988) ffee1a804e Check lnurl pay invoice description hash (#4931) f8247c427d Add LNURL writers (#4927)

node

Reworks the node implementation to use pekko streams. NodeState is now tracked internally in a stateless manner inside the stream.

9fef2c505c Add bitcoin-s.node.connection-attempt-cool-down-period (#5489) 7e2a4c97e6 Reduce requesting next cfheaders log level to DEBUG (#5490) 47c7680d8c Refactor Node.chainApiFromDb() to return ChainApi (#5484) 3cfe700fad Reduce stream failure log to DEBUG to avoid tor spam (#5483) 3cfe700fad Reduce stream failure log to DEBUG to avoid tor spam (#5483) a875f08d2e Reduce log level of PeerConnection logs to DEBUG (#5481) af342dd6c1 2024 03 18 rm unused configs (#5480) d44344f07b Check if peer is waitingForDisconnection when receiving InitializeDisconnect() message (#5479) f7dd69bec3 refactor: Use 'peerWithServicesDataMap' name consistently across NodeState and PeerManager (#5478) db64a6d136 Reduce various log levels to DEBUG (#5477) 5c247e65a5 Reduce 'Attempting to connect' log to DEBUG (#5476) 9a71a96fb8 2024 03 11 Remove filtersync job (#5471) 23337b7137 2024 03 11 PeerFinder.getPeersFromDnsSeeds async (#5472) 708ce41f24 Re-implement bitcoin-s.node.query-wait-time (#5470) 54a356b300 Don't unnecessarily create new NodeState objects, use helper methods to state transition (#5469) fa6cb1ba3a Send p2p messages to syncPeer when we are in and a specific peer is not set in SendToPeer (#5468) 9e50c5fd12 Fix bug where we weren't checking if isFiltersSynced is true before sending our next getcfilters to our peer (#5466) 16aeb56df5 Remove implicit NodeAppConfig from PeerMessageSender (#5465) 567c2400ca Small refactors to use RunningNodeState methods, improve logs (#5463) 5967caeca7 2024 03 07 Add NodeState.FilterOrFilterHeaderSync, refactor PeerManager to use it (#5459) e793c53dd7 Add guards on sending blockfilter messages to non-blockfilter peers (#5457) 898d2b44ee Fix bug where we were executing block callbacks when we hadn't seen a block header (#5455) 238948e185 Remove PeerMessageSenderApi param from DataMessageHandler (#5453) ddb6f01d65 Simplify / reduce log level for compact filter logs (#5452) 367285d9b9 Reduce reliance of PeerManager._peerDataMap in favor of NodeState.peerDataMap (#5451) 0d2e0a98f0 fix bug where we weren't properly transferring state to FilterHeaderSync, reduce log level of peer we fail to connect to (#5450) ae3a634703 2024 03 01 Fix syncPeer exceptions (#5446) 1f0af696f6 Reduce DataMessageHandler log levels (#5447) 951bdc5b34 Always try to attempt to connect to our param peers in PeerFinder (#5444) 8fb62ad21c Use NodeCallbackStreamManager when calling NodeCallbacks constructors (#5439) 70f983213c Ignore invs while in IBD rather than when syncing (#5433) d1ecd35e63 Fix PeerDb.lastSeen race condition in unit tests (#5435) ab0b0e2209 Fix bug where we weren't removing peer from NodeRunningState.waitingForDisconnection (#5425) 0053ccd853 Rework NodeState.toString() (#5432) 8a0c00637c Remove duplicate PeerConnection.disconnect() call (#5426) 6934b33474 Fix bug in health checks were we wouldn't attempt to connect NodeAppConfig.maxConnectedPeers if we didn't have any non compact filter peers connected (#5422) 90b9e76e56 Keeping finding peers until all peers are blockfilter peers (#5417) 783ed1903d Rename bitcoin-s.node.inactivity-timeout -> bitcoin-s.node.health-check-interval (#5418) 3177ee405f Move away from suredbits provided peers by default (#5390) b89b31fe09 2024 02 18 peerfinder duplicate connect (#5403) 155b4fbc76 Fix case were we weren't cancelling the syncFilter job onDisconnect() (#5402) f5087c5e3f Remove PeerManager.{getPeerMessageSender(), getPeerConnection()}, use NodeState.{getPeerMessageSender(), getPeerConnection()} (#5400) e4fbfe73e6 2024 02 16 fix get filter sync marker from stop block header bug (#5401) bc94a8b01f 2024 02 15 Fix duplicate sync bug when we have a misbehaving peer (#5399) fe33c2919c Fix inconsistency of PeerDAO primary key usage (#5398) 536cc26ba5 Update last seen value in PeerDb on disconnect (#5397) 05d03e7da6 Remove skipPeers, better PeerFinder.toString() (#5396) 2d3e481ce0 Use Future.successful() when removing peer as there is no underlying async computation (#5394) 9d58c9eb89 Implement health checks for peers, first check is if we have any blockfilter peers (#5393) d4ae659887 Log instead of throwing exception when sending message to peer without an active connection (#5392) cac546bb57 Fix bug where we were only setting bitcoin-s.node.inactivity-timeout on regtest (#5389) 451e019225 2024 01 31 Fix PeerManager.connect() bug where PeerFinder was unaware of peer (#5381) 75881191d1 Guard NeutrinoNode.start() with isStarted flag (#5380) 75f6a3b4ec Refactor PeerFinder.peerConnectionScheduler() into method (#5377) 76e468c5c4 2024 01 28 Refactor PeerFinder.start() to avoid initializing connections (#5376) f26e6f7c5a initiate disconnect from PeerManager rather than bitcoind in connection (#5354) 9cd60d5366 2024 01 02 encapsulate state p2psink (#5342) 56b1a557a8 Add carve out to ignore ConnectPeer request if state is NodeShuttingDown (#5352) 3c5bace825 Dont initiate disconnect logic from bitcoind, its flakey for some reason (#5343) d6c1491ba8 2024 01 03 shuttingdown nodestate (#5341) 30876c2cde Move PeerManager.connectPeer() logic into stream (#5340) d27dcb38f4 Add logging to PeerConnection.handleStreamComplete so exceptions aren't dropping on the floor (#5339) a3e1267484 2023 12 30 isfiltersync bug (#5337) 06dfd9cea4 Rework randomPeerWithServices() to be inside of NodeState (#5331) 0ace6dfd2e Make PeerManager.gossipMessage() queue to avoid gossiping messages to peers being disconnected (#5334) 54f303efb0 Rework various private methods in DataMessagehandler to return NodeState (#5329) ce154fc5fd Remove unecessary helper method in PeerFinder (#5327) 747389e77d Rework ConnectionGraph.stop() to return Future[Done] (#5325) 01537185bd 2023 12 13 mv connectioncount check fixtures (#5324) 7f337073c9 Improve ReConnectionTest (#5323) f4db40897b Fix bug where PeerConnection.connectionGraphOpt does not get reset on disconnect (#5307) bd3ad1df21 2023 12 07 mat socks5handler (#5322) 47c433f365 Replace inactivity logic with Flow.idleTimeout (#5311) 16c41c3b2e Added LnURLClient accept header to request (#5318) 4913b12431 2023 11 10 peermanager refactor (#5303) 7f5ed15521 Reduce inactivity level to DEBUG (#5286) 7b8df425fb Reset PeerConnection.connectionGraphOpt = None when connection is disconnected (#5290) be30da578d Bump timeout for checking when peer is disconnected (#5277) cff757cb55 2023 10 03 node refactors (#5256) 2863b3f5cc Change PeerManager to keep NodeState in Sink.foldAsync() rather than DataMessageHandler (#5255) a40be1a6bc Fix bug where we were executing block ehader callbacks when we received 0 block headers from our peer (#5254) 1602852419 2023 09 29 waitingdisconnection nodestate (#5251) 83cf657a0b Move initialization of sync into PeerManager's queue (#5250) c4f0bd3d39 Switch defaults to 12 hours for running peerConnectionScheduler (#5241) 3763a53ad5 Adjust so that requery in the case were we have just 1 peer (#5240) d5c74c086d Reduce NodeCallbackStreamManager from 32 -> 16 (#5229) b3aa7b4b68 Fix bug were we weren't consistently calculating the correct compact filter start height for sync (#5225) 489682312d Reduce NodeCallbackStreamManager to 32 to reduce chance of OOM errors on small heap sizes (#5224) 3ae41032a4 Add log to help debug 5208 (#5211) aa02683db9 Cleanup use of syncPeerOpt as a param in parts of PeerManager (#5209) 2672c2223c Remove references to client in PeerManager logs (#5207) 11ab921923 Add filter header and filter count to logs (#5202) 26290bf4c0 Rework handling of BlockMessage, fix bug where callbacks executed when they shouldn't have been (#5201) e8ab293fa0 Remove Initialized from NodeStreamMessage, return Initialized from ControlMessageHandler (#5199) cc94a92424 Add Await.result() to inactivity check runnable to make sure it completes, or we get an error message if it doesn't (#5197) f36c437648 Guard createFilterSyncJob() with isStarted (#5195) e423de01e1 Remove executing block callbacks if node is in IBD (#5193) 998c997ac5 Move initialization cancellable into connection graph (#5192) deb34dc87a Lower log levels to DEBUG (#5188) 09623173b3 Increase inactivity check log level (#5187) f2b40c8922 More idiomatic akka stream usage (#5183) b13e0565af Remove PeerMessageReceiver (#5182) c238191209 2023 08 04 rm peermsgrecvstate (#5177) 25f42bf6b8 Reduce log level of 'Received maximum amount of headers' (#5181) 08e780a884 2023 08 01 issue 5174 (#5176) 147f7782e5 2023 07 28 cleanup tests (#5172) 9b85838823 Implement logic to restart PeerManager in inactivity checks when we have 0 peers (#5171) 4d5488f193 2023 07 31 fix filterheader sync bug (#5173) cade1afcdf Implement more checks for createFilterSyncJob() to more strictly check if we have seen any filter headers / filters since the job was scheduled (#5168) e570ebea56 Remove validating headers state (#5165) c2902c1146 Fix onBlockReceived unit test (#5166) 2d57ff6a3e Refactor PeerManager methods to be connectPeer(), disconnectPeer() (#5163) 4afaaf8f22 Only log a warning instead of throwing an exception when we try to send a message to a peer we aren't connected to (#5161) 878dce7945 Use Await.result() in DataMessageHandlerTest to avoid test cases that never complete (#5159) 2032b16620 Fix bug where we just need to awaitSyncAndIBD() rather than attempt to sync() (#5158) 1ccc6a9230 2023 07 19 cleanup nodetest (#5156) e08469901b Make PeerMessageSender.reconnect() return a Future that is completed when the connection is established (#5155) 44190a535c Defensively try to sync everytime a peer is a initialized (#5154) f034435430 Move setSyncing into PeerManager.syncHelper() (#5153) e66c078863 First attempt at implementing inactivityChecks() (#5144) 4bd5616e67 Make sure PeerData.stop() is called when PeerFinder.removePeer() is called (#5147) ebe79287af Implement socks5 proxy in PeerMessageSender (#5136) ee619051a3 2023 07 04 node refactors (#5130) 9b6bca06c0 Fix duplicate filter header sync by adding delay before attempting to sync filter headers (#5132) fc99087c89 Ignore messages in queue that were queued before we disconnected peer (#5131) 5e6caa866f Implement call to Node.stop() when shutting down BitcoinSServerMain (#5124) f522ffec72 2023 06 28 connection fail logs (#5121) 6befad2dd3 Remove offer(SendToPeer) from PeerManager queue (#5119) 08a76fb040 Fix bug in DataMessageHandler.isFiltersSynced() (#5118) 1d82ed04a7 2023 06 18 implement tcp connection using akka streams (#5111) 5ae4993bed Move PeerMessageReceiverState into PeerMessageReceiver (#5110) e0c9500770 Reduce p2pclient timeout to 10 seconds (#5109) 30b06b1131 Simplify DataMessageHandlerTest so we don't have duplicate callback execution (#5108) c3eed1e92b 2023 05 05 Make DataMessageHandler be accummulated in our akka stream (#5098) dae8c0fc9c Don't execute onResponseTimeout() when disconnecting (#5104) f4f45a1cad Move {syncFromNewPeer(), syncHelper()} into PeerManager, remove reference to Node inside of PeerManager (#5102) bed670fb6f Remove chainApi parameter from NeutrinoNode (#5101) e3f8eb2cc6 Add PeerMessageSenderApi.gossipGetHeadersMessage(), use it in Node.sync() (#5100) a5778948cb Remove downloadBlocksBasedOnIBD() as it is redundant (#5099) ae8c97a4d1 Rework Node.sync() to return Future[Peer] rather than Future[Option[Peer]] (#5096) 295be36d63 Get PeerMessageSenderApi using akka streams for outbound p2p messages (#5069) abeaaa05de Remove awaitPeerWithServices() (#5093) e74af8bf24 Move P2PClientCallbacks.onStop() into disconnection logic rather than Actor.postStop() (#5089) 61e142a631 2023 05 29 peermanager peerfinder refactor (#5086) 6c38a791d7 Drain data message stream before PeerManager.stop() is complete (#5085) 9202e63c90 Create P2PClientCallbacks to encapsulate callbacks (#5084) 34df4ccbb1 Make ControlMessageHandler take PeerManager rather than Node as a param (#5081) d33f17f0d7 Cancel oninit timeout scheduled job when we disconnect (#5076) 777743989a Remove PeerHandler as it isn't used in src (#5075) 8e4aa49aef Fix ReConnectionTest part 2 (#5074) c0403da7c6 Make PeerFinder.getData() return Option (#5073) 5a8576a057 Encapsulate access to akka streams queue to PeerManager (#5070) 8dfb7d091f 2023 05 05 encapsulate peermanager peermsgsender (#5066) 4c6090207a Add MisbehavingPeer state (#5065) 2fdd237e20 2023 04 26 dmh state refactor (#5062) ce6f0d1507 Refactor HeadersMessage to have helper method for HeadersMessage (#5060) 1fc6edf825 Remove initialSyncDone Promise as it isn't used (#5058) ce6d2212c1 2023 04 22 peermanager dmh refactor (#5057) 1461782865 Move onHeaderRequestTimeout to PeerManager (#5056) 7beed5a00d Only request syncing compact filter headers / filters if our tip isn't stale (#5055) 18482c7e44 2023 04 20 decouple node (#5049) 5f9c89820f Add wait before checking connection count test (#5050) 51429a7d68 2023 04 17 refactor peer message receiver (#5045) 13e5e6501c Fix bug where compact filters weren't being processed in order of block height during IBD (#5041) f95360f8ba Add logic to fetch block headers after compact filters are synced in IBD to avoid a stale tip (#5037) 31e1bd79e9 Speed up DataMessageHandlerTest dramatically by using CachedBitcoind (#5038) e791932f99 Refactor peerData -> peerDataMap, try to fix #4955 (#5030) 54b47152d1 Fix bug fetching compact filter height to early in DataMessageHandler (#5031) 1d611ec6b5 Remove fetch compact filters in NeutrinoNode.sync() before fetching block headers / compact filter headers (#5023) df5472f263 Generate blocks in two rpc calls (#5011) 875a67a73c 2023 03 03 rm DataMessageHandler filter params (#5009) 58fbcf41e3 Bump timeout in P2PClientActorTest (#4985) 56ae02918c 2022 12 05 issue 4904 (#4917) c7febc1ef0 Segregate P2PClientTest and P2PClientActorTest (#4974) f6207b1c9f Add check we have more than 1 peer before we try to syncFromNewPeer() (#4966) 3bc89c680f Fix case where syncCompactFilters is called but filters but no sync peer is set (#4965) c5983730bb 2023 01 10 refactor peermanager (#4950) 60907a7c17 2023 01 25 mv handling network received msg (#4961) dd08dedb41 2023 01 24 small changes from pr 4950 (#4958) dfe92d2ba4 Remove expectTimeout Await.result() (#4957) 4e4c6d03f1 Remove Await.result() in initializationTimeoutCancellable (#4956) 9646994a99 Encapsulate PeerData.client (#4944) 3a8eff8feb Some cleanups in the node project (#4941) 8f4ed4ac83 Refactor to use NodeTestUtil.awaitSync() (#4942) 09d53460a1 Implement ability to cancel background task for querying peer with specific services (#4937) a7930657f9 Rework logging so that stack traces aren't printed when we receive duplicate data over the p2p network (#4936) e7dd96468d 2022 12 29 issue 4933 (#4935) 746e23cf86 Refactor NodeTestUtil.awaitSync() to check compact filter headers / compact filters as well (#4934) bd79ab0b73 2022 12 12 rm dmh params (#4925) 96392edde7 Stop P2PClientActor when we receive Tcp.{ErrorClosed,ConfirmedClosed,Closed,Aborted,PeerClosed} commands (#4926) 0d76a06331 Call handleDataPayloadHelper explicitly on DataMessageHandlerState (#4921) 6293d45a37 Fix synced flag but in DataMessageHandler bug (#4920) aab2b274f0 Remove default parameters from DataMessageHandler (#4918) f2be536211 Delay querying for peers for 30 minutes (#4897)

Oracle Explorer Client

c0e8d376eb Remove oracle explorer client (#5308)

wallet

320773a99c Add OverflowStrategy.backpressure on Source.queue in bitcoind polling job (#5437) 42e5e87350 Reduce various logs in org.bitcoins.wallet to DEBUG (#5434) af74450c62 Cancel polling job after walletTest is executed (#5379) 5c2c8ee30b 2023 10 19 recursive rescan state (#5269) b252c2d6a2 2023 10 16 Implement WalletCallbackStreamManager, DLCWalletCallbackStreamManager (#5263) 36f30c5915 Fix bug where bip39Password was not passed as param in test case (#5040) 36ec40dfa3 implement generating addresses when wallet is initialized if creationTime is > 1 hour ago (#5034) d297311814 Catch non RescanTerminatedEarly errors when rescan is terminated with an exception (#4939) 24c6dc2cdb Download blocks from random peer if we aren't in IBD (#4924)

testkit-core

deb79c5994 Make another instance of Gen[ECPrivateKey] be deterministic (#5353)

testkit

1685c84eea 2024 01 31 Refactor BitcoindRpcTestUtil.{startSevers(),stopSevers()} to use Future.traverse() (#5382) 018631dad4 Create NodeTestUtil.awaitConnectionCount() (#5378) b39736fb8d Rework NodeTestUtil to use a specific bestBlockHash (#5332) 579318cad0 Make Gen[ECPrivateKey] in scalacheck to use randomness from scalacheck to preserve reproducibility of test cases (#5285) 531c909597 Use BitcoindRpcBackendUtil.buildBitcoindNodeApi() in wallet test fixtures, re-implement getConfirmationsForBlocks() to use akka streams to avoid max-open-requests limit inside of akka (#5259) 12e5dfc021 Fix chain fixtures to use ChainHandler rather than always using ChainHandlerCached (#5243) 458a80d854 Destroy wallet config when tearing down node (#5105) 7e346e58fe Refactor NodeTestUtil.awaitBestHash() to take a reference to bitcoind (#4973) 1391c9497e Segregate handling of exceptions in fixtures (#4971) 76fc3cdc41 Refactor to not throw an exception is node is already syncing (#4970) 60998fe2d1 Reduce timeouts for syncing in NodeTestUtil (#4923)

tor

ef20d5ec83 Rework Socks5Connection.socks5Handler() to emit Socks5ConnectionState downstream (#5315)

Website

f8143f3e02 init 1.9.8 release notes

ZMQ

cb26f6de07 Add WalletZmqSubscribers (#5423)

Dependencies

c51c6a8f39 Update sbt-buildinfo to 0.12.0 (#5486) a2b354c694 Update client3:core, ... to 3.9.5 (#5487) 1e0cd1bed3 Update sbt-scalajs, scalajs-compiler, ... to 1.16.0 (#5488) 177542a13c Remove grizzled.sl4fj was its no longer maintained (#5482) d1ba4737d6 Update sbt-assembly to 2.2.0 (#5473) 270f3cf624 Update postgresql to 42.7.3 (#5475) b7d7baaa20 Update sqlite-jdbc to 3.45.2.0 (#5474) dcb177b4a7 Update slick, slick-hikaricp to 3.5.0 (#5461) c2fb5d2657 Update client3:core, ... to 3.9.4 (#5460) f77b4efe11 Update logback-classic to 1.5.3 (#5448) 5ab8da9adc Update logback-classic to 1.5.1 (#5438) 87003eb703 Update sbt-scalafmt to 2.5.2 (#5218) 3ed78b5270 Upgrade to scala 2.13.13, fix compiler errors (#5428) dae6ebf9aa Update sbt-scoverage to 2.0.11 (#5424) 3c2184156b Update sbt to 1.9.9 (#5419) 0a96f72c5e Update postgresql to 42.7.2 (#5414) 1dff918848 2023 02 21 pekko (#5413) caeb8d559c Update sbt-scoverage to 2.0.10 (#5409) 1efede0401 Update junixsocket-core to 2.9.0 (#5407) b059c2f57e Update jeromq to 0.6.0 (#5410) 7c8acc4484 Update client3:core, ... to 3.9.3 (#5408) 7ea72f279f Update logback-classic to 1.5.0 (#5406) 3f22e42ad4 Update scalatest to 3.2.18 (#5395) 5544a2efc4 Update janino to 3.1.12 (#5387) e30d1b1cad Update slf4j-api to 2.0.12 (#5388) b45b8b7eb0 Update sbt-bloop to 1.5.15 (#5386) 843e9ee23a Update sqlite-jdbc to 3.45.1.0 (#5384) 5bd5cc51dc Update metrics-core, metrics-healthchecks, ... to 4.2.25 (#5372) 62012b1ee6 Upgrade microPickle to 3.1.4 (#5368) 217914432e Update scalapb-runtime to 0.11.15 (#5367) f6648a1cc3 Update metrics-core, metrics-healthchecks, ... to 4.2.24 (#5360) 3c6fd85f4d Update sqlite-jdbc to 3.45.0.0 (#5361) e6ceda44f2 Update play-json to 2.10.4 (#5356) 1ad2778ab2 Update client3:core, ... to 3.9.2 (#5355) 510ac32db5 Update metrics-core, metrics-healthchecks, ... to 4.2.23 (#5320) 495197d380 Update postgresql to 42.7.1 (#5321) 001a2f0970 Update slf4j-api to 2.0.11 (#5351) 589fc0c98b Update sbt-scalajs, scalajs-compiler, ... to 1.15.0 (#5348) e8052e5a91 Update sbt-assembly to 2.1.5 (#5305) 63b1f05b2e Update sbt-bloop to 1.5.13 (#5319) 329241b332 Update sbt-mdoc to 2.5.2 (#5350) 37eaabab22 Update jna to 5.14.0 (#5347) 7a3834dc80 Update sbt to 1.9.8 (#5349) ecbd024465 Update janino to 3.1.11 (#5313) 39b127be8c Update sbt-bloop to 1.5.12 (#5309) bb549b46d4 Update logback-classic to 1.4.14 (#5314) 23cc9c9acc Update junixsocket-core to 2.8.3 (#5300) 36d27704b4 Update bcprov-jdk18on to 1.77 (#5302) a21b0a1741 Update client3:core, ... to 3.9.1 (#5296) 222ad3b60d Update sbt-mdoc to 2.5.1 (#5298) 7861bce71a Update native-lib-loader to 2.5.0 (#5297) c1baad9f06 Update sbt-mdoc to 2.5.0 (#5289) 665727f165 Update play-json to 2.10.3 (#5282) 33087f6ec1 Update metrics-core, metrics-healthchecks, ... to 4.2.22 (#5283) 5273af05d8 Upgrade website dependencies (#5279) 336cb60c51 Update sbt-assembly to 2.1.4 (#5275) a513cab030 Update sbt-bloop to 1.5.11 (#5226) 763da5619c Update junixsocket-core to 2.8.2 (#5276) 11f07a1cd1 Update sbt to 1.9.7 (#5271) 984a2344bc Update scodec-bits to 1.1.38 (#5273) a47e18187d Update play-json to 2.10.2 (#5270) 087508dadc Update sbt-mdoc to 2.4.0 (#5266) b085045e16 Update metrics-core, metrics-healthchecks, ... to 4.2.21 (#5261) d256f3cdb1 Update scalapb-runtime to 0.11.14 (#5264) 723640b8f6 Update typesafe:config to 1.4.3 (#5265) d65bd11bd6 Update sbt-mdoc to 2.3.8 (#5257) 8752d9fe70 Update junixsocket-core to 2.8.1 (#5252) 7c133c19ca Update jeromq to 0.5.4 (#5246) 046a9e869c Update sbt-scalajs, scalajs-compiler, ... to 1.14.0 (#5245) 08cb329719 Update metrics-core, metrics-healthchecks, ... to 4.2.20 (#5244) 922a6aaeb4 Update play-json to 2.10.1 (#5239) 00bd36ad2e Update sbt-assembly to 2.1.3 (#5238) 6373b5b866 Update junixsocket-core to 2.7.2 (#5236) 1edf57ac1e Update sbt to 1.9.6 (#5237) d7037ede28 Update scala-library to 2.13.12 (#5235) a0b273e6b3 Update junixsocket-core to 2.7.1 (#5234) b474a60986 Update sbt-scoverage to 2.0.9 (#5233) 4146f856ed Update scalatest to 3.2.17 (#5232) 433a097449 Update slf4j-api to 2.0.9 (#5228) d37faa0bcf Update sqlite-jdbc to 3.42.0.1 (#5205) ccafd0c5c9 Update sbt to 1.9.4 (#5204) 2fe80bd52b Update scala-collection-compat to 2.11.0 (#5107) 561be207b1 Update sbt-coveralls to 1.3.11 (#5191) 6c9d71cb97 Update logback-classic to 1.4.11 (#5189) 38f8c40c33 Update client3:core to 3.9.0 (#5190) d5bf14f5cf Update sbt-coveralls to 1.3.10 (#5184) b1ca4310ac Update logback-classic to 1.4.9 (#5178) 969937b9df Update junixsocket-core to 2.7.0 (#5179) eff3580ea0 Update bcprov-jdk18on to 1.76 (#5175) 092ef944e2 Update sbt to 1.9.3 (#5160) 516bfdd007 Bump semver from 5.7.1 to 5.7.2 in /website (#5149) 4622080b5b Bump json5 from 2.2.1 to 2.2.3 in /website (#4943) 115da94229 Update sbt to 1.9.2 (#5142) cde3977312 Update sbt-scalajs-crossproject to 1.3.2 (#5137) 51f5f53322 Update client3:core to 3.8.16 (#5134) cd812ac7a3 Update janino to 3.1.10 (#5128) aff86c7679 Update sbt to 1.9.1 (#5123) 2023e3cfb7 Update bcprov-jdk18on to 1.75 (#5112) 3df12aa929 Update sbt-scalajs, scalajs-compiler, ... to 1.13.2 (#5113) 2a966a6916 Update bcprov-jdk18on to 1.74 (#5106) 2363ec4d4e Update logback-classic to 1.4.8 (#5103) ebe98959ed Upgrade to scalac 2.13.11 (#5097) 514cb54f69 Update metrics-core, metrics-healthchecks, ... to 4.2.19 (#5090) 3166539d2a Update sbt to 1.9.0 (#5091) 7036915e0f Update sbt-scoverage to 2.0.8 (#5092) 46b9301c5d Update sqlite-jdbc to 3.42.0.0 (#5083) 6f486bcc68 Fix transitive dep introduced in sqlite3 3.41.2.2 (#5082) f99113f2f8 Update sqlite-jdbc to 3.41.2.2 (#5080) a60f62b59d Update scalacheck-1-16 to 3.2.14.0 (#5079) 200d15af21 Update scalatest to 3.2.16 (#5078) 17ee387e40 Update sbt to 1.8.3 (#5077) 1014c47bd9 Update bcprov-jdk18on to 1.73 (#5044) 8aadf71eb1 Update sbt-native-image to 0.3.4 (#5067) 09150e5a1f Update scalacheck-1-15 to 3.2.12.0 (#5068) 475ed33716 Update sbt-ci-release to 1.5.12 (#5064) a7146e7dce Update scala-collection-compat to 2.10.0 (#5061) 9f129c2fe5 Update logback-classic to 1.4.7 (#5054) 760903660e Update sbt-scalajs-crossproject to 1.3.1 (#5047) 25cdf9d880 Update client3:core to 3.8.15 (#5042) 3379e99ffd Update sbt-scalajs, scalajs-compiler, ... to 1.13.1 (#5043) 5e668c5d5e Update client3:core to 3.8.14 (#5028) d2cc7ec98b Update sbt-scalajs-crossproject to 1.3.0 (#5035) 8186b2e2df Update waffle-jna to 3.3.0 (#5026) b2ead6038f Update sqlite-jdbc to 3.41.2.1 (#5027) d3d85eae95 Update sqlite-jdbc to 3.41.0.1 (#5019) 51a354245b Update client3:core to 3.8.13 (#5010) 84803fdfb1 Update metrics-core, metrics-healthchecks, ... to 4.2.18 (#5013) efd92c1280 Update logback-classic to 1.4.6 (#5012) 64354d2eb9 Update postgresql to 42.6.0 (#5014) f221688fe0 Update slf4j-api to 2.0.7 (#5015) fbcea17e2f Update client3:core to 3.8.12 (#5007) 6aae816de9 Update metrics-core, metrics-healthchecks, ... to 4.2.17 (#4999) b444a192b0 Update sbt-native-packager to 1.9.16 (#4998) cea5dee58b Update scodec-bits to 1.1.37 (#5006) ccb3b27fb3 Update sqlite-jdbc to 3.41.0.0 (#5001) 4b5659d740 Update scodec-bits to 1.1.36 (#5004) c192ede1d8 Update postgresql to 42.5.4 (#4993) a9e17684fe Update sbt-native-packager to 1.9.15 (#4989) 46dc3ed14e Update metrics-core, metrics-healthchecks, ... to 4.2.16 (#4990) 80d0bd2560 Update sbt-scoverage to 2.0.7 (#4982) 46d3079e5b Update scodec-bits to 1.1.35 (#4979) 6903db941d Update org.osgi.service.jdbc to 1.1.0 (#4929) 567f75df18 Update jna to 5.13.0 (#4951) 90549a68ab Update sbt-scalajs, scalajs-compiler, ... to 1.13.0 (#4963) 473664f932 Update junixsocket-core to 2.6.2 (#4981) 7043c95800 Update play-json to 2.9.4 (#4959) 853bd2387e Update sbt-mdoc to 2.3.7 (#4964) 0ff1370bf9 Update postgresql to 42.5.3 (#4972) 2445e4fa8b Update sqlite-jdbc to 3.40.1.0 (#4969) 0848cb6478 Update client3:core to 3.8.11 (#4977) 79476a6231 Update scalapb-runtime to 0.11.13 (#4978) 7d749f271b Update sbt-native-packager to 1.9.14 (#4980) a544ce0287 Update sbt-native-packager to 1.9.13 (#4953) 4b4f6c8b9f Update sbt-native-packager to 1.9.12 (#4952) bfb7469209 Update client3:core to 3.8.8 (#4948) 06a8e15e79 Update gson to 2.10.1 (#4945) 642fad6fe4 Update client3:core to 3.8.7 (#4946) c729c906a1 Update scalatest to 3.2.15 (#4947) 7ed62ceeba Upgrade sbt to 1.8.2 (#4940) 7e8002f626 Update client3:core to 3.8.6 (#4938) 48a2a8f5e6 Update metrics-core, metrics-healthchecks, ... to 4.2.15 (#4930) ba65426ca5 Update sbt-bloop to 1.5.6 (#4915) 2ae87278cd Update slf4j-api to 2.0.6 (#4922) 424ea33541 Update jeromq to 0.5.3 (#4912) 3bc9d8808a Update client3:core to 3.8.5 (#4909) 84ce9b6f56 Update scala-collection-compat to 2.9.0 (#4910) 4f9cfdbbba upgrade website deps (#4907) ea5a66a80e Update scala-java-time to 2.5.0 (#4903) 6fae0abaee Update postgresql to 42.5.1 (#4898) 6efa60083a Update slf4j-api to 2.0.5 (#4901) aa54f28a60 Update sbt-scalajs, scalajs-compiler, ... to 1.12.0 (#4899) 6a0df4ee14 Update sqlite-jdbc to 3.40.0.0 (#4895) 1d4ee6cba4 Update logback-classic to 1.4.5 (#4892) caaee2976c Update slf4j-api to 2.0.4 (#4890) dac72f53d8 Update metrics-core, metrics-healthchecks, ... to 4.2.13 (#4893) 5061fc6fcc Update sqlite-jdbc to 3.39.4.1 (#4891) 775395874e Update janino to 3.1.9 (#4888) dbd54ca55f 2022 11 11 sbt 1.8.0 (#4883) 4df71ea9d8 Update sbt-scalajs-bundler to 0.21.1 (#4887) 1127c56a98 Bump versions to 1.9.7 (#4886)