core-lightning/doc/schemas/feerates.schema.json
Rusty Russell e45bf14300 lightningd: use lowball feerate for commit_tx on anchor channels.
Since we can CPFP, we don't have to track the feerate as closely.  But
it still needs to get in the mempool, so we use 10 sat/byte, or the
100 block estimate if that is higher.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Changelog-Added: JSON-RPC: `feerates` has new fields `unilateral_anchor_close` to show the feerate used for anchor channels (currently experimental), and `unilateral_close_nonanchor_satoshis`.
Changelog-Changed: JSON-RPC: `feerates` `unilateral_close_satoshis` now assumes anchor channels if enabled (currently experimental).
2023-06-29 11:28:47 -04:00

227 lines
8.4 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"additionalProperties": false,
"required": [],
"properties": {
"warning_missing_feerates": {
"type": "string",
"description": "Some fee estimates are missing"
},
"perkb": {
"type": "object",
"description": "If *style* parameter was perkb",
"additionalProperties": false,
"required": [
"min_acceptable",
"max_acceptable",
"floor",
"estimates"
],
"properties": {
"min_acceptable": {
"type": "u32",
"description": "The smallest feerate that we allow peers to specify: half the 100-block estimate"
},
"max_acceptable": {
"type": "u32",
"description": "The largest feerate we will accept from remote negotiations. If a peer attempts to set the feerate higher than this we will unilaterally close the channel (or simply forget it if it's not open yet)."
},
"floor": {
"type": "u32",
"added": "v23.05",
"description": "The smallest feerate that our backend tells us it will accept (i.e. minrelayfee or mempoolminfee)"
},
"estimates": {
"type": "array",
"added": "v23.05",
"description": "Feerate estimates from plugin which we are using (usuallly bcli)",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"blockcount",
"feerate",
"smoothed_feerate"
],
"properties": {
"blockcount": {
"type": "u32",
"added": "v23.05",
"description": "The number of blocks the feerate is expected to get a transaction in"
},
"feerate": {
"type": "u32",
"added": "v23.05",
"description": "The feerate for this estimate, in given *style*"
},
"smoothed_feerate": {
"type": "u32",
"added": "v23.05",
"description": "The feerate, smoothed over time (useful for coordinating with other nodes)"
}
}
}
},
"opening": {
"type": "u32",
"description": "Default feerate for lightning-fundchannel(7) and lightning-withdraw(7)"
},
"mutual_close": {
"type": "u32",
"description": "Feerate to aim for in cooperative shutdown. Note that since mutual close is a **negotiation**, the actual feerate used in mutual close will be somewhere between this and the corresponding mutual close feerate of the peer."
},
"unilateral_close": {
"type": "u32",
"description": "Feerate for commitment_transaction in a live channel which we originally funded"
},
"unilateral_anchor_close": {
"type": "u32",
"added": "v23.08",
"description": "Feerate for commitment_transaction in a live channel which we originally funded (if anchor_outputs was negotiated)"
},
"delayed_to_us": {
"type": "u32",
"deprecated": "v23.05",
"description": "Feerate for returning unilateral close funds to our wallet"
},
"htlc_resolution": {
"type": "u32",
"deprecated": "v23.05",
"description": "Feerate for returning unilateral close HTLC outputs to our wallet"
},
"penalty": {
"type": "u32",
"description": "Feerate to use when creating penalty tx for watchtowers"
}
}
},
"perkw": {
"type": "object",
"description": "If *style* parameter was perkw",
"additionalProperties": false,
"required": [
"min_acceptable",
"max_acceptable",
"floor",
"estimates"
],
"properties": {
"min_acceptable": {
"type": "u32",
"description": "The smallest feerate that you can use, usually the minimum relayed feerate of the backend"
},
"max_acceptable": {
"type": "u32",
"description": "The largest feerate we will accept from remote negotiations. If a peer attempts to set the feerate higher than this we will unilaterally close the channel (or simply forget it if it's not open yet)."
},
"floor": {
"type": "u32",
"added": "v23.05",
"description": "The smallest feerate that our backend tells us it will accept (i.e. minrelayfee or mempoolminfee)"
},
"estimates": {
"type": "array",
"added": "v23.05",
"description": "Feerate estimates from plugin which we are using (usuallly bcli)",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"blockcount",
"feerate",
"smoothed_feerate"
],
"properties": {
"blockcount": {
"type": "u32",
"added": "v23.05",
"description": "The number of blocks the feerate is expected to get a transaction in"
},
"feerate": {
"type": "u32",
"added": "v23.05",
"description": "The feerate for this estimate, in given *style*"
},
"smoothed_feerate": {
"type": "u32",
"added": "v23.05",
"description": "The feerate, smoothed over time (useful for coordinating with other nodes)"
}
}
}
},
"opening": {
"type": "u32",
"description": "Default feerate for lightning-fundchannel(7) and lightning-withdraw(7)"
},
"mutual_close": {
"type": "u32",
"description": "Feerate to aim for in cooperative shutdown. Note that since mutual close is a **negotiation**, the actual feerate used in mutual close will be somewhere between this and the corresponding mutual close feerate of the peer."
},
"unilateral_close": {
"type": "u32",
"description": "Feerate for commitment_transaction in a live channel which we originally funded (if anchor_outputs was not negotiated)"
},
"unilateral_anchor_close": {
"type": "u32",
"added": "v23.08",
"description": "Feerate for commitment_transaction in a live channel which we originally funded (if anchor_outputs was negotiated)"
},
"delayed_to_us": {
"type": "u32",
"deprecated": "v23.05",
"description": "Feerate for returning unilateral close funds to our wallet"
},
"htlc_resolution": {
"type": "u32",
"deprecated": "v23.05",
"description": "Feerate for returning unilateral close HTLC outputs to our wallet"
},
"penalty": {
"type": "u32",
"description": "Feerate to use when creating penalty tx for watchtowers"
}
}
},
"onchain_fee_estimates": {
"type": "object",
"additionalProperties": false,
"required": [
"opening_channel_satoshis",
"mutual_close_satoshis",
"unilateral_close_satoshis",
"htlc_timeout_satoshis",
"htlc_success_satoshis"
],
"properties": {
"opening_channel_satoshis": {
"type": "u64",
"description": "Estimated cost of typical channel open"
},
"mutual_close_satoshis": {
"type": "u64",
"description": "Estimated cost of typical channel close"
},
"unilateral_close_satoshis": {
"type": "u64",
"description": "Estimated cost of typical unilateral close (without HTLCs). If anchors are supported, this assumes a channel with anchors."
},
"unilateral_close_nonanchor_satoshis": {
"added": "v23.08",
"type": "u64",
"description": "Estimated cost of non-anchor typical unilateral close (without HTLCs)."
},
"htlc_timeout_satoshis": {
"type": "u64",
"description": "Estimated cost of typical HTLC timeout transaction (non-anchors)"
},
"htlc_success_satoshis": {
"type": "u64",
"description": "Estimated cost of typical HTLC fulfillment transaction (non-anchors)"
}
}
}
}
}