安装依赖
环境:Ubuntu 16.04 LTS 编译安装
sudo apt-get updatesudo apt-get install autoconf cmake make automake libtool git libboost-all-dev libssl-dev g++ libcurl4-openssl-dev
下载 BitShares 源码并编译
##这里,我们假设将目的地目录设置在 $HOME/src/bts_source,可根据需要修改
cd $HOME/src/bts_source
# #取源码
git clone https://github.com/bitshares/bitshares-core cd bitshares-core
##默认是master分支,有时候太过edge有不可知bug,所以最好checkout到最近的一个release,相对稳定很多
git checkout `git describe --tags`
## 获取依赖的子模块代码
git submodule update --init --recursive cmake -DBOOST_ROOT="$BOOST_ROOT" -DCMAKE_BUILD_TYPE=Release .
make
编译完成后会生成以下几个程序,有的我们会用到,有的适用其他场景
- programs/witness_node/witness_node: 见证节点,运行公共API节点只需要它
- programs/cli_wallet/cli_wallet: 命令行钱包,只有在我们需要提供水龙头服务时需要用它进行注册账户操作
- programs/delayed_node/delayed_node: 延时节点,只包括不可逆交易,适用交易所。大约比 witness_node 慢 见证人数量 * 2/3 个区块。还有些其他调试等工具类程序,这里不聊。
上面编译的操作并不需要在每一台服务器上都进行,一般来说配置的节点服务器的配置和环境是一样的话,那么选择其中一台进行即可,完成后可以将编译出来程序直接scp到其他节点服务器上去即可
启动安装bitshares
witness_node节点的运行要求当前的服务器器校准时间,在之前安装依赖的时候有安装ntp,请确保没有遗漏
sudo apt-get install -y ntp
witness_node 配置并启动
我们先启动以下witness_node,然后Ctrl+C终止它,目的是让它生成配置文件。
./witness_node -d node_data
创建 run.sh 启动节点
#!/usr/bin/env/bash
# #文件位置 $HOME/build/node1/run.sh
## 启动 node1
./witness_node -d ./node_data \ --partial-operations true \ --max-ops-per-account 500 \ --rpc-endpoint 10.10.10.2:8090
配置文件参考:https://www.jianshu.com/p/9a58ad875cc3
cli_wallet 配置启动
创建 start.sh 执行文件
#!/bin/bash
nohup ./cli_wallet -w witness_wallet.json -s ws://127.0.0.1:9988 -H 127.0.0.1:9989 -d &
测试节点
## 使用curl命令来测试,向localhost:8090发出请求,获取#1号block摘要
curl http://10.10.10.2:8090 -d '{"jsonrpc": "2.0", "method": "get_block", "params": [1], "id": 1}'
## 应该返回
{"id":1,"jsonrpc":"2.0","result":{"previous":"0000000000000000000000000000000000000000","timestamp":"2015-10-13T14:12:24","witness":"1.6.8","transaction_merkle_root":"0000000000000000000000000000000000000000","extensions":[],"witness_signature":"1f53542bb60f1f7a653bac70d6b1613e73b9adc952031e30e591e601dd60d493ba5c9a832e155ff0c40ea1dd53512e9f93bf65a8191497ea67d701bc2502f93af7","transactions":[]}}
## 这就表示我们的节点能够正常地在指定端口提供数据服务了
参考文档
https://steemit.com/bitshares/@boombastic/bitshares-api
https://www.jianshu.com/p/9a58ad875cc3 (比特股全节点witness_node参数翻译)