您正在查看: Other Chain 分类下的文章

ETH 2.0技术调研

Chia 分布式部署详细文档

最近社区很多小伙伴来询问Chia分布式部署的方法,那我们今天就写一下Chia分布式的步骤以及测试环境验证

分布式的逻辑

其实前面已经写过部署的草稿了《Chia 分布式部署文档》,但是由于当时时间紧,对于没有开发基础的小伙伴理解上还是有些难度。
下面我们详细说下分布式拆分原理以及注意事项

下面是Chia架构模块结构


简单说每个模块都是单独的程序,都是通过TCP连接的,对于Chia Gui程序,默认运行是把各个模块都运行在本地,localhost连接的。对于分布式来说,就是把各个模块根据功能和负载等因素分不到不同机器。

模拟生产环境

由于plots存储量体量无上限,并且数据可重新生成,对于存储量和数据安全来说,优先选择存储量,所以单盘存储,不做raid。
对于专门做Chia挖矿的,一般的硬件配置是搞一部分配置稍微好的机器做P盘机(绘图机/work机..){稍后会专门写一篇推荐生产P盘配置的文章},一些二手的存储机做存储(服务器前部分是磁盘阵列),P盘机硬件配置存储部分只有SSD临时绘图用,最终的plots存储到存储机《为Chia P盘机器提供存储服务

此篇文章我们主要讲挖矿的分布式,对于P盘自动化,后面会有专门的程序和文章做讲解。

生产环境中,一般是把所有的机器放到一个IDC机房,或者自己来管理,所以模块内服务器都是内网连接,网络环境相对简单。

中控高度可控

对于系统化架构的设计大致如下,各模块彼此低耦合,对于一台机器只要装上中控子服务,配置好Chia中控调度地址,Chia中控调度服务会自动配置该机器的环境,并自动下发相应的任务,减少用户的学习成本。
也可以用于推广绘图算力和绘图存储,
用户只需要安装对应中控子服务(绘图/存储),Chia中控调度中心即可自动下发对应的任务,对于绘图任务类似POW,根据用户绘图量用户得到相应的奖励。
用户也可以选择存储任务,此时中控子服务会下发已经会好的图,用户无感知,只需要准备好足够容量的存储空间即可,子服务会自动安装好Harvester相关服务配置,中控调度只需要定时检查用户存储状态和网络环境,就可以根据工作量进行奖励发放。当然发放的可以别的链的对应代币,可以用于对冲推广代币等。
只是对调度服务的另一个使用场景吧,


后面社区也许会推出整体服务,暂时不确定

对于没有开发能力的,架构中的中控服务可以先用人工来代替

简化后架构如下


对于各模块的增改也先人工处理

实际测试

我们来演示最基础的分布式挖矿配置,一台挖矿服务器和两台存储服务器之前的配置,以及验证配置是否正确。

稍后继续补充

Chia 源代码编译安装

操作系统

Ubuntu 20.04

编译

sudo apt-get update
sudo apt-get upgrade -y

# Checkout the source and install
git clone https://github.com/Chia-Network/chia-blockchain.git -b latest
cd chia-blockchain

sh install.sh

. ./activate

# The GUI requires you have Ubuntu Desktop or a similar windowing system installed.
# You can not install and run the GUI as root

sh install-gui.sh

cd chia-blockchain-gui
npm run electron &

升级

cd chia-blockchain
chia stop -d all
deactivate
git fetch
git checkout latest
git pull

# If you get RELEASE.dev0 then delete the package-lock.json in chia-blockchain-gui and install.sh again

sh install.sh

. ./activate

chia init

# The GUI requires you have Ubuntu Desktop or a similar windowing system installed.
# You can not install and run the GUI as root

sh install-gui.sh

cd chia-blockchain-gui
npm run electron &

参考

https://github.com/Chia-Network/chia-blockchain/wiki/INSTALL#ubuntudebian

使用Chia Gui程序P数据的简单使用

下载 Chia GUI 程序

Windows下载地址: https://github.com/Chia-Network/chia-blockchain/releases/download/1.0.5/ChiaSetup-1.0.5.exe
然后安装完启动

启动程序


如果之前有创建过账户,则点击“自助记词中导入(24个词)”,如果没有的话,直接点击“创建一个新的私钥”

创建一个新的私钥


把助记词保存好,最好手抄到文件,存放到安全的地方
点击下一步,进入主程序

确认“连接状态”为“已连接”,对于“状态”刚开始运行时会显示“未同步”,稍微等等就好了.

开始P数据

点击“绘图”

点击“添加PLOT文件”

分别对各个选项做设置

1. 选择Plot文件大小

确认“选择Plot文件大小”选择的是“101.04GiB(k=32 ...)”
目前这个是主网最优的选项, 对于测试网可以选择“600MiB(k=25 ...)”

2. 选择要拓荒的数量

绘图数设置为 当前机器CPU 总核心数相等的数(即为2线程一个任务)
并选择“并发拓荒”

备注

如果想设置单线程跑一个任务,则点击“显示高级选项”,修改线程数量为1, 同时上一步中的绘图数设置为CPU核心数的2倍.

3. 选择临时目录

选择存放临时数据的存储目录
这个是P数据时计算需要的临时空间,这个存储需要较高的读写速度,不然严重影响P盘速度
单个任务大概需要304G空间.

4. 选择最终目录

选择最终P数据的生成位置,也就是单独的存储服务器的存储目录.
存储服务部署,可以查看《为Chia P盘机器提供存储服务