1
0
mirror of https://github.com/ACINQ/eclair.git synced 2024-11-20 02:27:32 +01:00
A scala implementation of the Lightning Network.
Go to file
2016-08-10 11:44:18 +02:00
eclair-demo Merge branch 'master' of github.com:ACINQ/eclair into wip-gossip 2016-08-10 11:44:18 +02:00
lightning-types merged master->wip-uniclose->wip-gossip 2016-07-22 15:42:26 +02:00
.gitignore Added 'send' macro in test scenario (#10) 2016-05-31 13:04:09 +02:00
.travis.yml Wip-scalapbc (#14) 2016-07-13 13:04:37 +01:00
LICENSE now using sonatype repos for acinq-tools 2016-01-21 15:04:42 +01:00
pom.xml merged master->wip-uniclose->wip-gossip 2016-07-22 15:42:26 +02:00
README.md updated README 2016-07-22 16:33:21 +02:00
TESTING.md update TESTING.md 2016-06-02 17:15:11 +02:00

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