[][src]Struct lightning::util::config::ChannelHandshakeLimits

pub struct ChannelHandshakeLimits {
    pub min_funding_satoshis: u64,
    pub max_htlc_minimum_msat: u64,
    pub min_max_htlc_value_in_flight_msat: u64,
    pub max_channel_reserve_satoshis: u64,
    pub min_max_accepted_htlcs: u16,
    pub min_dust_limit_satoshis: u64,
    pub max_dust_limit_satoshis: u64,
    pub max_minimum_depth: u32,
    pub force_announced_channel_preference: bool,
}

Optional channel limits which are applied during channel creation.

These limits are only applied to our counterparty's limits, not our own.

Use 0/::max_value() as appropriate to skip checking.

Fields

min_funding_satoshis: u64

Minimum allowed satoshis when a channel is funded, this is supplied by the sender and so only applies to inbound channels.

max_htlc_minimum_msat: u64

The remote node sets a limit on the minimum size of HTLCs we can send to them. This allows you to limit the maximum minimum-size they can require.

min_max_htlc_value_in_flight_msat: u64

The remote node sets a limit on the maximum value of pending HTLCs to them at any given time to limit their funds exposure to HTLCs. This allows you to set a minimum such value.

max_channel_reserve_satoshis: u64

The remote node will require we keep a certain amount in direct payment to ourselves at all time, ensuring that we are able to be punished if we broadcast an old state. This allows to you limit the amount which we will have to keep to ourselves (and cannot use for HTLCs).

min_max_accepted_htlcs: u16

The remote node sets a limit on the maximum number of pending HTLCs to them at any given time. This allows you to set a minimum such value.

min_dust_limit_satoshis: u64

Outputs below a certain value will not be added to on-chain transactions. The dust value is required to always be higher than this value so this only applies to HTLC outputs (and potentially to-self outputs before any payments have been made). Thus, HTLCs below this amount plus HTLC transaction fees are not enforceable on-chain. This setting allows you to set a minimum dust limit for their commitment transactions, reflecting the reality that tiny outputs are not considered standard transactions and will not propagate through the Bitcoin network. Defaults to 546, or the current dust limit on the Bitcoin network.

max_dust_limit_satoshis: u64

Maximum allowed threshold above which outputs will not be generated in their commitment transactions. HTLCs below this amount plus HTLC transaction fees are not enforceable on-chain.

max_minimum_depth: u32

Before a channel is usable the funding transaction will need to be confirmed by at least a certain number of blocks, specified by the node which is not the funder (as the funder can assume they aren't going to double-spend themselves). This config allows you to set a limit on the maximum amount of time to wait. Defaults to 144 blocks or roughly one day and only applies to outbound channels.

force_announced_channel_preference: bool

Set to force the incoming channel to match our announced channel preference in ChannelConfig. Defaults to true to make the default that no announced channels are possible (which is appropriate for any nodes which are not online very reliably).

Methods

impl ChannelHandshakeLimits
[src]

pub fn new() -> Self
[src]

Provides sane defaults for most configurations.

Most additional limits are disabled except those with which specify a default in individual field documentation. Note that this may result in barely-usable channels, but since they are applied mostly only to incoming channels that's not much of a problem.

Trait Implementations

impl Copy for ChannelHandshakeLimits
[src]

impl Clone for ChannelHandshakeLimits
[src]

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl Debug for ChannelHandshakeLimits
[src]

Auto Trait Implementations

Blanket Implementations

impl<T> From for T
[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

impl<T, U> TryFrom for T where
    T: From<U>, 
[src]

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Any for T where
    T: 'static + ?Sized
[src]