Commit graph

4127 commits

Author SHA1 Message Date
Scala Steward
7036915e0f
Update sbt-scoverage to 2.0.8 (#5092) 2023-06-05 12:16:10 -05:00
Chris Stewart
e74af8bf24
Move P2PClientCallbacks.onStop() into disconnection logic rather than Actor.postStop() (#5089)
* Move P2PClientCallbacks.onStop() into disconnection logic rather than Actor.postStop()

* Rename onStop -> onDisconnect

* Add reconnect flag to P2PCallbacks.onDisconnect so we don't attempt to reconnect when not necessary

* Rename flag to forceReconnect, check getPeerConnectionCount in PeerManager.onP2PClientDisconnect to see if we have 0 connections. If we do reconnect

* Add PeerManager.isStarted flag, guard reconnection logic with this flag in onP2PClientDisconnected()

* Clear PeerFinder._peerData when PeerFinder.stop() is called

* WIP: Move disconnection logic into stream

* Rework ordering of PeerManager.stop() to shutdown queue after peers are removed

* Empty commit to re-run CI

* Await for getConnectionCount async in test case

* Try increasing queue size

* Bump queue size to 16

* Put initialization, initialization timeout logic in queue rather than callbacks

* Make messages that are sent to the queue rather than callbacks for various control messages

* Empty commit to re-run CI

* Empty commit to re-run CI

* Empty commit to re-run CI

* Remove P2PCallbacks all together

* Re-add PeerMessageReceiverTest
2023-06-05 10:39:02 -05:00
Chris Stewart
fa34cb4f4d
Bump bitcoind minor versions to 24.1/23.2 (#5088)
* Bump bitcoind minor versions to 24.1/23.2

* Fix hashes for linux/mac x86

* Fix windows hashes
2023-06-01 08:55:46 -05:00
Chris Stewart
61e142a631
2023 05 29 peermanager peerfinder refactor (#5086)
* WIP

* Reset PeerManager.dataMessageHandler to None on PeerManager.stop()

* WIP2

* Always set dataMessageHandler.peerData we process a new message in the stream

* remove PeerManager from PeerDatta

* Make PeerFinder mutable inside of PeerManager, pass the queue into PeerFinder to decouple PeerManager and PeerFinder

* Don't verify actor system shutdown for now
2023-05-31 13:35:46 -05:00
Chris Stewart
6c38a791d7
Drain data message stream before PeerManager.stop() is complete (#5085)
* Drain data message stream before PeerManager.stop() is complete

* Try to fix race condition where peers.length gets mutated as peers get disconnected

* Adjust logic to check if we have a _new_ peer, not a specific peer count

* rework PeerManager.stop() ordering

* Rework PeerFinder.stop() to use Future.traverse()
2023-05-30 13:57:19 -05:00
Chris Stewart
9202e63c90
Create P2PClientCallbacks to encapsulate callbacks (#5084) 2023-05-30 07:40:52 -05:00
Scala Steward
46b9301c5d
Update sqlite-jdbc to 3.42.0.0 (#5083) 2023-05-29 10:54:56 -05:00
Chris Stewart
6f486bcc68
Fix transitive dep introduced in sqlite3 3.41.2.2 (#5082) 2023-05-29 09:29:23 -05:00
Chris Stewart
34df4ccbb1
Make ControlMessageHandler take PeerManager rather than Node as a param (#5081)
* Make ControlMessageHandler take PeerManager rather than Node as a param

* refactor PeerData to not take a reference to Node

* Move ControlMessageHandler out of {Node,NeutrinoNode}
2023-05-29 09:01:06 -05:00
Scala Steward
f99113f2f8
Update sqlite-jdbc to 3.41.2.2 (#5080) 2023-05-27 09:23:02 -05:00
Scala Steward
a60f62b59d
Update scalacheck-1-16 to 3.2.14.0 (#5079) 2023-05-27 09:22:47 -05:00
Scala Steward
200d15af21
Update scalatest to 3.2.16 (#5078) 2023-05-27 09:21:02 -05:00
Scala Steward
17ee387e40
Update sbt to 1.8.3 (#5077) 2023-05-27 09:20:48 -05:00
Chris Stewart
d33f17f0d7
Cancel oninit timeout scheduled job when we disconnect (#5076) 2023-05-24 10:00:56 -05:00
Chris Stewart
777743989a
Remove PeerHandler as it isn't used in src (#5075)
* Remove PeerHandler as it isn't used in src

* Fix rebase
2023-05-22 11:11:03 -05:00
Chris Stewart
8e4aa49aef
Fix ReConnectionTest part 2 (#5074)
* Fix ReConnectionTest

* Cleanup

* Revert logback-test.xml

* Fix connectioncount test case

* Get P2PClientTest passing consistently

* Empty commit to re-run CI
2023-05-22 08:11:57 -05:00
Chris Stewart
c0403da7c6
Make PeerFinder.getData() return Option (#5073) 2023-05-17 15:49:58 -05:00
Chris Stewart
5a8576a057
Encapsulate access to akka streams queue to PeerManager (#5070)
* Encapsulate access to akka streams queue to PeerManager

* Revert logback-test.xml
2023-05-15 15:24:38 -05:00
Chris Stewart
cb272ddf83
Fix build by ignoring junit transitive dep (#5071) 2023-05-15 13:52:40 -05:00
Scala Steward
1014c47bd9
Update bcprov-jdk18on to 1.73 (#5044) 2023-05-13 08:23:38 -05:00
Scala Steward
8aadf71eb1
Update sbt-native-image to 0.3.4 (#5067) 2023-05-09 07:39:32 -05:00
Chris Stewart
8dfb7d091f
2023 05 05 encapsulate peermanager peermsgsender (#5066)
* Make PeerManager.peerDataMap private

* Remove PeerMessageSender as param to DataMessageHandler.addToStream()

* Remove PeerMessageSender parameter from DataMessageWrapper

* Add PeerMessageSenderApi

* Try adding a supervision strategy to the stream

* Empty commit to re-run CI

* Adjust log level down to try and get a better idea of whats happening on IC

* Add commandName to exception when we cannot find peerMessageSender in stream

* Try decreasing queue size to reduce async processing between being stream processing and actor receiving external p2p message

* Empty commit to re-run CI

* Increase max concurrent offers to nodeAppConfig.maxConnectedPeers

* Revert logging
2023-05-08 15:17:36 -05:00
Scala Steward
09150e5a1f
Update scalacheck-1-15 to 3.2.12.0 (#5068) 2023-05-08 09:54:10 -05:00
Chris Stewart
4c6090207a
Add MisbehavingPeer state (#5065)
* Add MisbehavingPeer state

* Remove PeerManager.syncFromNewPeer()
2023-05-05 16:11:25 -05:00
Scala Steward
475ed33716
Update sbt-ci-release to 1.5.12 (#5064) 2023-05-05 14:26:49 -05:00
Chris Stewart
2fdd237e20
2023 04 26 dmh state refactor (#5062)
* WIP: Add new states for FilterHeaderSync, FilterSync, DoneSyncing

* Get DataMessageHandler compiling

* Get src compiling

* Get tests compiling

* Remove syncPeer from DoneSyncing

* WIP: Get first NeutrinoNodeTest working

* Get first NeutrinoNodeTest working for basic sync

* Fix small bug

* Fix bug where we transition to HeaderSync when we receive HeadersMessage with 0 headers. Also reduce conflicting states in DataMessageHandler.getHeaders()

* Add caveats for empty HeadersMessage

* WIP: Get NeutrinoNodeTest syncing compact filters during IBD passing consistently

* Remove generate block delay

* Empty commit to re-run CI

* Fix bug in onP2PClientStopped()

* Fix handling of DoneSyncing state when we receive headers messages

* Remove impossible case
2023-05-04 12:45:40 -05:00
Scala Steward
a7146e7dce
Update scala-collection-compat to 2.10.0 (#5061) 2023-04-28 14:21:58 -05:00
Chris Stewart
ce6f0d1507
Refactor HeadersMessage to have helper method for HeadersMessage (#5060) 2023-04-26 10:46:24 -05:00
Chris Stewart
1fc6edf825
Remove initialSyncDone Promise as it isn't used (#5058) 2023-04-25 06:45:15 -05:00
Chris Stewart
ce6d2212c1
2023 04 22 peermanager dmh refactor (#5057)
* WIP: Move DataMessageHandler into PeerManager

* Get things compiling

* Turn off logging
2023-04-24 08:14:02 -05:00
Chris Stewart
1461782865
Move onHeaderRequestTimeout to PeerManager (#5056) 2023-04-23 13:38:15 -05:00
Chris Stewart
7beed5a00d
Only request syncing compact filter headers / filters if our tip isn't stale (#5055) 2023-04-22 10:24:23 -05:00
Scala Steward
9f129c2fe5
Update logback-classic to 1.4.7 (#5054) 2023-04-21 12:38:51 -05:00
Chris Stewart
d1c9228361
Fix getpeers -> getconnectioncount in cli (#5052) 2023-04-21 05:47:47 -05:00
Chris Stewart
18482c7e44
2023 04 20 decouple node (#5049)
* Remove node parameter to PeerMessageReceiver, pass the ControlMessageHandler and DataMessageHandler as parameters

* Remove node reference in DataMessageHandler, just pass PeerManager as parameter

* Fix pattern match to be exhaustive

* Move fetchCompactFilterHeaders, sendFirstGetCompactFilterHeadersCommand out of DataMessagehandler to decouple DataMessageHandler, PeerManager

* scalafmt
2023-04-20 18:39:30 -05:00
Chris Stewart
3740b4fc35
Implement batchAndParallelExecute with Future.traverse rather than Future.sequence (#5051) 2023-04-20 17:59:09 -05:00
Chris Stewart
5f9c89820f
Add wait before checking connection count test (#5050) 2023-04-20 17:20:24 -05:00
Scala Steward
760903660e
Update sbt-scalajs-crossproject to 1.3.1 (#5047) 2023-04-20 09:41:13 -05:00
Chris Stewart
447c6d03de
Implement getconnectioncount rpc (#5048)
* Implement getconnectioncount rpc

* Reduce waits in test, add documentation

* Fix docs

* Empty commit to re-run CI
2023-04-19 16:47:54 -05:00
Chris Stewart
3728b9a9d9
Refactor HDPath pattern matching to be safer. (#5046)
* Refactor hd path pattern matching to be safer. Also avoids warnings in scala3

* Allow single element bip32 path
2023-04-19 08:41:10 -05:00
Chris Stewart
51429a7d68
2023 04 17 refactor peer message receiver (#5045)
* WIP: Refactor PeerMessageReceiver methods into PeerMessageReceiverState

* Remove state helper methods from PeerMessageReceiver

* WIP: Remove PeerMessageReceiverState from PeerMessageReceiver

* Get things compiling and tests passing

* Remove currentPeerMessageHandlerReceiver

* Refactor PeerMessageReceiverTest to not use bitcoind
2023-04-18 10:25:24 -05:00
Scala Steward
25cdf9d880
Update client3:core to 3.8.15 (#5042) 2023-04-15 10:33:19 -05:00
Scala Steward
3379e99ffd
Update sbt-scalajs, scalajs-compiler, ... to 1.13.1 (#5043) 2023-04-15 10:33:02 -05:00
Chris Stewart
13e5e6501c
Fix bug where compact filters weren't being processed in order of block height during IBD (#5041)
* Fix bug where compact filters weren't being processed in order of block height during IBD

* Use sorted compact filter messages in chainApi.processFilters()
2023-04-10 16:42:48 -05:00
Scala Steward
5e668c5d5e
Update client3:core to 3.8.14 (#5028) 2023-04-10 07:56:39 -05:00
Scala Steward
d2cc7ec98b
Update sbt-scalajs-crossproject to 1.3.0 (#5035) 2023-04-08 22:21:23 -05:00
Chris Stewart
36f30c5915
Fix bug where bip39Password was not passed as param in test case (#5040)
* Fix bug where bip39Password was not passed as param in test case

* Empty commit to re-run CI

* Empty commit to re-run CI
2023-04-08 22:19:13 -05:00
Chris Stewart
f95360f8ba
Add logic to fetch block headers after compact filters are synced in IBD to avoid a stale tip (#5037)
* Add logic to fetch block headers after compact filters are synced in IBD to avoid a stale tip

* Restore logging, remove println

* Add comment linking to issue

* Cleanup logging

* Only send getheaders message after filter sync if we are in IBD
2023-04-08 16:12:03 -05:00
Chris Stewart
31e1bd79e9
Speed up DataMessageHandlerTest dramatically by using CachedBitcoind (#5038) 2023-04-07 11:12:06 -05:00
Chris Stewart
36ec40dfa3
implement generating addresses when wallet is initialized if creationTime is > 1 hour ago (#5034) 2023-04-04 11:40:26 -05:00