mirror of
https://github.com/ACINQ/eclair.git
synced 2024-11-20 02:27:32 +01:00
A scala implementation of the Lightning Network.
eclair-demo | ||
lightning-types | ||
.gitignore | ||
.travis.yml | ||
LICENSE | ||
pom.xml | ||
README.md | ||
TESTING.md |
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
- [1] The Bitcoin Lightning Network: Scalable Off-Chain Instant Payments by Joseph Poon and Thaddeus Dryja
- [2] Reaching The Ground With Lightning by Rusty Russell
Other implementations
Name | Language | Compatible |
---|---|---|
Amiko-Pay | Python | no |
lightning-c | C | yes |
lnd | Go | no |
Thunder | Java | no |