X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning%2Fsrc%2Futil%2Fconfig.rs;h=f3fd0ce70793451fbe6e58ce3e2efc81ca84b3b5;hb=c620944f16e63448c9c4c541c1390e498888b7df;hp=4a9f300638a4c4c3b2ad7d243b58c2f569557841;hpb=7503e2a43bf86904ffceb5b88890ce579aa6e91d;p=rust-lightning diff --git a/lightning/src/util/config.rs b/lightning/src/util/config.rs index 4a9f3006..f3fd0ce7 100644 --- a/lightning/src/util/config.rs +++ b/lightning/src/util/config.rs @@ -98,22 +98,6 @@ pub struct ChannelHandshakeLimits { /// /// Default value: 0. pub min_max_accepted_htlcs: u16, - /// 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. - /// - /// Default value: 546, the current dust limit on the Bitcoin network. - pub min_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. - /// - /// Default value: u64::max_value. - pub max_dust_limit_satoshis: u64, /// 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). @@ -145,8 +129,6 @@ impl Default for ChannelHandshakeLimits { min_max_htlc_value_in_flight_msat: 0, max_channel_reserve_satoshis: ::max_value(), min_max_accepted_htlcs: 0, - min_dust_limit_satoshis: 546, - max_dust_limit_satoshis: ::max_value(), max_minimum_depth: 144, force_announced_channel_preference: true, their_to_self_delay: MAX_LOCAL_BREAKDOWN_TIMEOUT, @@ -158,12 +140,26 @@ impl Default for ChannelHandshakeLimits { /// with our counterparty. #[derive(Copy, Clone, Debug)] pub struct ChannelConfig { - /// Amount (in millionths of a satoshi) the channel will charge per transferred satoshi. + /// Amount (in millionths of a satoshi) charged per satoshi for payments forwarded outbound + /// over the channel. /// This may be allowed to change at runtime in a later update, however doing so must result in /// update messages sent to notify all nodes of our updated relay fee. /// /// Default value: 0. - pub fee_proportional_millionths: u32, + pub forwarding_fee_proportional_millionths: u32, + /// Amount (in milli-satoshi) charged for payments forwarded outbound over the channel, in + /// excess of [`forwarding_fee_proportional_millionths`]. + /// This may be allowed to change at runtime in a later update, however doing so must result in + /// update messages sent to notify all nodes of our updated relay fee. + /// + /// The default value of a single satoshi roughly matches the market rate on many routing nodes + /// as of July 2021. Adjusting it upwards or downwards may change whether nodes route through + /// this node. + /// + /// Default value: 1000. + /// + /// [`forwarding_fee_proportional_millionths`]: ChannelConfig::forwarding_fee_proportional_millionths + pub forwarding_fee_base_msat: u32, /// The difference in the CLTV value between incoming HTLCs and an outbound HTLC forwarded over /// the channel this config applies to. /// @@ -214,7 +210,8 @@ impl Default for ChannelConfig { /// Provides sane defaults for most configurations (but with zero relay fees!). fn default() -> Self { ChannelConfig { - fee_proportional_millionths: 0, + forwarding_fee_proportional_millionths: 0, + forwarding_fee_base_msat: 1000, cltv_expiry_delta: 6 * 12, // 6 blocks/hour * 12 hours announced_channel: false, commit_upfront_shutdown_pubkey: true, @@ -222,12 +219,12 @@ impl Default for ChannelConfig { } } -//Add write and readable traits to channelconfig -impl_writeable!(ChannelConfig, 8+2+1+1, { - fee_proportional_millionths, - cltv_expiry_delta, - announced_channel, - commit_upfront_shutdown_pubkey +impl_writeable_tlv_based!(ChannelConfig, { + (0, forwarding_fee_proportional_millionths, required), + (2, cltv_expiry_delta, required), + (4, announced_channel, required), + (6, commit_upfront_shutdown_pubkey, required), + (8, forwarding_fee_base_msat, required), }); /// Top-level config which holds ChannelHandshakeLimits and ChannelConfig.