Lightning Network : Un canal peut-il être fermé alors que le financement tx est toujours bloqué dans le mempool ?


J’ai commencé à écrire cette réponse en essayant de le faire moi-même. ce qui est la toute dernière étape avant de finaliser la double dépense. Donc, cette réponse est actuellement incomplète, mais je prévois de construire cet outil et d’écrire un plugin qui automatise tout cela, donc cela deviendra beaucoup plus facile 😉

Étant donné que vous demandez c-lightning, laissez-moi vous expliquer les options dont vous disposez :

Attendez et retransmettez

Si les frais ne sont pas trop bas et que le pair n’a pas encore abandonné, vous pourriez avoir une chance de toujours établir le canal, en confirmant la transaction de financement d’origine. Cela peut vous obliger à rediffuser la transaction de temps en temps lorsqu’elle sort du mempool. Pour ce faire, notez la transaction de financement qui a été retournée lors de l’appel de fundchannel ou récupérez-la dans la base de données en recherchant son identifiant:

Lightning Network : Un canal peut-il être fermé alors que le financement tx est toujours bloqué dans le mempool ?

jq ‘.peers.Identifiant de la chaine’)

sqlite3 $ HOME /.lightning / bitcoin / lightningd.sqlite3

« SELECT hex (rawtx) FROM transactions WHERE hex (id) LIKE ‘$ CHANID' »

Cela vous permettra d’obtenir le financement tx pour ce pair en particulier.

Vous pouvez ensuite rediffuser en utilisant les méthodes bitcoin-cli sendrawtransaction ou lightning-cli sendrawtransaction.

Je suggère d’attendre au moins pendant le week-end, car les frais baissent considérablement, ce qui augmente les chances de confirmation du tx de toute façon.

Double-dépenser la transaction de financement

Si vous avez besoin de fonds ailleurs ou si vous décidez que le canal ne vaut pas la peine d’attendre, vous pouvez également dépenser deux fois l’une des entrées et la transaction de financement ne pourra jamais être confirmée.

🚧 Notez que vous ne pourrez pas ouvrir un nouveau canal avec ce pair spécifique tant que les deux côtés n’auront pas abandonné, car du point de vue de c-lightning,

Pour ce faire, recherchez la transaction de financement comme ci-dessus,:

Ensuite.:

lightning-cli dev-rescan-sorties

Maintenant, choisissez un sous-ensemble des entrées et créez une nouvelle transaction, qui entre en collision avec la transaction de financement dans le but de la doubler :

lightning-cli utxopsbt satoshi = all feerate = poids de départ normal = 756 utxos =

Cela vous donne une transaction Bitcoin partiellement signée (PSBT), qui a une entrée : 0 (correspondant au résultat des résultats de la transaction de décodage ci-dessus) et aucune sortie. Notez que le poids de départ est de 756sipa.

Ce n’est pas encore une transaction valide. Pour ce faire,:

foudre-cli newaddr

Et maintenant.

ou du moins je n’en connais aucun.