lightninglabs / taproot-assets

A layer 1 daemon, for the Taproot Assets Protocol specification, written in Go (golang)
MIT License
470 stars 115 forks source link

[bug]: Closing Taproot Assets channel results in hung CLI and funds in limbo #1231

Open ryanthegentry opened 1 day ago

ryanthegentry commented 1 day ago

This unexpected behavior appeared immediately after submitting this issue, using the same Polar test network: https://github.com/lightninglabs/taproot-assets/issues/1230

Background

I am testing single hop Taproot Assets LN payments in Polar. I have three litd v0.14.0-alpha.rc1 nodes (each backed by their own bitcoind v27.0 node) Alice, Bob, and Carol. Alice has minted 21M units of a Taproot Asset called USDTest with a decimal_display of 6, and opened a 1M asset channel to Bob (so Alice has 1M assets outbound liquidity). Bob has then opened a 1M sats channel to Carol, and is using the default edge node config --taproot-assets.experimental.rfq.mockoracleassetsperbtc=1000000. I am testing Alice trying to pay sats invoices generated by Carol, whether paying in Taproot Assets or in sats.

image

Your environment

Alice's litd config:

litd
  --httpslisten=0.0.0.0:8443
  --uipassword={{litdPass}}
  --network=regtest
  --lnd-mode=integrated
  --pool-mode=disable
  --loop-mode=disable
  --autopilot.disable
  --lnd.noseedbackup
  --lnd.debuglevel=debug
  --lnd.alias={{name}}
  --lnd.externalip={{name}}
  --lnd.tlsextradomain={{name}}
  --lnd.tlsextradomain={{containerName}}
  --lnd.tlsextradomain=host.docker.internal
  --lnd.listen=0.0.0.0:9735
  --lnd.rpclisten=0.0.0.0:10009
  --lnd.restlisten=0.0.0.0:8080
  --lnd.bitcoin.active
  --lnd.bitcoin.regtest
  --lnd.bitcoin.node=bitcoind
  --lnd.bitcoind.rpchost={{backendName}}
  --lnd.bitcoind.rpcuser={{rpcUser}}
  --lnd.bitcoind.rpcpass={{rpcPass}}
  --lnd.bitcoind.zmqpubrawblock=tcp://{{backendName}}:28334
  --lnd.bitcoind.zmqpubrawtx=tcp://{{backendName}}:28335
  --taproot-assets.allow-public-uni-proof-courier
  --taproot-assets.universe.public-access=rw
  --taproot-assets.universe.sync-all-assets
  --taproot-assets.allow-public-stats
  --taproot-assets.universerpccourier.skipinitdelay
  --taproot-assets.universerpccourier.backoffresetwait=1s
  --taproot-assets.universerpccourier.numtries=5
  --taproot-assets.universerpccourier.initialbackoff=300ms
  --taproot-assets.universerpccourier.maxbackoff=600ms
  --taproot-assets.experimental.rfq.priceoracleaddress=use_mock_price_oracle_service_promise_to_not_use_on_mainnet
  --taproot-assets.experimental.rfq.mockoracleassetsperbtc=1000000
  --lnd.trickledelay=50
  --lnd.gossip.sub-batch-delay=5ms
  --lnd.caches.rpc-graph-cache-duration=100ms
  --lnd.default-remote-max-htlcs=483
  --lnd.dust-threshold=5000000
  --lnd.protocol.option-scid-alias
  --lnd.protocol.zero-conf
  --lnd.protocol.simple-taproot-chans
  --lnd.protocol.simple-taproot-overlay-chans
  --lnd.protocol.wumbo-channels 
  --lnd.accept-keysend
  --lnd.protocol.custom-message=17

Alice's tapcli getinfo output:

litd@alice:/$ tapcli getinfo
{
    "version": "0.5.0-alpha.rc1 commit=v0.5.0-rc1",
    "lnd_version": "0.18.4-beta.rc1",
    "network": "regtest",
    "lnd_identity_pubkey": "0352d1f85ffbf9b2161096c7019930054ad566992ce7fa2df8e75161fb5832ce3f",
    "node_alias": "alice",
    "block_height": 137,
    "block_hash": "2b7394bd8f358545a4b5fa4de4f1b0633ca23635443eeb2ca4ff81dcd1d47fc3",
    "sync_to_chain": true
}

Bob's litd config:

litd
  --httpslisten=0.0.0.0:8443
  --uipassword={{litdPass}}
  --network=regtest
  --lnd-mode=integrated
  --pool-mode=disable
  --loop-mode=disable
  --autopilot.disable
  --lnd.noseedbackup
  --lnd.debuglevel=debug
  --lnd.alias={{name}}
  --lnd.externalip={{name}}
  --lnd.tlsextradomain={{name}}
  --lnd.tlsextradomain={{containerName}}
  --lnd.tlsextradomain=host.docker.internal
  --lnd.listen=0.0.0.0:9735
  --lnd.rpclisten=0.0.0.0:10009
  --lnd.restlisten=0.0.0.0:8080
  --lnd.bitcoin.active
  --lnd.bitcoin.regtest
  --lnd.bitcoin.node=bitcoind
  --lnd.bitcoind.rpchost={{backendName}}
  --lnd.bitcoind.rpcuser={{rpcUser}}
  --lnd.bitcoind.rpcpass={{rpcPass}}
  --lnd.bitcoind.zmqpubrawblock=tcp://{{backendName}}:28334
  --lnd.bitcoind.zmqpubrawtx=tcp://{{backendName}}:28335
  --taproot-assets.allow-public-uni-proof-courier
  --taproot-assets.universe.public-access=rw
  --taproot-assets.universe.sync-all-assets
  --taproot-assets.allow-public-stats
  --taproot-assets.universerpccourier.skipinitdelay
  --taproot-assets.universerpccourier.backoffresetwait=1s
  --taproot-assets.universerpccourier.numtries=5
  --taproot-assets.universerpccourier.initialbackoff=300ms
  --taproot-assets.universerpccourier.maxbackoff=600ms
  --taproot-assets.experimental.rfq.priceoracleaddress=use_mock_price_oracle_service_promise_to_not_use_on_mainnet
  --taproot-assets.experimental.rfq.mockoracleassetsperbtc=1000000
  --lnd.trickledelay=50
  --lnd.gossip.sub-batch-delay=5ms
  --lnd.caches.rpc-graph-cache-duration=100ms
  --lnd.default-remote-max-htlcs=483
  --lnd.dust-threshold=5000000
  --lnd.protocol.option-scid-alias
  --lnd.protocol.zero-conf
  --lnd.protocol.simple-taproot-chans
  --lnd.protocol.simple-taproot-overlay-chans
  --lnd.protocol.wumbo-channels 
  --lnd.accept-keysend
  --lnd.protocol.custom-message=17

Bob's tapcli getinfo output:

litd@bob:/$ tapcli getinfo
{
    "version": "0.5.0-alpha.rc1 commit=v0.5.0-rc1",
    "lnd_version": "0.18.4-beta.rc1",
    "network": "regtest",
    "lnd_identity_pubkey": "0370175e690645b4c47f462aa1f94aa08d79af1460c3e8f548b803b34b9c5603ef",
    "node_alias": "bob",
    "block_height": 137,
    "block_hash": "2b7394bd8f358545a4b5fa4de4f1b0633ca23635443eeb2ca4ff81dcd1d47fc3",
    "sync_to_chain": true
}

Steps to reproduce

1) Create the single hop Taproot Assets LN to BTC network architecture described above 2) Have Alice attempt to close her Taproot Assets channel with Bob with the command: litd@alice:/$ lncli closechannel --chan_point 2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0

Expected behavior

The channel should close, and the CLI should output the channel close transaction ID. If this is a Universe issue (as I expect it is given the "[DBG] DISC: Skipping retransmission of channel without AuthProof: 145135534931968" log output below, along with the final line in Alice's logs), that should somehow be communicated to the user as the root of the problem.

Actual behavior

The CLI does not output anything. Alice's logs show the following:

2024-12-02 18:06:03.816 [INF] LITD: Handling gRPC request: /lnrpc.Lightning/CloseChannel
2024-12-02 18:06:03.823 [DBG] RPCS: [/lnrpc.Lightning/CloseChannel] requested
2024-12-02 18:06:03.848 [ERR] RPCS: Expected either 'sat_per_vbyte' or 'conf_target' to be set, using default conf of 6 instead
2024-12-02 18:06:03.848 [DBG] RPCS: Target sat/kw for closing transaction: 12500
2024-12-02 18:06:03.853 [DBG] HSWC: Requesting local channel close: peer=[3 112 23 94 105 6 69 180 196 127 70 42 161 249 74 160 141 121 175 20 96 195 232 245 72 184 3 179 75 156 86 3 239], chan_id=f78082130b030f509e5de1d204a475d5ba29ac1cf475076c26c1369790e31221
2024-12-02 18:06:03.856 [INF] PEER: Peer(0370175e690645b4c47f462aa1f94aa08d79af1460c3e8f548b803b34b9c5603ef): Local close channel request is going to be delivered to the peer
2024-12-02 18:06:03.907 [INF] PEER: Peer(0370175e690645b4c47f462aa1f94aa08d79af1460c3e8f548b803b34b9c5603ef): Delivery addr for channel close: bcrt1p80zwhlwc3hljrhtx2kwh74nlv85mzp7s9076yvu5lut6k53xdrmskr8dx7
2024-12-02 18:06:03.919 [INF] CHCL: ChannelPoint(2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0): initiating shutdown
2024-12-02 18:06:03.932 [INF] TCHN: Creating shutdown blob for close of ChannelPoint(2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0)
2024-12-02 18:06:03.937 [DBG] TAPD: Deriving new key for fam_family=212
2024-12-02 18:06:03.939 [DBG] RPCS: [/walletrpc.WalletKit/DeriveNextKey] requested
2024-12-02 18:06:03.972 [DBG] TAPD: Deriving new key for fam_family=212
2024-12-02 18:06:03.972 [DBG] RPCS: [/walletrpc.WalletKit/DeriveNextKey] requested
2024-12-02 18:06:04.042 [INF] TCHN: Constructed shutdown record: (map[uint64][]uint8) (len=4) {
  (uint64) 65539: ([]uint8) (len=33 cap=64) {
    00000000  02 0b 90 b5 e4 da 4e c1  68 1f 29 fe a6 e6 87 0a  |......N.h.).....|
    00000010  0c 2c e3 92 15 50 cb 77  1c ad 91 53 29 a3 98 c0  |.,...P.w...S)...|
    00000020  eb                                                |.|
  },
  (uint64) 65540: ([]uint8) (len=33 cap=64) {
    00000000  03 ec 70 85 8d fc 62 24  64 be 6c b8 5d aa fc 7c  |..p...b$d.l.]..||
    00000010  35 eb 1a 71 ec 16 4f 8d  19 9c 4b 6c d1 a3 50 09  |5..q..O...Kl..P.|
    00000020  94                                                |.|
  },
  (uint64) 65541: ([]uint8) (len=66 cap=128) {
    00000000  01 3d a1 8b e9 7c a3 b3  99 12 9b e4 24 20 61 bc  |.=...|......$ a.|
    00000010  de 05 40 82 be 0c 1a 36  b8 d2 b7 75 0a 4a 46 19  |..@....6...u.JF.|
    00000020  19 02 41 1a 9e 6b 2e 1a  c7 3b bc 25 46 36 2d 87  |..A..k...;.%F6-.|
    00000030  da 5a d1 33 42 4b 36 62  15 c7 ab 43 1a 6f eb f4  |.Z.3BK6b...C.o..|
    00000040  0c a9                                             |..|
  },
  (uint64) 65542: ([]uint8) (len=47 cap=64) {
    00000000  68 61 73 68 6d 61 69 6c  3a 2f 2f 6d 61 69 6c 62  |hashmail://mailb|
    00000010  6f 78 2e 74 65 72 6d 69  6e 61 6c 2e 6c 69 67 68  |ox.terminal.ligh|
    00000020  74 6e 69 6e 67 2e 74 6f  64 61 79 3a 34 34 33     |tning.today:443|
  }
}
2024-12-02 18:06:04.045 [INF] CHCL: Initiating shutdown w/ nonce: ([66]uint8) (len=66 cap=66) {
 00000000  02 ef 0d b2 d8 ee 4b b1  d0 5d 2d 53 d1 5b 6c 06  |......K..]-S.[l.|
 00000010  7a d7 38 16 2e 96 58 4a  02 f9 d8 6d 16 d3 33 b6  |z.8...XJ...m..3.|
 00000020  de 02 26 2e 07 56 b9 3c  63 cc b5 d5 8d fc 5c c2  |..&..V.<c.....\.|
 00000030  fe 1e 71 05 7d 72 d4 52  fe 93 a9 6f 7d e2 5f 47  |..q.}r.R...o}._G|
 00000040  ab 39                                             |.9|
}
2024-12-02 18:06:04.047 [DBG] RPCS: [/walletrpc.WalletKit/ImportTapscript] requested
2024-12-02 18:06:04.075 [INF] NANN: Announcing channel(2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0) disabled [requested]
2024-12-02 18:06:04.082 [INF] LNWL: Imported address bcrt1pd4lz05cgx6yqg5pw8zafer2s70gcxn8rw75gw6rrdgfcjvvq4yfql79qdd
2024-12-02 18:06:04.083 [DBG] DISC: Processing ChannelUpdate: peer=<nil>, short_chan_id=145135534931968, 
2024-12-02 18:06:04.085 [WRN] GRDN: Taproot addr bcrt1pd4lz05cgx6yqg5pw8zafer2s70gcxn8rw75gw6rrdgfcjvvq4yfql79qdd was already added to wallet before, skipping
2024-12-02 18:06:04.086 [DBG] DISC: Validating ChannelUpdate: channel=145135534931968, from node=0352d1f85ffbf9b2161096c7019930054ad566992ce7fa2df8e75161fb5832ce3f, has edge=true
2024-12-02 18:06:04.086 [INF] GRDN: Imported Taproot Asset address taprt1qqqszqspqqzzq0dp305hegannyffhepyypsmehs9gzpturq6x6ud9dm4pf9yvxgeq5ss9047g04xd9q23the99tsx2jhrf476cwxtfkny0dfvr57vstme8nyqcssysg6ne4juxk88w7z233k9kra5kk3xdpykdnzzhr6ksc6dl4lgr9fpqss8mrsskxlcc3yvjlxewza4t78cd0trfc7c9j035vecjmv6x34qzv5pgyl7qqqqr5dffgsqqxz76rpwd5x6ctfdsaz7tmdv95kccn00qh8getjd45kuctv9ekxjemgw3hxjmn89e6x7erp0yargdpnjxh2mx into wallet
2024-12-02 18:06:04.090 [INF] GRDN: Watching p2tr address bcrt1pd4lz05cgx6yqg5pw8zafer2s70gcxn8rw75gw6rrdgfcjvvq4yfql79qdd on chain
2024-12-02 18:06:04.094 [DBG] GRPH: Received ChannelEdgePolicy for channel 145135534931968
2024-12-02 18:06:04.125 [DBG] DISC: The message ChannelUpdate has no AuthProof, sending the update to remote peer 0370175e690645b4c47f462aa1f94aa08d79af1460c3e8f548b803b34b9c5603ef
2024-12-02 18:06:04.131 [INF] CHCL: ChannelPoint(2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0): sending shutdown message
2024-12-02 18:06:04.132 [DBG] DISC: Processed ChannelUpdate: peer=<nil>, short_chan_id=17592186044416000001, timestamp=2024-12-02 18:06:04 +0000 UTC
2024-12-02 18:06:04.132 [DBG] DISC: Successfully sent ChannelUpdate message for channel=16000000:0:1 with peer=0370175e690645b4c47f462aa1f94aa08d79af1460c3e8f548b803b34b9c5603ef
2024-12-02 18:06:04.132 [DBG] PEER: Peer(0370175e690645b4c47f462aa1f94aa08d79af1460c3e8f548b803b34b9c5603ef): Sending ChannelUpdate(chain_hash=0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206, short_chan_id=17592186044416000001, mflags=00000001, cflags=00000010, update_time=2024-12-02 18:06:04 +0000 UTC) to 0370175e690645b4c47f462aa1f94aa08d79af1460c3e8f548b803b34b9c5603ef@172.18.0.7:9735
2024-12-02 18:06:04.149 [DBG] PEER: Peer(0370175e690645b4c47f462aa1f94aa08d79af1460c3e8f548b803b34b9c5603ef): Sending Shutdown(chan_id=f78082130b030f509e5de1d204a475d5ba29ac1cf475076c26c1369790e31221, script=51203bc4ebfdd88dff21dd66559d7f567f61e9b107d02bfda23394ff17ab522668f7) to 0370175e690645b4c47f462aa1f94aa08d79af1460c3e8f548b803b34b9c5603ef@172.18.0.7:9735
2024-12-02 18:06:04.711 [DBG] PEER: Peer(0370175e690645b4c47f462aa1f94aa08d79af1460c3e8f548b803b34b9c5603ef): Received ChannelUpdate(chain_hash=0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206, short_chan_id=17592186044416000000, mflags=00000001, cflags=00000011, update_time=2024-12-02 18:06:04 +0000 UTC) from 0370175e690645b4c47f462aa1f94aa08d79af1460c3e8f548b803b34b9c5603ef@172.18.0.7:9735
2024-12-02 18:06:04.713 [DBG] TCHN: Failed to handle: *lnwire.ChannelUpdate
2024-12-02 18:06:04.715 [DBG] DISC: Processing ChannelUpdate: peer=0370175e690645b4c47f462aa1f94aa08d79af1460c3e8f548b803b34b9c5603ef@172.18.0.7:9735, short_chan_id=17592186044416000000, 
2024-12-02 18:06:04.722 [DBG] DISC: Validating ChannelUpdate: channel=145135534931968, from node=0370175e690645b4c47f462aa1f94aa08d79af1460c3e8f548b803b34b9c5603ef, has edge=true
2024-12-02 18:06:04.728 [DBG] PEER: Peer(0370175e690645b4c47f462aa1f94aa08d79af1460c3e8f548b803b34b9c5603ef): Received Shutdown(chan_id=f78082130b030f509e5de1d204a475d5ba29ac1cf475076c26c1369790e31221, script=5120ff9bca7df32355492318a74e4e06998435f8e3ef847d567c2b5d581ad9afaba8) from 0370175e690645b4c47f462aa1f94aa08d79af1460c3e8f548b803b34b9c5603ef@172.18.0.7:9735
2024-12-02 18:06:04.729 [DBG] GRPH: Received ChannelEdgePolicy for channel 145135534931968
2024-12-02 18:06:04.729 [DBG] TCHN: Failed to handle: *lnwire.Shutdown
2024-12-02 18:06:04.733 [INF] CHCL: ChannelPoint(2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0): shutdown response received, entering fee negotiation
2024-12-02 18:06:04.734 [INF] CHCL: Ideal fee for closure of ChannelPoint(2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0) is: 9650 sat (max_fee=28950 sat)
2024-12-02 18:06:04.734 [INF] HSWC: ChannelLink(2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0): stopping
2024-12-02 18:06:04.752 [INF] TCHN: Constructing aux close options for ChannelPoint(2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0): 
2024-12-02 18:06:04.766 [INF] TCHN: Allocations for co-op close txn: ([]*tapchannel.Allocation) (len=3 cap=4) {
  (*tapchannel.Allocation)(0xc00459acf0)({
    Type: (tapchannel.AllocationType) 1,
    OutputIndex: (uint32) 0,
    SplitRoot: (bool) true,
    InternalKey: (*secp256k1.PublicKey)(0xc0001bb5e0)({
      x: (secp256k1.FieldVal) ec70858dfc622464be6cb85daafc7c35eb1a71ec164f8d199c4b6cd1a3500994,
      y: (secp256k1.FieldVal) 0cd171c0ecb88c217a209a036e1e7e465ea81093b2db54da052e286416b6e213
    }),
    NonAssetLeaves: ([]txscript.TapLeaf) <nil>,
    ScriptKey: (asset.ScriptKey) {
      PubKey: (*secp256k1.PublicKey)(0xc0001bb9a0)({
        x: (secp256k1.FieldVal) 411a9e6b2e1ac73bbc2546362d87da5ad133424b366215c7ab431a6febf40ca9,
        y: (secp256k1.FieldVal) d610175fb084b6f45b74cbc6776518b4f0238d9e233c0774e5e36ac00ef24c20
      }),
      TweakedScriptKey: (*asset.TweakedScriptKey)(<nil>)
    },
    Amount: (uint64) 1000000000000,
    AssetVersion: (asset.Version) 0,
    BtcAmount: (btcutil.Amount) 0.00001000 BTC,
    SortTaprootKeyBytes: ([]uint8) (len=33 cap=33) {
      00000000  02 e7 8a 24 cd 71 ff d4  a9 da fd 81 ef a3 ae a4  |...$.q..........|
      00000010  09 a0 ba 2b e6 fc a9 0c  44 9b b5 5d 5b 0d a1 62  |...+....D..][..b|
      00000020  d7                                                |.|
    },
    CLTV: (uint32) 0,
    Sequence: (uint32) 0,
    HtlcIndex: (uint64) 0,
    OutputCommitment: (*commitment.TapCommitment)(<nil>),
    ProofDeliveryAddress: (*url.URL)(0xc00459ac60)(hashmail://mailbox.terminal.lightning.today:443)
  }),
  (*tapchannel.Allocation)(0xc00459ad80)({
    Type: (tapchannel.AllocationType) 0,
    OutputIndex: (uint32) 0,
    SplitRoot: (bool) false,
    InternalKey: (*secp256k1.PublicKey)(0xc0001bb590)({
      x: (secp256k1.FieldVal) 0b90b5e4da4ec1681f29fea6e6870a0c2ce3921550cb771cad915329a398c0eb,
      y: (secp256k1.FieldVal) 94faabf565578c115073d8d535b90a075282c9828912b62ce59ba8868a13819a
    }),
    NonAssetLeaves: ([]txscript.TapLeaf) <nil>,
    ScriptKey: (asset.ScriptKey) {
      PubKey: (*secp256k1.PublicKey)(<nil>),
      TweakedScriptKey: (*asset.TweakedScriptKey)(<nil>)
    },
    Amount: (uint64) 0,
    AssetVersion: (asset.Version) 0,
    BtcAmount: (btcutil.Amount) 0.00084350 BTC,
    SortTaprootKeyBytes: ([]uint8) (len=32 cap=498) {
      00000000  3b c4 eb fd d8 8d ff 21  dd 66 55 9d 7f 56 7f 61  |;......!.fU..V.a|
      00000010  e9 b1 07 d0 2b fd a2 33  94 ff 17 ab 52 26 68 f7  |....+..3....R&h.|
    },
    CLTV: (uint32) 0,
    Sequence: (uint32) 0,
    HtlcIndex: (uint64) 0,
    OutputCommitment: (*commitment.TapCommitment)(<nil>),
    ProofDeliveryAddress: (*url.URL)(<nil>)
  }),
  (*tapchannel.Allocation)(0xc00459ae10)({
    Type: (tapchannel.AllocationType) 0,
    OutputIndex: (uint32) 0,
    SplitRoot: (bool) false,
    InternalKey: (*secp256k1.PublicKey)(0xc0001bb680)({
      x: (secp256k1.FieldVal) dc0dc0c720561ebe182edc76d95f42d184d94c0fd0a3226c56f7e5f32aeb754d,
      y: (secp256k1.FieldVal) 33186bde9e853814169e277f0514541cf319758da304789ca34fc94d37bbfd3f
    }),
    NonAssetLeaves: ([]txscript.TapLeaf) <nil>,
    ScriptKey: (asset.ScriptKey) {
      PubKey: (*secp256k1.PublicKey)(<nil>),
      TweakedScriptKey: (*asset.TweakedScriptKey)(<nil>)
    },
    Amount: (uint64) 0,
    AssetVersion: (asset.Version) 0,
    BtcAmount: (btcutil.Amount) 0.00005000 BTC,
    SortTaprootKeyBytes: ([]uint8) (len=32 cap=32) {
      00000000  ff 9b ca 7d f3 23 55 49  23 18 a7 4e 4e 06 99 84  |...}.#UI#..NN...|
      00000010  35 f8 e3 ef 84 7d 56 7c  2b 5d 58 1a d9 af ab a8  |5....}V|+]X.....|
    },
    CLTV: (uint32) 0,
    Sequence: (uint32) 0,
    HtlcIndex: (uint64) 0,
    OutputCommitment: (*commitment.TapCommitment)(<nil>),
    ProofDeliveryAddress: (*url.URL)(<nil>)
  })
}
2024-12-02 18:06:04.772 [DBG] PROF: Derived Taproot Asset commitment by inclusion taproot_asset_root=d8d9f9e1bb25c551c1dba1977f6d57233751eb35b5709c5e6e322848b6c6392e, internal_key=02725a799bf853a9ccb30d7d12417b7e4b383894550f4e640f06d44cd74f68ae46, Commitment V2 taproot_key=98f00fb007ac156dd520d8a1f617680603345be9b95edb1baa2edc50e36979f8, NonV2 taproot_key=f98767bbd0a4b8ba94ce96ffd7d1705c15aaf6a68208f62f8e5e07a0942b3a76
2024-12-02 18:06:04.868 [INF] LNWL: Generating new musig2 sig for session=5c7c0efbd9ef93b5e7c1302ea08e134000b8e7f81f3c5bb1eb716620ba6ed30a, nonces=NoncePair(verification_nonce=02425e9ffe5bbf9af88d5ed7fd163fcd9d9b20023c6ffb44ea532563dcc829f3f602a0a34d7df27f7257ed51f7ab470ebd2c8f7edfdf034cc7f45a4802436e00f6c0, signing_nonce=02ef0db2d8ee4bb1d05d2d53d15b6c067ad738162e96584a02f9d86d16d333b6de02262e0756b93c63ccb5d58dfc5cc2fe1e71057d72d452fe93a96f7de25f47ab39)
2024-12-02 18:06:04.872 [INF] CHCL: ChannelPoint(2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0): proposing fee of 9650 sat to close chan
2024-12-02 18:06:04.872 [INF] HSWC: ChannelLink(2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0): exited
2024-12-02 18:06:04.872 [INF] HSWC: Removing channel link with ChannelID(f78082130b030f509e5de1d204a475d5ba29ac1cf475076c26c1369790e31221)
2024-12-02 18:06:04.872 [DBG] PEER: Peer(0370175e690645b4c47f462aa1f94aa08d79af1460c3e8f548b803b34b9c5603ef): Sending ClosingSigned(chan_id=f78082130b030f509e5de1d204a475d5ba29ac1cf475076c26c1369790e31221, fee_sat=0.00009650 BTC) to 0370175e690645b4c47f462aa1f94aa08d79af1460c3e8f548b803b34b9c5603ef@172.18.0.7:9735
2024-12-02 18:06:05.237 [DBG] DISC: Processed ChannelUpdate: peer=0370175e690645b4c47f462aa1f94aa08d79af1460c3e8f548b803b34b9c5603ef@172.18.0.7:9735, short_chan_id=17592186044416000000, timestamp=2024-12-02 18:06:04 +0000 UTC
...
2024-12-02 18:07:49.201 [DBG] HLCK: Health check: chain backend invoking success callback
2024-12-02 18:07:49.917 [DBG] DISC: Skipping retransmission of channel without AuthProof: 145135534931968
...
2024-12-02 18:09:09.400 [DBG] LNWL: Filtering block 138 (643fcd3158165859e0af791daee448d8364e1a136cc5c9f59a8cf726a2ad9dfd) with 1 transactions
2024-12-02 18:09:09.400 [INF] GRPH: Pruning channel graph using block 643fcd3158165859e0af791daee448d8364e1a136cc5c9f59a8cf726a2ad9dfd (height=138)
2024-12-02 18:09:09.400 [DBG] LNWL: Filtering block 138 (643fcd3158165859e0af791daee448d8364e1a136cc5c9f59a8cf726a2ad9dfd) with 1 transactions
2024-12-02 18:09:09.400 [DBG] LNWL: Filtering block 138 (643fcd3158165859e0af791daee448d8364e1a136cc5c9f59a8cf726a2ad9dfd) with 1 transactions
2024-12-02 18:09:09.421 [DBG] CHDB: Pruned graph, cache now has num_node_features=2, num_nodes=3, num_channels=4
2024-12-02 18:09:09.421 [INF] GRPH: Block 643fcd3158165859e0af791daee448d8364e1a136cc5c9f59a8cf726a2ad9dfd (height=138) closed 0 channels
2024-12-02 18:09:09.436 [DBG] NTFN: Filtering 1 txns for 1 spend requests at height 138
2024-12-02 18:09:09.454 [INF] NTFN: New block: height=138, sha=643fcd3158165859e0af791daee448d8364e1a136cc5c9f59a8cf726a2ad9dfd
2024-12-02 18:09:09.455 [DBG] SWPR: Received new block: height=138, attempt sweeping 0 inputs
2024-12-02 18:09:09.455 [DBG] CNCT: ChannelArbitrator(2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0): attempting state step with trigger=chainTrigger from state=StateDefault
2024-12-02 18:09:09.459 [DBG] CNCT: ChannelArbitrator(2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0): new block (height=138) examining active HTLC's
2024-12-02 18:09:09.456 [DBG] DISC: New block: height=138, hash=643fcd3158165859e0af791daee448d8364e1a136cc5c9f59a8cf726a2ad9dfd
2024-12-02 18:09:09.456 [INF] GRDN: New block at height 138
2024-12-02 18:09:09.456 [DBG] SWPR: TxPublisher received new block: 138
2024-12-02 18:09:09.456 [INF] UTXN: Attempting to graduate height=138: num_kids=0, num_babies=0
2024-12-02 18:09:09.463 [DBG] CNCT: ChannelArbitrator(2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0): checking commit chain actions at height=138, in_htlc_count=0, out_htlc_count=0
2024-12-02 18:09:09.465 [INF] GRDN: Anchor TX 2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7 reached 6 confirmations, removing it from the re-org watcher
2024-12-02 18:09:09.470 [DBG] CNCT: ChannelArbitrator(2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0): no actions for chain trigger, terminating
2024-12-02 18:09:09.474 [DBG] CNCT: ChannelArbitrator(2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0): terminating at state=StateDefault
2024-12-02 18:09:09.474 [DBG] NTFN: Canceling confirmation notification: conf_id=8, txid=2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7
2024-12-02 18:09:10.472 [DBG] LNWL: Filtering block 139 (5fd2eae165af80c45e2e8b7b8329c084294dc665756b10e9d964f8e6386985d8) with 1 transactions
2024-12-02 18:09:10.474 [DBG] LNWL: Filtering block 139 (5fd2eae165af80c45e2e8b7b8329c084294dc665756b10e9d964f8e6386985d8) with 1 transactions
2024-12-02 18:09:10.474 [DBG] LNWL: Filtering block 139 (5fd2eae165af80c45e2e8b7b8329c084294dc665756b10e9d964f8e6386985d8) with 1 transactions
2024-12-02 18:09:10.483 [INF] GRPH: Pruning channel graph using block 5fd2eae165af80c45e2e8b7b8329c084294dc665756b10e9d964f8e6386985d8 (height=139)
2024-12-02 18:09:10.505 [DBG] CHDB: Pruned graph, cache now has num_node_features=2, num_nodes=3, num_channels=4
2024-12-02 18:09:10.505 [INF] GRPH: Block 5fd2eae165af80c45e2e8b7b8329c084294dc665756b10e9d964f8e6386985d8 (height=139) closed 0 channels
2024-12-02 18:09:10.508 [DBG] NTFN: Filtering 1 txns for 1 spend requests at height 139
2024-12-02 18:09:10.525 [INF] NTFN: New block: height=139, sha=5fd2eae165af80c45e2e8b7b8329c084294dc665756b10e9d964f8e6386985d8
2024-12-02 18:09:10.527 [INF] UTXN: Attempting to graduate height=139: num_kids=0, num_babies=0
2024-12-02 18:09:10.527 [DBG] SWPR: TxPublisher received new block: 139
2024-12-02 18:09:10.527 [DBG] CNCT: ChannelArbitrator(2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0): attempting state step with trigger=chainTrigger from state=StateDefault
2024-12-02 18:09:10.529 [DBG] CNCT: ChannelArbitrator(2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0): new block (height=139) examining active HTLC's
2024-12-02 18:09:10.527 [DBG] DISC: New block: height=139, hash=5fd2eae165af80c45e2e8b7b8329c084294dc665756b10e9d964f8e6386985d8
2024-12-02 18:09:10.527 [DBG] SWPR: Received new block: height=139, attempt sweeping 0 inputs
2024-12-02 18:09:10.527 [INF] GRDN: New block at height 139
2024-12-02 18:09:10.530 [DBG] CNCT: ChannelArbitrator(2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0): checking commit chain actions at height=139, in_htlc_count=0, out_htlc_count=0
2024-12-02 18:09:10.535 [DBG] CNCT: ChannelArbitrator(2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0): no actions for chain trigger, terminating
2024-12-02 18:09:10.537 [DBG] CNCT: ChannelArbitrator(2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0): terminating at state=StateDefault
...
2024-12-02 18:10:49.204 [DBG] HLCK: Health check: chain backend invoking success callback
2024-12-02 18:10:58.922 [INF] PROF: Creating sender mailbox w/ sid=2a59fe87c90d5de0a883e280681e4d72fb2c74ceeee462a3e4ae938fe7e3015ef30806eff1be1daf399cd756c26da002d12b3e562d4b72cd8670071af20b0e8f
2024-12-02 18:10:58.991 [INF] PROF: Creating receiver mailbox w/ sid=2a59fe87c90d5de0a883e280681e4d72fb2c74ceeee462a3e4ae938fe7e3015ef30806eff1be1daf399cd756c26da002d12b3e562d4b72cd8670071af20b0e8e
2024-12-02 18:10:59.055 [INF] PROF: Writing proof to mailbox (sid=2a59fe87c90d5de0a883e280681e4d72fb2c74ceeee462a3e4ae938fe7e3015ef30806eff1be1daf399cd756c26da002d12b3e562d4b72cd8670071af20b0e8f)
2024-12-02 18:10:59.055 [INF] PROF: Waiting for receiver ACK from hashmail service (timeout=6h0m0s, sid=2a59fe87c90d5de0a883e280681e4d72fb2c74ceeee462a3e4ae938fe7e3015ef30806eff1be1daf399cd756c26da002d12b3e562d4b72cd8670071af20b0e8e)
2024-12-02 18:10:59.057 [DBG] PROF: Exec stream Recv for receiver ACK (sid=2a59fe87c90d5de0a883e280681e4d72fb2c74ceeee462a3e4ae938fe7e3015ef30806eff1be1daf399cd756c26da002d12b3e562d4b72cd8670071af20b0e8e)
**2024-12-02 18:10:59.122 [DBG] PROF: Proof delivery failed with error. Backing off. (transfer_type=send, locator_hash=3bb5c7613bb7a95ae76f9f996e295cc96742dbdf766a844408f7d7346eb58ca3, backoff=5m0s, attempt=8): error executing backoff procedure: backoff exec error: failed to retrieve proof transfer receiver ACK within timeout (sid=2a59fe87c90d5de0a883e280681e4d72fb2c74ceeee462a3e4ae938fe7e3015ef30806eff1be1daf399cd756c26da002d12b3e562d4b72cd8670071af20b0e8e): failed on stream Recv (sid=2a59fe87c90d5de0a883e280681e4d72fb2c74ceeee462a3e4ae938fe7e3015ef30806eff1be1daf399cd756c26da002d12b3e562d4b72cd8670071af20b0e8e): rpc error: code = Unknown desc = read stream occupied**

Bob's logs:

2024-12-02 18:06:04.163 [DBG] PEER: Peer(0352d1f85ffbf9b2161096c7019930054ad566992ce7fa2df8e75161fb5832ce3f): Received Shutdown(chan_id=f78082130b030f509e5de1d204a475d5ba29ac1cf475076c26c1369790e31221, script=51203bc4ebfdd88dff21dd66559d7f567f61e9b107d02bfda23394ff17ab522668f7) from 0352d1f85ffbf9b2161096c7019930054ad566992ce7fa2df8e75161fb5832ce3f@172.18.0.3:54044
2024-12-02 18:06:04.172 [DBG] TCHN: Failed to handle: *lnwire.Shutdown
2024-12-02 18:06:04.184 [DBG] GRPH: Received ChannelEdgePolicy for channel 145135534931968
2024-12-02 18:06:04.239 [INF] PEER: Peer(0352d1f85ffbf9b2161096c7019930054ad566992ce7fa2df8e75161fb5832ce3f): Delivery addr for channel close: bcrt1pl7du5l0nyd25jgcc5a8yup5ess6l3cl0s374vlptt4vp4kd04w5qx90wuv
2024-12-02 18:06:04.243 [DBG] HSWC: ChannelLink(656cb6486eeb2da1f90d574fcac066ab2583177e90094534be8704a7c5d39f10:0): sampled fee rate for 3 block conf: 12500 sat/kw
2024-12-02 18:06:04.271 [INF] TCHN: Creating shutdown blob for close of ChannelPoint(2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0)
2024-12-02 18:06:04.273 [DBG] TAPD: Deriving new key for fam_family=212
2024-12-02 18:06:04.285 [DBG] RPCS: [/walletrpc.WalletKit/DeriveNextKey] requested
2024-12-02 18:06:04.356 [INF] TCHN: Constructed shutdown record: (map[uint64][]uint8) (len=4) {
  (uint64) 65540: ([]uint8) (len=33 cap=64) {
    00000000  03 8e 85 8c e4 c9 50 80  42 3a 11 d6 2b 8f bd 37  |......P.B:..+..7|
    00000010  45 49 ee 6c 9b cc dc dc  bf 66 b6 45 30 44 f2 6c  |EI.l.....f.E0D.l|
    00000020  b2                                                |.|
  },
  (uint64) 65541: ([]uint8) (len=1 cap=64) {
    00000000  00                                                |.|
  },
  (uint64) 65542: ([]uint8) (len=47 cap=64) {
    00000000  68 61 73 68 6d 61 69 6c  3a 2f 2f 6d 61 69 6c 62  |hashmail://mailb|
    00000010  6f 78 2e 74 65 72 6d 69  6e 61 6c 2e 6c 69 67 68  |ox.terminal.ligh|
    00000020  74 6e 69 6e 67 2e 74 6f  64 61 79 3a 34 34 33     |tning.today:443|
  },
  (uint64) 65539: ([]uint8) (len=33 cap=64) {
    00000000  03 dc 0d c0 c7 20 56 1e  be 18 2e dc 76 d9 5f 42  |..... V.....v._B|
    00000010  d1 84 d9 4c 0f d0 a3 22  6c 56 f7 e5 f3 2a eb 75  |...L..."lV...*.u|
    00000020  4d                                                |M|
  }
}
2024-12-02 18:06:04.358 [INF] CHCL: Initiating shutdown w/ nonce: ([66]uint8) (len=66 cap=66) {
 00000000  02 42 5e 9f fe 5b bf 9a  f8 8d 5e d7 fd 16 3f cd  |.B^..[....^...?.|
 00000010  9d 9b 20 02 3c 6f fb 44  ea 53 25 63 dc c8 29 f3  |.. .<o.D.S%c..).|
 00000020  f6 02 a0 a3 4d 7d f2 7f  72 57 ed 51 f7 ab 47 0e  |....M}..rW.Q..G.|
 00000030  bd 2c 8f 7e df df 03 4c  c7 f4 5a 48 02 43 6e 00  |.,.~...L..ZH.Cn.|
 00000040  f6 c0                                             |..|
}
2024-12-02 18:06:04.423 [INF] NANN: Announcing channel(2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0) disabled [requested]
2024-12-02 18:06:04.437 [DBG] DISC: Processing ChannelUpdate: peer=<nil>, short_chan_id=145135534931968, 
2024-12-02 18:06:04.691 [DBG] DISC: Processed ChannelUpdate: peer=0352d1f85ffbf9b2161096c7019930054ad566992ce7fa2df8e75161fb5832ce3f@172.18.0.3:54044, short_chan_id=17592186044416000001, timestamp=2024-12-02 18:06:04 +0000 UTC
2024-12-02 18:06:04.691 [DBG] DISC: Validating ChannelUpdate: channel=145135534931968, from node=0370175e690645b4c47f462aa1f94aa08d79af1460c3e8f548b803b34b9c5603ef, has edge=true
2024-12-02 18:06:04.693 [DBG] GRPH: Received ChannelEdgePolicy for channel 145135534931968
2024-12-02 18:06:04.703 [DBG] DISC: The message ChannelUpdate has no AuthProof, sending the update to remote peer 0352d1f85ffbf9b2161096c7019930054ad566992ce7fa2df8e75161fb5832ce3f
2024-12-02 18:06:04.706 [DBG] DISC: Processed ChannelUpdate: peer=<nil>, short_chan_id=17592186044416000000, timestamp=2024-12-02 18:06:04 +0000 UTC
2024-12-02 18:06:04.706 [INF] CHCL: ChannelPoint(2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0): sending shutdown message
2024-12-02 18:06:04.706 [DBG] DISC: Successfully sent ChannelUpdate message for channel=16000000:0:0 with peer=0352d1f85ffbf9b2161096c7019930054ad566992ce7fa2df8e75161fb5832ce3f
2024-12-02 18:06:04.706 [DBG] PEER: Peer(0352d1f85ffbf9b2161096c7019930054ad566992ce7fa2df8e75161fb5832ce3f): Sending ChannelUpdate(chain_hash=0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206, short_chan_id=17592186044416000000, mflags=00000001, cflags=00000011, update_time=2024-12-02 18:06:04 +0000 UTC) to 0352d1f85ffbf9b2161096c7019930054ad566992ce7fa2df8e75161fb5832ce3f@172.18.0.3:54044
2024-12-02 18:06:04.722 [INF] CHCL: ChannelPoint(2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0): responding to shutdown
2024-12-02 18:06:04.724 [DBG] PEER: Peer(0352d1f85ffbf9b2161096c7019930054ad566992ce7fa2df8e75161fb5832ce3f): Sending Shutdown(chan_id=f78082130b030f509e5de1d204a475d5ba29ac1cf475076c26c1369790e31221, script=5120ff9bca7df32355492318a74e4e06998435f8e3ef847d567c2b5d581ad9afaba8) to 0352d1f85ffbf9b2161096c7019930054ad566992ce7fa2df8e75161fb5832ce3f@172.18.0.3:54044
2024-12-02 18:06:04.726 [INF] CHCL: Ideal fee for closure of ChannelPoint(2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0) is: 9650 sat (max_fee=28950 sat)
2024-12-02 18:06:04.726 [INF] HSWC: ChannelLink(2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0): stopping
2024-12-02 18:06:04.743 [INF] HSWC: ChannelLink(2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0): exited
2024-12-02 18:06:04.744 [INF] HSWC: Removing channel link with ChannelID(f78082130b030f509e5de1d204a475d5ba29ac1cf475076c26c1369790e31221)
2024-12-02 18:06:04.883 [DBG] PEER: Peer(0352d1f85ffbf9b2161096c7019930054ad566992ce7fa2df8e75161fb5832ce3f): Received ClosingSigned(chan_id=f78082130b030f509e5de1d204a475d5ba29ac1cf475076c26c1369790e31221, fee_sat=0.00009650 BTC) from 0352d1f85ffbf9b2161096c7019930054ad566992ce7fa2df8e75161fb5832ce3f@172.18.0.3:54044
2024-12-02 18:06:04.883 [DBG] TCHN: Failed to handle: *lnwire.ClosingSigned
2024-12-02 18:06:04.895 [INF] CHCL: ChannelPoint(2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0) accepting initiator fee of 0.00009650 BTC
2024-12-02 18:06:04.912 [INF] TCHN: Constructing aux close options for ChannelPoint(2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0): 
2024-12-02 18:06:04.926 [INF] TCHN: Allocations for co-op close txn: ([]*tapchannel.Allocation) (len=3 cap=4) {
  (*tapchannel.Allocation)(0xc0029b0f30)({
    Type: (tapchannel.AllocationType) 2,
    OutputIndex: (uint32) 0,
    SplitRoot: (bool) true,
    InternalKey: (*secp256k1.PublicKey)(0xc0025c4be0)({
      x: (secp256k1.FieldVal) ec70858dfc622464be6cb85daafc7c35eb1a71ec164f8d199c4b6cd1a3500994,
      y: (secp256k1.FieldVal) 0cd171c0ecb88c217a209a036e1e7e465ea81093b2db54da052e286416b6e213
    }),
    NonAssetLeaves: ([]txscript.TapLeaf) <nil>,
    ScriptKey: (asset.ScriptKey) {
      PubKey: (*secp256k1.PublicKey)(0xc0025c4fa0)({
        x: (secp256k1.FieldVal) 411a9e6b2e1ac73bbc2546362d87da5ad133424b366215c7ab431a6febf40ca9,
        y: (secp256k1.FieldVal) d610175fb084b6f45b74cbc6776518b4f0238d9e233c0774e5e36ac00ef24c20
      }),
      TweakedScriptKey: (*asset.TweakedScriptKey)(<nil>)
    },
    Amount: (uint64) 1000000000000,
    AssetVersion: (asset.Version) 0,
    BtcAmount: (btcutil.Amount) 0.00001000 BTC,
    SortTaprootKeyBytes: ([]uint8) (len=33 cap=33) {
      00000000  02 e7 8a 24 cd 71 ff d4  a9 da fd 81 ef a3 ae a4  |...$.q..........|
      00000010  09 a0 ba 2b e6 fc a9 0c  44 9b b5 5d 5b 0d a1 62  |...+....D..][..b|
      00000020  d7                                                |.|
    },
    CLTV: (uint32) 0,
    Sequence: (uint32) 0,
    HtlcIndex: (uint64) 0,
    OutputCommitment: (*commitment.TapCommitment)(<nil>),
    ProofDeliveryAddress: (*url.URL)(0xc0029b0ea0)(hashmail://mailbox.terminal.lightning.today:443)
  }),
  (*tapchannel.Allocation)(0xc0029b0fc0)({
    Type: (tapchannel.AllocationType) 0,
    OutputIndex: (uint32) 0,
    SplitRoot: (bool) false,
    InternalKey: (*secp256k1.PublicKey)(0xc0025c4af0)({
      x: (secp256k1.FieldVal) dc0dc0c720561ebe182edc76d95f42d184d94c0fd0a3226c56f7e5f32aeb754d,
      y: (secp256k1.FieldVal) 33186bde9e853814169e277f0514541cf319758da304789ca34fc94d37bbfd3f
    }),
    NonAssetLeaves: ([]txscript.TapLeaf) <nil>,
    ScriptKey: (asset.ScriptKey) {
      PubKey: (*secp256k1.PublicKey)(<nil>),
      TweakedScriptKey: (*asset.TweakedScriptKey)(<nil>)
    },
    Amount: (uint64) 0,
    AssetVersion: (asset.Version) 0,
    BtcAmount: (btcutil.Amount) 0.00005000 BTC,
    SortTaprootKeyBytes: ([]uint8) (len=32 cap=498) {
      00000000  ff 9b ca 7d f3 23 55 49  23 18 a7 4e 4e 06 99 84  |...}.#UI#..NN...|
      00000010  35 f8 e3 ef 84 7d 56 7c  2b 5d 58 1a d9 af ab a8  |5....}V|+]X.....|
    },
    CLTV: (uint32) 0,
    Sequence: (uint32) 0,
    HtlcIndex: (uint64) 0,
    OutputCommitment: (*commitment.TapCommitment)(<nil>),
    ProofDeliveryAddress: (*url.URL)(<nil>)
  }),
  (*tapchannel.Allocation)(0xc0029b1050)({
    Type: (tapchannel.AllocationType) 0,
    OutputIndex: (uint32) 0,
    SplitRoot: (bool) false,
    InternalKey: (*secp256k1.PublicKey)(0xc0025c4b90)({
      x: (secp256k1.FieldVal) 0b90b5e4da4ec1681f29fea6e6870a0c2ce3921550cb771cad915329a398c0eb,
      y: (secp256k1.FieldVal) 94faabf565578c115073d8d535b90a075282c9828912b62ce59ba8868a13819a
    }),
    NonAssetLeaves: ([]txscript.TapLeaf) <nil>,
    ScriptKey: (asset.ScriptKey) {
      PubKey: (*secp256k1.PublicKey)(<nil>),
      TweakedScriptKey: (*asset.TweakedScriptKey)(<nil>)
    },
    Amount: (uint64) 0,
    AssetVersion: (asset.Version) 0,
    BtcAmount: (btcutil.Amount) 0.00084350 BTC,
    SortTaprootKeyBytes: ([]uint8) (len=32 cap=32) {
      00000000  3b c4 eb fd d8 8d ff 21  dd 66 55 9d 7f 56 7f 61  |;......!.fU..V.a|
      00000010  e9 b1 07 d0 2b fd a2 33  94 ff 17 ab 52 26 68 f7  |....+..3....R&h.|
    },
    CLTV: (uint32) 0,
    Sequence: (uint32) 0,
    HtlcIndex: (uint64) 0,
    OutputCommitment: (*commitment.TapCommitment)(<nil>),
    ProofDeliveryAddress: (*url.URL)(<nil>)
  })
}
2024-12-02 18:06:04.936 [DBG] PROF: Derived Taproot Asset commitment by inclusion taproot_asset_root=d8d9f9e1bb25c551c1dba1977f6d57233751eb35b5709c5e6e322848b6c6392e, internal_key=02725a799bf853a9ccb30d7d12417b7e4b383894550f4e640f06d44cd74f68ae46, Commitment V2 taproot_key=98f00fb007ac156dd520d8a1f617680603345be9b95edb1baa2edc50e36979f8, NonV2 taproot_key=f98767bbd0a4b8ba94ce96ffd7d1705c15aaf6a68208f62f8e5e07a0942b3a76
2024-12-02 18:06:05.070 [INF] LNWL: Generating new musig2 sig for session=e68789bee9c3c6e3cca68bb37d62c4b2042965c415531ba185186aeff1e690c6, nonces=NoncePair(verification_nonce=02ef0db2d8ee4bb1d05d2d53d15b6c067ad738162e96584a02f9d86d16d333b6de02262e0756b93c63ccb5d58dfc5cc2fe1e71057d72d452fe93a96f7de25f47ab39, signing_nonce=02425e9ffe5bbf9af88d5ed7fd163fcd9d9b20023c6ffb44ea532563dcc829f3f602a0a34d7df27f7257ed51f7ab470ebd2c8f7edfdf034cc7f45a4802436e00f6c0)
2024-12-02 18:06:05.073 [INF] CHCL: ChannelPoint(2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0): proposing fee of 9650 sat to close chan
2024-12-02 18:06:05.073 [INF] CHCL: ChannelPoint(2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0) fee of 0.00009650 BTC accepted, ending negotiation
2024-12-02 18:06:05.079 [INF] TCHN: Constructing aux close options for ChannelPoint(2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0): 
2024-12-02 18:06:05.082 [INF] TCHN: Allocations for co-op close txn: ([]*tapchannel.Allocation) (len=3 cap=4) {
  (*tapchannel.Allocation)(0xc0029b1830)({
    Type: (tapchannel.AllocationType) 2,
    OutputIndex: (uint32) 0,
    SplitRoot: (bool) true,
    InternalKey: (*secp256k1.PublicKey)(0xc0025aa190)({
      x: (secp256k1.FieldVal) ec70858dfc622464be6cb85daafc7c35eb1a71ec164f8d199c4b6cd1a3500994,
      y: (secp256k1.FieldVal) 0cd171c0ecb88c217a209a036e1e7e465ea81093b2db54da052e286416b6e213
    }),
    NonAssetLeaves: ([]txscript.TapLeaf) <nil>,
    ScriptKey: (asset.ScriptKey) {
      PubKey: (*secp256k1.PublicKey)(0xc0025aa550)({
        x: (secp256k1.FieldVal) 411a9e6b2e1ac73bbc2546362d87da5ad133424b366215c7ab431a6febf40ca9,
        y: (secp256k1.FieldVal) d610175fb084b6f45b74cbc6776518b4f0238d9e233c0774e5e36ac00ef24c20
      }),
      TweakedScriptKey: (*asset.TweakedScriptKey)(<nil>)
    },
    Amount: (uint64) 1000000000000,
    AssetVersion: (asset.Version) 0,
    BtcAmount: (btcutil.Amount) 0.00001000 BTC,
    SortTaprootKeyBytes: ([]uint8) (len=33 cap=33) {
      00000000  02 e7 8a 24 cd 71 ff d4  a9 da fd 81 ef a3 ae a4  |...$.q..........|
      00000010  09 a0 ba 2b e6 fc a9 0c  44 9b b5 5d 5b 0d a1 62  |...+....D..][..b|
      00000020  d7                                                |.|
    },
    CLTV: (uint32) 0,
    Sequence: (uint32) 0,
    HtlcIndex: (uint64) 0,
    OutputCommitment: (*commitment.TapCommitment)(<nil>),
    ProofDeliveryAddress: (*url.URL)(0xc0029b17a0)(hashmail://mailbox.terminal.lightning.today:443)
  }),
  (*tapchannel.Allocation)(0xc0029b18c0)({
    Type: (tapchannel.AllocationType) 0,
    OutputIndex: (uint32) 0,
    SplitRoot: (bool) false,
    InternalKey: (*secp256k1.PublicKey)(0xc0025aa0a0)({
      x: (secp256k1.FieldVal) dc0dc0c720561ebe182edc76d95f42d184d94c0fd0a3226c56f7e5f32aeb754d,
      y: (secp256k1.FieldVal) 33186bde9e853814169e277f0514541cf319758da304789ca34fc94d37bbfd3f
    }),
    NonAssetLeaves: ([]txscript.TapLeaf) <nil>,
    ScriptKey: (asset.ScriptKey) {
      PubKey: (*secp256k1.PublicKey)(<nil>),
      TweakedScriptKey: (*asset.TweakedScriptKey)(<nil>)
    },
    Amount: (uint64) 0,
    AssetVersion: (asset.Version) 0,
    BtcAmount: (btcutil.Amount) 0.00005000 BTC,
    SortTaprootKeyBytes: ([]uint8) (len=32 cap=498) {
      00000000  ff 9b ca 7d f3 23 55 49  23 18 a7 4e 4e 06 99 84  |...}.#UI#..NN...|
      00000010  35 f8 e3 ef 84 7d 56 7c  2b 5d 58 1a d9 af ab a8  |5....}V|+]X.....|
    },
    CLTV: (uint32) 0,
    Sequence: (uint32) 0,
    HtlcIndex: (uint64) 0,
    OutputCommitment: (*commitment.TapCommitment)(<nil>),
    ProofDeliveryAddress: (*url.URL)(<nil>)
  }),
  (*tapchannel.Allocation)(0xc0029b1950)({
    Type: (tapchannel.AllocationType) 0,
    OutputIndex: (uint32) 0,
    SplitRoot: (bool) false,
    InternalKey: (*secp256k1.PublicKey)(0xc0025aa140)({
      x: (secp256k1.FieldVal) 0b90b5e4da4ec1681f29fea6e6870a0c2ce3921550cb771cad915329a398c0eb,
      y: (secp256k1.FieldVal) 94faabf565578c115073d8d535b90a075282c9828912b62ce59ba8868a13819a
    }),
    NonAssetLeaves: ([]txscript.TapLeaf) <nil>,
    ScriptKey: (asset.ScriptKey) {
      PubKey: (*secp256k1.PublicKey)(<nil>),
      TweakedScriptKey: (*asset.TweakedScriptKey)(<nil>)
    },
    Amount: (uint64) 0,
    AssetVersion: (asset.Version) 0,
    BtcAmount: (btcutil.Amount) 0.00084350 BTC,
    SortTaprootKeyBytes: ([]uint8) (len=32 cap=32) {
      00000000  3b c4 eb fd d8 8d ff 21  dd 66 55 9d 7f 56 7f 61  |;......!.fU..V.a|
      00000010  e9 b1 07 d0 2b fd a2 33  94 ff 17 ab 52 26 68 f7  |....+..3....R&h.|
    },
    CLTV: (uint32) 0,
    Sequence: (uint32) 0,
    HtlcIndex: (uint64) 0,
    OutputCommitment: (*commitment.TapCommitment)(<nil>),
    ProofDeliveryAddress: (*url.URL)(<nil>)
  })
}
2024-12-02 18:06:05.088 [DBG] PROF: Derived Taproot Asset commitment by inclusion taproot_asset_root=d8d9f9e1bb25c551c1dba1977f6d57233751eb35b5709c5e6e322848b6c6392e, internal_key=02725a799bf853a9ccb30d7d12417b7e4b383894550f4e640f06d44cd74f68ae46, Commitment V2 taproot_key=98f00fb007ac156dd520d8a1f617680603345be9b95edb1baa2edc50e36979f8, NonV2 taproot_key=f98767bbd0a4b8ba94ce96ffd7d1705c15aaf6a68208f62f8e5e07a0942b3a76
2024-12-02 18:06:05.227 [INF] TCHN: Importing 1 proofs for ChannelPoint(2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0)
2024-12-02 18:06:05.228 [INF] TCHN: Fetching funding input proof, locator=(proof.Locator) {
  AssetID: (*asset.ID)(0xc0032e8794)((len=32 cap=32) 3da18be97ca3b399129be4242061bcde054082be0c1a36b8d2b7750a4a461919),
  GroupKey: (*secp256k1.PublicKey)(0xc0025aa640)({
    x: (secp256k1.FieldVal) bebe43ea66940a8aef92957032a571a6bed61c65a6d323da960e9e6417bc9e64,
    y: (secp256k1.FieldVal) 79dfe35a8d07116ab6aeafda5255a24e815a7a3664c54180fda7945acec70436
  }),
  ScriptKey: (secp256k1.PublicKey) {
    x: (secp256k1.FieldVal) bb34cdb0e3a99f5e2b629f89a69cc2b9c933e46b52bdd0b37eebef7f43b6600e,
    y: (secp256k1.FieldVal) 68fc762124986084e633aa9441a62ff412cc0f9be90f1c37eca1b14e0a6136dc
  },
  OutPoint: (*wire.OutPoint)(0xc0032e8770)(d58e10077d032e1d0098f729f1185b4f66436f189365476b1122ab75d85b117a:0)
}
2024-12-02 18:06:05.718 [INF] PROF: Attempting to receive proof via sid=4e28247d7ece3913ad4f90bf87be402a61b58bf88bbc4dbfa66745ae08c9ab99efb05b0a730a7710c3f6845e05203e416e958202cc3e176d59b77db58d675dab
...
**2024-12-02 18:07:50.157 [DBG] DISC: Skipping retransmission of channel without AuthProof: 145135534931968**

After mining several blocks, the channel appears as pending/in limbo for both Alice:

litd@alice:/$ lncli pendingchannels
{
    "total_limbo_balance": "91920",
    "pending_open_channels": [],
    "pending_closing_channels": [],
    "pending_force_closing_channels": [],
    "waiting_close_channels": [
        {
            "channel": {
                "remote_node_pub": "0370175e690645b4c47f462aa1f94aa08d79af1460c3e8f548b803b34b9c5603ef",
                "channel_point": "2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0",
                "capacity": "100000",
                "local_balance": "91920",
                "remote_balance": "5000",
                "local_chan_reserve_sat": "1000",
                "remote_chan_reserve_sat": "1062",
                "initiator": "INITIATOR_LOCAL",
                "commitment_type": "SIMPLE_TAPROOT_OVERLAY",
                "num_forwarding_packages": "0",
                "chan_status_flags": "ChanStatusCoopBroadcasted|ChanStatusLocalCloseInitiator",
                "private": true,
                "memo": "",
                "custom_channel_data": ""
            },
            "limbo_balance": "91920",
            "commitments": {
                "local_txid": "da7d3d9ba9daac069da224dc59c9857039161c12b51881bcbeacad03938f9917",
                "remote_txid": "e684da985c12bb332e0bb19eb5ca08b68a44f0db251f6f732dca20fb9c1910fb",
                "remote_pending_txid": "",
                "local_commit_fee_sat": "2420",
                "remote_commit_fee_sat": "2420",
                "remote_pending_commit_fee_sat": "0"
            },
            "closing_txid": "",
            "closing_tx_hex": ""
        }
    ]
}

And Bob:

litd@bob:/$ lncli pendingchannels
{
    "total_limbo_balance": "5000",
    "pending_open_channels": [],
    "pending_closing_channels": [],
    "pending_force_closing_channels": [],
    "waiting_close_channels": [
        {
            "channel": {
                "remote_node_pub": "0352d1f85ffbf9b2161096c7019930054ad566992ce7fa2df8e75161fb5832ce3f",
                "channel_point": "2112e3909736c1266c0775f41cac29bad575a404d2e15d9e500f030b138280f7:0",
                "capacity": "100000",
                "local_balance": "5000",
                "remote_balance": "91920",
                "local_chan_reserve_sat": "1062",
                "remote_chan_reserve_sat": "1000",
                "initiator": "INITIATOR_REMOTE",
                "commitment_type": "SIMPLE_TAPROOT_OVERLAY",
                "num_forwarding_packages": "0",
                "chan_status_flags": "ChanStatusCoopBroadcasted|ChanStatusRemoteCloseInitiator",
                "private": true,
                "memo": "",
                "custom_channel_data": ""
            },
            "limbo_balance": "5000",
            "commitments": {
                "local_txid": "e684da985c12bb332e0bb19eb5ca08b68a44f0db251f6f732dca20fb9c1910fb",
                "remote_txid": "da7d3d9ba9daac069da224dc59c9857039161c12b51881bcbeacad03938f9917",
                "remote_pending_txid": "",
                "local_commit_fee_sat": "2420",
                "remote_commit_fee_sat": "2420",
                "remote_pending_commit_fee_sat": "0"
            },
            "closing_txid": "",
            "closing_tx_hex": ""
        }
    ]
}
Roasbeef commented 1 day ago

I think this is a duplicate of: https://github.com/lightninglabs/taproot-assets/issues/1113