Join Nostr
2026-09-02 18:18:18 UTC
in reply to

Jackk on Nostr: Yeah this resonates well with what I have been thinking. L0 is bounded by 1MB and ...

Yeah this resonates well with what I have been thinking. L0 is bounded by 1MB and L0+L1 is bounded by 4MB. Segwit is an optional layer of block data. Segwit must follow L0 consensus. Segwit is anchored to L0 blockspace.

I have been thinking about how to test additional Segwit filters which limit L0+L1 to 1MB total. You can do this by looking at the non-Segwit data which takes ultimate authority over the 1MB, any excess space afterwards is “available space” for my nodes 1MB policy (default is 4MB). I can then sort all Segwit data by fee paid and build the remainder of the Segwit block data my node stores from the remaining space. Anything outside of the bounds is recorded as just a L0 tx but the L1 data is rejected. This reduces the size of the chain and only Segwit which meets my nodes policy is considered valid by my node. I want to be clear it’s still a valid L0 tx, but it’s an invalid L1 tx (think what a non-Segwit node sees now). You are taking the block that exceeds >1MB and shaving off SegWit data by my node policy based on fees to build 1MB blocks total. This is total consensus valid. SegWit is not Bitcoin consensus.

Filter first by fees; if identical fees filter by sat per mb efficiency and save the closest 1MB block you can.

Segwit is optional, meaning I can store all of it, some of it, or none of it and still be in consensus with L0. Some of the spam is in the L1 layer, so filtering these tx by 1MB total and fee limits the amount of Segwit data your node would store and only those who paid the proper fees fit in my nodes policy. This is backwards compatible with all of Segwit, but not all Segwit is forwards compatible with my nodes policy. The chain is much more lean if you control your nodes Segwit policy, think of 4MB as the upper and least conservative bound. I can’t enforce anyone to not use the discount, so filtering by highest fees solves the problem without any forks; it’s totally opt in by the individual.

I can’t force people to change the discount, I can’t force the 4MB back to 1MB for other peoples nodes, but I can reject them on my node. Only that which pays the highest fees and respects the 1MB total would be stored on my node, it’s an objective fee based filter for L1 data. I can simply ignore a Segwit tx (LN channel for example) that didn’t pay its fair share of fees. It’s still a valid tx, but I choose to not store its L1 data.

Have yet to get something running yet, been very busy. My node is ready, I just need to go back with this logic and prune the Segwit data for each block down to 1MB.

I’ve got nothing new coming out as of now. I am expecting my first child soon, so my attention and priorities have shifted a bit. Still lurking but less vocal.