【补充】EOS智能合约开发 - 如何正确的安装EOS?
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智能合约开发系列
更多资讯,可以点击关注我@ldy3413
这种安装出来能出块嘛? 这个最新的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.
出现了这种问题是什么原因?