2.9 KiB
id | title |
---|---|
rpc-eclair | Eclair |
This is a RPC client for Eclair. It assumes that a bitcoind instance is running.
Currently this RPC client is written for v0.10.0 version of Eclair.
Configuration of Eclair
Please see the configuration secion of the Eclair README.
You can find the configuration we use for our testing infrastrture for eclair here.
Starting Eclair
You need to download the jar from the eclair's github.
To run Eclair by unzipping the eclair-node-0.10.0-a63d2c2-bin.zip
and then running
$ ./eclair-node-0.5.0-ac08560/bin/eclair-node.sh
If you wish to start Eclair from the RPC client, you can do one of the following:
- Construct a
EclairRpcClient.binary
field set - Set the
ECLAIR_PATH
environment variable to the directory where the Eclair Jar is located.
We will default to using the binary
field first when trying to start the jar, and the fallback to ECLAIR_PATH
.
Here is an example of how to start eclair:
import org.apache.pekko.actor.ActorSystem
import org.bitcoins.eclair.rpc.client.EclairRpcClient
import org.bitcoins.eclair.rpc.config.EclairInstanceLocal
import java.nio.file.Paths
import scala.concurrent.ExecutionContext
implicit val system: ActorSystem = ActorSystem(s"eclair-rpc-${System.currentTimeMillis}")
implicit val ec: ExecutionContext = system.dispatcher
val datadirPath = Paths.get("path", "to", "datadir")
val binaryPath = Paths.get("path", "to", "eclair-node-0.10.0-a63d2c2", "bin", "eclair-node.sh")
val instance = EclairInstanceLocal.fromDatadir(datadirPath.toFile, logbackXml = None, proxyParams = None)
val client = new EclairRpcClient(instance, Some(binaryPath.toFile))
val startedF = client.start()
for {
eclair <- startedF
info <- eclair.getInfo
} yield {
println(s"Eclair info: $info")
}
Connecting to the websocket
As of v0.10.0
eclair supports a websocket endpoint. This means you can receive updates of what is happening with eclair
in real time. You can see an example of us testing this here