Packages

object EclairBench extends App with EclairRpcTestUtil

This test spins up one test node and NetworkSize sender nodes, which open channels with the test one. Then each sender node sends PaymentCount payments to the test node one by one. For each payment the test node generates an invoice and the send node pays it using sendtonode API call.

The test keeps track of times when a payment was initiated, when the payment ID was received, and when the corresponding web socket event was received. It writes all results into OutputFileName in CSV format.

Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. EclairBench
  2. EclairRpcTestUtil
  3. BitcoinSLogger
  4. App
  5. DelayedInit
  6. AnyRef
  7. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. case class EclairNetwork(bitcoind: BitcoindRpcClient, testEclairNode: EclairRpcClient, networkEclairNodes: Vector[EclairRpcClient], channelIds: Vector[FundedChannelId]) extends Product with Serializable
    Definition Classes
    EclairRpcTestUtil

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. val ChannelAmount: MilliSatoshis
  5. val LogbackXml: None.type
  6. val NetworkSize: Int
  7. val OutputFileName: String
  8. val PaymentAmount: MilliSatoshis
  9. val PaymentCount: Int
  10. val SenderEclairCommit: Option[String]
  11. val SenderEclairVersion: Option[String]
  12. val TestEclairCommit: Option[String]
  13. val TestEclairVersion: Option[String]
  14. final def args: Array[String]
    Attributes
    protected
    Definition Classes
    App
  15. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  16. def awaitChannelOpened(client1: EclairApi, chanId: ChannelId)(implicit system: ActorSystem): Future[Unit]
    Definition Classes
    EclairRpcTestUtil
  17. def awaitEclairInSync(eclair: EclairRpcClient, bitcoind: BitcoindRpcClient)(implicit system: ActorSystem): Future[Unit]

    Returns a Future that is completed when both eclair and bitcoind have the same block height Fails the future if they are not sychronized within the given timeout.

    Returns a Future that is completed when both eclair and bitcoind have the same block height Fails the future if they are not sychronized within the given timeout.

    Definition Classes
    EclairRpcTestUtil
  18. def awaitUntilChannelClosing(client: EclairApi, chanId: ChannelId)(implicit system: ActorSystem): Future[Unit]
    Definition Classes
    EclairRpcTestUtil
  19. def awaitUntilChannelNormal(client: EclairApi, chanId: ChannelId)(implicit system: ActorSystem): Future[Unit]

    Doesn't return until the given channelId is in the ChannelState.NORMAL for this EclairRpcClient

    Doesn't return until the given channelId is in the ChannelState.NORMAL for this EclairRpcClient

    Definition Classes
    EclairRpcTestUtil
  20. def awaitUntilIncomingPaymentStatus[T <: IncomingPaymentStatus](client: EclairApi, paymentHash: Sha256Digest, interval: FiniteDuration = 1.second, maxTries: Int = 60)(implicit system: ActorSystem, tag: ClassTag[T]): Future[Unit]
    Definition Classes
    EclairRpcTestUtil
  21. def awaitUntilPaymentFailed(client: EclairApi, paymentId: PaymentId, duration: FiniteDuration = 1.second, maxTries: Int = 60, failFast: Boolean = false)(implicit system: ActorSystem): Future[Unit]
    Definition Classes
    EclairRpcTestUtil
  22. def awaitUntilPaymentSucceeded(client: EclairApi, paymentId: PaymentId, duration: FiniteDuration = 1.second, maxTries: Int = 60, failFast: Boolean = true)(implicit system: ActorSystem): Future[Unit]
    Definition Classes
    EclairRpcTestUtil
  23. def bitcoindInstance(port: Int = RpcUtil.randomPort, rpcPort: Int = RpcUtil.randomPort, zmqConfig: ZmqConfig = RpcUtil.zmqConfig, bitcoindV: BitcoindVersion = EclairRpcClient.bitcoindV)(implicit system: ActorSystem): BitcoindInstanceLocal

    Creates a bitcoind instance with the given parameters

    Creates a bitcoind instance with the given parameters

    Definition Classes
    EclairRpcTestUtil
  24. def cannonicalDatadir: File
    Definition Classes
    EclairRpcTestUtil
  25. def cannonicalEclairClient(eclairVersionOpt: Option[String] = None, eclairCommitOpt: Option[String] = None, binaryDirectory: Path = EclairRpcTestClient.sbtBinaryDirectory)(implicit system: ActorSystem): EclairRpcClient
    Definition Classes
    EclairRpcTestUtil
  26. def cannonicalEclairInstance(logbackXml: Option[String] = None): EclairInstanceLocal

    Assumes bitcoind is running already and you have specified correct bindings in eclair.conf

    Assumes bitcoind is running already and you have specified correct bindings in eclair.conf

    Definition Classes
    EclairRpcTestUtil
  27. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  28. def connectLNNodes(client: EclairApi, otherClient: EclairApi)(implicit system: ActorSystem): Future[Unit]
    Definition Classes
    EclairRpcTestUtil
  29. def createNodeLink(channelAmount: MilliSatoshis)(implicit actorSystem: ActorSystem): Future[EclairNodes4]

    Creates four Eclair nodes that are connected in the following manner:

    Creates four Eclair nodes that are connected in the following manner:

    node1 <-> node2 <-> node3 <-> node4

    Each double sided arrow represents a P2P connection as well as a funded channel

    returns

    A 4-tuple of the created nodes' respective EclairRpcClient

    Definition Classes
    EclairRpcTestUtil
    Note

    Blocks the current thread

  30. def createNodeLink()(implicit actorSystem: ActorSystem): Future[EclairNodes4]

    Creates four Eclair nodes that are connected in the following manner:

    Creates four Eclair nodes that are connected in the following manner:

    node1 <-> node2 <-> node3 <-> node4

    Each double sided arrow represents a P2P connection as well as a funded channel

    returns

    A 4-tuple of the created nodes' respective EclairRpcClient

    Definition Classes
    EclairRpcTestUtil
    Note

    Blocks the current thread

  31. def createNodeLink(bitcoindRpcClient: BitcoindRpcClient, channelAmount: MilliSatoshis)(implicit actorSystem: ActorSystem): Future[EclairNodes4]

    Creates four Eclair nodes that are connected in the following manner:

    Creates four Eclair nodes that are connected in the following manner:

    node1 <-> node2 <-> node3 <-> node4

    Each double sided arrow represents a P2P connection as well as a funded channel

    returns

    A 4-tuple of the created nodes' respective EclairRpcClient

    Definition Classes
    EclairRpcTestUtil
    Note

    Blocks the current thread

  32. def createNodeLink(bitcoindRpcClient: BitcoindRpcClient)(implicit actorSystem: ActorSystem): Future[EclairNodes4]

    Creates four Eclair nodes that are connected in the following manner:

    Creates four Eclair nodes that are connected in the following manner:

    node1 <-> node2 <-> node3 <-> node4

    Each double sided arrow represents a P2P connection as well as a funded channel

    returns

    A 4-tuple of the created nodes' respective EclairRpcClient

    Definition Classes
    EclairRpcTestUtil
    Note

    Blocks the current thread

  33. def createNodePair(bitcoindRpcClientOpt: Option[BitcoindRpcClient], eclairVersionOpt1: Option[String] = None, eclairCommitOpt1: Option[String] = None, eclairVersionOpt2: Option[String] = None, eclairCommitOpt2: Option[String] = None, binaryDirectory: Path = EclairRpcTestClient.sbtBinaryDirectory)(implicit system: ActorSystem): Future[(EclairRpcClient, EclairRpcClient)]

    Creates two Eclair nodes that are connected together and returns their respective EclairRpcClients

    Creates two Eclair nodes that are connected together and returns their respective EclairRpcClients

    Definition Classes
    EclairRpcTestUtil
  34. def eclairDataDir(bitcoindRpcClient: BitcoindRpcClient, isCannonical: Boolean): File
    Definition Classes
    EclairRpcTestUtil
  35. def eclairInstance(bitcoindRpc: BitcoindRpcClient, logbackXml: Option[String] = None): EclairInstanceLocal

    Starts the given bitcoind instance and then starts the eclair instance

    Starts the given bitcoind instance and then starts the eclair instance

    Definition Classes
    EclairRpcTestUtil
  36. def eclairInstance(datadir: File, logbackXml: Option[String]): EclairInstanceLocal
    Definition Classes
    EclairRpcTestUtil
  37. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  38. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  39. final val executionStart: Long
    Definition Classes
    App
  40. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  41. def getBitcoindRpc(eclairRpcClient: EclairRpcClient, bitcoindVersion: BitcoindVersion = EclairRpcClient.bitcoindV)(implicit system: ActorSystem): BitcoindRpcClient
    Definition Classes
    EclairRpcTestUtil
  42. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  43. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  44. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  45. def logger: Logger
    Definition Classes
    BitcoinSLogger
  46. final def main(args: Array[String]): Unit
    Definition Classes
    App
  47. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  48. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  49. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  50. def openAndConfirmChannel(client1F: Future[EclairRpcClient], client2F: Future[EclairRpcClient], amount: CurrencyUnit = Satoshis(10000000))(implicit system: ActorSystem): Future[ChannelId]
    Definition Classes
    EclairRpcTestUtil
  51. def openChannel(n1: EclairRpcClient, n2: EclairRpcClient, amt: CurrencyUnit = DEFAULT_CHANNEL_MSAT_AMT.toSatoshis, pushMSat: MilliSatoshis = MilliSatoshis( DEFAULT_CHANNEL_MSAT_AMT.toLong / 2 ))(implicit system: ActorSystem): Future[FundedChannelId]

    Opens a channel from n1 -> n2

    Opens a channel from n1 -> n2

    Definition Classes
    EclairRpcTestUtil
  52. def randomEclairClient(bitcoindRpcOpt: Option[BitcoindRpcClient] = None, eclairVersionOpt: Option[String] = None, eclairCommitOpt: Option[String] = None)(implicit system: ActorSystem): Future[EclairRpcClient]
    Definition Classes
    EclairRpcTestUtil
  53. def randomEclairDatadir(): File
    Definition Classes
    EclairRpcTestUtil
  54. def randomEclairInstance(bitcoindRpc: BitcoindRpcClient, logbackXml: Option[String] = None): EclairInstanceLocal
    Definition Classes
    EclairRpcTestUtil
  55. val res: Future[Unit]
  56. def runTests(network: EclairNetwork): Future[Vector[PaymentLogEntry]]
  57. def sendPayments(network: EclairNetwork, amount: MilliSatoshis, count: Int): Future[Vector[PaymentId]]
  58. def sendPayments(c1: EclairApi, c2: EclairApi, numPayments: Int = 5)(implicit ec: ExecutionContext): Future[Vector[PaymentId]]

    Sends numPayments between c1 and c2.

    Sends numPayments between c1 and c2. No aspect of the payment (size, description, etc) should be assumed to have a certain value, this method is just for populating channel update history with something.

    Definition Classes
    EclairRpcTestUtil
  59. def shutdown(eclairRpcClient: EclairRpcClient)(implicit system: ActorSystem): Future[Unit]

    Shuts down an eclair daemon

    Shuts down an eclair daemon

    Definition Classes
    EclairRpcTestUtil
  60. def startedBitcoindRpcClient(instanceOpt: Option[BitcoindInstanceLocal] = None)(implicit actorSystem: ActorSystem): Future[BitcoindRpcClient]

    Makes a best effort to get a 0.16 bitcoind instance

    Makes a best effort to get a 0.16 bitcoind instance

    Definition Classes
    EclairRpcTestUtil
  61. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  62. implicit val system: ActorSystem
  63. def toString(): String
    Definition Classes
    AnyRef → Any
  64. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  65. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  66. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  67. object Progress
  68. object EclairNetwork extends Serializable
    Definition Classes
    EclairRpcTestUtil

Deprecated Value Members

  1. def delayedInit(body: => Unit): Unit
    Definition Classes
    App → DelayedInit
    Annotations
    @deprecated
    Deprecated

    (Since version 2.11.0) the delayedInit mechanism will disappear

Inherited from EclairRpcTestUtil

Inherited from BitcoinSLogger

Inherited from App

Inherited from DelayedInit

Inherited from AnyRef

Inherited from Any

Ungrouped