1
0
Fork 0
mirror of https://github.com/ACINQ/eclair.git synced 2025-03-14 03:48:13 +01:00

fixup! Update android branch ()

This commit is contained in:
pm47 2020-10-09 11:40:20 +02:00
parent 8ca798176d
commit fb8ae0cd59
No known key found for this signature in database
GPG key ID: E434ED292E85643A
3 changed files with 20 additions and 25 deletions
eclair-core/src
main/scala/fr/acinq/eclair/db
test/scala/fr/acinq/eclair/db

View file

@ -19,11 +19,8 @@ package fr.acinq.eclair.db
import java.io.File import java.io.File
import java.sql.{Connection, DriverManager} import java.sql.{Connection, DriverManager}
import fr.acinq.bitcoin.Block
import fr.acinq.eclair.NodeParams
import fr.acinq.eclair.db.sqlite._ import fr.acinq.eclair.db.sqlite._
import grizzled.slf4j.Logging import grizzled.slf4j.Logging
import org.sqlite.SQLiteException
trait Databases { trait Databases {
@ -75,7 +72,7 @@ object Databases extends Logging {
} }
def databaseByConnections(auditJdbc: Connection, networkJdbc: Connection, eclairJdbc: Connection) = new Databases { def databaseByConnections(auditJdbc: Connection, networkJdbc: Connection, eclairJdbc: Connection) = new Databases {
override val network = new SqliteNetworkDb(networkJdbc, Block.RegtestGenesisBlock.hash) override val network = new SqliteNetworkDb(networkJdbc)
override val audit = new SqliteAuditDb(auditJdbc) override val audit = new SqliteAuditDb(auditJdbc)
override val channels = new SqliteChannelsDb(eclairJdbc) override val channels = new SqliteChannelsDb(eclairJdbc)
override val peers = new SqlitePeersDb(eclairJdbc) override val peers = new SqlitePeersDb(eclairJdbc)

View file

@ -20,20 +20,19 @@ import java.sql.Connection
import fr.acinq.bitcoin.Crypto.PublicKey import fr.acinq.bitcoin.Crypto.PublicKey
import fr.acinq.bitcoin.{ByteVector32, ByteVector64, Crypto, Satoshi} import fr.acinq.bitcoin.{ByteVector32, ByteVector64, Crypto, Satoshi}
import fr.acinq.eclair.{Features, ShortChannelId}
import fr.acinq.eclair.db.NetworkDb import fr.acinq.eclair.db.NetworkDb
import fr.acinq.eclair.router.Router.PublicChannel import fr.acinq.eclair.router.Router.PublicChannel
import fr.acinq.eclair.wire.LightningMessageCodecs.{channelAnnouncementCodec, channelUpdateCodec, nodeAnnouncementCodec} import fr.acinq.eclair.wire.LightningMessageCodecs.nodeAnnouncementCodec
import fr.acinq.eclair.wire.{ChannelAnnouncement, ChannelUpdate, NodeAnnouncement} import fr.acinq.eclair.wire.{ChannelAnnouncement, ChannelUpdate, NodeAnnouncement}
import fr.acinq.eclair.{Features, ShortChannelId}
import grizzled.slf4j.Logging import grizzled.slf4j.Logging
import scodec.Codec import scodec.Codec
import scodec.bits.ByteVector
import scala.collection.immutable.SortedMap import scala.collection.immutable.SortedMap
class SqliteNetworkDb(sqlite: Connection, chainHash: ByteVector32) extends NetworkDb with Logging { class SqliteNetworkDb(sqlite: Connection) extends NetworkDb with Logging {
import SqliteUtils._
import SqliteUtils.ExtendedResultSet._ import SqliteUtils.ExtendedResultSet._
import SqliteUtils._
val DB_NAME = "network" val DB_NAME = "network"
val CURRENT_VERSION = 2 val CURRENT_VERSION = 2
@ -60,7 +59,7 @@ class SqliteNetworkDb(sqlite: Connection, chainHash: ByteVector32) extends Netwo
channelAnnouncementWitnessCodec).as[ChannelAnnouncement] channelAnnouncementWitnessCodec).as[ChannelAnnouncement]
val channelUpdateWitnessCodec = val channelUpdateWitnessCodec =
("chainHash" | provide(chainHash)) :: ("chainHash" | provide(null.asInstanceOf[ByteVector32])) ::
("shortChannelId" | shortchannelid) :: ("shortChannelId" | shortchannelid) ::
("timestamp" | uint32) :: ("timestamp" | uint32) ::
(("messageFlags" | byte) >>:~ { messageFlags => (("messageFlags" | byte) >>:~ { messageFlags =>

View file

@ -26,10 +26,9 @@ import fr.acinq.eclair.db.sqlite.SqliteNetworkDb
import fr.acinq.eclair.db.sqlite.SqliteUtils._ import fr.acinq.eclair.db.sqlite.SqliteUtils._
import fr.acinq.eclair.router.Announcements import fr.acinq.eclair.router.Announcements
import fr.acinq.eclair.router.Router.PublicChannel import fr.acinq.eclair.router.Router.PublicChannel
import fr.acinq.eclair.wire.{ChannelAnnouncement, ChannelUpdate, Color, NodeAddress, Tor2} import fr.acinq.eclair.wire._
import fr.acinq.eclair.{ActivatedFeature, CltvExpiryDelta, Features, LongToBtcAmount, ShortChannelId, TestConstants, randomBytes32, randomKey} import fr.acinq.eclair.{ActivatedFeature, CltvExpiryDelta, Features, LongToBtcAmount, ShortChannelId, TestConstants, randomBytes32, randomKey}
import org.scalatest.funsuite.AnyFunSuite import org.scalatest.funsuite.AnyFunSuite
import scodec.bits.HexStringSyntax
import scala.collection.{SortedMap, mutable} import scala.collection.{SortedMap, mutable}
@ -39,8 +38,8 @@ class SqliteNetworkDbSpec extends AnyFunSuite {
test("init sqlite 2 times in a row") { test("init sqlite 2 times in a row") {
val sqlite = TestConstants.sqliteInMemory() val sqlite = TestConstants.sqliteInMemory()
val db1 = new SqliteNetworkDb(sqlite, Block.RegtestGenesisBlock.hash) val db1 = new SqliteNetworkDb(sqlite)
val db2 = new SqliteNetworkDb(sqlite, Block.RegtestGenesisBlock.hash) val db2 = new SqliteNetworkDb(sqlite)
} }
test("migration test 1->2") { test("migration test 1->2") {
@ -82,7 +81,7 @@ class SqliteNetworkDbSpec extends AnyFunSuite {
test("add/remove/list nodes") { test("add/remove/list nodes") {
val sqlite = TestConstants.sqliteInMemory() val sqlite = TestConstants.sqliteInMemory()
val db = new SqliteNetworkDb(sqlite, Block.RegtestGenesisBlock.hash) val db = new SqliteNetworkDb(sqlite)
val node_1 = Announcements.makeNodeAnnouncement(randomKey, "node-alice", Color(100.toByte, 200.toByte, 300.toByte), NodeAddress.fromParts("192.168.1.42", 42000).get :: Nil, Features.empty) val node_1 = Announcements.makeNodeAnnouncement(randomKey, "node-alice", Color(100.toByte, 200.toByte, 300.toByte), NodeAddress.fromParts("192.168.1.42", 42000).get :: Nil, Features.empty)
val node_2 = Announcements.makeNodeAnnouncement(randomKey, "node-bob", Color(100.toByte, 200.toByte, 300.toByte), NodeAddress.fromParts("192.168.1.42", 42000).get :: Nil, Features(Set(ActivatedFeature(VariableLengthOnion, Optional)))) val node_2 = Announcements.makeNodeAnnouncement(randomKey, "node-bob", Color(100.toByte, 200.toByte, 300.toByte), NodeAddress.fromParts("192.168.1.42", 42000).get :: Nil, Features(Set(ActivatedFeature(VariableLengthOnion, Optional))))
@ -107,7 +106,7 @@ class SqliteNetworkDbSpec extends AnyFunSuite {
test("correctly handle txids that start with 0") { test("correctly handle txids that start with 0") {
val sqlite = TestConstants.sqliteInMemory() val sqlite = TestConstants.sqliteInMemory()
val db = new SqliteNetworkDb(sqlite, Block.RegtestGenesisBlock.hash) val db = new SqliteNetworkDb(sqlite)
val sig = ByteVector64.Zeroes val sig = ByteVector64.Zeroes
val c = Announcements.makeChannelAnnouncement(Block.RegtestGenesisBlock.hash, ShortChannelId(42), randomKey.publicKey, randomKey.publicKey, randomKey.publicKey, randomKey.publicKey, sig, sig, sig, sig) val c = Announcements.makeChannelAnnouncement(Block.RegtestGenesisBlock.hash, ShortChannelId(42), randomKey.publicKey, randomKey.publicKey, randomKey.publicKey, randomKey.publicKey, sig, sig, sig, sig)
val c_shrunk = shrink(c) val c_shrunk = shrink(c)
@ -118,10 +117,10 @@ class SqliteNetworkDbSpec extends AnyFunSuite {
def shrink(c: ChannelAnnouncement) = c.copy(bitcoinKey1 = null, bitcoinKey2 = null, bitcoinSignature1 = null, bitcoinSignature2 = null, nodeSignature1 = null, nodeSignature2 = null, chainHash = null, features = null) def shrink(c: ChannelAnnouncement) = c.copy(bitcoinKey1 = null, bitcoinKey2 = null, bitcoinSignature1 = null, bitcoinSignature2 = null, nodeSignature1 = null, nodeSignature2 = null, chainHash = null, features = null)
def shrink(c: ChannelUpdate) = c.copy(signature = null) def shrink(c: ChannelUpdate) = c.copy(signature = null, chainHash = null)
def simpleTest(sqlite: Connection) = { def simpleTest(sqlite: Connection) = {
val db = new SqliteNetworkDb(sqlite, Block.RegtestGenesisBlock.hash) val db = new SqliteNetworkDb(sqlite)
def sig = Crypto.sign(randomBytes32, randomKey) def sig = Crypto.sign(randomBytes32, randomKey)
@ -229,7 +228,7 @@ class SqliteNetworkDbSpec extends AnyFunSuite {
test("remove many channels") { test("remove many channels") {
val sqlite = TestConstants.sqliteInMemory() val sqlite = TestConstants.sqliteInMemory()
val db = new SqliteNetworkDb(sqlite, Block.RegtestGenesisBlock.hash) val db = new SqliteNetworkDb(sqlite)
val sig = Crypto.sign(randomBytes32, randomKey) val sig = Crypto.sign(randomBytes32, randomKey)
val priv = randomKey val priv = randomKey
val pub = priv.publicKey val pub = priv.publicKey
@ -250,7 +249,7 @@ class SqliteNetworkDbSpec extends AnyFunSuite {
test("prune many channels") { test("prune many channels") {
val sqlite = TestConstants.sqliteInMemory() val sqlite = TestConstants.sqliteInMemory()
val db = new SqliteNetworkDb(sqlite, Block.RegtestGenesisBlock.hash) val db = new SqliteNetworkDb(sqlite)
db.addToPruned(shortChannelIds) db.addToPruned(shortChannelIds)
shortChannelIds.foreach { id => assert(db.isPruned((id))) } shortChannelIds.foreach { id => assert(db.isPruned((id))) }