Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove Spv code #4356

Merged
merged 15 commits into from
May 30, 2022
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ import org.bitcoins.dlc.node.config.DLCNodeAppConfig
import org.bitcoins.dlc.wallet._
import org.bitcoins.feeprovider.MempoolSpaceTarget.HourFeeTarget
import org.bitcoins.feeprovider._
import org.bitcoins.node._
import org.bitcoins.node.config.NodeAppConfig
import org.bitcoins.rpc.BitcoindException.InWarmUp
import org.bitcoins.rpc.client.common.BitcoindRpcClient
Expand All @@ -45,7 +44,7 @@ import org.bitcoins.wallet.models.SpendingInfoDAO

import java.time.Instant
import scala.concurrent.duration.DurationInt
import scala.concurrent.{Await, ExecutionContext, Future, Promise}
import scala.concurrent.{Await, Future, Promise}

class BitcoinSServerMain(override val serverArgParser: ServerArgParser)(implicit
override val system: ActorSystem,
Expand Down Expand Up @@ -149,12 +148,11 @@ class BitcoinSServerMain(override val serverArgParser: ServerArgParser)(implicit
//add callbacks to our uninitialized node
val configuredNodeF = for {
node <- nodeF
wallet <- configuredWalletF
initNode <- setBloomFilter(node, wallet)
_ <- configuredWalletF
} yield {
logger.info(
s"Done configuring node, it took=${System.currentTimeMillis() - start}ms")
initNode
node
}

val dlcNodeF = for {
Expand Down Expand Up @@ -345,23 +343,6 @@ class BitcoinSServerMain(override val serverArgParser: ServerArgParser)(implicit
}
}

private def setBloomFilter(node: Node, wallet: Wallet)(implicit
ec: ExecutionContext): Future[Node] = {
for {
nodeWithBloomFilter <- node match {
case spvNode: SpvNode =>
for {
bloom <- wallet.getBloomFilter()
_ = logger.info(
s"Got bloom filter with ${bloom.filterSize.toInt} elements")
} yield spvNode.setBloomFilter(bloom)
case _: Node => Future.successful(node)
}
} yield {
nodeWithBloomFilter
}
}

/** This is needed for migrations V2/V3 on the chain project to re-calculate the total work for the chain */
private def runChainWorkCalc(force: Boolean)(implicit
system: ActorSystem): Future[ChainApi] = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,6 @@ object CallbackUtil extends Logging {
}
}
nodeConf.nodeType match {
case NodeType.SpvNode =>
Future.successful(
NodeCallbacks(onTxReceived = Vector(onTx),
onBlockHeadersReceived = Vector(onHeaders)))
case NodeType.NeutrinoNode =>
Future.successful(
NodeCallbacks(onTxReceived = Vector(onTx),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,12 @@ object NodeType extends StringFactory[NodeType] {
override def shortName: String = "neutrino"
}

final case object SpvNode extends InternalImplementationNodeType {
override def shortName: String = "spv"
}

final case object BitcoindBackend extends ExternalImplementationNodeType {
override def shortName: String = "bitcoind"
}

val all: Vector[NodeType] =
Vector(FullNode, NeutrinoNode, SpvNode, BitcoindBackend)
Vector(FullNode, NeutrinoNode, BitcoindBackend)

override def fromStringOpt(str: String): Option[NodeType] = {
all.find(state => str.toLowerCase() == state.toString.toLowerCase) match {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import org.bitcoins.server.BitcoinSAppConfig
import org.bitcoins.testkit.BitcoinSTestAppConfig
import org.bitcoins.testkit.async.TestAsyncUtil
import org.bitcoins.testkit.node.NodeTestWithCachedBitcoindNewest
import org.bitcoins.testkit.node.fixture.SpvNodeConnectedWithBitcoind
import org.bitcoins.testkit.node.fixture.NeutrinoNodeConnectedWithBitcoind
import org.bitcoins.testkit.util.TorUtil
import org.scalatest.{FutureOutcome, Outcome}

Expand All @@ -20,17 +20,17 @@ class BroadcastTransactionTest extends NodeTestWithCachedBitcoindNewest {

/** Wallet config with data directory set to user temp directory */
override protected def getFreshConfig: BitcoinSAppConfig =
BitcoinSTestAppConfig.getSpvWithEmbeddedDbTestConfig(pgUrl, Vector.empty)
BitcoinSTestAppConfig.getNeutrinoWithEmbeddedDbTestConfig(pgUrl)

override type FixtureParam = SpvNodeConnectedWithBitcoind
override type FixtureParam = NeutrinoNodeConnectedWithBitcoind

def withFixture(test: OneArgAsyncTest): FutureOutcome = {
val torClientF = if (TorUtil.torEnabled) torF else Future.unit

val outcome: Future[Outcome] = for {
_ <- torClientF
bitcoind <- cachedBitcoindWithFundsF
outcome = withSpvNodeConnectedToBitcoindCached(test, bitcoind)(
outcome = withNeutrinoNodeConnectedToBitcoindCached(test, bitcoind)(
system,
getFreshConfig)
f <- outcome.toFuture
Expand All @@ -50,7 +50,7 @@ class BroadcastTransactionTest extends NodeTestWithCachedBitcoindNewest {
}

it must "safely broadcast a transaction twice" in { param =>
val SpvNodeConnectedWithBitcoind(node, rpc) = param
val NeutrinoNodeConnectedWithBitcoind(node, rpc) = param

for {
tx <- createValidTx(rpc)
Expand All @@ -66,7 +66,7 @@ class BroadcastTransactionTest extends NodeTestWithCachedBitcoindNewest {
}

it must "broadcast a transaction" in { param =>
val SpvNodeConnectedWithBitcoind(node, rpc) = param
val NeutrinoNodeConnectedWithBitcoind(node, rpc) = param

def hasSeenTx(transaction: Transaction): Future[Boolean] = {
rpc
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ import org.scalatest.FutureOutcome
class DisconnectedPeerTest extends NodeUnitTest {

override protected def getFreshConfig: BitcoinSAppConfig =
BitcoinSTestAppConfig.getSpvWithEmbeddedDbTestConfig(pgUrl, Vector.empty)
BitcoinSTestAppConfig.getNeutrinoWithEmbeddedDbTestConfig(pgUrl)

override type FixtureParam = SpvNode
override type FixtureParam = NeutrinoNode

def withFixture(test: OneArgAsyncTest): FutureOutcome =
withDisconnectedSpvNode(test)(system, getFreshConfig)
withDisconnectedNeutrinoNode(test)(system, getFreshConfig)

it must "fail to broadcast a transaction when disconnected" in { node =>
val tx = TransactionGenerators.transaction.sampleSome
Expand Down
124 changes: 0 additions & 124 deletions node-test/src/test/scala/org/bitcoins/node/SpvNodeTest.scala

This file was deleted.

This file was deleted.