Non-initiator channels
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 8.6k
- Forks
- 3.5k
- Avg merge
- 2d 8h
- Merged PRs (30d)
- 61
Description
One of the reasons why we do not accept channels initiated by a remote node, is we want to be able to recover a backup from seed. Client-initiated channels funding transactions have an OP_RETURN that contains the encrypted remote node_id. However, allowing remote parties to open channels to us would have major usability advantages (see phoenix).
Here is a suggestion: Assume the channel opener creates an OP_RETURN output, that contains our encrypted node_id. Assume that we know how the encrypted node_id looks like, without knowing the remote node_id (encryption can be performed with a nonce that we give to the remote during the negotiation phase).
If we subscribe to the corresponding scripthash, then we can learn about the existence of this channel, without being the initiator. The only thing we need is the remote node_id, in order to contact them. That node_id could be encoded in another OP_RETURN, like we do currently.
This requires a modification of the channel negotiation protocol, but it potentially allows any party to open a recoverable channel to us.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names no files or tests. Start by locating the existing client-initiated channel negotiation, OP_RETURN handling, and seed-recovery flow; done would require a defined protocol change that lets remote parties open channels while preserving recoverability and providing the remote node_id.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend-api-design, networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100