Skip to content
forked from ACINQ/eclair

A scala implementation of the Lightning Network.

License

Notifications You must be signed in to change notification settings

ewebconsult/eclair

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

A scala implementation of the Lightning Network.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Scala 96.8%
  • Protocol Buffer 3.1%
  • Batchfile 0.1%