A highly modular Bitcoin Lightning library written in Rust. It's rust-lightning, not Rusty's Lightning!
Find a file
Antoine Riard 2322c2365c Make get_latest_local_commitment_txn public
You may use it to get a broadcastable local toxic tx in case of fallen-behind,
i.e when receiving a channel_reestablish with a proof that our remote side
knows a higher revocation secret than the local commitment number we are aware
of. Broadcasting these transactions are UNSAFE, as they allow remote side to punish
you. Nevertheless you may want to broadcast them if remote don't close channel with his
higher commitment transaction after a substantial amount of time (a month or even a year)
to get back funds. Best may be to contact out-of-band the other node operator to coordinate
with him if option is available to you. In any-case, choice is up to the user.

Also, log toxic commitment tx id in channel_reestablish sending back
ChannelError::CloseDelayBroadcast
2019-08-05 15:47:37 -04:00
fuzz Make chanmon_fail_consistency slightly less aggressive 2019-07-25 11:30:53 -04:00
net-tokio Bump version to 0.0.9 to get current master fixes uploaded. 2019-06-01 07:48:33 -04:00
src Make get_latest_local_commitment_txn public 2019-08-05 15:47:37 -04:00
.editorconfig Fix typos 2019-01-24 19:07:08 +02:00
.gitignore ignore IntelliJ IDEA files 2018-03-19 16:14:19 -04:00
.travis.yml Generate codecov.io reports 2019-07-25 16:59:20 -04:00
Cargo.toml Make rand a dev-dep by having the user randomize HTLC forward delay 2019-07-23 14:29:56 -04:00
LICENSE Unify license with rust-bitcoin-spv 2018-03-05 15:09:44 -05:00
README.md Bump progress tracker 2019-07-24 20:03:48 +00:00

Safety Dance

Rust-Lightning, not Rusty's Lightning!

Documentation can be found at docs.rs

Currently somewhere near 40% towards usable, published to see if there is any real interest from folks in using a lightning rust library.

The goal is to provide a full-featured but also incredibly flexible lightning implementation, allowing the user to decide how they wish to use it. With that in mind, everything should be exposed via simple, composable APIs. The user should be able to decide whether they wish to use their own threading/execution models, allowing usage inside of existing library architectures, or allow us to handle that for them. Same goes with network connections - if the user wishes to use their own networking stack, they should be able to do so! This all means that we should provide simple external interfaces which allow the user to drive all execution, while implementing sample execution drivers that create a full-featured lightning daemon by default.

For security reasons, do not add new dependencies. Really do not add new non-optional/non-test/non-library dependencies. Really really do not add dependencies with dependencies. Do convince Andrew to cut down dependency usage in rust-bitcoin.

Notes on coding style:

  • Use tabs. If you want to align lines, use spaces. Any desired alignment should display fine at any tab-length display setting.

License is Apache-2.0.