Comments (8)
Some splice messages:
2023-09-08T18:27:09.652Z DEBUG xxxxxx-channeld-chan#13916: peer_out WIRE_SPLICE
2023-09-08T18:27:09.740Z DEBUG xxxxxx-channeld-chan#13916: peer_in WIRE_SPLICE_ACK
2023-09-08T18:27:09.740Z DEBUG xxxxxx-channeld-chan#13916: splice_initiator peer->stfu_wait_single_msg: 0
2023-09-08T18:27:09.741Z DEBUG xxxxxx-channeld-chan#13916: just added funding w/ outpoint index set to 0, value in psbt input 1 is: 0, and value in psbt input 2 is: 0
2023-09-08T18:27:09.741Z DEBUG xxxxxx-channeld-chan#13916: Sending master 7208
2023-09-08T18:27:09.741Z DEBUG xxxxxx-channeld-chan#13916: ... , awaiting 7209
2023-09-08T18:27:09.741Z DEBUG xxxxxx-channeld-chan#13916: Got it!
2023-09-08T18:27:09.741Z DEBUG xxxxxx-channeld-chan#13916: peer_out WIRE_TX_ADD_INPUT
2023-09-08T18:27:09.831Z DEBUG xxxxxx-channeld-chan#13916: peer_in WIRE_TX_COMPLETE
2023-09-08T18:27:09.831Z DEBUG xxxxxx-channeld-chan#13916: peer_out WIRE_TX_ADD_OUTPUT
2023-09-08T18:27:09.917Z DEBUG xxxxxx-channeld-chan#13916: peer_in WIRE_TX_COMPLETE
from lightning.
After restarting the node, I also tried splicing out more than the dust limit, with the same peer:
2023-09-08T19:20:31.897Z DEBUG lightningd: splice_update input PSBT version 2
2023-09-08T19:20:31.898Z DEBUG xxxxxx-channeld-chan#13916: splice_update start with, current psbt version: 2, desired: 2.
2023-09-08T19:20:31.898Z DEBUG xxxxxx-channeld-chan#13916: peer_out WIRE_TX_COMPLETE
2023-09-08T19:20:31.898Z DEBUG xxxxxx-channeld-chan#13916: peer_out WIRE_WARNING
2023-09-08T19:20:31.898Z DEBUG xxxxxx-channeld-chan#13916: billboard perm: Unable to sub opener funding from out amnt.
2023-09-08T19:20:31.898Z DEBUG connectd: drain_peer
2023-09-08T19:20:31.898Z DEBUG connectd: drain_peer draining subd!
2023-09-08T19:20:31.899Z INFO xxxxxx-chan#13916: Peer transient failure in CHANNELD_NORMAL: channeld WARNING: Unable to sub opener funding from out amnt.
from lightning.
I also tried splicing in. Because fund_psbt
doesn't have coin selection, I had Bitcoin Core make the PSBT, pointing to one of my CLN wallet UTXOs with about 1000 sats:
bitcoin-cli createpsbt '[{"txid": "....", "vout": 0}]' '[]'
(using the v2 support PR bitcoin/bitcoin#21283).
And then: lightning-cli splice_init ... 600 the_psbt
This ended up stuck. From the log:
2023-09-08T19:31:25.572Z DEBUG lightningd: splice_init input PSBT version 2
2023-09-08T19:31:25.572Z DEBUG xxxxxx-channeld-chan#13916: Getting handle_splice_init psbt version 2
2023-09-08T19:31:25.572Z DEBUG xxxxxx-channeld-chan#13916: Sending peer that we want to STFU.
2023-09-08T19:31:25.572Z DEBUG xxxxxx-channeld-chan#13916: peer_out WIRE_STFU
2023-09-08T19:31:25.663Z DEBUG xxxxxx-channeld-chan#13916: peer_in WIRE_STFU
2023-09-08T19:31:25.664Z DEBUG xxxxxx-channeld-chan#13916: STFU initiator local.
2023-09-08T19:31:25.664Z UNUSUAL xxxxxx-channeld-chan#13916: STFU complete: we are quiescent
2023-09-08T19:31:25.664Z UNUSUAL xxxxxx-channeld-chan#13916: STFU complete: setting stfu_wait_single_msg = true
2023-09-08T19:31:25.664Z DEBUG xxxxxx-channeld-chan#13916: peer_out WIRE_SPLICE
2023-09-08T19:31:25.752Z DEBUG xxxxxx-channeld-chan#13916: peer_in WIRE_SPLICE_ACK
2023-09-08T19:31:25.752Z DEBUG xxxxxx-channeld-chan#13916: splice_initiator peer->stfu_wait_single_msg: 0
2023-09-08T19:31:25.752Z DEBUG xxxxxx-channeld-chan#13916: just added funding w/ outpoint index set to 0, value in psbt input 1 is: 0, and value in psbt input 2 is: 0
2023-09-08T19:31:25.752Z DEBUG xxxxxx-channeld-chan#13916: Sending master 7208
2023-09-08T19:31:25.752Z DEBUG xxxxxx-channeld-chan#13916: ... , awaiting 7209
2023-09-08T19:31:25.752Z DEBUG xxxxxx-channeld-chan#13916: Got it!
2023-09-08T19:31:25.752Z DEBUG xxxxxx-channeld-chan#13916: peer_out WIRE_WARNING
2023-09-08T19:31:25.752Z DEBUG xxxxxx-channeld-chan#13916: billboard perm: Interactive splicing_ack error: interactivetx ADD_INPUT PSBT needs the previous transaction set.
2023-09-08T19:31:25.752Z INFO xxxxxx-chan#13916: Peer transient failure in CHANNELD_NORMAL: channeld WARNING: Interactive splicing_ack error: interactivetx ADD_INPUT PSBT needs the previous transaction set.
2023-09-08T19:31:25.752Z DEBUG xxxxxx-channeld-chan#13916: Status closed, but not exited. Killing
2023-09-08T19:31:25.753Z DEBUG connectd: drain_peer
2023-09-08T19:31:25.753Z DEBUG connectd: drain_peer draining subd!
2023-09-08T19:31:25.753Z DEBUG hsmd: Client: Received message 3 from client
2023-09-08T19:31:25.753Z DEBUG xxxxxx-lightningd: peer_disconnect_done
2023-09-08T19:31:25.753Z DEBUG xxxxxx-lightningd: Will try reconnect in 2 seconds
from lightning.
That last action seems to have resulted in a unilateral close from their end, which they deny having done themselves :-):
"channeld: received ERROR error channel xxx: Interactive splicing error: They sent a warning: warning channel xxxx: Interactive splicing_ack error: interactivetx ADD_INPUT PSBT needs the previous transaction set."
...
"status": [
"ONCHAIN:Tracking their unilateral close",
"ONCHAIN:All outputs resolved: waiting 96 more blocks before forgetting channel"
],
from lightning.
Logs from their end (running v23.08):
Sep 08 14:18:52 mempool lightningd[1336491]: 2023-09-08T18:18:52.245Z INFO xxxxxx-chan#1776: State changed from CHANNELD_AWAITING_LOCKIN to CHANNELD_NORMAL
Sep 08 14:27:09 mempool lightningd[1336491]: 2023-09-08T18:27:09.609Z UNUSUAL xxxxxx-channeld-chan#1776: STFU complete: we are quiescent
Sep 08 14:27:09 mempool lightningd[1336491]: 2023-09-08T18:27:09.609Z UNUSUAL xxxxxx-channeld-chan#1776: STFU complete: setting stfu_wait_single_msg = true
Sep 08 14:38:44 mempool lightningd[1336491]: 2023-09-08T18:38:44.417Z INFO xxxxxx-chan#1776: Peer transient failure in CHANNELD_NORMAL: channeld WARNING: Unable to sub opener funding from out amnt.
Sep 08 14:38:46 mempool lightningd[1336491]: 2023-09-08T18:38:46.614Z INFO xxxxxx-channeld-chan#1776: Peer connection lost
Sep 08 14:38:46 mempool lightningd[1336491]: 2023-09-08T18:38:46.614Z INFO xxxxxx-chan#1776: Peer transient failure in CHANNELD_NORMAL: channeld: Owning subdaemon channeld died (62208)
Sep 08 15:13:49 mempool lightningd[1336491]: 2023-09-08T19:13:49.190Z INFO xxxxxx-channeld-chan#1776: Peer connection lost
Sep 08 15:13:49 mempool lightningd[1336491]: 2023-09-08T19:13:49.190Z INFO xxxxxx-chan#1776: Peer transient failure in CHANNELD_NORMAL: channeld: Owning subdaemon channeld died (62208)
Sep 08 15:17:39 mempool lightningd[1336491]: 2023-09-08T19:17:39.954Z INFO xxxxxx-channeld-chan#1776: Peer connection lost
Sep 08 15:17:39 mempool lightningd[1336491]: 2023-09-08T19:17:39.955Z INFO xxxxxx-chan#1776: Peer transient failure in CHANNELD_NORMAL: channeld: Owning subdaemon channeld died (62208)
Sep 08 15:20:04 mempool lightningd[1336491]: 2023-09-08T19:20:04.654Z UNUSUAL xxxxxx-channeld-chan#1776: STFU complete: we are quiescent
Sep 08 15:20:04 mempool lightningd[1336491]: 2023-09-08T19:20:04.654Z UNUSUAL xxxxxx-channeld-chan#1776: STFU complete: setting stfu_wait_single_msg = true
Sep 08 15:20:31 mempool lightningd[1336491]: 2023-09-08T19:20:31.955Z INFO xxxxxx-chan#1776: Peer transient failure in CHANNELD_NORMAL: channeld WARNING: Unable to sub opener funding from out amnt.
Sep 08 15:25:20 mempool lightningd[1336491]: 2023-09-08T19:25:20.847Z INFO xxxxxx-channeld-chan#1776: Peer connection lost
Sep 08 15:25:20 mempool lightningd[1336491]: 2023-09-08T19:25:20.848Z INFO xxxxxx-chan#1776: Peer transient failure in CHANNELD_NORMAL: channeld: Owning subdaemon channeld died (62208)
Sep 08 15:31:25 mempool lightningd[1336491]: 2023-09-08T19:31:25.619Z UNUSUAL xxxxxx-channeld-chan#1776: STFU complete: we are quiescent
Sep 08 15:31:25 mempool lightningd[1336491]: 2023-09-08T19:31:25.619Z UNUSUAL xxxxxx-channeld-chan#1776: STFU complete: setting stfu_wait_single_msg = true
Sep 08 15:31:25 mempool lightningd[1336491]: 2023-09-08T19:31:25.799Z UNUSUAL xxxxxx-chan#1776: Peer permanent failure in CHANNELD_NORMAL: channeld: sent ERROR Interactive splicing error: They sent a warning: warning channe>
Sep 08 15:31:25 mempool lightningd[1336491]: 2023-09-08T19:31:25.800Z INFO xxxxxx-chan#1776: State changed from CHANNELD_NORMAL to AWAITING_UNILATERAL
Sep 08 15:33:25 mempool lightningd[1336491]: 2023-09-08T19:33:25.265Z UNUSUAL xxxxxx-chan#1776: Peer permanent failure in AWAITING_UNILATERAL: Funding transaction spent
Sep 08 15:33:25 mempool lightningd[1336491]: 2023-09-08T19:33:25.266Z INFO xxxxxx-chan#1776: State changed from AWAITING_UNILATERAL to FUNDING_SPEND_SEEN
Sep 08 15:33:25 mempool lightningd[1336491]: 2023-09-08T19:33:25.339Z INFO xxxxxx-chan#1776: State changed from FUNDING_SPEND_SEEN to ONCHAIN
from lightning.
cc @ddustin
from lightning.
I believe this may be caused because the PSBT didn't provide an output to receive the outgoing funds and the error handling around that isn't giving the appropriate error 👀. Going to investigate this possibility.
from lightning.
Thanks again for the report!
- Validate
check_balances
on splice_out, both,- with a corresponding output, and, [Add Test]
- with corresponding output missing [Add Test]
- Add clear RPC error message to that balance calculation failed due to missing corresponding output
- Validate purposeful
check_balances
failure to abort splice mid-way- Add test for above ^
from lightning.
Related Issues (20)
- Lightning node HOT 1
- CLNRest: Unable to subscribe to all events HOT 4
- Unable to generate P2TR address via gRPC HOT 1
- Docs: why is it that amount_msat is optional in listsendpay HOT 2
- Allow 0-conf splices HOT 2
- Cannot forward htlc over spliced channel? HOT 2
- Unable to decode psbt produced by splice_init, splice_update and splice_signed
- Splicing: how to get the outnum of the new funding transaction?
- multifundchannel reserves funds before the opening transaction is confirmed to work HOT 2
- the gossip_store file is too big HOT 2
- Do not treat waitanyinvoice timeout on REST as an error HOT 1
- Attempting to close channel that does not have option_shutdown_anysegwit enabled fails, becomes uncloseable
- lightning-blacklistrune future (not yet existing) runes HOT 1
- Unable to apply spending restrictions to a rune HOT 4
- Document steps to take after emergency.recover HOT 6
- Retries of revoke_and_ack need to use explicit hsmd_revoke_commitment_tx HOT 1
- make check error on arm64 Fedora 39 HOT 3
- A script that makes it easy to export c-lightning logs into Prometheus and Grafana HOT 2
- renepay crashed HOT 12
- crash in master on ppc64le HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lightning.