1
0
Fork 0
mirror of https://github.com/ACINQ/eclair.git synced 2025-02-23 14:40:34 +01:00
A scala implementation of the Lightning Network.
Find a file
Pierre-Marie Padiou 45a4f96372 Wip Alternateroute (#20)
* added a basic channel selector that just keeps track of balances

* added a payment fsm that manages a single payment and handles errors

* cleaned up actors after each single state test

* interop test: use our Setup class instead of doing things manually

* interop test: upgrade lightningd

* interop test: checkout lightning fce9ee29e3c37b4291ebb050e6a687cfaa7df95a
2016-09-07 14:21:17 +01:00
eclair-node Wip Alternateroute (#20) 2016-09-07 14:21:17 +01:00
lightning-types mvn: set version to 0.2-SNAPSHOT 2016-08-26 17:33:50 +02:00
travis Wip Alternateroute (#20) 2016-09-07 14:21:17 +01:00
.gitignore Added 'send' macro in test scenario (#10) 2016-05-31 13:04:09 +02:00
.travis.yml travis: run interoperability test with lightnind (#19) 2016-09-01 16:07:41 +02:00
LICENSE now using sonatype repos for acinq-tools 2016-01-21 15:04:42 +01:00
pom.xml upgrade akka to 2.4.9 2016-08-29 11:10:17 +02:00
README.md Update README.md 2016-08-31 16:51:16 +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-node: 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-core_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 (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