name db with chain+nodeId
This commit is contained in:
parent
fef5aadcf7
commit
97b6afce7c
@ -12,11 +12,11 @@ import fr.acinq.lightning.NodeParams
|
||||
import fr.acinq.lightning.bin.db.SqlitePaymentsDb
|
||||
import fr.acinq.lightning.bin.db.WalletPaymentId
|
||||
import fr.acinq.lightning.bin.json.ApiType.*
|
||||
import fr.acinq.lightning.bin.json.ApiType.Channel
|
||||
import fr.acinq.lightning.blockchain.fee.FeeratePerByte
|
||||
import fr.acinq.lightning.blockchain.fee.FeeratePerKw
|
||||
import fr.acinq.lightning.channel.ChannelCommand
|
||||
import fr.acinq.lightning.channel.states.ChannelStateWithCommitments
|
||||
import fr.acinq.lightning.channel.states.ClosingFeerates
|
||||
import fr.acinq.lightning.channel.states.*
|
||||
import fr.acinq.lightning.io.Peer
|
||||
import fr.acinq.lightning.io.WrappedChannelCommand
|
||||
import fr.acinq.lightning.payment.Bolt11Invoice
|
||||
@ -79,15 +79,17 @@ class Api(private val nodeParams: NodeParams, private val peer: Peer, private va
|
||||
authenticate {
|
||||
get("getinfo") {
|
||||
val info = NodeInfo(
|
||||
version = BuildVersions.phoenixdVersion,
|
||||
nodeId = nodeParams.nodeId,
|
||||
channels = peer.channels.values.map { Channel.from(it) }
|
||||
channels = peer.channels.values.map { Channel.from(it) },
|
||||
chain = nodeParams.chain.name.lowercase(),
|
||||
version = BuildVersions.phoenixdVersion
|
||||
)
|
||||
call.respond(info)
|
||||
}
|
||||
get("getbalance") {
|
||||
val balance = peer.channels.values
|
||||
.filterIsInstance<ChannelStateWithCommitments>()
|
||||
.filterNot { it is Closing || it is Closed }
|
||||
.map { it.commitments.active.first().availableBalanceForSend(it.commitments.params, it.commitments.changes) }
|
||||
.sum().truncateToSatoshi()
|
||||
call.respond(Balance(balance, nodeParams.feeCredit.value))
|
||||
|
@ -1,8 +1,10 @@
|
||||
package fr.acinq.lightning.bin
|
||||
|
||||
import app.cash.sqldelight.db.SqlDriver
|
||||
import fr.acinq.bitcoin.Chain
|
||||
import fr.acinq.bitcoin.PublicKey
|
||||
import okio.Path
|
||||
|
||||
expect val homeDirectory: Path
|
||||
|
||||
expect fun createAppDbDriver(dir: Path): SqlDriver
|
||||
expect fun createAppDbDriver(dir: Path, chain: Chain, nodeId: PublicKey): SqlDriver
|
||||
|
@ -182,8 +182,6 @@ class Phoenixd : CliktCommand() {
|
||||
terminal.println()
|
||||
}
|
||||
}
|
||||
consoleLog(gray("version: ${BuildVersions.phoenixdVersion}"))
|
||||
consoleLog(gray("lightning-kmp: ${BuildVersions.lightningKmpVersion}"))
|
||||
consoleLog(cyan("datadir: ${FileSystem.SYSTEM.canonicalize(datadir)}"))
|
||||
consoleLog(cyan("chain: $chain"))
|
||||
consoleLog(cyan("autoLiquidity: ${liquidityOptions.autoLiquidity}"))
|
||||
@ -217,7 +215,7 @@ class Phoenixd : CliktCommand() {
|
||||
)
|
||||
consoleLog(cyan("nodeid: ${nodeParams.nodeId}"))
|
||||
|
||||
val driver = createAppDbDriver(datadir)
|
||||
val driver = createAppDbDriver(datadir, chain, nodeParams.nodeId)
|
||||
val database = PhoenixDatabase(
|
||||
driver = driver,
|
||||
lightning_outgoing_payment_partsAdapter = Lightning_outgoing_payment_parts.Adapter(
|
||||
|
@ -57,9 +57,10 @@ sealed class ApiType {
|
||||
|
||||
@Serializable
|
||||
data class NodeInfo(
|
||||
val version: String,
|
||||
val nodeId: PublicKey,
|
||||
val channels: List<Channel>
|
||||
val channels: List<Channel>,
|
||||
val chain: String,
|
||||
val version: String
|
||||
)
|
||||
|
||||
@Serializable
|
||||
|
@ -1,6 +1,7 @@
|
||||
import kotlin.Boolean;
|
||||
|
||||
PRAGMA foreign_keys = 1;
|
||||
PRAGMA locking_mode = EXCLUSIVE;
|
||||
|
||||
-- channels table
|
||||
-- note: boolean are stored as INTEGER, with 0=false
|
||||
|
@ -2,14 +2,16 @@ package fr.acinq.lightning.bin
|
||||
|
||||
import app.cash.sqldelight.db.SqlDriver
|
||||
import app.cash.sqldelight.driver.jdbc.sqlite.JdbcSqliteDriver
|
||||
import fr.acinq.bitcoin.Chain
|
||||
import fr.acinq.bitcoin.PublicKey
|
||||
import fr.acinq.phoenix.db.PhoenixDatabase
|
||||
import okio.Path
|
||||
import okio.Path.Companion.toPath
|
||||
|
||||
actual val homeDirectory: Path = System.getProperty("user.home").toPath()
|
||||
|
||||
actual fun createAppDbDriver(dir: Path): SqlDriver {
|
||||
val path = dir / "phoenix.db"
|
||||
actual fun createAppDbDriver(dir: Path, chain: Chain, nodeId: PublicKey): SqlDriver {
|
||||
val path = dir / "phoenix.${chain.name.lowercase()}.${nodeId.toHex().take(6)}.db"
|
||||
val driver = JdbcSqliteDriver("jdbc:sqlite:$path")
|
||||
PhoenixDatabase.Schema.create(driver)
|
||||
return driver
|
||||
|
@ -3,6 +3,8 @@ package fr.acinq.lightning.bin
|
||||
import app.cash.sqldelight.db.SqlDriver
|
||||
import app.cash.sqldelight.driver.native.NativeSqliteDriver
|
||||
import fr.acinq.phoenix.db.PhoenixDatabase
|
||||
import fr.acinq.bitcoin.Chain
|
||||
import fr.acinq.bitcoin.PublicKey
|
||||
import kotlinx.cinterop.ExperimentalForeignApi
|
||||
import kotlinx.cinterop.toKString
|
||||
import okio.Path
|
||||
@ -13,8 +15,8 @@ import platform.posix.setenv
|
||||
@OptIn(ExperimentalForeignApi::class)
|
||||
actual val homeDirectory: Path = setenv("KTOR_LOG_LEVEL", "WARN", 1).let { getenv("HOME")?.toKString()!!.toPath() }
|
||||
|
||||
actual fun createAppDbDriver(dir: Path): SqlDriver {
|
||||
return NativeSqliteDriver(PhoenixDatabase.Schema, "phoenix.db",
|
||||
actual fun createAppDbDriver(dir: Path, chain: Chain, nodeId: PublicKey): SqlDriver {
|
||||
return NativeSqliteDriver(PhoenixDatabase.Schema, "phoenix.${chain.name.lowercase()}.${nodeId.toHex().take(6)}.db",
|
||||
onConfiguration = { it.copy(extendedConfig = it.extendedConfig.copy(basePath = dir.toString())) }
|
||||
)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user