lightninglabs / taproot-assets

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

[enhancement]: Channel-state machine initiation stalls due to channel-reserve requirement #929

Closed dstadulis closed 5 months ago

dstadulis commented 5 months ago

Description

As notionally described in https://github.com/lightning/bolts/blob/master/02-peer-protocol.md?plain=1#L1205-L1208, due to the channel-reserve requirements in lnd, a client, attempting to receive a Taproot Assets on newly opened channel, will stall the receipt of the asset until it has a to_local balance sufficient to meet the channel-reserve requirement. As discussed while incorporating tap channels into Polar, the current implementation requires users to send enough sats to their peer to satisfy the channel reserve before they can start receiving assets. This limitation hinders the user experience and creates unnecessary friction.

Steps to Reproduce

  1. Open a new channel with the taproot-assets daemon.
  2. Attempt to receive assets on the freshly opened channel.
  3. Observe that the transaction is not processed due to insufficient channel reserve.

Desired Behavior

Users should be able to receive assets immediately after opening a channel.

Short-term Solution

  1. Reduce the channel reserve to the absolute minimum possible when opening a channel
  2. Require the channel initiator push the minimum required sats to the remote peer

This modification will allow users to start receiving assets immediately after opening a channel, without being blocked by the reserve requirement.

Long-term Solution

Support the channel-accepting peer performing a collaborative open which includes their own sats into the channel.

dstadulis commented 5 months ago

@GeorgeTsagk what's the next step in setting the reserve to 1062 and pushing that amount of sats during open?

GeorgeTsagk commented 5 months ago

@GeorgeTsagk what's the next step in setting the reserve to 1062 and pushing that amount of sats during open?

PR on tapd to use the updated lndclient and 1062 reserve amount

dstadulis commented 5 months ago

https://github.com/lightninglabs/taproot-assets/pull/939/commits/a30d1361698466ad1309b449dcc533a649ba73e8 will fix this issue