.readme | ||
eclair-node | ||
travis | ||
.gitignore | ||
.travis.yml | ||
BUILD.md | ||
LICENSE | ||
pom.xml | ||
README.md | ||
TESTING.md |
Eclair (french for Lightning) is a scala implementation of the Lightning Network. It can run with or without a GUI, and a JSON-RPC API is also available.
This software follows the Lightning Network Specifications (BOLTs). Other implementations include lightning-c, lit, and lnd.
🚧 Both the BOLTs and Eclair itself are a work in progress. Expect things to break/change!
⚠️ Eclair currently only runs on regtest or testnet.
Lightning Network Specification Compliance
Eclair 0.2-Alpha1 is fully compliant with the BOLTs at commit 06a5e6cbdbb4c6f8b8dab444de497cdb9c7d7f02:
- BOLT 1: Base Protocol
- BOLT 2: Peer Protocol for Channel Management
- BOLT 3: Bitcoin Transaction and Script Formats
- BOLT 4: Onion Routing Protocol
- BOLT 5: Recommendations for On-chain Transaction Handling
- BOLT 7: P2P Node and Channel Discovery
- BOLT 8: Encrypted and Authenticated Transport
- BOLT 9: Assigned Feature Flags
Overview
Installation
Configuring Bitcoin Core
Eclair needs a synchronized, segwit-ready, non-pruning, tx-indexing Bitcoin-core node.
Run bitcoind with the following bitcoin.conf
:
testnet=1
server=1
rpcuser=XXX
rpcpassword=XXX
txindex=1
Installing Eclair
Windows
Just use the windows installer, it should create a shortcut on your desktop.
Linux, MacOs or manual install on Windows
You need to first install java, more precisely a JRE 1.8+.
Then just grab the latest fat jar and run:
java -jar eclair-node_xxxxxx-fat.jar
Configuring Eclair
Eclair will create a directory in ~/.eclair
by default. You may change this directory's location using --datadir <dir>
command line argument.
If you want to change configuration parameters, create a file named eclair.conf
in eclair's home directory.
option | description | default value |
---|---|---|
eclair.server.port | TCP port | 9735 |
eclair.http.port | HTTP port | 8080 |
eclair.bitcoind.rpcuser | Bitcoin Core RPC user | foo |
eclair.bitcoind.rpcpassword | Bitcoin Core RPC password | bar |
→ see application.conf
for full reference.
JSON-RPC API
method | params | description |
---|---|---|
connect | host, port, anchor_amount | opens a channel with another eclair or lightningd instance |
list | lists existing channels | |
addhtlc | channel_id, amount, rhash, locktime | sends an htlc |
fulfillhtlc | channel_id, r | fulfills an htlc |
close | channel_id | closes a channel |
help | displays available methods |
Resources
- [1] The Bitcoin Lightning Network: Scalable Off-Chain Instant Payments by Joseph Poon and Thaddeus Dryja
- [2] Reaching The Ground With Lightning by Rusty Russell