eos专栏

EOS节点搭建(MAC)

2018-01-23  本文已影响0人  程序员大叔日记

本文由币乎(bihu.com)内容支持计划奖励

The Most Powerful Infrastructure for Decentralized Applications

EOS为百万TPS交易而生,是面向去中心化的dapps

  1. 可扩展性
    1.1 支持成千上万个商用dapp
    1.2 并发执行
    1.3 异步通信
    1.4 执行与认证分离
  2. 灵活性
    2.1 禁用以及修复有问题的应用
    2.2 广泛的基于角色的权限控制
    2.3 Web Assembly
  3. 便利性
    3.1 提供接口开发的web toolkit
    3.2 接口自定义
    3.3 数据库自定义
    3.4 声明式权限结构

EOS优点多多,目前Tested public环境已在运行,所以安装一套开发环境迫在眉睫,希望尽快的学会基于eos的dapp开发

编译安装

eos项目地址中提供了自动脚本安装,但是我在安装时(在Mac下安装)遇到了不少的问题,下面一步步的复现安装的步骤以及解决的方法

  1. 更新xcode以及homebrew
xcode-select --install
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  1. clone项目,编译安装
git clone https://github.com/eosio/eos --recursive
cd eos
./build.sh darwin

在编译过程中遇到的第一个问题时git的问题,因为之前系统中有git的安装,导致出现了一堆如下问题:
/usr/local/bin/git exsits
....
解决的方式只需要:
brew link git --overwrite git

重新执行编译,仍然报错,这次提示llvm不存在,估计是llvm几个模块clone的代码较大(网络不怎么好,超时没有搞下来)
这下有点麻烦了,说明在编译的过程中llvm没有安装好,尝试执行如下步骤:

mkdir  ~/wasm-compiler
cd ~/wasm-compiler
git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git
cd llvm/tools
git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/clang.git
cd ..
mkdir build
cd build
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=.. -DLLVM_TARGETS_TO_BUILD= -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly -DCMAKE_BUILD_TYPE=Release ../
make -j4 install

安装好之后,配置llvm

echo "export WASM_LLVM_CONFIG=~/wasm-compiler/llvm/build/bin/llvm-config" >> ~/.zshrc
echo "export LLVM_DIR=/usr/local/Cellar/llvm@4/4.0.1/lib/cmake/llvm" >> ~/.zshrc
source ~/.zshrc

配置好之后,就不要再执行自动化脚本了,而是切换到eos目录,将build目录内容清空,重新编译

cd ~/eos/eos
rm -rf build
mkdir build
cd build
cmake ..

发现仍然报错,提示openssl无法找到,但是系统已经安装

> brew info openssl                                                                                                           14:42.17 一  1 22 2018 >>>
openssl: stable 1.0.2n (bottled) [keg-only]
SSL/TLS cryptography library
https://openssl.org/
/usr/local/Cellar/openssl/1.0.2l (1,709 files, 12.1MB)
  Poured from bottle on 2017-09-03 at 13:36:59
/usr/local/Cellar/openssl/1.0.2n (1,792 files, 12.2MB)
  Poured from bottle on 2018-01-10 at 14:20:16

那应该是对应的环境变量没有配置,查了下配置的方式

export OPENSSL_ROOT_DIR=/usr/local/Cellar/openssl/1.0.2l
export OPENSSL_INCLUDE_DIR=/usr/local/Cellar/openssl/1.0.2l/include
source ~/.zshrc

需要注意,可能安装的openssl版本不同对应的目录可能有所变化
再编译

cmake ..

终于过了。。。,下一步

make -j4 

很不幸,继续报错,这次提示的是
/usr/local/s2wasm 不存在,查了下s2wasm是哪里的,发现是webassembly的模块,eos项目中提供了安装方式:

git clone https://github.com/WebAssembly/binaryen.git
cd ~/binaryen
git checkout tags/1.37.14
cmake . && make

这样还只是安装到binaryen目录下了,但还是需要link到指定的位置,这个可以参考eos提供的scripts下的install_dependencies.sh中


image.png

现在需要的只是link这一段:
sudo ln -s /usr/local/binaryen/bin/* /usr/local/
重新执行
make -j4
终于通过。。。。
想要全局可执行的话,执行下安装
make install

执行tests下,链的测试程序,验证下
./tests/chain_test
无错通过。至此安装完毕

上一篇 下一篇

猜你喜欢

热点阅读