mirror of
https://github.com/ACINQ/eclair.git
synced 2025-02-21 14:04:10 +01:00
A scala implementation of the Lightning Network.
eclair-demo | ||
lightning-types | ||
.gitignore | ||
LICENSE | ||
msg | ||
msg20 | ||
pom.xml | ||
README.md |
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.
Modules
- lightning-types: scala code generation using protobuf's compiler (wire protocol)
- lightning-core: actual implementation
Overview
The general idea is to have an actor per channel, everything beeing non-blocking.
A "blockchain watcher" is responsible for monitoring the blockchain, and sending events (eg. when the anchor is spent).
Usage
Run Demo.scala
to have an example of:
- Opening a channel
- Updating the balance with an HTLC
- Closing the channel
Status
- Network
- Routing
- Channel state machine
- HTLC Scripts
- Relaying Payment
- Blockchain watcher
Ressources
- [1] Lightning Network by Joseph Poon and Thaddeus Dryja (website), github repository (golang)
- [2] LN-Implementation by Rusty Russel (Blockstream), github repository (C)
- [3] Thunder Network by Mats Jerratsch (Blockchain.info), github repository (Java)