最近研究eos源码,一个人搞真的心累的要发疯,各种踩雷。
环境:Ubuntu 18.04
问题1:eosiocpp工具无法使用,而且编译wast文件时老提示'eosiolib/eosio.hpp'找不到
解决方案:查了很多资料都说重新编译然后在build目录下执行sudo make install命令,试了n次都不行,不过执行之后工具已经在/usr/local/eosio/bin下面,而且eosiolib库已经在/usr/local/eosio/include下面,那么配置PATH环境变量就好了,PATH=${PATH}:/usr/local/eosio/bin:/usr/local/eosio/include
问题2:/nodeos -e -p eosio --plugin eosio::chain_api_plugin --plugin eosio::account_history_api_plugin 命令报错:
提示找不到account_history_api_plugin
解决方案: --plugin eosio::account_history_api_plugin替换成:
--plugin eosio::history_api_plugin 具体原因可能是版本不同,有些参数名称改变了吧。
问题3:nodeos -e -p eosio --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin执行报错:
2018-08-21T08:50:06.736 thread-0 main.cpp:118 main
] database dirty flag set (likely due to unclean shutdown): replay required
解决方案:命令后面添加 --replay-blockchain
问题4: nodeos -e -p eosio --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin --replay-blockchain 执行报错
CHAINBASE: Failed to pin chainbase shared memory (of size 1024 MB) in RAM. Performance degradation is possible.
database created by a different compiler, build, boost version, or operating system
Environment differences (host vs database):
Compiler Version:
342e322e3120436f6d70617469626c6520436c616e6720342e302e312028746167732f52454c454153455f3430312f66696e616c2900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 "4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final) "
vs
342e322e3120436f6d70617469626c6520436c616e6720342e302e312028746167732f52454c454153455f3430312f66696e616c2900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 "4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final) "
Debug: 1 vs 0
Apple: 0 vs 0
Windows: 0 vs 0
Boost Version: 106700 vs 106700
2018-08-20T11:08:25.166 thread-0 chain_plugin.cpp:580 plugin_initialize ] 13 N5boost16exception_detail10clone_implINS0_19error_info_injectorISt13runtime_errorEEEE: database created by a different compiler, build, boost version, or operating system
解决方案:
删除block,重新同步
nodeos --replay-blockchain --hard-replay-blockchain --delete-all-blocks
问题5 :测试hello world智能合约时,无法输出print信息
解决方案:修改config.ini文件
contracts-console = true
问题6:使用eosiocpp命令编译合约时提示:未找到'eosiolib / core_symbol.hpp'文件
解决方案:在/usr/local/eosio/include/eosiolib目录下创建core_symbol.hpp.in的副本作为core_symbol.hpp。
其它问题,遇到再更新吧,真的好累