Skip to content

CHIP-0063: Minimum Fee for Block Creation - #219

Open
razorred14 wants to merge 4 commits into
Chia-Network:mainfrom
razorred14:minimum-block-fee-chip
Open

razorred14 wants to merge 4 commits into
Chia-Network:mainfrom
razorred14:minimum-block-fee-chip

Conversation

@razorred14

@razorred14 razorred14 commented Sep 23, 2026 •

Copy link
Copy Markdown

Note

Low Risk
Documentation-only changes in the CHIPs repo; no runtime code, though CHIP-0063 describes optional full-node fee policy that would affect block building if implemented elsewhere.

Overview
This PR adds CHIP-0063 (Minimum Fee for Block Creation), a fast-track Process CHIP that replaces withdrawn CHIP-0003. The spec defines farmer-local minimum_block_fee_per_cost (mojos per million CLVM cost) applied only during block construction, not at mempool admission or relay, so low-fee txs stay valid and propagatable.

CHIP-0063 sets default 0 (opt-in, no behavior change on upgrade), specifies required_fee via ceiling division with safe integer math, requires startup validation of config, and outlines mempool, block-building, RPC labeling, tests, and security notes tied to chia-blockchain#21328.

Also added is the author’s working draft chip-razorred14-minimum-block-fee.md, which documents an alternate policy: default 4 mojos per CLVM cost when the key is absent, commented initial-config, and automatic expiry at 2027-11-03 based on peak transaction-block timestamp—contrasted explicitly against the opt-in 0 default in #21328.

Reviewed by Cursor Bugbot for commit 2f83393. Bugbot is set up for automated code reviews on this repo. Configure here.

@razorred14
razorred14 marked this pull request as draft September 23, 2026 16:06
@razorred14

Copy link
Copy Markdown
Author

This proposal is ready for initial CHIP-editor feedback. Could a CHIP editor please review its category, scope, and specification?

@razorred14
razorred14 marked this pull request as ready for review September 23, 2026 16:16
@razorred14

Copy link
Copy Markdown
Author

The reference prototype at Chia-Network/chia-blockchain#21328 has now been revised to conform to this proposal. Fee filtering occurs only during candidate-block construction in both generator paths; mempool admission and gossip remain unchanged. The signed implementation commit is Chia-Network/chia-blockchain@95fc22b.

@bramcohen

Copy link
Copy Markdown
Member

Some discussion of economic tradeoffs should go into this. With a floor which results in roughly $200/day cost for someone making a dust storm farmers who use that value are potentially foregoing up to 5 cents worth of fees each time they make a block, although it's likely such things won't be in the mempool to begin with.

@danieljperry danieljperry changed the title Add minimum block fee CHIP proposal CHIP-0063: Minimum Fee for Block Creation Sep 24, 2026
@danieljperry

Copy link
Copy Markdown
Member

This CHIP is now in Review (Fast Track). The reasons for this status (as opposed to Draft) are because it builds off of a defunct CHIP that has already received extensive discussion, it has a working reference implementation in place, the discussion around reviving the idea has already been happening for a month, and the CHIP doesn't modify the consensus or the default mempool.

Please leave your reviews here and feel free to comment in the #chips channel of our Discord.

@danieljperry

Copy link
Copy Markdown
Member

@razorred14 a couple comments in addition to what Bram already stated:

  1. The CHIP states "The configuration defaults to 0". You should clarify whether the default is a requirement for all implementations (MUST), a suggestion (SHOULD), or an option (CAN). If a piece of farming software sets the default to (say) 1, does that violate the spec?
  2. The specification states "minimum_block_fee_per_cost MUST be a non-negative integer expressed in mojos per 1 000 000 units of CLVM cost. The parameter has fee_per_cost in its name, but the actual metric is fee per million cost. This could be confusing. Can you mitigate this potential confusion by either renaming the parameter, changing the actual metric, or ensuring that some clarifying language is included elsewhere?

@cursor cursor Bot mentioned this pull request Sep 25, 2026
@danieljperry

Copy link
Copy Markdown
Member

We'll hold a public discussion of this CHIP on September 30 at:
4 PM PDT
11 PM UTC (midnight UK time)
7 AM Oct 1 (China)

See the #chips channel of our Discord for more details.

@danieljperry

Copy link
Copy Markdown
Member

The recording from our discussion about this CHIP is now available on YouTube:
https://youtu.be/Gz4FNkE4cck

Comment thread CHIPs/chip-0063.md

### Mempool behavior

The configured threshold MUST NOT be used to reject an otherwise valid transaction from the mempool solely because its fee is below `required_fee`. It MUST NOT prevent fetching or relaying such a transaction. Existing mempool capacity, replacement, validation, and anti-spam rules remain unchanged.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

I seriously object to that premise. If I'm not farming it, I'm not relaying it either. Especially since neither cost nor fees can be calculated without running compute bombs from the mempool. The relay vector is what consistently knocks a bunch of low-end netspace offline.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Maybe the mempool shouldn't even be a part of this CHIP? The goal of the CHIP seems to be mempool-agnostic, whereas its predecessor (CHIP-3) filtered transactions at the mempool level.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@razorred14 what do you think about these mempool comments?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@trgarrett what if by default it were only block creation but there is a config option to extend the min fee to the mempool? Would that resolve your concerns?

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

@BrandtH22 I'm running a custom relay policy because I think gossiping CLVM-bombs is what is actually hurting the network right now. "MUST NOT" language in RFCs has a very specific history and interpretation, and I think it's not useful language in this context. If the CHIP doesn't acknowledge the real issues happening to nodes with relay policy, that's the author's prerogative. I just think taking absolutist statements that imply there is something wrong with fixing relay policy is the wrong approach.

I would prefer both a config option and softened language.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@trgarrett thank you for the feedback!

@danieljperry

Copy link
Copy Markdown
Member

Mempool comments aside, this CHIP feels close to being ready. The next step is Last Call, followed by Final. Please leave your reviews here ASAP.

@danieljperry

Copy link
Copy Markdown
Member

@razorred14 Do you have anything else you want to add to this CHIP? IIRC the cost structure might still be in the air?

@Knight1

Knight1 commented Nov 3, 2026

Copy link
Copy Markdown

Still waiting on answers from him on questions I asked on Discord.

@danieljperry

Copy link
Copy Markdown
Member

Our current implementation uses fee per cost instead of fee per million cost. You should decide which one to use, but it made more sense to us to use the base cost.

We are also defaulting to 4 in our implementation (versus 0) in the spec, and we have the set to expire in a year or so.

Chia-Network/chia-blockchain#21649

In your Mempool Behavior section, you should clarify that this only applies to those who run the default mempool. Farmers are free to run custom mempools if they want.

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.

6 participants