Build EOS on ubuntu 16.04

为了和官方测试链对接,选择的是dawn-2.x分支。官方推荐的是在Ubuntu 16.10上面编译,但是我只有16.04,想来应该是差不多的。

参考官方文档,直接开干。

第一个坑

第一个坑其实是关于git的,具体一点就是关于git的子模块的。如果在命令行checkout dawn-2.x分支,一定不要忘了在子模块不会自动切换分支。而且,手动切换后,也会留下一堆Untracked files,我是直接没管。

第二个坑

一开始自然是使用自动编译脚本./build.sh ubuntu。前面的下载和配置都没有报错,直到编译的时候,提示找不到clang,而且是opt/wasm/bin/下找不到。这好办,找到/usr/bin/clang-4.0,在opt/wasm/bin/下创建个链接就好

第三个坑

然后make -j4,还是提示错误,仔细一看,是binaryen没有。处理第一个坑的时候,明明看到binaryen明晃晃的躺在opt/目录下,怎么没有了?进去一看,居然是空的!!

官方文档翻到手动编译部分,找到binaryen的github地址,开始clone,只是速度非常慢。过了一段时间,一看已经失败了。提示错误信息:

error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: The remote end hung up unexpectedly
fatal: early EOF

Google之后,网友们会告诉你,这是缓存不够的原因。设置下git的配置 git config --global http.postBuffer 524288000,把缓存加大。而我修改了这个设置之后,又设置了http代理,几秒钟就把代码拉下来了。

大概也就遇到了这两个问题,应该说还算是比较顺利的。文档上说要下载secp256k1-zkp,然后我找了下,自动化脚本应该没有下载,而我也没有手动去下,并没有影响到编译和运行。