Crate lightning
Expand description
Rust-Lightning, not Rusty’s Lightning!
A full-featured but also flexible lightning implementation, in library form. This allows the user (you) to decide how they wish to use it instead of being a fully self-contained daemon. This means there is no built-in threading/execution environment and it’s up to the user to figure out how best to make networking happen/timers fire/things get written to disk/keys get generated/etc. This makes it a good candidate for tight integration into an existing wallet instead of having a rather-separate lightning appendage to a wallet.
default features are:
std- enables functionalities which requirestd, includingstd::iotrait implementations and things which utilize timegrind_signatures- enables generation of low-r bitcoin signatures, which saves 1 byte per signature in 50% of the cases (see bitcoin PR #13666)
Available features are:
stdgrind_signaturesno-std- exposes write trait implementations from thecore2crate (at least one ofno-stdorstdare required)- Skip logging of messages at levels below the given log level:
max_level_offmax_level_errormax_level_warnmax_level_infomax_level_debugmax_level_trace
Modules§
- blinded_
path - Creating blinded paths and related utilities live here.
- chain
- Structs and traits which allow other parts of rust-lightning to interact with the blockchain.
- events
- Events are returned from various bits in the library which indicate some action must be taken by the client.
- io
- Traits, helpers, and type definitions for core I/O functionality.
- ln
- Implementations of various parts of the Lightning protocol are in this module.
- offers
- Implementation of Lightning Offers (BOLT 12).
- onion_
message - Onion Messages: sending, receiving, forwarding, and ancillary utilities live here
- routing
- Structs and impls for receiving messages about the network and storing the topology live here.
- sign
- Provides keys to LDK and defines some useful objects describing spendable on-chain outputs.
- util
- Some utility modules live here. See individual sub-modules for more info.
Macros§
- check_
added_ monitors - Check whether N channel monitor(s) have been added.
- check_
closed_ broadcast - Check that a channel’s closing channel update has been broadcasted, and optionally check whether an error message event has occurred.
- check_
closed_ event - Check that a channel’s closing channel events has been issued
- check_
spends - commitment_
signed_ dance - Performs the “commitment signed dance” - the series of message exchanges which occur after a commitment update.
- decode_
tlv_ stream - Implements the TLVs deserialization part in a
Readableimplementation of a struct. - encode_
tlv_ stream - Implements the TLVs serialization part in a
Writeableimplementation of a struct. - expect_
htlc_ handling_ failed_ destinations - expect_
payment_ claimable - expect_
payment_ claimed - expect_
payment_ forwarded - expect_
payment_ sent - expect_
pending_ htlcs_ forwardable - Handles a PendingHTLCsForwardable event
- expect_
pending_ htlcs_ forwardable_ and_ htlc_ handling_ failed - Handles a PendingHTLCsForwardable and HTLCHandlingFailed event
- expect_
pending_ htlcs_ forwardable_ and_ htlc_ handling_ failed_ ignore - Clears (and ignores) PendingHTLCsForwardable and HTLCHandlingFailed events
- expect_
pending_ htlcs_ forwardable_ conditions - Don’t use this, use the identically-named function instead.
- expect_
pending_ htlcs_ forwardable_ ignore - Clears (and ignores) a PendingHTLCsForwardable event
- get_
event - Get a specific event from the pending events queue.
- get_
event_ msg - Get an specific event message from the pending events queue.
- get_
htlc_ update_ msgs - Gets an UpdateHTLCs MessageSendEvent
- get_
local_ commitment_ txn - Returns any local commitment transactions for the channel.
- get_
monitor - Returns a channel monitor given a channel id, making some naive assumptions
- get_
payment_ preimage_ hash - Get a payment preimage and hash.
- get_
revoke_ commit_ msgs - Gets an RAA and CS which were sent in response to a commitment update
- get_
route - Gets a route from the given sender to the node described in
payment_params. - impl_
writeable_ msg - Implements
Readable/Writeablefor a message struct that may include non-TLV and TLV-encoded parts. - impl_
writeable_ tlv_ based - Implements
Readable/Writeablefor a struct storing it as a set of TLVs If$fieldtyisrequired, then$fieldis a required field that is not anOptionnor aVec. If$fieldtyis(default_value, $default), then$fieldwill be set to$defaultif not present. If$fieldtyisoption, then$fieldis optional field. If$fieldtyisoptional_vec, then$fieldis aVec, which needs to have its individual elements serialized. Note that foroptional_vecno bytes are written if the vec is empty - impl_
writeable_ tlv_ based_ enum - Implement
ReadableandWriteablefor an enum, with struct variants stored as TLVs and tuple variants stored directly. The format is, for example - impl_
writeable_ tlv_ based_ enum_ upgradable - Implement
MaybeReadableandWriteablefor an enum, with struct variants stored as TLVs and tuple variants stored directly. - log_
bytes - Logs a byte slice in hex format.
- log_
debug - Log at the
DEBUGlevel. - log_
error - Log at the
ERRORlevel. - log_
gossip - Log at the
GOSSIPlevel. - log_
info - Log at the
INFOlevel. - log_
pubkey - Logs a pubkey in hex format.
- log_
trace - Log at the
TRACElevel. - log_
warn - Log at the
WARNlevel. - read_
tlv_ fields - Reads a suffix added by
write_tlv_fields. - unwrap_
send_ err - Check the error from attempting a payment.
- write_
tlv_ fields - Writes out a suffix to an object as a length-prefixed TLV stream which contains potentially backwards-compatible, optional fields which old nodes can happily ignore.