1

我在eosio.cdt version1.3.1的examples文件夹中编译hello.cpp,与1.2.X版本相比有很多更新。然后完全按照https://developers.eos.io/eosio-home/docs/your-first-contract中的智能合约教程进行操作。编译成功没有错误,但是当我将合约上传到nodeos(版本1.3.2-dirty)时,

编译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

任何人都可以帮忙吗?非常感谢。我可以在 nodeos 和 eosio-cpp 版本 1.3.1 上上传并运行 hello 演示,但更新后出现问题。

4

1 回答 1

0

回答我自己。当前 nodeos 版本似乎不接受 eosio-cpp 编译的 wasm&abi 文件。改用eosiocpp,问题就解决了。我不知道为什么会发生这种情况,因为官方推荐使用 eosio-cpp

于 2018-10-20T02:39:17.640 回答