【补充】EOS智能合约开发 - 如何正确的安装EOS?

in #cn7 years ago (edited)


 EOS被公认为是区块链3.0,是即将起飞的区块链操作系统。所有的功能都振奋人心。 

1.扩容性。EOS系统使用的是DPOS(股份授权证明)共识算法机制,可以很轻松地完成每秒百万转账。

2.兼容性。

3.可用性。EOS系统可以允许网页工具包嵌入进行交互界面开发,自我描述的接口,自我描述的数据库以及权限声明。

4.治理。EOS生态系统中,治理规则是通过制定管辖权,法律的选择以及其他共同接受的规则。

5.同步处理能力。

6.自给自足的系统。

7.去中心化操作系统。EOS则把自己定位为一个去中心化的操作系统。

8.零转账费用

这么多的特性利好,让全球几十万人踊跃购买持有,EOS的白皮书被无数懂技术的、不懂技术的,热情的,从众的人们无数次的解读、分析。目前已经有96个社区在竞争21个超级节点,竞争非常激烈,各个社区都在拉票。

这么多的特性利好,让全球几十万人踊跃购买持有,EOS的白皮书被无数懂技术的、不懂技术的,热情的,从众的人们无数次的解读、分析。目前已经有96个社区在竞争21个超级节点,竞争非常激烈,各个社区都在拉票。

我一直认为,任何项目都不能看白皮书怎么说,而是要最直接去实际使用、感受这个产品。就像一个APP,你会光听旁边的所有人一直说这个APP有多好,而不去马上安装体验么。

那么关于EOS,我们是不是也应该马上安装体验,毕竟6月1日EOS主网要上线了,好多基于EOS的应用已经在嗷嗷待哺了。

官方的自动安装指南太多坑

也许你说,EOS安装不就是在EOS.IO的网站上,按照get_started步骤中的几个命令执行一次就搞定了么?如下三行命令:

git clone https://github.com/eosio/eos --recursive

cd eos

./eosio_build.sh

是的,官方文档大致是这样的,但是EOS是这么庞大一个项目,在执行git 下载eosio代码和相关以来,以及build的过程中,我碰到了太多的坑,以至于我在几天内,用MACOS(苹果对应版本),Ubuntu(linux版本),甚至用windows上的docker,三种操作系统上都试过,居然都无法安装。各种各样的报错,搞得我快要崩溃。

我意识到,自动安装命令中包含太多执行命令和相关性,这样我是没有办法排查到在其中哪一步出错的,我要换一种安装方式。

我经常会遇到很多他人能一步搞定的情况,到了我的手里会出各种状况,还好,我一般不会放弃,最终也会得到自己想要的答案。只是要比别人慢一点。特别是系统安装这种东西,因为每个人的环境、版本、配置都不一样,可能会碰到各种状况,也是要逐个排查解决的。

EOS手动安装指南(实操,前方多坑)

一、安装环境:windows10 、VMWARE WORKSTAION 12 PRO 虚拟机、ubuntu 16.0.4。vmware和ubuntu16.0.4版本都可以google下载到。

二、在ubuntu图形化界面中,按alt+ctrl+f2,可切换到命令行模式(command)。

三、具体EOS部分手动安装如下:

1、安装开发工具集,EOS.IO的官方手动安装指南的命令行是这样的:


而实际上漏了很多命令,这写文档的人很不严谨啊。

实际命令请照如下操作: 

sudo apt-get update

wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key

sudo apt-get install clang-4.0 lldb-4.0 libclang-4.0-dev cmake make

sudo apt-get install libbz2-dev libssl-dev libgmp3-dev

sudo apt-get install autotools-dev build-essential

sudo apt-get install libbz2-dev libicu-dev python-dev

sudo apt-get install autoconf libtool git mongodb

命令执行过程中,会碰到可能的如下提示:

需要您输入ubuntu账号的口令。

或者需要您确认是否允许下载有关文件,请键入Y(YES) 

2、安装boost1.66

cd ~

wget -c 'https://sourceforge.net/projects/boost/files/boost/1.66.0/boost_1_66_0.tar.bz2/download' -O boost_1.66.0.tar.bz2

tar xjf boost_1.66.0.tar.bz2

cd boost_1_66_0

echo "export BOOST_ROOT=$HOME/boost_1_66_0" >> ~/.bash_profile

source ~/.bash_profile

./bootstrap.sh "--prefix=$BOOST_ROOT"

./b2 install

source ~/.bash_profile

3、安装mangodb的C++驱动

cd ~

sudo apt install curl

curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.9.3/mongo-c-driver-1.9.3.tar.gz

(下载mongo c 的驱动,经常会refused,需要多试几次)

tar xf mongo-c-driver-1.9.3.tar.gz

cd mongo-c-driver-1.9.3

./configure --enable-static --enable-ssl=openssl --disable-automatic-init-and-cleanup --prefix=/usr/local

make -j$( nproc )

sudo make install

git clone https://github.com/mongodb/mongo-cxx-driver.git --branch releases/stable --depth 1

cd mongo-cxx-driver/build

cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..

sudo make -j$( nproc )

4、安装椭圆曲线加密算法包并编译

cd ~

git clone https://github.com/cryptonomex/secp256k1-zkp.git

cd secp256k1-zkp

./autogen.sh

./configure

make

sudo make install

5、下载LLVM和clang

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

作为前攻城狮,看到这样的编译界面,就会莫名的兴奋,有没有?

6、上面所有的依赖包都安装好以后,才能开始官方推荐的自动安装三步骤。

cd ~

git clone https://github.com/eosio/eos --recursive

cd eos

./eosio_build.sh

7、如果你的虚拟机没有8GB内存,会无法执行eosio的编译,必须将你的虚拟机调高到8GB以上内存。

如果在执行./eosio-build.sh的过程中,还是出现了如下缺少某个包,请按照如下格式重新下载,在执行sh命令。

sudo apt-get install python3-dev

8、当如下大红的EOSIO出现的时候,说明我们的EOS安装成功了。

我相信我历时几天的不断试验和踩坑,终于达成了EOS的安装,对有相同需求的伙伴是有参考价值的,毕竟这个世界每个人都不孤独,碰到的状况也有很多的类似。

请问你安装成功过EOS么,你碰到了多少个坑,欢迎留言交流。

EOS智能合约开发系列

  1. EOS智能合约开发01 - 编程语言
  2. EOS智能合约开发02 - 下载EOS源码
  3. EOS智能合约开发03 - 构建EOS

更多资讯,可以点击关注我@ldy3413

Sort:  

这种安装出来能出块嘛? 这个最新的3.0版本?

git clone https://github.com/eosio/eos --recursive

git clone 一直出错怎么办? 压缩包的没法自动执行脚本

-- Doxygen found. Contract documentation will be generated.
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
EOS_LIBBSONCXX
linked by target "db_plugin" in directory /home/ksgt/eos/plugins/db_plugin
EOS_LIBMONGOCXX
linked by target "db_plugin" in directory /home/ksgt/eos/plugins/db_plugin

-- Configuring incomplete, errors occurred!
See also "/home/ksgt/eos/build/CMakeFiles/CMakeOutput.log".
make: *** No targets specified and no makefile found. Stop.

出现了这种问题是什么原因?