* Fix bug in PeerManager.connect() where we would throw ane xception when our PeerFinder had not seen the peer before
* Remove ReConnectionTest case where we constantly try to reconenct o a peer we disconnected, revert logback-test.xml
* Conslidate PeerFinder.start() logic into peerConnectionScheduler, add bitcoins-s.node.try-peers-start-delay config settig to indicate how long until we start attempting to connect to peers in PeerFinder
* Cleanup
* Revert logback-test.xml
* Add documentation
* Empty commit to run CI
* Rework NodeAppConfig.peers to return Vector[Peer] rather than Vector[String]
* Add higher priority to paramPeers
* Move NodeState back to node module
* Refactor peerWithServicesDataMap into NodeState
* More usage of state.peerDataMap in stream
* Fix log message
* Fix compile
* Move PeerFinder into NodeState
* WIP: Move PeerFinder init into NeutrinoNode.start()
* Get things mostly working again after rebase
* Fix bug in handling of headers message where we wouldn't transition to DoneSyncing if a peer sent us 0 headers
* Move SendToPeer into stream
* scalafmt
* Empty commit to run CI
* Re-add DataMessageHandlerTest
* Renable disconnecting portion of NeutrinoNodeTest
* Empty commit to run CI
* Remove disconnection part of test again
* Empty commit to re-run CI
* Empty commit to re-run CI
* Dont initiate disconnect logic from bitcoind, its falky for some reason
* Fix bug where we weren't switching sync to another peer on disconnect for the case where we were waiting for disconnection
* Empty commit to run CI
* Empty commit to run CI
* Add NodeShuttingDown
* Add NodeShutdown to NodeStreamMessage, use it in PeerManager.stop()
* Add guard to NeutrinoNode.stop() to see if stop() was called when the isStarted flag is set, if we aren't started don't attempt to destroy the akka stream
* Rework NodeTestUtil to use a specific bestBlockHash, this is useful in reorg situations
Use param in reorg test, modify scaladoc
WIP
* Cleanup
* Try to fix usage of stopHashBE
* Cleanup
* WIP: Fix getCompactFilterStartHeight()
* Revert logback-test.xml
* Fix bug with isFiltersSynced() in reorg situations
* scalafmt, fix compile
* Fix another bug with isFiltersSynced()
* Fix compile
* Add ChainApi.getBestChainTips()
* Implement BitcoindRpcClient.getBestChainTips()
* Revert NodeTestUtil
* Use ChainApi.getBestChainTips() throughout codebase rather than blockHeaderDAO.getBestChainTips()
* Fix another bug with isFiltersSynced()
* Fix compile
* Cleanup uncessary checks
* Empty commit to re-run CI
* Empty commit to re-run CI
* Empty commit to re-run CI
* Rework randomPeerWithServices() to be inside of NodeState, try to move more state into NodeState
* Don't try to sync from peer waitingForDisconnection
* Add PeerWithServices, keep track of ServiceIdentifier in PeerManager and NodeState
* Try to make reorg test more reliable
* Empty commit to run CI
* Rework ChainApi.nextBlockHeaderBatchRange() to take stopHash parameter, get chainTest/test passing
* WIP: Refactor ChainApi.nextFilterHeaderBatchRange()
* Finish ChainApi.nextFilterHeaderBatchRange() refactor, get all tests passing except reorg related tests in nodeTest
* Get NeutrinoNodeTest reorg test case working
* Improve flaky test
* Cleanup
* Switch sync check to bitcoinds(1)
* Empty commit to run CI
* Implement batchSize tests in ChainHandlerTest
* Rework ChainHandlerTest to not assume we have the genesis filter header / filter inserted into the database already
* Cleanup println
* Fix bug with nextFilterHeaderBatchRange() wrt to startHeightOpt parameter
* Fix off by one bug with compact filter sync
* Add check for connectionCount
* Add longer timeout
* scalafmt
* Make GossipMessage use PeerManager queue to avoid gossiping messages to peers that are being disconnected
* Remove isIBD check for gossiping getheaders after filter sync is complete
* Add log warning when NodeState has a peer, but peerDataMap doesn't when gossiping messages
* Rework various private methods in DataMessagehandler to return NodeState rather than DataMessageHandler
* Refactor compact filter header handling into private helper method
* Refactor handling of headersmsg in case where the headermsg came from a different peer than our current syncPeer
* Add DEBUG log
* Remove unecessary helper method in PeerFinder
* scalafmt
* Empty commit to re-run CI
* Empty commit to re-run CI
* Empty commit to re-run CI
* Empty commit to run CI
* Empty commit to re-run CI
* Rework ConnectionGraph.stop() to return Future[Done] that represents the stream being completed
* Empty commit to re-run CI
* Fix bug in handleStreamComplete()
* Revert log levels
* Empty commit to run CI
* Remove calls to PeerData.stop() inside of PeerManager.onDisconnect(), now call PeerConnection.disconnect() when stream is complete
* Empty commit to re-run CI
* Empty commit to re-run CI
* Empty commit to re-run CI
* Empty commit to re-run CI
* Make PeerFinder.removePeer() return Option[PeerData]
* Move socks5 greeting into Socks5Connection.socks5Handler() so each individual uage doesn't have to roll its own greeting
* Implement socks5Handler() to return a materialized stream
Get something working
Cleanup
* Remove connection parameter
* Add scaladoc
* Pull queue, PeerFinder into NeutrinoNode and out of PeerManager
* Remove ControlMessageHandler param from PeerData
* Make ControlMessageHandle.handleControlPayload() take PeerMessageSenderApi as a param instead of just a Peer
* move construction of akka stream from PeerManager to NeutrinoNode
* Move inactivity checks out of PeerManager and into NeutrinoNode
* Move queue initialization into NeutrinoNode
* cleanup
* Set NeutrinoNode.isStarted to true when NeutrinoNode.start() is called
* Empty commit to re-run CI
* Modify FilterSync.toString()
* scalafmt
* Fix bug where we weren't checking if connection is timed out on activity checks
* Empty commit to run CI
* reset log level
* Reset PeerConnection.connectionGraphOpt = None when connection is disconnected
* Move resetting connectionGraphOpt into PeerConnection.disconnect()
* Call PeerData.stop() inside of PeerManager.onDisconnect()
* Empty commit to run CI
* Empty commit to re-run CI
* WIP: Implement WalletCallbackStreamManager
* Implement stopping of WalletCallbackStreamManager in WalletAppConfig
* WIP: DLCWalletCallbackStreamManager
* Refactor DLCWalletCallbacks to be a trait
* Integrate DLCWalletCallbackStreamManager into WebsocketUtil
* Use java.util.concurrent.atomic.AtomicBoolean rather than monix
* Remove logger param from dlc callbacks
* fix docs
* Call super.stop() in DLCappConfig
* Empty commit to run CI
* Try to debug
* Empty commit to run CI
* Revert things
* Rename PeerMessageSender -> PeerConnection
* WIP: Move gossip methods into PeerManagerApi, keep single peer methods in PeerMessageSenderApi, but remove peer parameter
* PeerData.peerMessaageSender -> PeerData.peerConnection
* Remove DataMessageHandler.queue as it is redundant
* Get most test cases passing in nodeTest
* Fix ReConnectionTest
* Fix NeutrinoNodeWithUncachedBitcoindTest test case
* Rename PeerManager.{randomPeerMsgSender, getPeerMessageSender} -> PeerManager.{randomPeerConnection,getPeerConnection}
* Refactor PeerManager.getPeerMessageSender to return the new PeerMessageSender
* Rename param
* scalafmt
* Remove unused method
* Revert onInitialization
* Add test case for reorg on bitcoin network for NeutrinoNodeTest
* Get unit tests passing
* Refactor findNextHeader() to not take an Option[BlockHeaderDb], not it just takes BlockHeaderDb
* Explicity return None in the case where we don't need sync filter headers
* Fix off by one bug when starting filter header sync