Skip to content

Use official feature bit for option_simple_taproot#3144

Open
t-bast wants to merge 3 commits intomasterfrom
taproot-feature-bit
Open

Use official feature bit for option_simple_taproot#3144
t-bast wants to merge 3 commits intomasterfrom
taproot-feature-bit

Conversation

@t-bast
Copy link
Member

@t-bast t-bast commented Aug 21, 2025

Use the official feature bit and name for taproot channels and the corresponding channel types. Activate taproot channels support by default (without support for announcing such channels yet).

We have test vectors matching the spec (lightning/bolts#995) and cross-compatibility with lnd 🎉

@t-bast t-bast force-pushed the taproot-feature-bit branch 2 times, most recently from 40c34ff to 4de2b89 Compare August 25, 2025 14:43
@t-bast t-bast force-pushed the taproot-feature-bit branch from 4de2b89 to 454bf45 Compare September 11, 2025 09:45
@t-bast t-bast force-pushed the taproot-feature-bit branch from 454bf45 to 7805b4e Compare December 17, 2025 08:15
@t-bast t-bast force-pushed the taproot-feature-bit branch from 7805b4e to ea9c4ca Compare December 31, 2025 13:56
@t-bast t-bast force-pushed the taproot-feature-bit branch from ea9c4ca to 48472ea Compare February 13, 2026 16:11
@t-bast t-bast force-pushed the taproot-feature-bit branch 2 times, most recently from 67d6160 to 76863d3 Compare February 27, 2026 09:27
@t-bast t-bast force-pushed the taproot-feature-bit branch 3 times, most recently from 63bc51e to fb287ea Compare March 17, 2026 09:05
@t-bast t-bast marked this pull request as ready for review March 17, 2026 09:05
@t-bast t-bast force-pushed the taproot-feature-bit branch from fb287ea to ce6eabe Compare March 17, 2026 09:07
@t-bast t-bast requested a review from sstone March 17, 2026 09:07
if (Features.canUseFeature(localFeatures, remoteFeatures, Features.AnchorOutputsZeroFeeHtlcTx)) {
Some(AnchorOutputsZeroFeeHtlcTx(scidAlias = !announceChannel && Features.canUseFeature(localFeatures, remoteFeatures, Features.ScidAlias)))
val useScidAlias = !announceChannel && Features.canUseFeature(localFeatures, remoteFeatures, Features.ScidAlias)
if (Features.canUseFeature(localFeatures, remoteFeatures, Features.SimpleTaprootChannels)) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
if (Features.canUseFeature(localFeatures, remoteFeatures, Features.SimpleTaprootChannels)) {
if (!announceChannel && Features.canUseFeature(localFeatures, remoteFeatures, Features.SimpleTaprootChannels)) {

We currently allow opening public taproot channels, which is not yet supported as there are no specs for gossip messages for these types of channels.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Another (cleaner ?) option would be to refuse opening public taproot channels.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch! Done in 535ea49 and rebased to get rid of flaky tests.

t-bast added 3 commits March 19, 2026 17:28
Use the official feature bit and name for taproot channels and the
corresponding channel types. Activate taproot channels support by
default (without support for announcing such channels yet).
We only support unannounced taproot channels right now.
The spec for taproot gossip isn't ready yet.
@t-bast t-bast force-pushed the taproot-feature-bit branch from ce6eabe to 535ea49 Compare March 19, 2026 16:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants