A highly modular Bitcoin Lightning library written in Rust. It's rust-lightning, not Rusty's Lightning!
Find a file
Matt Corallo a19d71d0b2 Keep track of the Init Features for every connected/channel'd peer
Since we want to keep track of the Init-context features for every
peer we have channels with, we have to keep them for as long as the
peer is connected (since we may open a channel with them at any
point).

We go ahead and take this opportunity to create a new per-peer-state
struct which has two levels of mutexes which is appropriate for
moving channel storage to.

Since we can't process messages from a given peer in parallel, the
inner lock is a regular mutex, but the outer lock is RW so that we
can process for different peers at the same time with an outer read
lock.
2020-01-19 22:47:08 -05:00
fuzz Pass peer's Init message through to ChannelManager 2020-01-19 22:47:08 -05:00
lightning Keep track of the Init Features for every connected/channel'd peer 2020-01-19 22:47:08 -05:00
lightning-net-tokio Bump versions to 0.0.10 2019-12-11 18:17:54 -05:00
.editorconfig Fix typos 2019-01-24 19:07:08 +02:00
.gitignore Provide remote channel public keys to signer 2020-01-19 20:40:49 -05:00
.travis.yml Move fuzz to top level. 2019-11-25 15:42:07 -05:00
Cargo.toml Move test profile to crate root, so it has effect again 2019-11-28 01:21:41 -05:00
LICENSE Unify license with rust-bitcoin-spv 2018-03-05 15:09:44 -05:00
README.md Bump versions to 0.0.10 2019-12-11 18:17:54 -05:00

Safety Dance

Rust-Lightning, not Rusty's Lightning!

Documentation can be found at docs.rs

Currently somewhere near 50% 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.