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脚本供参考

    感谢您的支持

  • 相关阅读:
    java设计模式简介
    java设计模式--单例模式
    判断整形回文数
    常用正则表达式 捕获组(分组)
    [转]十分钟搞定Vue搭建
    ActiveX界面已显示,调用方法报undefined的处理办法
    [转]纯js导出json到excel(支持chrome)
    webapi 开启gzip压缩
    webapi下载文件
    iis添加共享目录为虚拟目录
  • 原文地址:https://www.cnblogs.com/java-xz/p/10291355.html
Copyright © 2011-2022 走看看