Ошибка загрузки ресурсов конфетной машины Solana: сбой выделения памяти, нехватка памяти
Я пытался загрузить тестовый контент от
ts-node src/candy-machine-cli.ts upload assets --env devnet --keypair "~\.config\solana\devnet.json" -n 10
И столкнулся с ошибкой ниже
Моделирование транзакций не удалось: Ошибка обработка Инструкция 1: Программа не смогла завершить программы 11111111111111111111111111111111 Invoke [1] Программа 11111111111111111111111111111111 успеха Программы cndyAnrLdpjq1Ssp1z8xxDsB8dxe7u4HL5Nxi2K5WXZ Invoke [1] Программа журнала: Ошибка: ошибка выделения памяти, из памяти программы cndyAnrLdpjq1Ssp1z8xxDsB8dxe7u4HL5Nxi2K5WXZ потребляется 200000 из 200000 вычислительных блоков программы неудавшихся для завершения: программа BPF в панике Программа cndyAnrLdpjq1Ssp1z8xxDsB8dxe7u4HL5Nxi2K5WXZ завершилась неудачно: программа не завершилась
Я думаю, что сообщение может вводить в заблуждение, так как я обрабатываю только 10 изображений. Но не уверен, что именно пошло не так.
3 ответа
У меня была похожая ошибка в Candy Machine v2. Оказывается, одно из моих имен токенов было длиннее 32 символов. Это совершенно недокументировано, но проверьте имена своих токенов.
0.json
{
"name": "Apparently this name was too long",
"symbol": "",
"image": "0.png",
"properties": {
"files": [
{
"uri": "0.png",
"type": "image/png"
}
],
"creators": [
{
"address": "3PH55LMruoQnMmEXLgofGDk3XE2ktDtCZso7K4EeYdQZ",
"share": 50
},
{
"address": "2iZ2Wpp96P5ncpBcGnrvRDFnts9fgBBTYHDbZgb5SDYa",
"share": 50
}
]
}
}
Не задокументировано, но согласно коду Metaplex ограничение длины имени составляет 32.
Все ограничения по размеру метаданных кондитерских автоматов можно найти здесь (определены здесь ).
Важные значения, с которыми люди обычно ошибаются:
MAX_NAME_LENGTH = 32;
MAX_SYMBOL_LENGTH = 10;
MAX_URI_LENGTH = 200;
поэтому обязательно начните с проверки длины имени и длины символа в ваших метаданных. Команда verify_metadata в metaplex cli также поможет проверить это перед загрузкой.
Я нашел ответ для своего случая на issue-explorer of metaplex
Хотя на самом деле не понимаю, почему; проблему можно предотвратить, сохраняя
"symbol": ""
.
*Это свойство json находится в каждом файле assets.json и получено из
traits-configuration.json