chia区块链知识3: 自建节点

首先明确自建节点的目的:更快的连接官方节点,保持稳定快速的连接并保证第一时间同步到最高的区块高度。这其中,稳定第一!

详细的原理请见这篇文章:chia区块链知识:1 爆块的前提

关于自建节点服务器选择:最好选择连接官方节点速度快并且连接你本地速度也快的服务器,要不意义不大。比如你选择一台国内的云服务器做节点就意义不大,因为这台服务器虽然连接你本地机器的速度快了,但连接官方节点因为网络问题,不会太快。

服务器推荐

个人推荐使用日本或美国西部的GIA服务器,这两个地方是官方节点所在地,GIA网络连接国内也稳;其次IPLC专线也是一个选择。

目前CN2 GIA线路在日本地区接入宽带最大的商家是 Gigsgigscloud,这是一家注册在香港和马来西亚的网络公司,他们公司提供的日本GIA云服务器有两款,配置如下

CPU 1 vCoreCPU 2 vCore
RAM 1GRAM 2G
Storage 20G SSD RAIDStorage 30G SSD RAID
IP 1x IPv4IP 1x IPv4
Network 100Mbps CN2 GIANetwork 200Mbps CN2 GIA
Data Transfer 250 GBData Transfer 250 GB
Location Tokyo, JapanLocation Tokyo, Japan
48 美元/月 88 美元/月
年付还有一个17%的折扣。

至于美国西海岸的GIA线路服务器,我推荐我现在在用的Bandwagonhost家的,我使用它家的一台GIA服务器已经超过3年了,不管理机器稳定性还是网络稳定性,都让我满意。

它家最适合我们来搭建节点的套餐配置如下

SPECIAL 20G KVM PROMO V5
SSD: 20 GB RAID-10
RAM: 1 GB
CPU: 2x Intel Xeon
Transfer: 1000 GB/mo
Link speed: 2.5 Gigabit
Location1: Los Angeles, China Telecom IDC
$49.99 USD 季付
$89.99 USD 半年付(9折)
$169.99 USD 年付(8.5折)

SPECIAL 40G KVM PROMO V5
SSD: 40 GB RAID-10
RAM: 2 GB
CPU: 3x Intel Xeon
Transfer: 2000 GB/mo
Link speed: 2.5 Gigabit
Location1: Los Angeles, China Telecom IDC
$89.99 USD 季付
$169.99 USD 半年付(9折)
$299.99 USD 年付(8.5折)

Banwagonhost家有一个循环优惠码 BWH26FXH3HIQ 下单记得使用,可优惠7%左右。
以上链接为博主推介链接,通过此链接购买博主可获取佣金奖励,如介意请开启隐私模式购买。有你的支持,博主才能走得更远!

注意:官方建议FULL NODE的最低硬件要求是1核CPU,2G内存,所以以上两家商家的低价套餐不能够安装全节点,必须购买更高一档的套餐!但我们可以通下其它方式实现帮我们加速连接官方节点,下面我会在说怎么安装官方节点的同时也说说这种办法。两种办法没有优劣之分,都能实现帮我们快速连接官方节点的目的,区别只在于低配服务器没有运行节点,只是转发我们的连接请求到官方节点,高配主机运行全节点。对于CHIA网络来说,低配服务器的这种办法属于取巧,于整个CHIA网络无益(去中心化区块链项目都是节点越多越好的)。

如果你手里没有GIA的服务器,请先购买,GIA的商家有很多,我只推荐我用过认为可以且口碑也OK的机器。

使用日本CN2 GIA的服务做中转节点的话,连接官方节点延迟在60-80ms左右,丢包率全天平均低于0.1%。

使用美国西海岸GIA服务器做中转节点的话,连接官方节点延迟在160-180ms左右,丢包率全天平均低于0.1%。

机器开通后先去后台重装系统为ubuntu 20.04 LTS 64bit,拿到root用户密码开始下面的操作。

1 开始安装chia全节点Full node

SSH连接软件 MobaXterm 下载后解压,把MobaXterm exe执行文件发送到桌面快捷方式以便使用。

以下命令针对于ubuntu20.04 LTS系统,如果你是18.04LTS系统,需要先安装如下依赖项

sudo apt-get install python3.7-venv python3.7-distutils python3.7-dev git lsb-release -y
# 安装系统更新
sudo apt-get update
sudo apt-get upgrade -y

# 安装git
sudo apt install git -y


# 一般不建议使用root用户直接运行节点,我们新建一个普通用户
sudo useradd -m chia

# 使用这个用户登陆
su chia
cd ~

# 检查源码并安装,时间较长,耐心等待
git clone https://github.com/Chia-Network/chia-blockchain.git -b latest --recurse-submodules
cd chia-blockchain

sh install.sh

# 激活环境
. ./activate

# 初始化
chia init

#创建节点的私钥和公钥,我们不使用这个钱包,只是作节点,不需要记
chia keys generate

#启动节点,我们只是做节点,不需要钱包、农场啊这些东西。
chia start node

#稍等一会,查看节点状态
chia show -s

看到上面的提示就表示你的节点已经同步完成。

注意:同步会长时间占满1核CPU,如果你是廉价的低配服务器,注意TOS是否允许。

Tips: 可以通过下载已经同步好的区块数据库覆盖本机数据库以实现快速同步目的,以目前区块高度起码可以帮你节省一两天同步时间,而且大大减少占用满CPU的时间,简单说下

# 先停止节点
chia stop all
# 下载区块数据库,这是我自建节点的数据库,每天自动更新
wget http://node.skywing.me/chia%E5%8C%BA%E5%9D%97%E6%95%B0%E6%8D%AE%E5%BA%93/blockchain.tar.gz
# 解压文件
tar zxvf blockchain.tar.gz
# 重命名原有数据库
mv ~/.chia/mainnet/db/blockchain_v1_mainnet.sqlite ~/.chia/mainnet/db/blockchain_v1_mainnet.sqlite.old
# 移动下载的数据库去覆盖
mv blockchain_v1_mainnet.sqlite ~/.chia/mainnet/db/
# 启动节点
chia start node

后续我们登陆服务器,查看chia的状态应输入如下命令

su chia
cd ~/chia-blockchain
./activate

下面是一些常用的命令

# 查看节点状态
chia show -s

# 查看连接节点
chia show -c

# 连接到其它节点
chia show -a node.skywing.me:8444

# 启动节点
chia start node

# 停止节点
chia stop node

# 重启节点
chia start node -r

目前我安装的chia节点服务器貌似会自动更新版本,如果你的node不会自动更新,运行如下命令进行更新

su chia
cd ~/chia-blockchain
. ./activate
chia stop -d all
deactivate
git fetch
git checkout latest
git reset --hard FETCH_HEAD
sh install.sh
. ./activate
chia init
chia start node

2 不安装全节点直接转发流量到主网节点

此办法适合选择第一款套餐的朋友,也适用于内存在2G以下的其它低配服务器。

我使用gost来实现,下面开始教程

#下载gost执行文件
wget https://github.com/ginuerzh/gost/releases/download/v2.11.1/gost-linux-amd64-2.11.1.gz

# 解压文件
gzip gost*.gz -d

# 给于执行权限
chmod +x gost*

# 转移到/usr/bin方便后续使用
mv gost* gost

# 新建对于官网节点的转发
nohup gost -L=tcp://:8444/node.chia.net:8444 >> ~/gost.log 2>&1 &
# GIA流量贵且少,如不希望太多人连上来,可以把tcp://:8444 的8444端口改为其它端口,改了之后你连接的端口也需要相应更改

#监控连接状态,按ctrl+C退出
tail -F ~/gost.log

更新:因为未知原因,直接转发官方节点连接并不稳定,比较难连上,可以把上述转发命令改成转发到我的自建全节点,命令如下

nohup gost -L=tcp://:8444/node.skywing.me:8444 >> ~/gost.log 2>&1 &

现在这个转发官方节点的程序在后台运行,如需要杀死进程,命令如下

ps -ef | grep gost | grep -v grep | awk '{print $2}' | xargs kill -9

另外如服务器重启不会自动重启,会丢失连接,我们可以把它设置成开机启动项

# 新建启动脚本
cd ~/
vi gost.sh

# 会进入新的界面,按 i 复制粘贴如下内容

#!/bin/bash

nohup /usr/bin/gost -L=tcp://:8444/node.chia.net:8444 >> ~/gost.sh 2>&1 &

exit 0

# 输入好后按 esc 键退出编辑模式,再按 :wq 回车保存退出。

不清楚怎么使用 vi 的见下图

# 给于此启动脚本执行权限
chmod +x gost.sh

# 移动到开机启动文件夹
mv gost.sh /etc/init.d/

cd /etc/init.d

# 更新启动优先级
update-rc.d gost.sh defaults 90


# 后续如需删除开机启动,执行以下命令
update-rc.d -f gost.sh remove

至此搞定对于官网节点的转发加速。

3 windows下的节点服务器搭建

1 下载最新版chia安装包 目前是1.1.5

2 安装完成gui界面自动启动,我们不需要它,关掉

3 把chia的daemon文件夹加入系统 path ,方便后续使用

路径(1.1.5版)为  %USERPROFILE%\AppData\Local\chia-blockchain\app-1.1.5\resources\app.asar.unpacked\daemon

以后每次更新版本都要去path里更新路径

4 打开powershell ,运行如下命令

chia keys generate
chia start node

5 稍等片刻可以运行如下命令查看节点状态

chia show -s

如同步慢,可手动添加我的全节点以加快同步(非必需)

chia show -a node.skywing.me:8444

后续:windows server环境下一般都默认开启防火墙,记得去防火墙里放行8444端口。

尾巴

最后,预祝爆块!

原创文章,谢绝转载!如果你觉得本文有用,请分享其链接。

chia区块链知识3: 自建节点》有6个想法

  1. Pingback引用通告: chia知识3: 自建节点 – CHIA吧

  2. Pingback引用通告: chia知识:1 爆块的前提 – CHIA吧

  3. Pingback引用通告: chia区块链知识:1 爆块的前提-矿工区-CMS联盟-精品商业源码共享基地_提供一站式服务。

  4. Pingback引用通告: shia比特大陆树形结构未同步怎么办?-矿工区-CMS联盟-精品商业源码共享基地_提供一站式服务。

  5. Pingback引用通告: chia区块链知识:4 说一说chia的那些坑 - 天空的翅膀

  6. Pingback引用通告: chia区块链知识:1 爆块的前提 - 天空的翅膀

发表评论

邮箱地址不会被公开。 必填项已用*标注