都说纸上得来终觉浅,绝知此事要躬行,尽管看过好多大神的编译指南之类的,但是还有感觉有些迷糊,没办法,不亲自操作一下,理解的难免不深刻。怎么形容呢,就好比学数学不做习题,学编程不上机。所以今天就上机操作一下。
系统要求
在@abit的 《BTS交易所对接指南(单节点版)》中提到,系统的最小要求为:
独立服务器或者VPS
8G 内存(更多更好)
50G 硬盘
所以我去Linode选了如下VPS
看起来应该符合要求
官方推荐的系统为:Ubuntu 16.04 LTS
,听人劝吃饱饭,那就用Ubuntu 16.04 LTS
好了。
内核版本为4.14.14
,据说打完Meltdown补丁了😳
准备工作
更新系统软件包
首先更新了一下系统上的软件包sudo apt-get update
sudo apt-get upgrade
安装依赖
安装必要的依赖sudo apt-get install autoconf cmake git libboost-all-dev libssl-dev g++ libcurl4-openssl-dev
编译
检出代码并编译
上述指令中,需要将<LATEST_RELEASE_TAG>
替换成最新发布版本号,撰写本文时,为2.0.171212
编译结果
经过漫长的等待(约1一个半小时),编译总算完成了。这个时间应该取决于硬件配置。
编译完成后我们得到两个程序
- build/programs/witness_node/witness_node
- build/programs/cli_wallet/cli_wallet
为了方便,我把它俩复制到~/programs 目录下。
时间校准
因为广播交易什么的都和时间有关,所以必须保证时间正确,否则一切免谈。
大神推荐如下方法:sudo timedatectl set-ntp false
sudo apt-get install ntp
我看了一下,系统上已经启动了一个systemd-timesyncd
进程,由timedatectl指令控制,也是用于时间同步的,大神的做法是关掉这个,启用ntp。
我测试一下,貌似这个东东应该可以用,那就先用着好了,出问题的时候再换其它方法。
来试试看:timedatectl
其它
本来想再做做其它尝试,结果我到VPS的连接掉线了。为什么会掉线呢,当然是Party 妈妈怕我们受到资本主义那么腐朽的东西的毒害。其实我真的就是ssh登陆,没用来做ssh隧道,冤枉死我了。
不过既然Party 妈妈让我休息休息,那就先写到这里好了,晚上再说吧。
参考链接
- https://github.com/bitshares/bitshares-core
- BTS交易所对接指南(单节点版)by @abit
- Memory Reduction for Nodes
- https://github.com/bitshares/bitshares-core/releases
- http://man7.org/linux/man-pages/man1/timedatectl.1.html
- http://man7.org/linux/man-pages/man8/systemd-timesyncd.8.html
This page is synchronized from the post: 尝试编译BitShares Core