搭建比特股见证人节点教程

服务器系统选择:推荐ubuntu16.04 x64位以上版本系统,最低配置建议4核16G内存150G硬盘起。
1:编译及节点程序获取
如果你没有可信的节点程序来源,建议自行至github页面下载编译,确保节点程序的合法性。
Github仓库地址:https://github.com/bitshares/bitshares-core
编译教程及自述文件:https://github.com/bitshares/bitshares-core/blob/master/README.md
2:运行见证人节点
成功编译出witness_node程序后,witness_node的程序一般位于./programs/witness_node/目录下,如果是其他可信来源获取,可以创建一个为btsnode的文件夹,把获取到的witness_node置于改文件目录下,修改程序权限为777。
因为服务器远程控制台关闭程序会销毁的缘故,可以使用screen程序来保持程序不被销毁。代码:
apt-get install screen(安装screen,如果报错,请使用sudo apt-get install screen)
screen -S bitshares(创建名字为”bitshares”的桌面)
cd btsnode(跳转到witness_node所在目录,根据文件位置修改cd到的目录)
./witness_node(启动节点程序)
这时候因为启动过witness_node,程序在witness_node所在目录自动生成了witness_node_data_dir文件夹,文件夹下面包含了p2p,logs,blockchain文件夹,logging,config配置文件。
第一次启动节点程序生成文件夹之后建议使用ctrl+c结束运行节点程序;您可以使用退出节点Ctrl+C。请注意,该节点程序可能需要一些时间(通常是几分钟)才能干净退出,请耐心等待。

搭建比特股见证人节点教程

我们使用编辑器打开config作编辑。该文件为主要的节点配置文件,演示案例里面使用了winscp工具进行对config的编辑。

搭建比特股见证人节点教程

配置开启端口:
rpc-endpoint = 0.0.0.0:8090(开启nitness_node的8090端口,如占用可以改其他的,前面去掉#注释)
保存退出,重新启动witness_node完成区块数据的同步(根据网速可能需要1-2天左右,同步数据约85GB)。
待区块数据同步之后,后台运行名称为bitshares的桌面,同时按下ctrl+A+D,此时witness_node会保持后台桌面运行且开启8090端口。
运行cli_wallet(命令行钱包),代码:
./cli_wallet -s ws://127.0.0.1:8090
如无法打开需修改权限777,8090为witness_node开放的端口。
重要信息:除非见证节点与区块链完全同步,否则见证节点的cli_wallet或API接口将无法正常运行。cli_wallet命令info将显示结果head_block_age,该结果将告诉您距区块链的当前区块有多远。
要检查当前块:
new >>> info

同步完成之后,设置钱包的密码并导入账号至钱包:
new>>>set_password 123456(设置钱包密码为123456,建议简单点)
locked >>> unlock 123456(使用钱包密码123456解锁钱包)
unlocked >>>(显示unlocked表示已解锁)
unlocked >>> import_key “nathan” 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3 true(导入账号,账号需加英文引号,与资金私钥直接空一个英文空格,私钥与true之前有一个空格)实际命令为:
unlocked >>> import_key “账号” 私钥 true
升级账户,只有终生会员可以当见证人,所以需要将账户升级为终生会员,需要有充足余额。可以在UI上操作,也可以在命令行钱包里面操作,需要一定的BTS手续费,代码:
unlocked >>> upgrade_account my-account true ## my-account改成你的账号
unlocked >>> create_witness my-account “http://www.xxx.com/” true ## my-account改成你的账号,”http://www.xxx.com/”里面改成你的见证人主页
找见证人id和私钥,代码:
get_witness my-account
钱包反馈产生如下代码:
unlocked >>> get_witness my-account
{
“id”: “1.6.10”,
“witness_account”: “1.2.16”,
“signing_key”: “GPH7vQ7GmRSJfDHxKdBmWMeDMFENpmHWKn99J457BNApiX1T5TNM8”,
}

其中,“id”: “1.6.10”, 为你的见证人ID,每个见证人的ID是唯一的,需要记录下来。
使用suggest_brain_key生成全新的密钥对,显示的结果如下:
“brain_priv_key”: “FACADAL POOF FOXER MOUSE BANDOG CUBEB BRIERED NE JUTKA QUILLED TORIC GRYLLOS FLEAM LEEWILL PLENIST HUSBAND”
“wif_priv_key”: “5JtnWHxYMUD13sBPNMzprH1Z6r1nH3EWV1WeQXpAbsMLgxVt7tp”
“pub_key”: “BTS5s2iBiMeaCt96hoiAhQz94AqiPChTNF2YpYt6zJNNFJonhXPTF”
其中”brain_priv_key”为助记词,无需记录, “wif_priv_key”:为私钥, “pub_key”: 为公钥;我们记录下秘钥对,然后把我们的见证人出块公钥修改成生成的,命令行是:
update_witness 账号 “介绍链接” 出块公钥 true
注意空格,介绍链接可为空,为了让其他人能快速识别我们是谁,建议填写介绍链接是必要的;注意不要广播私钥出去,见证人信息广播出去之后,我们把出块的见证人信息配置进config.ini文件里面并保存。
witness-id = “1.6.XXX”
private-key = [“公钥”,”私钥”]
添加2行,其中witness-id为见证人ID,private-key填写你广播出去的见证人公钥及对应的私钥。
填写好之后,重新启动witness_node程序,等待投票激活节点。
注:关闭节点程序使用Ctrl+C命令,等待程序自然优雅的完成退出工作,如果强制中断会导致重启的时候数据扫描很长时间。编辑配置文件使用全英文符号。

原稿作者:小袁