bitcoin-s/api/org/bitcoins/node/SpvNode.html

41 lines
126 KiB
HTML
Raw Normal View History

<!DOCTYPE html ><html><head><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport"/><title></title><meta content="" name="description"/><meta content="" name="keywords"/><meta http-equiv="content-type" content="text/html; charset=UTF-8"/><link href="../../../lib/index.css" media="screen" type="text/css" rel="stylesheet"/><link href="../../../lib/template.css" media="screen" type="text/css" rel="stylesheet"/><link href="../../../lib/print.css" media="print" type="text/css" rel="stylesheet"/><link href="../../../lib/diagrams.css" media="screen" type="text/css" rel="stylesheet" id="diagrams-css"/><script type="text/javascript" src="../../../lib/jquery.min.js"></script><script type="text/javascript" src="../../../lib/index.js"></script><script type="text/javascript" src="../../../index.js"></script><script type="text/javascript" src="../../../lib/scheduler.js"></script><script type="text/javascript" src="../../../lib/template.js"></script><script type="text/javascript">/* this variable can be used by the JS to determine the path to the root document */
var toRoot = '../../../';</script></head><body><div id="search"><span id="doc-title"><span id="doc-version"></span></span> <span class="close-results"><span class="left">&lt;</span> Back</span><div id="textfilter"><span class="input"><input autocapitalize="none" placeholder="Search" id="index-input" type="text" accesskey="/"/><i class="clear material-icons"></i><i id="search-icon" class="material-icons"></i></span></div></div><div id="search-results"><div id="search-progress"><div id="progress-fill"></div></div><div id="results-content"><div id="entity-results"></div><div id="member-results"></div></div></div><div id="content-scroll-container" style="-webkit-overflow-scrolling: touch;"><div id="content-container" style="-webkit-overflow-scrolling: touch;"><div id="subpackage-spacer"><div id="packages"><h1>Packages</h1><ul><li class="indented0 " name="_root_.root" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="_root_" class="anchorToMember"></a><a id="root:_root_" class="anchorToMember"></a> <span class="permalink"><a href="../../../index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="../../../index.html" title=""><span class="name">root</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="../../../index.html" name="_root_" id="_root_" class="extype">root</a></dd></dl></div></li><li class="indented1 " name="_root_.org" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="org" class="anchorToMember"></a><a id="org:org" class="anchorToMember"></a> <span class="permalink"><a href="../../../org/index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="../../index.html" title=""><span class="name">org</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="../../../index.html" name="_root_" id="_root_" class="extype">root</a></dd></dl></div></li><li class="indented2 " name="org.bitcoins" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="bitcoins" class="anchorToMember"></a><a id="bitcoins:bitcoins" class="anchorToMember"></a> <span class="permalink"><a href="../../../org/bitcoins/index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="../index.html" title=""><span class="name">bitcoins</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="../../index.html" name="org" id="org" class="extype">org</a></dd></dl></div></li><li class="indented3 " name="org.bitcoins.node" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="node" class="anchorToMember"></a><a id="node:node" class="anchorToMember"></a> <span class="permalink"><a href="../../../org/bitcoins/node/index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="index.html" title=""><span class="name">node</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="../index.html" name="org.bitcoins" id="org.bitcoins" class="extype">bitcoins</a></dd></dl></div></li><li class="indented4 " name="org.bitcoins.node.config" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="config" class="anchorToMember"></a><a id="config:config" class="anchorToMember"></a> <span class="permalink"><a href="../../../org/bitcoins/node/config/index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span cla
</p><div class="fullcomment"><div class="comment cmt"><p>Broadcasts the given transaction over the P2P network
</p></div><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="../core/api/node/NodeApi.html" name="org.bitcoins.core.api.node.NodeApi" id="org.bitcoins.core.api.node.NodeApi" class="extype">NodeApi</a></dd></dl></div></li><li class="indented0 " name="org.bitcoins.node.Node#broadcastTransactions" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="broadcastTransactions(transactions:Vector[org.bitcoins.core.protocol.transaction.Transaction]):scala.concurrent.Future[Unit]" class="anchorToMember"></a><a id="broadcastTransactions(Vector[Transaction]):Future[Unit]" class="anchorToMember"></a> <span class="permalink"><a href="../../../org/bitcoins/node/SpvNode.html#broadcastTransactions(transactions:Vector[org.bitcoins.core.protocol.transaction.Transaction]):scala.concurrent.Future[Unit]" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">broadcastTransactions</span><span class="params">(<span name="transactions">transactions: <a href="../../../scala/index.html#Vector[+A]=scala.collection.immutable.Vector[A]" name="scala.Vector" id="scala.Vector" class="extmbr">Vector</a>[<a href="../core/protocol/transaction/Transaction.html" name="org.bitcoins.core.protocol.transaction.Transaction" id="org.bitcoins.core.protocol.transaction.Transaction" class="extype">Transaction</a>]</span>)</span><span class="result">: <a href="https://www.scala-lang.org/api/2.13.8/scala/concurrent/Future.html#scala.concurrent.Future" name="scala.concurrent.Future" id="scala.concurrent.Future" class="extype">Future</a>[<a href="https://www.scala-lang.org/api/2.13.8/scala/Unit.html#scala.Unit" name="scala.Unit" id="scala.Unit" class="extype">Unit</a>]</span></span><p class="shortcomment cmt">Broadcasts the given transaction over the P2P network</p><div class="fullcomment"><div class="comment cmt"><p>Broadcasts the given transaction over the P2P network</p></div><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="Node.html" name="org.bitcoins.node.Node" id="org.bitcoins.node.Node" class="extype">Node</a><a href="../core/api/node/NodeApi.html" name="org.bitcoins.core.api.node.NodeApi" id="org.bitcoins.core.api.node.NodeApi" class="extype">NodeApi</a></dd></dl></div></li><li class="indented0 " name="org.bitcoins.node.Node#chainApiFromDb" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="chainApiFromDb()(implicitexecutionContext:scala.concurrent.ExecutionContext):scala.concurrent.Future[org.bitcoins.chain.blockchain.ChainHandlerCached]" class="anchorToMember"></a><a id="chainApiFromDb()(ExecutionContext):Future[ChainHandlerCached]" class="anchorToMember"></a> <span class="permalink"><a href="../../../org/bitcoins/node/SpvNode.html#chainApiFromDb()(implicitexecutionContext:scala.concurrent.ExecutionContext):scala.concurrent.Future[org.bitcoins.chain.blockchain.ChainHandlerCached]" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">chainApiFromDb</span><span class="params">()</span><span class="params">(<span class="implicit">implicit </span><span name="executionContext">executionContext: <a href="https://www.scala-lang.org/api/2.13.8/scala/concurrent/ExecutionContext.html#scala.concurrent.ExecutionContext" name="scala.concurrent.ExecutionContext" id="scala.concurrent.ExecutionContext" class="extype">ExecutionContext</a></span>)</span><span class="result">: <a href="https://www.scala-lang.org/api/2.13.8/scala/concurrent/Future.html#scala.concurrent.Future" name="scala.concurrent.Future" id="scala.concurrent.Future" class="extype">Future</a>[<a href="../chain/blockchain/ChainHandlerCached.html" name="org.bitcoins.chain.blockchain.ChainHandlerCached" id="org.bitcoins.chain.blockchain.ChainHandlerCached" class="extype">ChainHandlerCached</a>]</span></span><p class="shortcomment cmt">This is c
This involves database calls which can be slow and expensive to construct
our <a href="../chain/blockchain/Blockchain.html" name="org.bitcoins.chain.blockchain.Blockchain" id="org.bitcoins.chain.blockchain.Blockchain" class="extype">Blockchain</a>
</p><div class="fullcomment"><div class="comment cmt"><p>This is constructing a chain api from disk every time we call this method
This involves database calls which can be slow and expensive to construct
our <a href="../chain/blockchain/Blockchain.html" name="org.bitcoins.chain.blockchain.Blockchain" id="org.bitcoins.chain.blockchain.Blockchain" class="extype">Blockchain</a>
</p></div><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="Node.html" name="org.bitcoins.node.Node" id="org.bitcoins.node.Node" class="extype">Node</a></dd></dl></div></li><li class="indented0 " name="org.bitcoins.node.SpvNode#chainAppConfig" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="chainAppConfig:org.bitcoins.chain.config.ChainAppConfig" class="anchorToMember"></a><a id="chainAppConfig:ChainAppConfig" class="anchorToMember"></a> <span class="permalink"><a href="../../../org/bitcoins/node/SpvNode.html#chainAppConfig:org.bitcoins.chain.config.ChainAppConfig" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">chainAppConfig</span><span class="result">: <a href="../chain/config/ChainAppConfig.html" name="org.bitcoins.chain.config.ChainAppConfig" id="org.bitcoins.chain.config.ChainAppConfig" class="extype">ChainAppConfig</a></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="" name="org.bitcoins.node.SpvNode" id="org.bitcoins.node.SpvNode" class="extype">SpvNode</a><a href="Node.html" name="org.bitcoins.node.Node" id="org.bitcoins.node.Node" class="extype">Node</a></dd></dl></div></li><li class="indented0 " name="org.bitcoins.node.SpvNode#chainConfig" group="Ungrouped" fullComment="no" data-isabs="false" visbl="pub"><a id="chainConfig:org.bitcoins.chain.config.ChainAppConfig" class="anchorToMember"></a><a id="chainConfig:ChainAppConfig" class="anchorToMember"></a> <span class="permalink"><a href="../../../org/bitcoins/node/SpvNode.html#chainConfig:org.bitcoins.chain.config.ChainAppConfig" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">val</span></span> <span class="symbol"><span class="name">chainConfig</span><span class="result">: <a href="../chain/config/ChainAppConfig.html" name="org.bitcoins.chain.config.ChainAppConfig" id="org.bitcoins.chain.config.ChainAppConfig" class="extype">ChainAppConfig</a></span></span></li><li class="indented0 " name="org.bitcoins.node.Node#clients" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="clients:Vector[org.bitcoins.node.networking.P2PClient]" class="anchorToMember"></a><a id="clients:Vector[P2PClient]" class="anchorToMember"></a> <span class="permalink"><a href="../../../org/bitcoins/node/SpvNode.html#clients:Vector[org.bitcoins.node.networking.P2PClient]" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">clients</span><span class="result">: <a href="../../../scala/index.html#Vector[+A]=scala.collection.immutable.Vector[A]" name="scala.Vector" id="scala.Vector" class="extmbr">Vector</a>[<a href="networking/P2PClient.html" name="org.bitcoins.node.networking.P2PClient" id="org.bitcoins.node.networking.P2PClient" class="extype">P2PClient</a>]</span></span><p class="shortcomment cmt">Unlike our chain api, this is cached inside our node
object.</p><div class="fullcomment"><div class="comment cmt"><p>Unlike our chain api, this is cached inside our node
object. Internally in <a href="networking/P2PClient.html" name="org.bitcoins.node.networking.P2PClient" id="org.bitcoins.node.networking.P2PClient" class="extype">p2p client</a> you will see that
the <span name="ChainApi" class="extype">chain api</span> is updated inside of the p2p client
</p></div><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="Node.html" name="org.bitcoins.node.Node" id="org.bitcoins.node.Node" class="extype">Node</a></dd></dl></div></li><li class="indented0 " name="scala.AnyRef#clone" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="prt"><a id="clone():Object" class="anchorToMember"></a><a id="clone():AnyRef" class="anchorToMember"></a> <span class="permalink"><a href="../../../org/bitcoins/node/SpvNode.html#clone():Object" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">clone</span><span class="params">()</span><span class="result">: <a href="../../../scala/index.html#AnyRef=Object" name="scala.AnyRef" id="scala.AnyRef" class="extmbr">AnyRef</a></span></span><div class="fullcomment"><dl class="attributes block"><dt>Attributes</dt><dd>protected[<span name="java.lang" class="extype">lang</span>] </dd><dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd><span class="name">@throws</span><span class="args">(<span><span class="defval">classOf[java.lang.CloneNotSupportedException]</span></span>)</span> <span class="name">@native</span><span class="args">()</span> </dd></dl></div></li><li class="indented0 " name="org.bitcoins.node.SpvNode#configPeersOverride" group="Ungrouped" fullComment="no" data-isabs="false" visbl="pub"><a id="configPeersOverride:Vector[org.bitcoins.node.models.Peer]" class="anchorToMember"></a><a id="configPeersOverride:Vector[Peer]" class="anchorToMember"></a> <span class="permalink"><a href="../../../org/bitcoins/node/SpvNode.html#configPeersOverride:Vector[org.bitcoins.node.models.Peer]" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">val</span></span> <span class="symbol"><span class="name">configPeersOverride</span><span class="result">: <a href="../../../scala/index.html#Vector[+A]=scala.collection.immutable.Vector[A]" name="scala.Vector" id="scala.Vector" class="extmbr">Vector</a>[<a href="models/Peer.html" name="org.bitcoins.node.models.Peer" id="org.bitcoins.node.models.Peer" class="extype">Peer</a>]</span></span></li><li class="indented0 " name="org.bitcoins.node.SpvNode#controlMessageHandler" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="controlMessageHandler:org.bitcoins.node.networking.peer.ControlMessageHandler" class="anchorToMember"></a><a id="controlMessageHandler:ControlMessageHandler" class="anchorToMember"></a> <span class="permalink"><a href="../../../org/bitcoins/node/SpvNode.html#controlMessageHandler:org.bitcoins.node.networking.peer.ControlMessageHandler" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">val</span></span> <span class="symbol"><span class="name">controlMessageHandler</span><span class="result">: <a href="networking/peer/ControlMessageHandler.html" name="org.bitcoins.node.networking.peer.ControlMessageHandler" id="org.bitcoins.node.networking.peer.ControlMessageHandler" class="extype">ControlMessageHandler</a></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="" name="org.bitcoins.node.SpvNode" id="org.bitcoins.node.SpvNode" class="extype">SpvNode</a><a href="Node.html" name="org.bitcoins.node.Node" id="org.bitcoins.node.Node" class="extype">Node</a></dd></dl></div></li><li class="indented0 " name="org.bitcoins.node.SpvNode#dataMessageHandler" group="Ungrouped" fullComment="no" data-isabs="false" visbl="pub"><a id="dataMessageHandler:org.bitcoins.node.networking.peer.DataMessageHandler" class="anchorToMember"></a><a id="dataMessageHandler:DataMessageHandler" class="anchorToMember"></a> <span class="permalink"><a href="../../../org/bitcoins/node/SpvNode.html#dataMessageHandler:org.bitcoins.node.networking.peer.DataMessageHandler" title="Permalink"><i class="material-ico
</p></div><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="Node.html" name="org.bitcoins.node.Node" id="org.bitcoins.node.Node" class="extype">Node</a><a href="../core/api/node/NodeApi.html" name="org.bitcoins.core.api.node.NodeApi" id="org.bitcoins.core.api.node.NodeApi" class="extype">NodeApi</a></dd></dl></div></li><li class="indented0 " name="org.bitcoins.node.Node#epochSecondToBlockHeight" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="epochSecondToBlockHeight(time:Long):scala.concurrent.Future[Int]" class="anchorToMember"></a><a id="epochSecondToBlockHeight(Long):Future[Int]" class="anchorToMember"></a> <span class="permalink"><a href="../../../org/bitcoins/node/SpvNode.html#epochSecondToBlockHeight(time:Long):scala.concurrent.Future[Int]" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">epochSecondToBlockHeight</span><span class="params">(<span name="time">time: <a href="https://www.scala-lang.org/api/2.13.8/scala/Long.html#scala.Long" name="scala.Long" id="scala.Long" class="extype">Long</a></span>)</span><span class="result">: <a href="https://www.scala-lang.org/api/2.13.8/scala/concurrent/Future.html#scala.concurrent.Future" name="scala.concurrent.Future" id="scala.concurrent.Future" class="extype">Future</a>[<a href="https://www.scala-lang.org/api/2.13.8/scala/Int.html#scala.Int" name="scala.Int" id="scala.Int" class="extype">Int</a>]</span></span><p class="shortcomment cmt">Gets the block height of the closest block to the given time</p><div class="fullcomment"><div class="comment cmt"><p>Gets the block height of the closest block to the given time</p></div><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="Node.html" name="org.bitcoins.node.Node" id="org.bitcoins.node.Node" class="extype">Node</a><a href="../core/api/chain/ChainQueryApi.html" name="org.bitcoins.core.api.chain.ChainQueryApi" id="org.bitcoins.core.api.chain.ChainQueryApi" class="extype">ChainQueryApi</a></dd></dl></div></li><li class="indented0 " name="scala.AnyRef#eq" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="eq(x$1:AnyRef):Boolean" class="anchorToMember"></a><a id="eq(AnyRef):Boolean" class="anchorToMember"></a> <span class="permalink"><a href="../../../org/bitcoins/node/SpvNode.html#eq(x$1:AnyRef):Boolean" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name">eq</span><span class="params">(<span name="arg0">arg0: <a href="../../../scala/index.html#AnyRef=Object" name="scala.AnyRef" id="scala.AnyRef" class="extmbr">AnyRef</a></span>)</span><span class="result">: <a href="https://www.scala-lang.org/api/2.13.8/scala/Boolean.html#scala.Boolean" name="scala.Boolean" id="scala.Boolean" class="extype">Boolean</a></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef</dd></dl></div></li><li class="indented0 " name="grizzled.slf4j.Logging#error" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="prt"><a id="error(mkr:org.slf4j.Marker,msg:=&gt;Any,t:=&gt;Throwable):Unit" class="anchorToMember"></a><a id="error(Marker,=&gt;Any,=&gt;Throwable):Unit" class="anchorToMember"></a> <span class="permalink"><a href="../../../org/bitcoins/node/SpvNode.html#error(mkr:org.slf4j.Marker,msg:=&gt;Any,t:=&gt;Throwable):Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">error</span><span class="params">(<span name="mkr">mkr: <a href="https://javadoc.io/page/org.slf4j/slf4j-api/1.7.30/org/slf4j/Marker.html#org.slf4j.Marker" name="org.slf4j.Marker" id="org.slf4j.Marker" class="extype">Marker</a></span>, <span name="msg">msg: =&gt; <a href="https://www.scal
It should be noted that the dataMessageHandler contains
chainstate. When we update with a new chainstate, we need to
make sure we update the <span name="DataMessageHandler" class="extype">DataMessageHandler</span> via <span name="updateDataMessageHandler()" class="extype">updateDataMessageHandler()</span>
to make sure we don't corrupt our chainstate cache
</p></div><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="" name="org.bitcoins.node.SpvNode" id="org.bitcoins.node.SpvNode" class="extype">SpvNode</a><a href="Node.html" name="org.bitcoins.node.Node" id="org.bitcoins.node.Node" class="extype">Node</a></dd></dl></div></li><li class="indented0 " name="org.bitcoins.node.SpvNode#getFilterCount" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="getFilterCount():scala.concurrent.Future[Int]" class="anchorToMember"></a><a id="getFilterCount():Future[Int]" class="anchorToMember"></a> <span class="permalink"><a href="../../../org/bitcoins/node/SpvNode.html#getFilterCount():scala.concurrent.Future[Int]" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">getFilterCount</span><span class="params">()</span><span class="result">: <a href="https://www.scala-lang.org/api/2.13.8/scala/concurrent/Future.html#scala.concurrent.Future" name="scala.concurrent.Future" id="scala.concurrent.Future" class="extype">Future</a>[<a href="https://www.scala-lang.org/api/2.13.8/scala/Int.html#scala.Int" name="scala.Int" id="scala.Int" class="extype">Int</a>]</span></span><p class="shortcomment cmt">Gets the number of compact filters in the database</p><div class="fullcomment"><div class="comment cmt"><p>Gets the number of compact filters in the database</p></div><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="" name="org.bitcoins.node.SpvNode" id="org.bitcoins.node.SpvNode" class="extype">SpvNode</a><a href="../core/api/chain/ChainQueryApi.html" name="org.bitcoins.core.api.chain.ChainQueryApi" id="org.bitcoins.core.api.chain.ChainQueryApi" class="extype">ChainQueryApi</a></dd></dl></div></li><li class="indented0 " name="org.bitcoins.node.SpvNode#getFiltersBetweenHeights" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="getFiltersBetweenHeights(startHeight:Int,endHeight:Int):scala.concurrent.Future[Vector[org.bitcoins.core.api.chain.ChainQueryApi.FilterResponse]]" class="anchorToMember"></a><a id="getFiltersBetweenHeights(Int,Int):Future[Vector[FilterResponse]]" class="anchorToMember"></a> <span class="permalink"><a href="../../../org/bitcoins/node/SpvNode.html#getFiltersBetweenHeights(startHeight:Int,endHeight:Int):scala.concurrent.Future[Vector[org.bitcoins.core.api.chain.ChainQueryApi.FilterResponse]]" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">getFiltersBetweenHeights</span><span class="params">(<span name="startHeight">startHeight: <a href="https://www.scala-lang.org/api/2.13.8/scala/Int.html#scala.Int" name="scala.Int" id="scala.Int" class="extype">Int</a></span>, <span name="endHeight">endHeight: <a href="https://www.scala-lang.org/api/2.13.8/scala/Int.html#scala.Int" name="scala.Int" id="scala.Int" class="extype">Int</a></span>)</span><span class="result">: <a href="https://www.scala-lang.org/api/2.13.8/scala/concurrent/Future.html#scala.concurrent.Future" name="scala.concurrent.Future" id="scala.concurrent.Future" class="extype">Future</a>[<a href="../../../scala/index.html#Vector[+A]=scala.collection.immutable.Vector[A]" name="scala.Vector" id="scala.Vector" class="extmbr">Vector</a>[<a href="../core/api/chain/ChainQueryApi$$FilterResponse.html" name="org.bitcoins.core.api.chain.ChainQueryApi.FilterResponse" id="org.bitcoins.core.api.chain.ChainQueryApi.FilterResponse" class="extype">FilterResponse</a>]]</span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="" name="org.bitcoins.node.SpvNode" id="org.bitcoins.node.SpvNode" class="extype">SpvNode</a><a href="../core/api/chain/ChainQueryApi.html" name="org.bitcoins.core.api.chain.ChainQueryApi" id="org.bitcoins.core.api.chain.ChainQueryApi" class="extype">ChainQueryApi</a></dd></dl></div></li
This means we can now send arbitrary messages to our peer
</p><div class="fullcomment"><div class="comment cmt"><p>Checks if we are fully initialized with our peer and have executed the handshake
This means we can now send arbitrary messages to our peer
</p></div><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="Node.html" name="org.bitcoins.node.Node" id="org.bitcoins.node.Node" class="extype">Node</a></dd></dl></div></li><li class="indented0 " name="scala.Any#isInstanceOf" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="isInstanceOf[T0]:Boolean" class="anchorToMember"></a> <span class="permalink"><a href="../../../org/bitcoins/node/SpvNode.html#isInstanceOf[T0]:Boolean" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name">isInstanceOf</span><span class="tparams">[<span name="T0">T0</span>]</span><span class="result">: <a href="https://www.scala-lang.org/api/2.13.8/scala/Boolean.html#scala.Boolean" name="scala.Boolean" id="scala.Boolean" class="extype">Boolean</a></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>Any</dd></dl></div></li><li class="indented0 " name="grizzled.slf4j.Logging#isTraceEnabled" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="prt"><a id="isTraceEnabled:Boolean" class="anchorToMember"></a> <span class="permalink"><a href="../../../org/bitcoins/node/SpvNode.html#isTraceEnabled:Boolean" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">isTraceEnabled</span><span class="result">: <a href="https://www.scala-lang.org/api/2.13.8/scala/Boolean.html#scala.Boolean" name="scala.Boolean" id="scala.Boolean" class="extype">Boolean</a></span></span><div class="fullcomment"><dl class="attributes block"><dt>Attributes</dt><dd>protected </dd><dt>Definition Classes</dt><dd>Logging</dd></dl></div></li><li class="indented0 " name="grizzled.slf4j.Logging#isWarnEnabled" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="prt"><a id="isWarnEnabled:Boolean" class="anchorToMember"></a> <span class="permalink"><a href="../../../org/bitcoins/node/SpvNode.html#isWarnEnabled:Boolean" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">isWarnEnabled</span><span class="result">: <a href="https://www.scala-lang.org/api/2.13.8/scala/Boolean.html#scala.Boolean" name="scala.Boolean" id="scala.Boolean" class="extype">Boolean</a></span></span><div class="fullcomment"><dl class="attributes block"><dt>Attributes</dt><dd>protected </dd><dt>Definition Classes</dt><dd>Logging</dd></dl></div></li><li class="indented0 " name="grizzled.slf4j.Logging#logger" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="prt"><a id="logger:grizzled.slf4j.Logger" class="anchorToMember"></a><a id="logger:Logger" class="anchorToMember"></a> <span class="permalink"><a href="../../../org/bitcoins/node/SpvNode.html#logger:grizzled.slf4j.Logger" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">logger</span><span class="result">: <a href="https://javadoc.io/page/org.clapper/grizzled-slf4j_2.13/1.3.4/grizzled/slf4j/Logger.html#grizzled.slf4j.Logger" name="grizzled.slf4j.Logger" id="grizzled.slf4j.Logger" class="extype">Logger</a></span></span><div class="fullcomment"><dl class="attributes block"><dt>Attributes</dt><dd>protected </dd><dt>Definition Classes</dt><dd>Logging</dd></dl></div></li><li class="indented0 " name="grizzled.slf4j.Logging#loggerName" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="prt"><a id="loggerName:String" class="anchorToMember"></a> <span class="permalink"><a href="../../../org/bitcoins/node/SpvNode.html#loggerName:String" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind
This method is useful for playing around
with P2P messages, therefore marked as
<code>private[node]</code>.
</p></div><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="Node.html" name="org.bitcoins.node.Node" id="org.bitcoins.node.Node" class="extype">Node</a></dd></dl></div></li><li class="indented0 " name="org.bitcoins.node.SpvNode#setBloomFilter" group="Ungrouped" fullComment="no" data-isabs="false" visbl="pub"><a id="setBloomFilter(bloom:org.bitcoins.core.bloom.BloomFilter):org.bitcoins.node.SpvNode" class="anchorToMember"></a><a id="setBloomFilter(BloomFilter):SpvNode" class="anchorToMember"></a> <span class="permalink"><a href="../../../org/bitcoins/node/SpvNode.html#setBloomFilter(bloom:org.bitcoins.core.bloom.BloomFilter):org.bitcoins.node.SpvNode" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">setBloomFilter</span><span class="params">(<span name="bloom">bloom: <a href="../core/bloom/BloomFilter.html" name="org.bitcoins.core.bloom.BloomFilter" id="org.bitcoins.core.bloom.BloomFilter" class="extype">BloomFilter</a></span>)</span><span class="result">: <a href="" name="org.bitcoins.node.SpvNode" id="org.bitcoins.node.SpvNode" class="extype">SpvNode</a></span></span></li><li class="indented0 " name="org.bitcoins.node.SpvNode#start" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="start():scala.concurrent.Future[org.bitcoins.node.SpvNode]" class="anchorToMember"></a><a id="start():Future[SpvNode]" class="anchorToMember"></a> <span class="permalink"><a href="../../../org/bitcoins/node/SpvNode.html#start():scala.concurrent.Future[org.bitcoins.node.SpvNode]" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">start</span><span class="params">()</span><span class="result">: <a href="https://www.scala-lang.org/api/2.13.8/scala/concurrent/Future.html#scala.concurrent.Future" name="scala.concurrent.Future" id="scala.concurrent.Future" class="extype">Future</a>[<a href="" name="org.bitcoins.node.SpvNode" id="org.bitcoins.node.SpvNode" class="extype">SpvNode</a>]</span></span><p class="shortcomment cmt">Starts our node</p><div class="fullcomment"><div class="comment cmt"><p>Starts our node</p></div><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="" name="org.bitcoins.node.SpvNode" id="org.bitcoins.node.SpvNode" class="extype">SpvNode</a><a href="Node.html" name="org.bitcoins.node.Node" id="org.bitcoins.node.Node" class="extype">Node</a></dd></dl></div></li><li class="indented0 " name="org.bitcoins.node.Node#stop" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="stop():scala.concurrent.Future[org.bitcoins.node.Node]" class="anchorToMember"></a><a id="stop():Future[Node]" class="anchorToMember"></a> <span class="permalink"><a href="../../../org/bitcoins/node/SpvNode.html#stop():scala.concurrent.Future[org.bitcoins.node.Node]" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">stop</span><span class="params">()</span><span class="result">: <a href="https://www.scala-lang.org/api/2.13.8/scala/concurrent/Future.html#scala.concurrent.Future" name="scala.concurrent.Future" id="scala.concurrent.Future" class="extype">Future</a>[<a href="Node.html" name="org.bitcoins.node.Node" id="org.bitcoins.node.Node" class="extype">Node</a>]</span></span><p class="shortcomment cmt">Stops our node</p><div class="fullcomment"><div class="comment cmt"><p>Stops our node</p></div><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="Node.html" name="org.bitcoins.node.Node" id="org.bitcoins.node.Node" class="extype">Node</a></dd></dl></div></li><li class="indented0 " name="org.bitcoins.node.Node#sync" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="sync():scala.concurrent.Future[Unit]"
If our local best block hash is the same as our peers
we will not sync, otherwise we will keep syncing
until our best block hashes match up
</p><div class="fullcomment"><div class="comment cmt"><p>Starts to sync our node with our peer
If our local best block hash is the same as our peers
we will not sync, otherwise we will keep syncing
until our best block hashes match up
</p></div><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="Node.html" name="org.bitcoins.node.Node" id="org.bitcoins.node.Node" class="extype">Node</a></dd></dl></div></li><li class="indented0 " name="scala.AnyRef#synchronized" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="synchronized[T0](x$1:=&gt;T0):T0" class="anchorToMember"></a><a id="synchronized[T0](=&gt;T0):T0" class="anchorToMember"></a> <span class="permalink"><a href="../../../org/bitcoins/node/SpvNode.html#synchronized[T0](x$1:=&gt;T0):T0" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name">synchronized</span><span class="tparams">[<span name="T0">T0</span>]</span><span class="params">(<span name="arg0">arg0: =&gt; <span name="java.lang.AnyRef.synchronized.T0" class="extype">T0</span></span>)</span><span class="result">: <span name="java.lang.AnyRef.synchronized.T0" class="extype">T0</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef</dd></dl></div></li><li class="indented0 " name="org.bitcoins.node.SpvNode#system" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="system:akka.actor.ActorSystem" class="anchorToMember"></a><a id="system:ActorSystem" class="anchorToMember"></a> <span class="permalink"><a href="../../../org/bitcoins/node/SpvNode.html#system:akka.actor.ActorSystem" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">implicit </span> <span class="kind">def</span></span> <span class="symbol"><span class="name">system</span><span class="result">: <a href="https://doc.akka.io/api/akka/2.6.19/akka/actor/ActorSystem.html#akka.actor.ActorSystem" name="akka.actor.ActorSystem" id="akka.actor.ActorSystem" class="extype">ActorSystem</a></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="" name="org.bitcoins.node.SpvNode" id="org.bitcoins.node.SpvNode" class="extype">SpvNode</a><a href="Node.html" name="org.bitcoins.node.Node" id="org.bitcoins.node.Node" class="extype">Node</a></dd></dl></div></li><li class="indented0 " name="grizzled.slf4j.Logging#trace" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="prt"><a id="trace(mkr:org.slf4j.Marker,msg:=&gt;Any,t:=&gt;Throwable):Unit" class="anchorToMember"></a><a id="trace(Marker,=&gt;Any,=&gt;Throwable):Unit" class="anchorToMember"></a> <span class="permalink"><a href="../../../org/bitcoins/node/SpvNode.html#trace(mkr:org.slf4j.Marker,msg:=&gt;Any,t:=&gt;Throwable):Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">trace</span><span class="params">(<span name="mkr">mkr: <a href="https://javadoc.io/page/org.slf4j/slf4j-api/1.7.30/org/slf4j/Marker.html#org.slf4j.Marker" name="org.slf4j.Marker" id="org.slf4j.Marker" class="extype">Marker</a></span>, <span name="msg">msg: =&gt; <a href="https://www.scala-lang.org/api/2.13.8/scala/Any.html#scala.Any" name="scala.Any" id="scala.Any" class="extype">Any</a></span>, <span name="t">t: =&gt; <a href="../../../scala/index.html#Throwable=Throwable" name="scala.Throwable" id="scala.Throwable" class="extmbr">Throwable</a></span>)</span><span class="result">: <a href="https://www.scala-lang.org/api/2.13.8/scala/Unit.html#scala.Unit" name="scala.Unit" id="scala.Unit" class="extype">Unit</a></span></span><div class="fullcomment"><dl class="attributes block"><dt>Attributes</dt><dd>protected </dd><dt>Definition Classes</dt><dd>Logging</dd></dl></div></li><li class="indented0 " name="grizzled.slf4j.Logging#trace" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="prt"><a id="trace(msg:=&gt;Any,t:=&gt;Throwable):Unit" class="anchorToMember"></a><a id="trace(=&gt;Any,=&gt;Throwable):Unit" class="anchorToMember
</p><div class="fullcomment"><div class="comment cmt"><p>Updates our bloom filter to match the given address
</p></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>SPV node with the updated bloom filter</p></dd></dl></div></li><li class="indented0 " name="org.bitcoins.node.SpvNode#updateBloomFilter" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="updateBloomFilter(transaction:org.bitcoins.core.protocol.transaction.Transaction):scala.concurrent.Future[org.bitcoins.node.SpvNode]" class="anchorToMember"></a><a id="updateBloomFilter(Transaction):Future[SpvNode]" class="anchorToMember"></a> <span class="permalink"><a href="../../../org/bitcoins/node/SpvNode.html#updateBloomFilter(transaction:org.bitcoins.core.protocol.transaction.Transaction):scala.concurrent.Future[org.bitcoins.node.SpvNode]" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">updateBloomFilter</span><span class="params">(<span name="transaction">transaction: <a href="../core/protocol/transaction/Transaction.html" name="org.bitcoins.core.protocol.transaction.Transaction" id="org.bitcoins.core.protocol.transaction.Transaction" class="extype">Transaction</a></span>)</span><span class="result">: <a href="https://www.scala-lang.org/api/2.13.8/scala/concurrent/Future.html#scala.concurrent.Future" name="scala.concurrent.Future" id="scala.concurrent.Future" class="extype">Future</a>[<a href="" name="org.bitcoins.node.SpvNode" id="org.bitcoins.node.SpvNode" class="extype">SpvNode</a>]</span></span><p class="shortcomment cmt">Updates our bloom filter to match the given TX
</p><div class="fullcomment"><div class="comment cmt"><p>Updates our bloom filter to match the given TX
</p></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>SPV node with the updated bloom filter</p></dd></dl></div></li><li class="indented0 " name="org.bitcoins.node.SpvNode#updateDataMessageHandler" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="updateDataMessageHandler(dataMessageHandler:org.bitcoins.node.networking.peer.DataMessageHandler):org.bitcoins.node.SpvNode" class="anchorToMember"></a><a id="updateDataMessageHandler(DataMessageHandler):SpvNode" class="anchorToMember"></a> <span class="permalink"><a href="../../../org/bitcoins/node/SpvNode.html#updateDataMessageHandler(dataMessageHandler:org.bitcoins.node.networking.peer.DataMessageHandler):org.bitcoins.node.SpvNode" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">updateDataMessageHandler</span><span class="params">(<span name="dataMessageHandler">dataMessageHandler: <a href="networking/peer/DataMessageHandler.html" name="org.bitcoins.node.networking.peer.DataMessageHandler" id="org.bitcoins.node.networking.peer.DataMessageHandler" class="extype">DataMessageHandler</a></span>)</span><span class="result">: <a href="" name="org.bitcoins.node.SpvNode" id="org.bitcoins.node.SpvNode" class="extype">SpvNode</a></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="" name="org.bitcoins.node.SpvNode" id="org.bitcoins.node.SpvNode" class="extype">SpvNode</a><a href="Node.html" name="org.bitcoins.node.Node" id="org.bitcoins.node.Node" class="extype">Node</a></dd></dl></div></li><li class="indented0 " name="scala.AnyRef#wait" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="wait():Unit" class="anchorToMember"></a> <span class="permalink"><a href="../../../org/bitcoins/node/SpvNode.html#wait():Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name">wait</span><span class="params">()</span><span class="result">: <a href="https://www.scala-lang.org/api/2.13.8/scala/Unit.html#scala.Unit" name="scala.Unit" id="scala.Unit" class="extype">Unit</a></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd><span class="name">@throws</span><span class="args">(<span><span class="defval">classOf[java.lang.InterruptedException]</span></span>)</span> </dd></dl></div></li><li class="indented0 " name="scala.AnyRef#wait" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="wait(x$1:Long,x$2:Int):Unit" class="anchorToMember"></a><a id="wait(Long,Int):Unit" class="anchorToMember"></a> <span class="permalink"><a href="../../../org/bitcoins/node/SpvNode.html#wait(x$1:Long,x$2:Int):Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name">wait</span><span class="params">(<span name="arg0">arg0: <a href="https://www.scala-lang.org/api/2.13.8/scala/Long.html#scala.Long" name="scala.Long" id="scala.Long" class="extype">Long</a></span>, <span name="arg1">arg1: <a href="https://www.scala-lang.org/api/2.13.8/scala/Int.html#scala.Int" name="scala.Int" id="scala.Int" class="extype">Int</a></span>)</span><span class="result">: <a href="https://www.scala-lang.org/api/2.13.8/scala/Unit.html#scala.Unit" name="scala.Unit" id="scala.Unit" class="extype">Unit</a></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd><span class="name">@throws</span><span class="args">(<span><span class="defval">classOf[java.lang.InterruptedException]</span></span>)</span> </dd></dl></div></li><li class="indented0 " name="scala.AnyRef#wait" group="Ungrouped" fullComment="yes" da