zoukankan      html  css  js  c++  java
  • Mac eos 环境搭建

    最近EOS官网出了文档,说可以跑通一个独立测试的节点了。这周尝试自行搭建了一下,由于自己不完全做mac下的开发,且这玩意是C写的,所以make起来遇到不少坑,记录下来。附完整踩坑、填坑记录。

    1. 搭建环境

    mac下大家应该都用brew来管理包吧。首先官方说要安装:

    • Boost 1.64
    • OpenSSL
    • LLVM 4.0

    通过下面命令,可以尽可能全的安装编译环境:

    另外需要安装的下面这个,brew并没有,需要手动安装:

    • secp256k1-zkp (Cryptonomex branch)

    步骤如下:

    2. 编译LLVM和clang来支持智能合约运行的WASM环境

    默认安装的LLVM和clang并不会包含WASM模块,所以需要自行编译,下面是实现仅仅编译LLVM只会生成WASM模块。

    3. 获取EOS源码

    递归取下来所有的EOS及其模块代码:

    如果你没有带--recursive标志,可以运行下面的命令来抓下来需要的模块(这个命令我没有试,使用时,要看是不是需要进到目录内):

    4. 使用WASM编译器完整编译EOS源码

    需要配置WASM_LLVM_CONFIG环境变量来找到上面构建的WASM的编译器。这个编译器是用来编译eos/contracts下的合约例子,和相应的测试用例的。

    上面的cmake ..会遇到一些坑,可参考使用第7节中完整填坑后的cmake脚本。

    5. 创建并运行一个测试网节点

    进入到编译目录

    运行上述命令后会立即报错,按Ctrl C强制中止后,命令运行目录下,会生成默认的./data-dir/目录,目录下有./data-dir/config.ini配置。可以略微看看默认的配置,再启动就好了(这里相当于没有配置,帮你生成了默认配置,所有人都一样,不安全):

    如果要支持命令行,在config.ini下,添加下述配置。参见 https://eosio.github.io/eos/group__eosc.html

    这样,就可以通过EOS自己的命令行工具eosc来进行交互,如下:

    输出效果:

    6. 可能遇到的坑

    6.1 可能遇到GMP包找不到的报错:

    解决办法:

    6.2 可能遇到ssl相关的错

    但明明已经安装,原因是由于新版mac已经移除了openssl,所以我们需要手动配置环境变量,可以在cmake的命令行中通过-D的方式传入OPENSSL_ROOT_DIROPENSSL_LIBRARIES两个环境变量:

    6.3 最后的联接时失败Link failed

    第一种,使用brew install llvm后会遇到下面的报错:

    解决办法,配置环境变量:

    另一种可能,是手动安装llvm遇到下面的报错:

    初步怀疑这种是因为在第2节中,使用的是默认的llvm编译了,但却后续又使用手动安装的llvm进行后续操作导致的。故统一使用brew管理的llvm

    完整的解决过程,参考这里:https://github.com/EOSIO/eos/issues/99

    7. 完整的cmake脚本供参考

    感谢您的支持

  • 相关阅读:
    169. Majority Element
    283. Move Zeroes
    1331. Rank Transform of an Array
    566. Reshape the Matrix
    985. Sum of Even Numbers After Queries
    1185. Day of the Week
    867. Transpose Matrix
    1217. Play with Chips
    766. Toeplitz Matrix
    1413. Minimum Value to Get Positive Step by Step Sum
  • 原文地址:https://www.cnblogs.com/java-xz/p/10291355.html
Copyright © 2011-2022 走看看