1. 文章摘要
铂链(Bottos)是国内首个基于区块链技术的数据共享、AI模型共享生态一站式应用平台,是实现将数据和模型通过点对点网络进行登记发行、转让交易的去中心化网络共享协议。
【本文目标】
辉哥要通过五节课程,把铂链从环境搭建到DAPP开发等基本功能讲透。
本文是铂链系列课程的第二节课,通过本文阐述,可以学习如何在已部署铂链环境的系统上运行本地节点,或者连接到测试网络。
不了解如何配置铂链环境的可参考文章《铂链第1课 如何在WINDOWS操作系统下搭建BOTTOS开发环境》。
【技术收获】
(1)启动单节点
(2)正常退出节点
(3)连接到测试网络
(4)查看铂链全网节点的方法
2. 启动单节点
查看铂链的GITHUB (https://github.com/bottos-project/bottos/tags),获取其最新的工程版本。方法如截图:
从截图课件,辉哥操作时的最新版本为bottos3.5版本,该版本在2018年圣诞节发布,是BOTTOS第一个上主网的版本。
进行以下操作:
cd ~/go/src/github.com/
wget https://github.com/bottos-project/bottos/releases/download/tag_bottos3.5/bottos_ubuntu_v3.5.tar.gz
tar zxvf bottos_ubuntu_v3.5.tar.gz
cd bottos
【提示】
GITHUB下载链接最终被指向了Amazon的服务器,从国内访问Amazon可能会非常慢。这是可以登录VPN后,直接在HTTP下载再上传到对应目录。
https://github.com/bottos-project/bottos/releases/download/tag_bottos3.5/bottos_ubuntu_v3.5.tar.gz
【记录的3.4版本的成功输出结果】
duncanwang@ubuntu64bit-server:~/go/src/github.com$ https://github.com/bottos-project/bottos/releases/download/tag_bottos3.5/bottos_ubuntu_v3.4.tar.gz
-bash: https://github.com/bottos-project/bottos/releases/download/tag_bottos3.4/bottos_ubuntu_v3.4.tar.gz: No such file or directory
duncanwang@ubuntu64bit-server:~/go/src/github.com$ wget https://github.com/bottos-project/bottos/releases/download/tag_bottos3.4/bottos_ubuntu_v3.4.tar.gz
--2018-12-21 09:21:25-- https://github.com/bottos-project/bottos/releases/download/tag_bottos3.4/bottos_ubuntu_v3.4.tar.gz
Resolving github.com (github.com)... 13.250.177.223, 52.74.223.119, 13.229.188.59
Connecting to github.com (github.com)|13.250.177.223|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://github-production-release-asset-2e65be.s3.amazonaws.com/128145034/c3817200-fd33-11e8-8ae3-8c325261d1d5?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20181221%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20181221T092126Z&X-Amz-Expires=300&X-Amz-Signature=1c0acf473aee92de91d5e9466408e3962c507302ea6ee0d52570722913b174ed&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dbottos_ubuntu_v3.4.tar.gz&response-content-type=application%2Foctet-stream [following]
--2018-12-21 09:21:26-- https://github-production-release-asset-2e65be.s3.amazonaws.com/128145034/c3817200-fd33-11e8-8ae3-8c325261d1d5?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20181221%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20181221T092126Z&X-Amz-Expires=300&X-Amz-Signature=1c0acf473aee92de91d5e9466408e3962c507302ea6ee0d52570722913b174ed&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dbottos_ubuntu_v3.4.tar.gz&response-content-type=application%2Foctet-stream
Resolving github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)... 52.216.101.179
Connecting to github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)|52.216.101.179|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 14745605 (14M) [application/octet-stream]
Saving to: ?.ottos_ubuntu_v3.4.tar.gz?
bottos_ubuntu_v3.4.tar.gz 100%[======================================================================================================>] 14.06M 2.20MB/s in 14s
2018-12-21 09:21:41 (1.03 MB/s) - ?.ottos_ubuntu_v3.4.tar.gz?.saved [14745605/14745605]
...
duncanwang@ubuntu64bit-server:~/go/src/github.com$ tar zxvf bottos_ubuntu_v3.4.tar.gz
bottos_v3.4/
bottos_v3.4/genesis-testnet.toml
bottos_v3.4/genesis.toml
bottos_v3.4/config.toml
bottos_v3.4/config-testnet.toml
bottos_v3.4/bottos
bottos_v3.4/bcli
然后启动Bottos单节点。
./bottos --delegate=bottos --enable-wallet
--delegate:指定区块生产者的Account;
--enable-wallet:指定链启动时把wallet服务一并启动;
【说明】 在重新启动本地节点前建议运行rm -rf datadir,删除下节点旧数据。
节点启动成功的操作命令和输出结果:
duncanwang@ubuntu64bit-server:~/go/src/github.com$ cd bottos
duncanwang@ubuntu64bit-server:~/go/src/github.com/bottos$ ./bottos --delegate bottos --enable-wallet
InsertBlock, number:1, time:2019-01-05 05:06:06, delegate:bottos, trxn:0, hash:c5ab0b995b95624021aa9bc9767038345a78d194e9e0543ea93d71ca92ac81b1, prevHash:caf2bae84f70412354211dd5028142eca6901b06b9a65dfbe9df065bcf56e291, version:1.0.0
InsertBlock, number:2, time:2019-01-05 05:06:09, delegate:bottos, trxn:0, hash:115167cfa97bd3d0eb494ef84ba90cc3f1ed5829a2fb14989415f5d9f5853593, prevHash:c5ab0b995b95624021aa9bc9767038345a78d194e9e0543ea93d71ca92ac81b1, version:1.0.0
InsertBlock, number:3, time:2019-01-05 05:0
重启常见问题
(1)关闭虚拟机后无法正常重启节点
【问题描述】
辉哥关闭虚拟机后,重启系统后,启动节点,发现本地开发节点无法重启。
查看进程发现节点不存在。
【分析及解决办法】
铂链v3.5版本目前必须在进程退出前使用kill -2删除进程再关闭虚拟机,才不会重启异常。
【紧急应对】
这次只有删除datadir目录,就可以正常启动节点了。同时还要删除~/bot下的*.keystore文件。
但是删除datadir目录和钱包目录意味着配置的账号和节点数据全部丢失了,需要重头开始配置账号和钱包。
【规避方案】
kill -2删除bottos节点进程再关闭虚拟机。
3. 正常退出本地节点
目前(bottos v3.5版本)版本下,需要谨慎操作退出节点,下一次系统重启后才可以在不删除上次数据的情况下重启节点。
在另外一个命令窗口查看进程,如下:
duncanwang@ubuntu64bit-server:~/go/work/contract-tool-cpp/testHelloWorld$ ps -ef|grep bottos
duncanw+ 6201 6141 1 03:36 pts/1 00:00:29 ./bottos --delegate bottos --enable-wallet
duncanw+ 6366 1827 0 04:12 pts/0 00:00:00 grep --color=auto bottos
采用kill 2的方式杀死bottos进程,大妞妞警告不可使用kill 9方式。
duncanwang@ubuntu64bit-server:~/go/work/contract-tool-cpp/testHelloWorld$ sudo kill 2 6201
[sudo] password for duncanwang:
4. 加入已存在的测试网络
连接到测试网络,可以同步测试网络节点数据,参与测试节点挖矿,但前提条件是该节点有足够的硬盘空间,有外网IP。
4.1 局域网电脑加入测试网络配置
一般开发者的本地节点其实是无同步测试节点的需求的,要发布智能合约到测试网络有单独的命令,这将在下一节做介绍。
如果有在局域网的电脑要加入测试节点,则需要内网IP映射到外网,需要路由器支持该功能。
更多帮助参考文章 内网ip映射到外网。
4.2 已启动单节点配置修改
将已经启动的单节点连接到Bottos测试网络,需要做一些配置。
修改~/go/src/github.com/bottos/bottos/config-testnet.toml文件:
P2PServAddr: 修改成当前节点的外网IP
P2PServAddr = "112.124.104.209" // 修改成当前节点的外网IP
然后运行如下命令即可将当前节点连接到测试网络。
注:如果项目目录下有datadir缓存目录,我们首先需要运行如下命令删除缓存
rm -rf datadir
启动节点,连接到测试网络
./bottos --config="./config-testnet.toml" --genesis="./genesis-testnet.toml"
等一会儿如果出现大量如下打印信息,说明在自动同步区块.已经成功连接到了测试网络。
CommitBlock by p2p: lib: 1
InsertBlock: number:1, delegate:bottos, trxn:0, time=1537888767, hash: 03f6c7aa72314be76902b6c2d4b86b7afbb07d2b4b4dec67caf6fc51e125e9ed, prevHash=98128aa21d634eda9cb0152314b06480d4c51b0bf18ea6d39f5189388e1bf4ee
CommitBlock by p2p: lib: 2
InsertBlock: number:2, delegate:bottos, trxn:0, time=1537888770, hash: c87a1c59aaa87f890169a1016931b3a9e539e72e475c0861623ed36fbd00c1b4, prevHash=03f6c7aa72314be76902b6c2d4b86b7afbb07d2b4b4dec67caf6fc51e125e9ed
CommitBlock by p2p: lib: 3
InsertBlock: number:3, delegate:bottos, trxn:0, time=1537888773, hash: 3bcf9ecf116891b226b2c6b31578d5f1ee867a75b667752286eeaf3d237e684b, prevHash=c87a1c59aaa87f890169a1016931b3a9e539e72e475c0861623ed36fbd00c1b4
CommitBlock by p2p: lib: 4
5.铂链节点列表
点击下面链接可查看铂链区块和节点部署情况。
http://exblock.bottos.org:8888/#/home
http://explorer.chainbottos.com/#/nodes/index
6. 参考
(1)安装运行Bottos
(2)铂链GITHUB工程
(3)铂链节点列表