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

fix: max create multiple items #1014

Merged
merged 2 commits into from
Oct 16, 2023
Merged

fix: max create multiple items #1014

merged 2 commits into from
Oct 16, 2023

Conversation

mrshiposha
Copy link
Contributor

No description provided.

@@ -135,7 +135,7 @@ pub const MAX_TOKEN_PROPERTIES_SIZE: u32 = 32768;

/// How much items can be created per single
/// create_many call.
pub const MAX_ITEMS_PER_BATCH: u32 = 200;
pub const MAX_ITEMS_PER_BATCH: u32 = 120;
Copy link
Member

Choose a reason for hiding this comment

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

Уменьшать? А зачем?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Это нужно для того, чтобы гарантировать пользователю, что заявленный максимум достижим при любых объемах данных. Можно наминтить 120 токенов даже при 32К пропертей на каждый токен в рамках одной create_multiple_items транзакции.
Используя nonce можно послать множество таких транзакций за раз, если данных меньше, чем 32К

CC @uandysmith

Copy link
Member

Choose a reason for hiding this comment

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

Нельзя, потому что в блоке может уже быть другая create_multiple_items транзакция, и для этой не хватит места, так что мотивация не совсем

Copy link
Contributor Author

@mrshiposha mrshiposha Oct 16, 2023

Choose a reason for hiding this comment

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

Если у тебя 1К вместо 32К на каждый токен, то в один блок можно поместить несколько create_multiple_items.
Важно, что в рамках create_multiple_items есть гарантия на 120 токенов при любом размере пропертей в рамках этой транзакции

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Энивей, @uandysmith может объяснить мотивацию лучше

Copy link
Contributor

Choose a reason for hiding this comment

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

Она в этом случае разве отвергнется, а не останется ждать следующего блока? По-идее будет ждать в пуле, пока места не хватит для нее.

Copy link
Member

Choose a reason for hiding this comment

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

Всякое бывает, банально время жизни может истечь, так что это не гарантия

Copy link
Member

Choose a reason for hiding this comment

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

Меня больше смущает что число очень arbitrary, а изменение по сути ломающее
У нас же будет скоро async backing, оно снова вырастет

Copy link
Contributor

Choose a reason for hiding this comment

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

Вроде не особо ломающее, нас в целом никто не заставляет держать какой-то конкретный лимит для одного этого экстринзика. Можно несколько таких экстринзиков через nonce (не упадет) или через utility.batch (упадет) в крайнем случае.
Выбрали просто нейтральное число, которое безопасно с большинстве случаев

Copy link
Member

Choose a reason for hiding this comment

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

Окей, ради теста заберу, но изменение лимита какое-то странное, и мотивация меня всё таки не убеждает)

@CertainLach CertainLach merged commit 0cf3df0 into develop Oct 16, 2023
11 of 20 checks passed
@CertainLach CertainLach deleted the fix/max-multiple-items branch October 16, 2023 17:57
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.

3 participants