Skip to content

Latest commit

 

History

History
82 lines (64 loc) · 3.08 KB

README.md

File metadata and controls

82 lines (64 loc) · 3.08 KB

Build Status

eclair

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.

Overview

The general idea is to have an actor per channel, everything being non-blocking.

A "blockchain watcher" is responsible for monitoring the blockchain, and sending events (eg. when the anchor is spent).

Modules

  • lightning-types: scala code generation using protobuf's compiler (wire protocol)
  • eclair-demo: actual implementation

Usage

Prerequisites:

  • A JRE or JDK depending on wether you want to compile yourself or not (preferably > 1.8)
  • A running bitcoin-demo (testnet or regtest)

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

Either run from source:

mvn exec:java -Dexec.mainClass=fr.acinq.eclair.Boot

Or grab the latest released jar and run:

java -jar eclair-demo_2.11-*-capsule-fat.jar

See TESTING.md for more details on how to use this software.

Available jvm options (see application.conf for full reference):

eclair.server.port (default: 45000)
eclair.http.port (default: 8080)
eclair.bitcoind.rpcuser (default: foo)
eclair.bitcoind.rpcpassword (default: bar)

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

Status

  • Network
  • Routing
  • 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