pub struct UserConfig {
pub channel_handshake_config: ChannelHandshakeConfig,
pub channel_handshake_limits: ChannelHandshakeLimits,
pub channel_config: ChannelConfig,
pub accept_forwards_to_priv_channels: bool,
pub accept_inbound_channels: bool,
pub manually_accept_inbound_channels: bool,
pub accept_intercept_htlcs: bool,
pub manually_handle_bolt12_invoices: bool,
}
Expand description
Top-level config which holds ChannelHandshakeLimits and ChannelConfig.
Default::default()
provides sane defaults for most configurations
(but currently with zero relay fees!)
Fields§
§channel_handshake_config: ChannelHandshakeConfig
Channel handshake config that we propose to our counterparty.
channel_handshake_limits: ChannelHandshakeLimits
Limits applied to our counterparty’s proposed channel handshake config settings.
channel_config: ChannelConfig
Channel config which affects behavior during channel lifetime.
accept_forwards_to_priv_channels: bool
If this is set to false
, we will reject any HTLCs which were to be forwarded over private
channels. This prevents us from taking on HTLC-forwarding risk when we intend to run as a
node which is not online reliably.
For nodes which are not online reliably, you should set all channels to not be announced
(using ChannelHandshakeConfig::announce_for_forwarding
and
ChannelHandshakeLimits::force_announced_channel_preference
) and set this to false
to
ensure you are not exposed to any forwarding risk.
Note that because you cannot change a channel’s announced state after creation, there is no way to disable forwarding on public channels retroactively. Thus, in order to change a node from a publicly-announced forwarding node to a private non-forwarding node you must close all your channels and open new ones. For privacy, you should also change your node_id (swapping all private and public key material for new ones) at that time.
Default value: false
accept_inbound_channels: bool
If this is set to false
, we do not accept inbound requests to open a new channel.
Default value: true
manually_accept_inbound_channels: bool
If this is set to true
, the user needs to manually accept inbound requests to open a new
channel.
When set to true
, Event::OpenChannelRequest
will be triggered once a request to open a
new inbound channel is received through a msgs::OpenChannel
message. In that case, a
msgs::AcceptChannel
message will not be sent back to the counterparty node unless the
user explicitly chooses to accept the request.
Default value: false
accept_intercept_htlcs: bool
If this is set to true
, LDK will intercept HTLCs that are attempting to be forwarded over
fake short channel ids generated via ChannelManager::get_intercept_scid
. Upon HTLC
intercept, LDK will generate an Event::HTLCIntercepted
which MUST be handled by the user.
Setting this to true
may break backwards compatibility with LDK versions < 0.0.113.
Default value: false
manually_handle_bolt12_invoices: bool
If this is set to true
, the user needs to manually pay Bolt12Invoice
s when received.
When set to true
, Event::InvoiceReceived
will be generated for each received
Bolt12Invoice
instead of being automatically paid after verification. Use
ChannelManager::send_payment_for_bolt12_invoice
to pay the invoice or
ChannelManager::abandon_payment
to abandon the associated payment.
Default value: false
Trait Implementations§
Source§impl Clone for UserConfig
impl Clone for UserConfig
Source§fn clone(&self) -> UserConfig
fn clone(&self) -> UserConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more