Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bLIP-56: Pluggable Channel Factories. #56

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

ZmnSCPxj-jr
Copy link

@ZmnSCPxj-jr ZmnSCPxj-jr commented Dec 2, 2024

Channel factories are a way of scaling Bitcoin by hosting offchain channels, not directly onchain, but in another offchain mechanism. The hosting mechanism is called a channel factory. The channel factory can change the funding amounts of channels inside the factory, without any onchain transactions.

This pluggable channel factory protocol is a proposal by which base node software can handle channel state, while letting external code handle state of the channel factory. As far as the node software is concerned, the channel is a "0-conf" channel whose funding transaction never seems to confirm, even though the state is actually backed by an offchain mechanism that ensures that the channel can be unilaterally closed in the worst-case scenario.

When the channel factory wants to change the funding amounts of hosted channels, the node software acts as if a splice operation is being performed, which changes the funding amount (or not changes it, if it is other channels in the same factory that are changed but not this one). When the channel factory offchain mechanism has settled to a new state, it is as if a splice transaction was successfully deeply confirmed.

@ZmnSCPxj-jr
Copy link
Author

Updated blip number to 56, as per PR number.

@ZmnSCPxj-jr ZmnSCPxj-jr changed the title blip-XX: Pluggable Channel Factories. bLIP-56: Pluggable Channel Factories. Dec 2, 2024
@t-bast
Copy link
Contributor

t-bast commented Dec 12, 2024

I think we should wait for a reference implementation, indicating that this will actually be used in practice before merging this bLIP. But it's fine to keep the PR open to guide future implementers!

@tnull
Copy link
Contributor

tnull commented Dec 13, 2024

I think we should wait for a reference implementation, indicating that this will actually be used in practice before merging this bLIP. But it's fine to keep the PR open to guide future implementers!

Hmm, I'm a bit confused about exact process (also related to #55), as bLIP-01 states:

Reference Implementation -- The reference implementation must be completed before any bLIP is given status "Final", but it need not be completed before the bLIP is accepted. It is better to finish the specification and rationale first and reach consensus on it before writing code. The final implementation must include test code and documentation appropriate for the Lightning protocol.

Wouldn't this indicate that bLIPs would get accepted (read: merged) in Draft status if they meet the other criteria, and could advance to Proposed/Final once the reference implmentation is finished?

@t-bast
Copy link
Contributor

t-bast commented Dec 13, 2024

Wouldn't this indicate that bLIPs would get accepted (read: merged) in Draft status if they meet the other criteria, and could advance to Proposed/Final once the reference implmentation is finished?

True, but if there is an implementation (or potentially multiple) that are in-progress: the goal of merging early in draft is mainly when more than one implementations are in-progress and they want to make sure they're building on the same foundations. I believe that we shouldn't accept bLIPs that nobody is actually implementing: if this is just a research protocol that should be iterated on before someone actually wants to use it, delving bitcoin is a better place.

@tnull
Copy link
Contributor

tnull commented Dec 13, 2024

True, but if there is an implementation (or potentially multiple) that are in-progress: the goal of merging early in draft is mainly when more than one implementations are in-progress and they want to make sure they're building on the same foundations. I believe that we shouldn't accept bLIPs that nobody is actually implementing: if this is just a research protocol that should be iterated on before someone actually wants to use it, delving bitcoin is a better place.

Alright, makes sense, thanks for clarifying!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants