Skip to content

Allow transactions to use larger notes, args, programs. #6388

@jannotti

Description

@jannotti

Status

Today, notes are limited to 1k. Args are limited to 2k. Programs are limited to sum to 8k.

Expected

Several different improvements might be made. We might pool that space, as we often do, so you can use 11k across all three things. But the reality is that using these fields consumes a lot of space compared to normal transactions, and perhaps we should charge appropriately, even for modest usage. People sometimes get the idea to use huge transactions to store data, thinking - wow it's nice that archival nodes and indexers are paid for by someone else!

We should charge for this space, but probably should not change the cost for transactions that are legal today. There's no existing model for charging for block (not ledger) space, so we need one. Here's a proposal.

If a transaction exceeds any of the the above limits, its entire group enters "pay by the byte territory". Let's call such transactions Modern. We add up those three things and there is an extra fee per byte. So if you use a 2k note, and a 10k program, you will be paying some factor times 12k.

How much? I don't know, but for future compatibility with a changing MinFee, I would propose it is described as "X MinFees per Y Bytes". And I would start with "1 MinFee per 10,000 bytes" (which reduces to 1uA per 10 bytes.

The txn above would pay about 1200uA extra. That means it pays about double what a simple pay costs. That feels ok to me, but should be discussed.

Modernity infects inner groups. If your parent is modern, so are you.

There will need to be some limits, regardless of how much a txn is willing to pay. Very large transactions make block packing harder.

Solution

Dependencies

Urgency

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions