case class NodeAppConfig(baseDatadir: Path, configOverrides: Vector[Config])(implicit system: ActorSystem) extends DbAppConfig with NodeDbManagement with JdbcProfileComponent[NodeAppConfig] with CallbackConfig[NodeCallbacks] with Product with Serializable
Configuration for the Bitcoin-S node
- Alphabetic
- By Inheritance
- NodeAppConfig
- Serializable
- Product
- Equals
- CallbackConfig
- JdbcProfileComponent
- NodeDbManagement
- DbManagement
- DbAppConfig
- AppConfig
- BitcoinSLogger
- StartStopAsync
- StartStop
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new NodeAppConfig(baseDatadir: Path, configOverrides: Vector[Config])(implicit system: ActorSystem)
Type Members
- type ConfigType = NodeAppConfig
Sub members of AppConfig should override this type with the type of themselves, ensuring
withOverrides
return the correct typeSub members of AppConfig should override this type with the type of themselves, ensuring
withOverrides
return the correct type- Attributes
- protected[bitcoins]
- Definition Classes
- NodeAppConfig → AppConfig
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def addCallbacks(newCallbacks: NodeCallbacks): NodeCallbacks
- Definition Classes
- CallbackConfig
- lazy val allTables: List[slick.jdbc.JdbcProfile.JdbcAPI.TableQuery[slick.jdbc.JdbcProfile.JdbcAPI.Table[_]]]
- Definition Classes
- NodeDbManagement → DbManagement
- def appConfig: NodeAppConfig
- Definition Classes
- NodeAppConfig → JdbcProfileComponent
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- val baseDatadir: Path
The base data directory.
The base data directory. This is where we look for a configuration file
- Definition Classes
- NodeAppConfig → AppConfig
- def callBacks: NodeCallbacks
- Definition Classes
- CallbackConfig
- lazy val callbackFactory: NodeCallbacks.type
- Definition Classes
- NodeAppConfig → CallbackConfig
- lazy val chain: BitcoinChainParams
Chain parameters for the blockchain we're on
Chain parameters for the blockchain we're on
- Definition Classes
- AppConfig
- def clean(): CleanResult
Runs flyway clean
Runs flyway clean
WARNING: THIS DELETES ALL DATA IN THE DATABASE, YOU PROBABLY DON'T WANT THIS UNLESS YOU ARE USING TESTS
- Definition Classes
- DbManagement
- See also
https://flywaydb.org/documentation/command/clean
- def clearCallbacks(): Unit
Clears all callbacks
Clears all callbacks
- Definition Classes
- CallbackConfig
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- lazy val config: Config
- Attributes
- protected
- Definition Classes
- AppConfig
- def configFileName: String
- Definition Classes
- AppConfig
- val configOverrides: Vector[Config]
List of user-provided configs that should override defaults
List of user-provided configs that should override defaults
- Definition Classes
- NodeAppConfig → AppConfig
- lazy val connectionAttemptCooldownPeriod: FiniteDuration
- def createNode(peers: Vector[Peer], walletCreationTimeOpt: Option[Instant])(chainConf: ChainAppConfig, system: ActorSystem): Future[Node]
Creates either a neutrino node or a spv node based on the NodeAppConfig given
- def createSchema(createIfNotExists: Boolean = true)(implicit ec: ExecutionContext): Future[Unit]
- Definition Classes
- DbManagement
- def createTable(table: slick.jdbc.JdbcProfile.JdbcAPI.TableQuery[_ <: slick.jdbc.JdbcProfile.JdbcAPI.Table[_]], createIfNotExists: Boolean = true)(implicit ec: ExecutionContext): Future[Unit]
Creates the given table
Creates the given table
- Definition Classes
- DbManagement
- lazy val database: JdbcDatabaseDef
The database we are connecting to
The database we are connecting to
- Definition Classes
- JdbcProfileComponent
- lazy val datadir: Path
The network specific data directory.
The network specific data directory.
- Definition Classes
- AppConfig
- lazy val dbConfig: DatabaseConfig[JdbcProfile]
The configuration details for connecting/using the database for our projects that require database connections
The configuration details for connecting/using the database for our projects that require database connections
- Definition Classes
- JdbcProfileComponent
- lazy val dbHost: String
The host of our postgresql database
The host of our postgresql database
- Definition Classes
- DbAppConfig
- lazy val dbName: String
The name of our database
The name of our database
- Definition Classes
- DbAppConfig
- lazy val dbPassword: String
- Definition Classes
- DbAppConfig
- lazy val dbPath: Path
The path where our DB is located
The path where our DB is located
- Definition Classes
- DbAppConfig
- lazy val dbPort: Int
The port number of our postgresql database
The port number of our postgresql database
- Definition Classes
- DbAppConfig
- lazy val dbUsername: String
- Definition Classes
- DbAppConfig
- lazy val driver: DatabaseDriver
- Definition Classes
- DbAppConfig
- def dropAll()(implicit ec: ExecutionContext): Future[Unit]
- Definition Classes
- DbManagement
- def dropTable(tableName: String)(implicit ec: ExecutionContext): Future[Int]
- Definition Classes
- DbManagement
- def dropTable(table: slick.jdbc.JdbcProfile.JdbcAPI.TableQuery[slick.jdbc.JdbcProfile.JdbcAPI.Table[_]]): Future[Unit]
- Definition Classes
- DbManagement
- implicit def ec: ExecutionContext
- Definition Classes
- NodeAppConfig → NodeDbManagement
- lazy val enablePeerDiscovery: Boolean
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- lazy val flyway: Flyway
- Attributes
- protected
- Definition Classes
- DbManagement
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def getConfigString(path: String): String
- Definition Classes
- AppConfig
- def getConfigStringOpt(path: String): Option[String]
- Definition Classes
- AppConfig
- lazy val healthCheckInterval: FiniteDuration
- lazy val hikariLoggingInterval: Option[Duration]
Gets how often we should log hikari connection pool stats if None, this means isHikariLoggingEnabled is not enabled
Gets how often we should log hikari connection pool stats if None, this means isHikariLoggingEnabled is not enabled
- Definition Classes
- DbAppConfig
- def info(): MigrationInfoService
Returns flyway information about the state of migrations
Returns flyway information about the state of migrations
- Definition Classes
- DbManagement
- See also
https://flywaydb.org/documentation/command/info
- def isCallbackEmpty: Boolean
- Definition Classes
- CallbackConfig
- lazy val isHikariLoggingEnabled: Boolean
- Definition Classes
- DbAppConfig
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- lazy val jdbcUrl: String
- Definition Classes
- DbAppConfig
- def logger: Logger
- Definition Classes
- BitcoinSLogger
- lazy val maxConnectedPeers: Int
- lazy val maxInvalidResponsesAllowed: Int
maximum consecutive number of invalid responses allowed from the same peer
- def migrate(): MigrateResult
Executes migrations related to this database
Executes migrations related to this database
- Definition Classes
- DbManagement
- See also
https://flywaydb.org/documentation/api/#programmatic-configuration-java
- def migrationsApplied(): Int
- Definition Classes
- DbManagement
- def moduleName: String
Name of the module.
Name of the module.
chain
,wallet
,node
etc.- Attributes
- protected[bitcoins]
- Definition Classes
- NodeAppConfig → AppConfig
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- lazy val network: BitcoinNetwork
The blockchain network we're on
The blockchain network we're on
- Definition Classes
- AppConfig
- def newConfigOfType(configs: Vector[Config]): NodeAppConfig
Constructor to make a new instance of this config type
Constructor to make a new instance of this config type
- Attributes
- protected[bitcoins]
- Definition Classes
- NodeAppConfig → AppConfig
- lazy val nodeType: NodeType
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- lazy val numThreads: Int
- Definition Classes
- JdbcProfileComponent
- lazy val peerTimeout: FiniteDuration
- lazy val peers: Vector[Peer]
List of peers hardcoded in our configuration files
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- lazy val profile: JdbcProfile
- Definition Classes
- JdbcProfileComponent
- lazy val queryWaitTime: FiniteDuration
timeout to wait for response the messages extend org.bitcoins.core.p2p.ExpectsResponse
- lazy val relay: Boolean
- def replaceCallbacks(newCallbacks: NodeCallbacks): NodeCallbacks
- Definition Classes
- CallbackConfig
- lazy val schemaName: Option[String]
- Definition Classes
- DbAppConfig
- lazy val slickDbConfig: DatabaseConfig[JdbcProfile]
- Definition Classes
- DbAppConfig
- lazy val socks5ProxyParams: Option[Socks5ProxyParams]
- def start(): Future[Unit]
Ensures correct tables and other required information is in place for our node.
Ensures correct tables and other required information is in place for our node.
- Definition Classes
- NodeAppConfig → AppConfig → StartStop
- def startHikariLogger(interval: Duration): HikariLogging
Starts the background logger for hikari
Starts the background logger for hikari
- interval
\- how often hikari logs database connection pool information
- Attributes
- protected
- Definition Classes
- JdbcProfileComponent
- def stop(): Future[Unit]
Releases the thread pool associated with this AppConfig's DB
Releases the thread pool associated with this AppConfig's DB
- Definition Classes
- NodeAppConfig → DbAppConfig → StartStop
- def stopHikariLogger(): Unit
- Attributes
- protected
- Definition Classes
- JdbcProfileComponent
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- implicit val system: ActorSystem
- implicit def tableQueryToWithSchema(tableQuery: slick.jdbc.JdbcProfile.JdbcAPI.TableQuery[_]): slick.jdbc.JdbcProfile.JdbcAPI.TableQuery[slick.jdbc.JdbcProfile.JdbcAPI.Table[_]]
Internally, slick defines the schema member as
Internally, slick defines the schema member as
def schema: SchemaDescription = buildTableSchemaDescription(q.shaped.value.asInstanceOf[Table[_]])
we need to cast between TableQuery's of specific table types to the more generic TableQuery[Table[_]] to get methods in this trait working as they require schema (which essentially does this cast anyway)
This cast is needed because TableQuery is not covariant in its type parameter. However, since Query is covariant in its first type parameter, I believe the cast from TableQuery[T1] to TableQuery[T2] will always be safe so long as T1 is a subtype of T2 AND T1#TableElementType is equal to T2#TableElementType.
The above conditions are always the case when this is called in the current code base and will stay that way so long as no one tries anything too fancy.
- Attributes
- protected
- Definition Classes
- DbManagement
- lazy val torConf: TorAppConfig
- lazy val torParams: Option[TorParams]
- lazy val tryNextPeersInterval: FiniteDuration
time interval for trying next set of peers in peer discovery
- lazy val tryPeersStartDelay: FiniteDuration
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- def withOverrides(configOverrides: Vector[Config]): ConfigType
This method returns a new
AppConfig
, where every key underbitcoin-s
overrides the configuration picked up by other means (thereference.conf
provided by bitcoin-s and theapplication.conf
provided by the user).This method returns a new
AppConfig
, where every key underbitcoin-s
overrides the configuration picked up by other means (thereference.conf
provided by bitcoin-s and theapplication.conf
provided by the user). If you pass in configs with overlapping keys (e.g. several configs with the keybitcoin-s.network
), the latter config overrides the first.- Definition Classes
- AppConfig
- def withOverrides(configOverrides: Config): ConfigType
- Definition Classes
- AppConfig