Lightning Network : La transaction Open Channel sans RBF est bloquée
Je ne peux pas répondre à toutes vos questions, mais je peux vous aider.
Du point de vue du bitcoin, vous pouvez toujours dépenser une sortie de transaction (TXO) si elle n’a pas déjà été dépensée par une transaction confirmée. Cela dit, si vous ouvrez une chaîne mais que la transaction de financement n’est pas confirmée, vous pouvez dépenser le TXO qui a financé la chaîne, mais je ne sais pas comment Lightningd réagirait à cela.
Vous avez dit que vous aviez fermé la chaîne. Si vos fonds sont toujours bloqués, cela signifie que les transactions du canal de financement et du canal de clôture ne sont pas confirmées dans le pool mémoire.
J’essaierais de dépenser le TXO dans le TX proche de manière à ce que l’enfant paie pour les parents. Cependant, lorsque j’essaie de reproduire ce scénario dans regtest, je rencontre des problèmes avec l’interface utilisateur de Clightning.
J’ai fait ce qui suit pour simuler votre situation:
$ l1-cli fundchannel 0397d48baf82cf731fc8967c16e3d9575f10606bdf481738eb9cafeda29d0e3d67 1000000sat { « tx »: « 02000000000101ee026cb7c44f482eb9b1e11f6faf 11956ac26f4cdb7e0c1aa9ef94025ec412c30000000000fdffffff0240420f000000000022002075e9a102dbb348646e2f1804cc3cfec9edb6f5551a074f33a615f29cbd 45eeaa4c5bd70500000000160014deb1f4e1123694ca3e418cefe496d3c26b0ddde202473044022068b402d53f16204324b28607eca046a4f7121d8f83c62e17de9c 9131e307b5cf022077a3aa538469f9e0983cce98c3de4c5427731b398ed395d9614cf7b54d4f5cdd012102f5093f8fd66c909fc72ee556e70cb038ae92b03fd1b56 d710cf53b3cc019868e73000000 », « txid »: « 11b8967c62c584da9bbba5243d61bc95b4da210760bca04adb7c349319edba19 », « channel_id »: « 9dfe0df4c502c31e92c266bfa28af18d 6f6d11a0b0197b838797f8c990625168 », « outnum »: 0 }
$ l1-cli -k close id=9dfe0df4c502c31e92c266bfa28af18d6f6d11a0b0197b838797f8c990625168 # Envoi de l’offre de frais de clôture 139sat, avec une plage de 139sat-183sat # Offre de frais de clôture reçue 139sat, avec une plage de 139sat-1 000000sat { « tx »: « 020000000119baed1993347cdb4aa0bc600721dab495bc613d24a5bb9bda84c5627c96b81100000000000ffffffff01b5410f00000000001600141b420 a80810dda8fd3621e6ba4ce14ce85b6877e00000000 », « txid »: « e6a7d6cc0960f0f7481a3e9a18b9d9cc18ee695dd626a597883be4599c043699 », « type »: « mutuel » }
À ce stade, les transactions de financement (11b896…) et de règlement (e6a7d6cc…) sont dans le pool mémoire et non confirmées. La situation est illustrée dans le schéma ci-dessous
tx:c312c…(confirmé) —> tx:11b89… (financement tx non confirmé) —> tx:e6a7d6cc… (règlement, non confirmé)
Mon idée est de dépenser le produit du règlement avec des frais plus élevés. Cependant, j’ai des problèmes avec Lightning-cli pour que cela fonctionne.
Si j’essaie de dépenser le résultat du règlement, qui est contrôlé par mon portefeuille :
$ l1-cli -k sorties txprepare= »[{\ »bcrt1qx77wq9fyxvhsncswpl6kgqpnc49m5e5lzmls0g\ »:\ »all\ »}] » utxos= »[\ »e6a7d6cc0960f0f7481a3e9a18b9d9cc18ee695dd626a597883be4599c043699:0\ »] » feerate=100 { « code »: -32602, « message »: « UTXO inconnu e6a7d6cc0960f0f7481a3e9a18b9d9cc18ee695dd626a597883be4599c043699:0 » }
Donc probablement Lightnind dit : « qu’UTXO n’est pas dans la blockchain, je ne peux pas le dépenser ».
J’ai essayé une solution de contournement en créant un PSBT avec bitcoin-cli :
$ bt-cli createpsbt « [{\ »txid\ »:\ »e6a7d6cc0960f0f7481a3e9a18b9d9cc18ee695dd626a597883be4599c043699\ »,\ »vout\ »:0}] » « [{\ »bcrt1qx77wq9fyxvhsncswpl6kgqpnc49m5e5lzmls0g\ »:0.00900000}] » cHNidP8BAFICAAAAAZk2BJxZ5DuIl6Um1l1p7hjM2bkYmj4aSPfwYAnM1qfmAAAAAAD9////AaC7DQAAAAAAAFgAUN7zgFSQzLwniDg/1ZAAzxUu6Zp8AAAAAAAAAA
puis signez-le avec Lightning-cli :
$ l1-cli signpsbt cHNidP8BAFICAAAAAZk2BJxZ5DuIl6Um1l1p7hjM2bkYmj4aSPfwYAnM1qfmAAAAAAD9////AaC7DQAAAAAAAFgAUN7zgFSQzLwniDg/1ZAAzxUu6Zp8AAAAAAAAAA { « code »: -1, « message »: « Non entrées du portefeuille à signer » }
Il semble que Clightning n’aime pas signer des transactions qui ne sont pas confirmées.
Je dépenserais le TXO qui a financé la chaîne puisque la transaction de financement n’est pas confirmée.
$ l1-cli -k sorties txprepare= »[{\ »bcrt1qx77wq9fyxvhsncswpl6kgqpnc49m5e5lzmls0g\ »:\ »all\ »}] » utxos= »[\ »c312c45e0294efa91a0c7edb4c6fc26a9511af6f1fe1b1b92e484fc4b76c02ee:0\ »] » feerate=100 { « code »: -32602, « message »: « UTXO c312c45e0294efa91a0c7edb4c6fc26a9511af6f1fe1b1b92e484fc4b76c02ee:0 déjà réservé » }
Ainsi, Clightning voit que même si ce TXO n’est pas confirmé, il est dépensé par un financement de chaîne.
Permettez-moi d’essayer de forcer à nouveau avec le PSBT de base Bitcoin :
$ bt-cli createpsbt « [{\ »txid\ »:\ »c312c45e0294efa91a0c7edb4c6fc26a9511af6f1fe1b1b92e484fc4b76c02ee\ »,\ »vout\ »:0}] » « [{\ »bcrt1qx77wq9fyxvhsncswpl6kgqpnc49m5e5lzmls0g\ »:0.98900000}] » cHNidP8BAFICAAAAAe4CbLfET0guubHhH2+vEZVqwm9M234MGqnvlAJexBLDAAAAAAD9////ASAY5QUAAAAAFgAUN7zgFSQzLwniDg/1ZAAzxUu6Zp8AAAAAAAAAA
puis obtenez une signature de Clightning Wallet :
$ l1-cli signpsbt cHNidP8BAFICAAAAAe4CbLfET0guubHhH2+vEZVqwm9M234MGqnvlAJexBLDAAAAAAD9////ASAY5QUAAAAAFgAUN7zgFSQzLwniDg/1ZAAzxUu6Zp8AAAAAAAAAA { « signed_psbt »: « cHNidP8BAFICAAA AAe4CbLfET0guubHhH2+vEZVqwm9M234MGqnvlAJexBLDAAAAAAD9////ASAY5QUAAAAAFgAUN7zgFSQzLwniDg/1ZAAzxUu6Zp8AAAAAAAEBHyae5gUAAAAAFgAUrxY3yj79dai67Z9mJ4hHAjQSIzMiAgL1CT+P 1myQn8cu5VbnDLA4rpKwP9G1bXEM9Ts8wBmGjkcwRAIgMdOln+3Bzrm5lWqUrBbtEleqYgclYdwSadbs7T8V+18CIFTRsrlwhdZrvrG+UiCGf44+TJrF+Oqj4w+hLFmucBcfASIGAvUJP4/WbJC fxy7lVucMsDiukrA/0bVtcQz1OzzAGYaOCK8WN8oAAAAAACICAoqr3sVLia14vPyrtYQRxA+ wniCHWDV34AMh8C5p18haCDe84BUHAAAAAA== » }
OK, donc cette fois nous avons une signature, maintenant nous pouvons construire la transaction
$ bt-cli finalizepsbt « cHNidP8BAFICAAAAAe4CbLfET0guubHhH2+vEZVqwm9M234MGqnvlAJexBLDAAAAAAD9////ASAY5QUAAAAAFgAUN7zgFSQzLwniDg/1ZAAzxUu6Zp8AAAAAAAEBHyae5gUAAAAAFgAUrxY3yj79 dai67Z9mJ4hHAjQSIzMiAgL1CT+P1myQn8cu5VbnDLA4rpKwP9G1bXEM9Ts8wBmGjkcwRAIgMdOln+3Bzrm5lWqUrBbtEleqYgclYdwSadbs7T8V+18CIFTRsrlwhdZrvrG+UiCGf44+TJrF+Oq j4w+hLFmucBcfASIGAvUJP4/WbJCfxy7lVucMsDiukrA/0bVtcQz1OzzAGYaOCK8WN8oAAAAAACICAoqr3sVLia14vPyrtYQRxA+wniCHWDV34AMh8C5p18haCDe84BUHAAAAAA== » { « hex »: « 0200000000 0101ee026cb7c44f482eb9b1e11f6faf11956ac26f4cdb7e0c1aa9ef94025ec412c30000000000fdffffff012018e5050000000016001437bce01524332f09e20e0ff564 0033c54bba669f02473044022031d3a59fedc1ceb9b9956a94ac16ed1257aa62072561dc1269d6eced3f15fb5f022054d1b2b97085d66bbeb1be5220867f8e3e4c9ac5 f8eaa3e30fa12c59ae70171f012102f5093f8fd66c909fc72ee556e70cb038ae92b03fd1b56d710cf53b3cc019868e00000000 », « complet « : vrai }
et le diffuser
$ bt-cli sendrawtransaction 02000000000101ee026cb7c44f482eb9b1e11f6faf11956ac26f4cdb7e0c1aa9ef94025ec412c30000000000fdffffff012018e5050000000016001437 bce01524332f09e20e0ff5640033c54bba669f02473044022031d3a59fedc1ceb9b9956a94ac16ed1257aa62072561dc1269d6eced3f15fb5f022054d1b2b97085d6 6bbeb1be5220867f8e3e4c9ac5f8eaa3e30fa12c59ae70171f012102f5093f8fd66c909fc72ee556e70cb038ae92b03fd1b56d710cf53b3cc019868e00000000 4130 4c4e992a0718d29cf7c46adb0f361c319d31b92eeb8d7dbc811aebc2b39f
Si les mineurs incluent la dernière transaction 41304…, alors le financement 11b896… et le règlement e6a7… seront invalides. Mais vous avez toujours vos fonds.
tx:c312c…(confirmé) -X-> tx:11b89… (financement tx non confirmé) -X-> tx:e6a7d6cc… (règlement, non confirmé) | +—> tx:41304… (confirmé)
Effets secondaires
Clightning voit les nouveaux fonds, mais il attend toujours la confirmation des transactions précédentes :
$ l1-cli listfunds { « sorties »: [
{
« txid »: « 11b8967c62c584da9bbba5243d61bc95b4da210760bca04adb7c349319edba19 »,
« output »: 1,
« amount_msat »: 97999692000,
« scriptpubkey »: « 0014deb1f4e1123694ca3e418cefe496d3c26b0ddde2 »,
« address »: « bcrt1qm6clfcgjx62v50jp3nh7f9kncf4smh0z2v5q3d »,
« status »: « unconfirmed »,
« reserved »: false
},
{
« txid »: « 41304c4e992a0718d29cf7c46adb0f361c319d31b92eeb8d7dbc811aebc2b39f »,
« output »: 0,
« amount_msat »: 98900000000,
« scriptpubkey »: « 001437bce01524332f09e20e0ff5640033c54bba669f »,
« address »: « bcrt1qx77wq9fyxvhsncswpl6kgqpnc49m5e5lzmls0g »,
« status »: « confirmed »,
« blockheight »: 116,
« reserved »: false
}
] »chaînes »: [
{
« peer_id »: « 0232a73b00b1e4eb6ee1787785640dca55a67bf5e6b338e42efff6a9b21da26c93 »,
« connected »: true,
« state »: « CHANNELD_NORMAL »,
« channel_id »: « a8664ad1bbc4debd16ea2a49b07167f35d3dd9cacac60c0ad6d60fbb76ce78e7 »,
« short_channel_id »: « 103x1x1 »,
« our_amount_msat »: 1000000000,
« amount_msat »: 1000000000,
« funding_txid »: « c312c45e0294efa91a0c7edb4c6fc26a9511af6f1fe1b1b92e484fc4b76c02ee »,
« funding_output »: 1
}
]
}