* node: Fix bug where we we could have more connections than allowed by bitcoin-s.node.maxConnectedPeers
* node: Add log to indiciate if we are initializing disconnect
* node: Limit initial stack push in PeerFinder.start() to maxSearchCount^2
* Shuffle peers to get a randomized list of peers to connect to
* Add Random.shuffle()
* Call .take() before adding socks5ProxyParams
* Add pattern match network for hardcoded-peers.txt which are mainnet peers
* Revert logback-test.xml
* node: Remove offer to queue calling connectPeer() inside PeerManager stream
* node: When disconnecting peers don't offer to queue to avoid deadlock
* node: When shutting down node don't offer to queue to avoid deadlock
* cleanup
* node: Add PeerStackTest, fix bug where we could have the same ip address multiple times in PeerStack
* make implicit Ordering private in PeerStack
* Rename PeerOrdering.peer -> PeerOrdering.peerData
* Add NodeState.NoPeers, cache network messages that need to be sent when we establish a connection with a peer
* Cleanup
* Bump maxTries to avoid spurious timeout
* Empty commit to re-run CI
* Add payload to query timeout log
* scalafmt
* Add first header we are requesting to invalid headers query log
* Remove noisy max headers received log
* Remove noisy max filter headers / filters received log
* Make WebsocketTests rescan test more robust
* Bump timeout on WebsocketTests address generated unit test
* Rework importseed endpoint to return a bool indicating if the import was successful
* Reduce Server.httpBadRequest() log level from ERROR -> INFO
* Remove adhoc json for walletinfo
* Add NodeApiCallbacks
* Add BitcoindCallbacks
* Add BitcoindRpcAppConfig
* fix docs
* Add helper method for construction
* Add helper constructor method to avoid explicitly passing BitcoindRpcAppConfig parameter to BitcoindRpcClient when we have a BitcoindInstanceLocal
* Fix docs
* Update scalafmt-core to 3.8.1
* Update .scalafmt.conf settings to be factory default settings
* Fix typo
* scalafmt
* Empty commit to re-run CI
* Revert some scalafmt back to original scalafmt.conf
---------
Co-authored-by: Chris Stewart <stewart.chris1234@gmail.com>
* Rework DataMessageHandler to consider syncing filterheaders if we receive a headers message with 0 block headers
* scalafmt
* Remove syncfilter job
* Cleanup
* Reduce received headers log to DEBUG
* Rework SyncNodeState.toString()
* Call PeerManager.startFilterSync() in DataMessageHandler
* Don't test MTP in unrelated test
* Add sentQuery Instant to SyncNodeState subclasses, add logic in DataMessageHandler.handlePayload() to detect if a query has timed out
* Refactor to use NodeTestUtil.disconnectNode()
* Cleanup comments
* Refactor syncHelper() to return SyncNodeState rather than Unit
* Add FilterOrFilterHeaderSync, rework various methods in PeerManager to return Option[FilterOrFilterHeaderSyncState] to indicate if we are syncing rather than Future[Unit]
* Don't use getPeerMessageSender() if we can use syncPeerMessageSender()
* Fix case where syncpeer and new peer are different when creating a filter sync job
* Adjust createFilterSyncJob() return type, throw exception when we try to sync but PeerManager is not started
* Refactor to use SyncNodeState.{toFilterHeaderSync,toFilterSync}
* Cleanup comments