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

API: MaxTealSourceBytes to 1M #6031 #6068

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions daemon/algod/api/server/v2/handlers.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,8 @@ import (
// MaxTealSourceBytes sets a size limit for TEAL source programs for requests
// Max TEAL program size is currently 8k
// but we allow for comments, spacing, and repeated consts
// in the source TEAL, so we allow up to 200KB
const MaxTealSourceBytes = 200_000
// in the source TEAL, so we allow up to 1MB
const MaxTealSourceBytes = 1_000_000
Comment on lines +67 to +68
Copy link
Contributor

Choose a reason for hiding this comment

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

If the previous hand-wavy argument that 200_000 was reasonable has caused problems, then there should be a number that is correct in the sense that it can't cause those problems. But I don't see what those problems were, exactly, nor why 1MB is the number that is correct to solve them.

Copy link
Author

Choose a reason for hiding this comment

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

my current teal code for clamm when i remove the comments from the code is 190kb .. when i keep the comments its 210kb.. i prefer not to code a feature to trim the comments from the higher level language because i like when the code is commented, and it is better for auditing process when teal code is commented

i believe 1MB is the better limit because this way devs will hit different limits and not the length of teal code program limit

Copy link
Contributor

Choose a reason for hiding this comment

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

Could you tell me how many bytes your teal compiles to? Since we are considering raising the potential size of a logicsig to 16kb, I'd like to have enough headroom to allow for program that compiles to something that big, along with a reasonable amount of comments.

Comment on lines +67 to +68
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
// in the source TEAL, so we allow up to 1MB
const MaxTealSourceBytes = 1_000_000
// in the source TEAL. We have some indication that real TEAL programs with comments are about 20 times bigger than the bytecode they produce, and we may soon allow 16,000 byte logicsigs, implying a maximum of 320kb. Let's call it half a meg for a little room to spare.
const MaxTealSourceBytes = 512*1024

Copy link
Contributor

Choose a reason for hiding this comment

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

I'd like to see the above change committed, then happy to approve.


// MaxTealDryrunBytes sets a size limit for dryrun requests
// With the ability to hold unlimited assets DryrunRequests can
Expand Down
Loading