1
0
mirror of https://github.com/ACINQ/eclair.git synced 2024-11-19 09:54:02 +01:00
A scala implementation of the Lightning Network.
Go to file
2016-01-22 10:21:05 +01:00
eclair-demo moved scripts to Scripts.scala 2016-01-21 15:13:46 +01:00
lightning-types updated proto and fixed htlc tests 2015-09-10 14:17:09 +02:00
.gitignore project now compiles 2015-08-24 11:44:36 +02:00
LICENSE now using sonatype repos for acinq-tools 2016-01-21 15:04:42 +01:00
msg added tests with 20 hops 2015-10-21 18:08:29 +02:00
msg20 added client private keys 2015-10-21 18:32:25 +02:00
pom.xml now using sonatype repos for acinq-tools 2016-01-21 15:04:42 +01:00
README.md Update README.md 2016-01-22 10:21:05 +01:00

eclair

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

More precisely, this is an implementation of Rusty's deployable lightning. In particular it uses the same wire protocol, and almost the same state machine.

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

Run Demo.scala to have an example of:

  1. Opening a channel
  2. Updating the balance with an HTLC
  3. Closing the channel

Status

  • Network
  • Routing
  • Channel state machine
  • HTLC Scripts
  • Unilateral close handling
  • Relaying Payment
  • Blockchain watcher
  • Storing states in a database

Ressources