Skip to content

Latest commit

 

History

History
115 lines (85 loc) · 4.1 KB

README.md

File metadata and controls

115 lines (85 loc) · 4.1 KB

Eclair Logo

Eclair is a scala implementation of the Lightning Network. Eclair is french for Lightning.

This software follows the BOLT specifications, therefore it is compatible with Blockstream's lightning-c.

Build Status


Overview

This software creates a node compatible with a Lightning network and provides a GUI to manage the node. A JSON-RPC API is available if you prefer to run it headless.

Available actions:

  • Open a channel with another eclair or lightningd instance
  • Display opened channels with the node (status, balance, capacity, ...)
  • Receive payments from another node
  • Send payments to another node

Eclair Demo

Installation

The project is under heavy development and no release is available yet. Still you can download the sources, compile the project with Maven (cf §Development) and run it on localhost.


Development

Set up the environment

⚠️ eclair currently runs on regtest/segnet only. Do not try and modify it to run on bitcoin mainnet!

  • Make sure that bitcoin-cli is on the path and edit ~/.bitcoin/bitcoin.conf and add:
server=1
regtest=1
rpcuser=***
rpcpassword=***

Run

  • Download the sources and build the executable JAR with the following command:
mvn package -DskipTests
  • Start bitcoind
  • Mine enough blocks to activate segwit blocks:
bitcoin-cli generate 500
  • Navigate to eclair-node/target and execute the jar eclair-node_2.11-0.2-SNAPSHOT-xxxxxx-capsule-fat.jar

JVM Options

option default value description
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.

Testing with lightningd

→ Checkout our guide

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

Project Status

  • Network
  • Routing (simple IRC prototype)
  • Channel protocol
  • HTLC Scripts
  • Unilateral close handling
  • Relaying Payment
  • Fee management
  • Blockchain watcher
  • Storing states in a database

Resources

Other implementations

Name Language Compatible
Amiko-Pay Python no
lightning-c C yes
lnd Go no
Thunder Java no