本文由币乎(bihu.com)内容支持计划奖励
The Most Powerful Infrastructure for Decentralized Applications
EOS为百万TPS交易而生,是面向去中心化的dapps
- 可扩展性
1.1 支持成千上万个商用dapp
1.2 并发执行
1.3 异步通信
1.4 执行与认证分离 - 灵活性
2.1 禁用以及修复有问题的应用
2.2 广泛的基于角色的权限控制
2.3 Web Assembly - 便利性
3.1 提供接口开发的web toolkit
3.2 接口自定义
3.3 数据库自定义
3.4 声明式权限结构
EOS优点多多,目前Tested public环境已在运行,所以安装一套开发环境迫在眉睫,希望尽快的学会基于eos的dapp开发
编译安装
在eos项目地址中提供了自动脚本安装,但是我在安装时(在Mac下安装)遇到了不少的问题,下面一步步的复现安装的步骤以及解决的方法
- 更新xcode以及homebrew
xcode-select --install
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- 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中
现在需要的只是link这一段:
sudo ln -s /usr/local/binaryen/bin/* /usr/local/
重新执行
make -j4
终于通过。。。。
想要全局可执行的话,执行下安装
make install
执行tests下,链的测试程序,验证下
./tests/chain_test
无错通过。至此安装完毕