mirror of
https://github.com/bitcoin-s/bitcoin-s.git
synced 2025-02-22 14:33:06 +01:00
Move BitcoindRpcAppConfig into the bitcoind-rpc project (#3610)
This commit is contained in:
parent
704b02ae6c
commit
0746b14331
18 changed files with 55 additions and 38 deletions
|
@ -3,8 +3,8 @@ package org.bitcoins.bundle.gui
|
|||
import akka.actor.ActorSystem
|
||||
import grizzled.slf4j.Logging
|
||||
import org.bitcoins.commons.util.ServerArgParser
|
||||
import org.bitcoins.core.api.node.NodeType
|
||||
import org.bitcoins.gui._
|
||||
import org.bitcoins.node.NodeType
|
||||
import org.bitcoins.server.BitcoinSAppConfig
|
||||
import scalafx.geometry._
|
||||
import scalafx.scene.control.TabPane.TabClosingPolicy
|
||||
|
|
|
@ -6,9 +6,9 @@ import grizzled.slf4j.Logging
|
|||
import org.bitcoins.bundle.gui.BundleGUI._
|
||||
import org.bitcoins.commons.config.AppConfig
|
||||
import org.bitcoins.commons.util.{DatadirUtil, ServerArgParser}
|
||||
import org.bitcoins.core.api.node.InternalImplementationNodeType
|
||||
import org.bitcoins.gui._
|
||||
import org.bitcoins.node.NodeType._
|
||||
import org.bitcoins.node._
|
||||
import org.bitcoins.core.api.node.NodeType._
|
||||
import org.bitcoins.server.BitcoinSAppConfig.toNodeConf
|
||||
import org.bitcoins.server._
|
||||
import scalafx.beans.property.ObjectProperty
|
||||
|
|
|
@ -6,9 +6,9 @@ import akka.stream.scaladsl.{Keep, Sink, Source}
|
|||
import org.bitcoins.core.protocol.blockchain.Block
|
||||
import org.bitcoins.core.protocol.transaction.WitnessTransaction
|
||||
import org.bitcoins.rpc.client.common.BitcoindRpcClient
|
||||
import org.bitcoins.server.BitcoindRpcAppConfig
|
||||
import org.bitcoins.rpc.config.BitcoindRpcAppConfig
|
||||
import org.bitcoins.server.routes.BitcoinSRunner
|
||||
import org.bitcoins.server.util.{BitcoinSAppScalaDaemon}
|
||||
import org.bitcoins.server.util.BitcoinSAppScalaDaemon
|
||||
|
||||
import scala.concurrent.Future
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package org.bitcoins.server
|
||||
|
||||
import java.nio.file._
|
||||
|
||||
import com.typesafe.config.ConfigFactory
|
||||
import org.bitcoins.core.config._
|
||||
import org.bitcoins.rpc.config.BitcoindRpcAppConfig
|
||||
import org.bitcoins.testkit.util.BitcoinSAsyncTest
|
||||
|
||||
import scala.reflect.io.Directory
|
||||
|
|
|
@ -12,6 +12,7 @@ import org.bitcoins.dlc.node.config.DLCNodeAppConfig
|
|||
import org.bitcoins.dlc.wallet.DLCAppConfig
|
||||
import org.bitcoins.keymanager.config.KeyManagerAppConfig
|
||||
import org.bitcoins.node.config.NodeAppConfig
|
||||
import org.bitcoins.rpc.config.BitcoindRpcAppConfig
|
||||
import org.bitcoins.tor.config.TorAppConfig
|
||||
import org.bitcoins.wallet.config.WalletAppConfig
|
||||
|
||||
|
|
|
@ -9,7 +9,12 @@ import org.bitcoins.chain.models._
|
|||
import org.bitcoins.commons.util.{DatadirParser, ServerArgParser}
|
||||
import org.bitcoins.core.api.chain.ChainApi
|
||||
import org.bitcoins.core.api.feeprovider.FeeRateApi
|
||||
import org.bitcoins.core.api.node.NodeApi
|
||||
import org.bitcoins.core.api.node.{
|
||||
ExternalImplementationNodeType,
|
||||
InternalImplementationNodeType,
|
||||
NodeApi,
|
||||
NodeType
|
||||
}
|
||||
import org.bitcoins.core.util.NetworkUtil
|
||||
import org.bitcoins.core.wallet.fee.SatoshisPerVirtualByte
|
||||
import org.bitcoins.dlc.node.DLCNode
|
||||
|
@ -21,7 +26,7 @@ import org.bitcoins.feeprovider._
|
|||
import org.bitcoins.node._
|
||||
import org.bitcoins.node.config.NodeAppConfig
|
||||
import org.bitcoins.node.models.Peer
|
||||
import org.bitcoins.rpc.config.ZmqConfig
|
||||
import org.bitcoins.rpc.config.{BitcoindRpcAppConfig, ZmqConfig}
|
||||
import org.bitcoins.server.routes.{BitcoinSServerRunner, Server}
|
||||
import org.bitcoins.server.util.BitcoinSAppScalaDaemon
|
||||
import org.bitcoins.tor.config.TorAppConfig
|
||||
|
|
|
@ -1,13 +1,10 @@
|
|||
package org.bitcoins.server
|
||||
package org.bitcoins.rpc.config
|
||||
|
||||
import akka.actor.ActorSystem
|
||||
import com.typesafe.config.Config
|
||||
import org.bitcoins.commons.config.{AppConfig, ConfigOps}
|
||||
import org.bitcoins.node.NodeType
|
||||
import org.bitcoins.node.config.NodeAppConfig
|
||||
import org.bitcoins.rpc.client.common.{BitcoindRpcClient, BitcoindVersion}
|
||||
import org.bitcoins.rpc.config._
|
||||
import org.bitcoins.server.util.AppConfigFactoryActorSystem
|
||||
import org.bitcoins.rpc.util.AppConfigFactoryActorSystem
|
||||
import org.bitcoins.tor.Socks5ProxyParams
|
||||
import org.bitcoins.tor.config.TorAppConfig
|
||||
|
||||
|
@ -37,21 +34,7 @@ case class BitcoindRpcAppConfig(
|
|||
|
||||
protected[bitcoins] def baseDatadir: Path = directory
|
||||
|
||||
lazy val nodeConf: NodeAppConfig = NodeAppConfig(directory, confs: _*)
|
||||
|
||||
override def start(): Future[Unit] = {
|
||||
nodeConf.nodeType match {
|
||||
case NodeType.BitcoindBackend =>
|
||||
binaryOpt match {
|
||||
case Some(_) =>
|
||||
client.start().map(_ => ())
|
||||
case None =>
|
||||
Future.unit
|
||||
}
|
||||
case NodeType.SpvNode | NodeType.NeutrinoNode | NodeType.FullNode =>
|
||||
Future.unit
|
||||
}
|
||||
}
|
||||
override def start(): Future[Unit] = Future.unit
|
||||
|
||||
override def stop(): Future[Unit] = Future.unit
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.bitcoins.server.util
|
||||
package org.bitcoins.rpc.util
|
||||
|
||||
import akka.actor.ActorSystem
|
||||
import org.bitcoins.commons.config.{AppConfig, AppConfigFactoryBase}
|
|
@ -1,4 +1,4 @@
|
|||
package org.bitcoins.node
|
||||
package org.bitcoins.core.api.node
|
||||
|
||||
import org.bitcoins.crypto.StringFactory
|
||||
|
|
@ -10,6 +10,7 @@ import org.bitcoins.core.api.chain.db.{
|
|||
CompactFilterDb,
|
||||
CompactFilterHeaderDb
|
||||
}
|
||||
import org.bitcoins.core.api.node.NodeType
|
||||
import org.bitcoins.core.protocol.BlockStamp
|
||||
import org.bitcoins.node.config.NodeAppConfig
|
||||
import org.bitcoins.node.models.Peer
|
||||
|
|
|
@ -10,7 +10,7 @@ import org.bitcoins.chain.models.{
|
|||
CompactFilterHeaderDAO
|
||||
}
|
||||
import org.bitcoins.core.api.chain._
|
||||
import org.bitcoins.core.api.node.NodeApi
|
||||
import org.bitcoins.core.api.node.{NodeApi, NodeType}
|
||||
import org.bitcoins.core.p2p.{NetworkPayload, ServiceIdentifier, TypeIdentifier}
|
||||
import org.bitcoins.core.protocol.transaction.Transaction
|
||||
import org.bitcoins.crypto.{DoubleSha256Digest, DoubleSha256DigestBE}
|
||||
|
|
|
@ -4,6 +4,7 @@ import akka.actor.ActorSystem
|
|||
import org.bitcoins.asyncutil.AsyncUtil
|
||||
import org.bitcoins.chain.config.ChainAppConfig
|
||||
import org.bitcoins.core.api.chain.ChainQueryApi.FilterResponse
|
||||
import org.bitcoins.core.api.node.NodeType
|
||||
import org.bitcoins.core.bloom.BloomFilter
|
||||
import org.bitcoins.core.protocol.transaction.Transaction
|
||||
import org.bitcoins.core.protocol.{BitcoinAddress, BlockStamp}
|
||||
|
|
|
@ -9,13 +9,15 @@ import org.bitcoins.chain.models.{
|
|||
CompactFilterDAO,
|
||||
CompactFilterHeaderDAO
|
||||
}
|
||||
import org.bitcoins.commons.config.AppConfigFactory
|
||||
import org.bitcoins.core.api.node.NodeType
|
||||
import org.bitcoins.core.util.Mutable
|
||||
import org.bitcoins.db.{DbAppConfig, JdbcProfileComponent}
|
||||
import org.bitcoins.node._
|
||||
import org.bitcoins.node.db.NodeDbManagement
|
||||
import org.bitcoins.node.models.Peer
|
||||
import org.bitcoins.node.networking.peer.DataMessageHandler
|
||||
import org.bitcoins.rpc.config.BitcoindRpcAppConfig
|
||||
import org.bitcoins.rpc.util.AppConfigFactoryActorSystem
|
||||
import org.bitcoins.tor.config.TorAppConfig
|
||||
import org.bitcoins.tor.{Socks5ProxyParams, TorParams}
|
||||
|
||||
|
@ -28,7 +30,7 @@ import scala.concurrent.{ExecutionContext, Future}
|
|||
*/
|
||||
case class NodeAppConfig(
|
||||
private val directory: Path,
|
||||
private val confs: Config*)(implicit override val ec: ExecutionContext)
|
||||
private val confs: Config*)(implicit val system: ActorSystem)
|
||||
extends DbAppConfig
|
||||
with NodeDbManagement
|
||||
with JdbcProfileComponent[NodeAppConfig] {
|
||||
|
@ -40,6 +42,8 @@ case class NodeAppConfig(
|
|||
configs: Seq[Config]): NodeAppConfig =
|
||||
NodeAppConfig(directory, configs: _*)
|
||||
|
||||
implicit override def ec: ExecutionContext = system.dispatcher
|
||||
|
||||
protected[bitcoins] def baseDatadir: Path = directory
|
||||
|
||||
override def appConfig: NodeAppConfig = this
|
||||
|
@ -58,6 +62,23 @@ case class NodeAppConfig(
|
|||
override def start(): Future[Unit] = {
|
||||
for {
|
||||
_ <- super.start()
|
||||
_ <- {
|
||||
nodeType match {
|
||||
case NodeType.BitcoindBackend =>
|
||||
val bitcoindRpcAppConfig =
|
||||
BitcoindRpcAppConfig(directory, confs: _*)(system)
|
||||
bitcoindRpcAppConfig.binaryOpt match {
|
||||
case Some(_) =>
|
||||
bitcoindRpcAppConfig.client
|
||||
.start()
|
||||
.map(_ => ())
|
||||
case None =>
|
||||
Future.unit
|
||||
}
|
||||
case NodeType.SpvNode | NodeType.NeutrinoNode | NodeType.FullNode =>
|
||||
Future.unit
|
||||
}
|
||||
}
|
||||
} yield {
|
||||
logger.debug(s"Initializing node setup")
|
||||
val numMigrations = migrate()
|
||||
|
@ -114,7 +135,7 @@ case class NodeAppConfig(
|
|||
}
|
||||
}
|
||||
|
||||
object NodeAppConfig extends AppConfigFactory[NodeAppConfig] {
|
||||
object NodeAppConfig extends AppConfigFactoryActorSystem[NodeAppConfig] {
|
||||
|
||||
override val moduleName: String = "node"
|
||||
|
||||
|
@ -122,7 +143,7 @@ object NodeAppConfig extends AppConfigFactory[NodeAppConfig] {
|
|||
* data directory and given list of configuration overrides.
|
||||
*/
|
||||
override def fromDatadir(datadir: Path, confs: Vector[Config])(implicit
|
||||
ec: ExecutionContext): NodeAppConfig =
|
||||
system: ActorSystem): NodeAppConfig =
|
||||
NodeAppConfig(datadir, confs: _*)
|
||||
|
||||
/** Creates either a neutrino node or a spv node based on the [[NodeAppConfig]] given */
|
||||
|
|
|
@ -3,12 +3,13 @@ package org.bitcoins.node.networking.peer
|
|||
import akka.Done
|
||||
import org.bitcoins.chain.config.ChainAppConfig
|
||||
import org.bitcoins.core.api.chain.ChainApi
|
||||
import org.bitcoins.core.api.node.NodeType
|
||||
import org.bitcoins.core.gcs.BlockFilter
|
||||
import org.bitcoins.core.p2p._
|
||||
import org.bitcoins.crypto.DoubleSha256DigestBE
|
||||
import org.bitcoins.node.config.NodeAppConfig
|
||||
import org.bitcoins.node.models.BroadcastAbleTransactionDAO
|
||||
import org.bitcoins.node.{Node, NodeType, P2PLogger}
|
||||
import org.bitcoins.node.{Node, P2PLogger}
|
||||
|
||||
import scala.concurrent.{ExecutionContext, Future, Promise}
|
||||
import scala.util.Try
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
package org.bitcoins.node.networking.peer
|
||||
|
||||
import akka.actor.ActorRefFactory
|
||||
import org.bitcoins.core.api.node.NodeType
|
||||
import org.bitcoins.core.p2p._
|
||||
import org.bitcoins.node.config.NodeAppConfig
|
||||
import org.bitcoins.node.models.Peer
|
||||
import org.bitcoins.node.networking.P2PClient
|
||||
import org.bitcoins.node.networking.peer.PeerMessageReceiverState._
|
||||
import org.bitcoins.node.{Node, NodeType, P2PLogger}
|
||||
import org.bitcoins.node.{Node, P2PLogger}
|
||||
|
||||
import scala.concurrent.Future
|
||||
|
||||
|
|
|
@ -592,6 +592,7 @@ object Deps {
|
|||
}
|
||||
|
||||
val walletServerTest = List(
|
||||
Compile.typesafeConfig,
|
||||
Test.scalaMock,
|
||||
Test.akkaHttpTestkit,
|
||||
Test.akkaStream
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
package org.bitcoins.testkit.node
|
||||
|
||||
import akka.actor.ActorSystem
|
||||
import org.bitcoins.core.api.node.NodeType
|
||||
import org.bitcoins.node.models.Peer
|
||||
import org.bitcoins.node.{Node, NodeType}
|
||||
import org.bitcoins.node.Node
|
||||
import org.bitcoins.rpc.client.common.BitcoindRpcClient
|
||||
import org.bitcoins.rpc.client.v21.BitcoindV21RpcClient
|
||||
import org.bitcoins.server.BitcoinSAppConfig
|
||||
|
|
|
@ -5,6 +5,7 @@ import org.bitcoins.chain.blockchain.ChainHandlerCached
|
|||
import org.bitcoins.chain.config.ChainAppConfig
|
||||
import org.bitcoins.chain.models._
|
||||
import org.bitcoins.core.api.chain.ChainApi
|
||||
import org.bitcoins.core.api.node.NodeType
|
||||
import org.bitcoins.node._
|
||||
import org.bitcoins.node.config.NodeAppConfig
|
||||
import org.bitcoins.node.models.Peer
|
||||
|
|
Loading…
Add table
Reference in a new issue