Ошибка 3070003: Ошибка сериализации при обработке WASM

Я компилирую hello.cpp в папке examples в eosio.cdt версии 1.3.1, в которой много обновлений по сравнению с версией 1.2.X. затем полностью следуйте руководствам по смарт-контрактам на странице https://developers.eos.io/eosio-home/docs/your-first-contract. Компиляция проходит без ошибок, но когда я загружаю контракт в nodeos (версия 1.3.2-грязная),

скомпилировать cpp: eosio-cpp -abigen hello.cpp -o hello.wasm

установить контракт: cleos set contract hello ./hello -p hello@active

Я получаю: Error 3070003: Serialization Error Processing WASM

Nodeos поднимает ошибку:

2018-10-17T05:55:10.012 thread-0   http_plugin.cpp:580           handle_exception     ] FC Exception encountered while processing chain.push_transaction
2018-10-17T05:55:10.013 thread-0   http_plugin.cpp:581           handle_exception     ] Exception Details: 3070003 wasm_serialization_error: Serialization Error Processing WASM
mutable globals cannot be imported: globalImport.type.isMutable{}
thread-0  wasm_interface.cpp:42 validate pending console output:{"console":""}
thread-0  apply_context.cpp:61 exec_one

Кто-нибудь может помочь? Большое спасибо. Я могу загрузить и запустить демо-версию hello на nodeos и eosio-cpp версии 1.3.1, но после обновления что-то пошло не так.


eos
person KemJS    schedule 17.10.2018    source источник


Ответы (1)


отвечу сам. кажется, что файлы wasm&abi, скомпилированные eosio-cpp, не подходят для текущей версии nodeos. вместо этого используйте eosiocpp, и проблема решена. Я не знаю, почему это произошло, потому что eosio-cpp официально рекомендуется

person KemJS    schedule 20.10.2018
comment
eosiocpp отсутствует в последней версии. - person Chan Austin; 10.01.2019