Start server before sync (#1682)

* Start server before sync

* Move promise call
This commit is contained in:
Ben Carman 2020-07-19 10:40:36 -05:00 committed by GitHub
parent 5e8a049fd2
commit 9a35f16913

View file

@ -16,9 +16,9 @@ import org.bitcoins.core.Core
import org.bitcoins.core.util.{BitcoinSLogger, FutureUtil, NetworkUtil} import org.bitcoins.core.util.{BitcoinSLogger, FutureUtil, NetworkUtil}
import org.bitcoins.db.AppConfig import org.bitcoins.db.AppConfig
import org.bitcoins.feeprovider.BitcoinerLiveFeeRateProvider import org.bitcoins.feeprovider.BitcoinerLiveFeeRateProvider
import org.bitcoins.node._
import org.bitcoins.node.config.NodeAppConfig import org.bitcoins.node.config.NodeAppConfig
import org.bitcoins.node.models.Peer import org.bitcoins.node.models.Peer
import org.bitcoins.node._
import org.bitcoins.wallet.api._ import org.bitcoins.wallet.api._
import org.bitcoins.wallet.config.WalletAppConfig import org.bitcoins.wallet.config.WalletAppConfig
@ -105,9 +105,17 @@ object Main extends App with BitcoinSLogger {
} yield initNode } yield initNode
//start and sync our node //start and sync our node
val syncedNodeF = for { val startedNodeF = for {
node <- nodeWithCallbacksF node <- nodeWithCallbacksF
_ <- node.start() _ <- node.start()
} yield node
//start our http server now that we are synced
val startFut = for {
node <- startedNodeF
wallet <- walletF
binding <- startHttpServer(node, wallet, rpcPortOpt)
_ = _ =
if (nodeConf.isSPVEnabled) { if (nodeConf.isSPVEnabled) {
logger.info(s"Starting SPV node sync") logger.info(s"Starting SPV node sync")
@ -116,14 +124,9 @@ object Main extends App with BitcoinSLogger {
} else { } else {
logger.info(s"Starting unknown type of node sync") logger.info(s"Starting unknown type of node sync")
} }
_ <- node.sync() _ = BitcoinSServer.startedFP.success(Future.successful(binding))
} yield node
//start our http server now that we are synced _ <- node.sync()
val startFut = for {
node <- syncedNodeF
wallet <- walletF
binding <- startHttpServer(node, wallet, rpcPortOpt)
} yield { } yield {
logger.info(s"Done starting Main!") logger.info(s"Done starting Main!")
sys.addShutdownHook { sys.addShutdownHook {
@ -146,9 +149,6 @@ object Main extends App with BitcoinSLogger {
binding binding
} }
BitcoinSServer.startedFP.success(startFut)
startFut.failed.foreach { err => startFut.failed.foreach { err =>
logger.error(s"Error on server startup!", err) logger.error(s"Error on server startup!", err)
} }