【云挖矿】如何利用云服务挖Chia(实操)

‍这是我用上面发布的确切脚本绘制新版本一天后的平均值。每台K = 32绘图以7.7小时并并行运行8台,该机器当前每天输出2.46TiB或2.7TB。每天2.5到3TB,取决于临时存储和其他调整,总费用不到1000美元。

如果效率X3呢?每天10T完美解决。

1、首先选择服务器配置,准备一台liunx系统的电脑,在本地或者用云服务器

2、磁盘的话,gp3是SSD,做临时文件盘,st1便宜,做最终存Plot文件的盘。AWS的EBS有个比较强大的地方,就是可以单独给磁盘配置IOPS和吞吐。比如我500GB的SSD,默认IOPS 3000,吞吐125MB,运行两个任务时,吞吐先到达瓶颈,这时候你可以动态提升吞吐值(当然也会有额外的费用)

3、云服务的购买及其选择这里不做讲解,liunx系统安装也不做讲解,不懂的可以自行百度。或者加入星球我会空闲会陆续更新。

4、操作系统这里划重点【如果你选择官方系统】,系统会检测你在使用挖矿程序,会对你进行封号拉黑处理,这里需要用到独立版Liunx系统(含有反监控技术 有效防止云服务厂商 封号 拉黑 限制等问题)

5、操作系统用默认的Amazon Linux 2 AMI (HVM)就好。用AWS Linux对非计算机专业的童鞋不是很友好,因为所有操作都是要用命令行的。

下面我会详细贴下步骤:

从笔记本电脑ssh进入(在Mac上为开放式终端,在Windows中为powershell)

ssh user@hostname (or ip address)

确保您的硬盘出现和格式目的地DRIVE

这是目标驱动器的最佳设置,可在极短的格式化时间内最大程度地提高存储容量效率,机器创建好后,注意配置下安全组,入方向TCP/UDP允许8444端口(到底是TCP还是UDP没具体研究)。远程登入你的主机:

sudo fdisk -l
sudo mkfs.ext4 -m 0 -T largefile4 -L /dev/sda

mkdir /mnt/hdd
mount /dev/sda /mnt/hdd

如果使用SATA build或2x消费类NVMe,则将驱动器一起RAID 0

sudo mdadm -C /dev/md0 /dev/sd[a,b,c] -n 3 -l 0 -c 64
sudo mdadm -C /dev/md0 /dev/nvme[1-2]n1 -n 2 -l 0 -c 64

格式临时驱动器

mkfs.xfs /dev/nvme0n1
or
mkfs.xfs /dev/md0
mkdir /mnt/ssd
mount -t xfs -o discard /dev/md0 /mnt/ssd

安装Chia

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

Checkout the source and install

git clone https://github.com/Chia-Network/chia-blockchain.git
cd chia-blockchain

sh install.sh

. ./activate

编辑权限(这不是最佳安全做法,但这应该在您的家庭网络中,而不是在远程位置。在这种情况下,需要不同的安全性)

mkdir /home/user/chialogs
chmod 777 /mnt/hdd
chmod 777 /mnt/ssd
chmod 777 /home/user/chialogs

sudo nano chia8.sh
粘贴以下内容,并编辑您的用户名,临时目录和目标目录名

按Ctrl + O保存,然后按Ctrl + X退出

https://plot-plan.chia.foxypool.io/找到最佳配置以最大程度地利用容量。此版本围绕8 k = 32旋转,这对于绝大多数用户来说是很好的选择。如果要在目标驱动器上获得超过99%的容量利用率,则需要混合使用k = 33和k = 34(完全可选!)

在运行脚本之前进行检查!!!

2、确保您的权限正确

ls -lh /mnt
您应该在安装目录的旁边看到类似这样的输出,用于chia, drwxrwxrwx

激活后,运行chia键-h以查看可用命令。您可以从24字种子中导入密钥,也可以生成一个新密钥。或者,如果您在另一台计算机上具有密钥,则可以使用公共农夫和池密钥进行绘图而无需生成密钥,有关更多信息,请在Wiki中使用脚本中的-f和-p以及相应的密钥。

https://github.com/Chia-Network/chia-blockchain/wiki/CLI-Commands-Reference

3、您的所有驱动器都已安装!!

df -h
我更喜欢duf,它是df的更好替代品,易于看到您的坐骑。如果您使用的是Ubuntu,则可以通过以下方式安装

sudo snap install duf-utility
或者

wget https://github.com/muesli/duf/releases/download/v0.6.2/duf_0.6.2_linux_386.deb

wget https://github.com/muesli/duf/releases/download/v0.6.2/duf_0.6.2_linux_386.deb
sudo dpkg -i duf_0.6.2_linux_386.deb

运行脚本!

sh chia8.sh
运行后,请确保没有权限错误,并且通过htop或类似方法监视进程,从而可以正确启动脚本。一切都在后台的屏幕中运行,因此,您可以很好地关闭笔记本电脑中的ssh,并且只要填充目标驱动器就可以让它运行。启动htop以确保您可以看到chia流程。

监控工具使用

sudo apt install nvme-cli dstat sysstat glances smartmontools lm-sensors
如果您在Ubuntu服务器上,则应该已经有htop,xfs和mdadm。如果您在Ubuntu桌面上,则也将需要这些。

sudo apt install htop xfsprogs mdadm
dstat,iostat,一目了然–使用此命令可以确保驱动器正在执行io。您可以监视IOPS,带宽和iowait之类的内容,以确保一切均以最佳状态运行

$ dstat
You did not select any stats, using -cdngy by default.
–total-cpu-usage-- -dsk/total- -net/total- —paging-- —system–
usr sys idl wai stl| read writ| recv send| in out | int csw
46 3 45 6 0| 456M 493M| 0 0 | 774k 873k| 14k 22k
61 4 27 8 0| 879M 135M| 382B 904B| 112k 424k| 19k 11k
66 2 30 2 0| 214M 382M| 186B 366B| 24k 340k| 10k 3228
65 3 29 4 0| 483M 220M| 126B 366B| 0 804k| 13k 6226
57 5 31 7 0| 735M 534M| 234B 358B| 48k 524k| 20k 13k
52 4 40 5 0| 608M 314M| 66B 366B| 44k 80k| 15k 7278
41 3 49 6 0| 720M 106M| 420B 408B| 104k 1068k| 15k 7554
44 2 49 5 0| 564M 123M| 126B 408B| 720k 44k| 12k 6401

htop –用于监视cpu和内存利用率

nvme或smartctl –用于监视SSD的温度(温度和警告温度时间)和续航时间(已用百分比)

$ sudo nvme smart-log /dev/nvme0n1
Smart Log for NVME device:nvme0n1 namespace-id:ffffffff
critical_warning : 0
temperature : 35 C
available_spare : 100%
available_spare_threshold : 10%
percentage_used : 2%
data_units_read : 388030535
data_units_written : 439131137
host_read_commands : 4408452345
host_write_commands : 5349591480
controller_busy_time : 3442
power_cycles : 46
power_on_hours : 2997
unsafe_shutdowns : 8
media_errors : 0
num_err_log_entries : 0
Warning Temperature Time : 1
Critical Composite Temperature Time : 0
Thermal Management T1 Trans Count : 0
Thermal Management T2 Trans Count : 0
Thermal Management T1 Total Time : 0
Thermal Management T2 Total Time : 0

检查CPU温度

$ sensors
coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +51.0°C (high = +80.0°C, crit = +100.0°C)
Core 0: +44.0°C (high = +80.0°C, crit = +100.0°C)
Core 1: +47.0°C (high = +80.0°C, crit = +100.0°C)
Core 2: +47.0°C (high = +80.0°C, crit = +100.0°C)
Core 3: +48.0°C (high = +80.0°C, crit = +100.0°C)
Core 4: +51.0°C (high = +80.0°C, crit = +100.0°C)
Core 5: +46.0°C (high = +80.0°C, crit = +100.0°C)
Core 6: +48.0°C (high = +80.0°C, crit = +100.0°C)
Core 7: +48.0°C (high = +80.0°C, crit = +100.0°C)

acpitz-acpi-0
Adapter: ACPI interface
temp1: +27.8°C (crit = +119.0°C)

和CPU频率

watch -n 1 “cat /proc/cpuinfo | grep MHz”

cpu MHz : 4235.305
cpu MHz : 4200.053
cpu MHz : 4232.139
cpu MHz : 4205.699
cpu MHz : 4241.188
cpu MHz : 4229.982
cpu MHz : 4283.402
cpu MHz : 4231.991
cpu MHz : 4251.913
cpu MHz : 4190.267
cpu MHz : 4279.481
cpu MHz : 4235.723
cpu MHz : 4205.051
cpu MHz : 4242.980
cpu MHz : 4198.080
cpu MHz : 4216.730

或者,您可以使用

sudo apt install cpufrequtils
cpufreq-info -f

它具有更多功能,但完全是可选的……内置工具可以正常工作

每天检查输出TiB / TB
Keybase上的@ericaltendorf已制作出plotman,这是一种用于自动进行绘图的工具。也可以在此构建中使用它来自动执行该过程(TBD在此处添加config.yaml说明)

有一个有用的工具称为“分析”,它可以分析日志文件的文件夹以获取总打印时间。

±----±-------------±-------------±--------------±------------±-------------+
| Key | phase 1 | phase 2 | phase 3 | phase 4 | total time |
+=+++=+=+============+
| x | μ=10.1K σ=1K | μ=5.9K σ=581 | μ=10.6K σ=475 | μ=1.2K σ=61 | μ=27.8K σ=2K |
±----±-------------±-------------±--------------±------------±-------------+

这是我用上面发布的确切脚本绘制新版本一天后的平均值。每台K = 32绘图以7.7小时并并行运行8台,该机器当前每天输出2.46TiB或2.7TB。每天2.5到3TB,取决于临时存储和其他调整,总费用不到1000美元。

您还可以从我们收集的日志中手动检查输出

$ cat /home/jm/chialogs/chia* | grep “Total time”
Total time = 18689.540 seconds. CPU (123.430%) Mon Mar 8 06:08:05 2021
Total time = 27624.331 seconds. CPU (126.370%) Mon Mar 8 13:58:35 2021
Total time = 27743.498 seconds. CPU (126.000%) Mon Mar 8 21:51:03 2021
Total time = 27605.858 seconds. CPU (126.150%) Tue Mar 9 05:41:38 2021
Total time = 27689.233 seconds. CPU (126.380%) Tue Mar 9 13:34:00 2021
Total time = 21243.992 seconds. CPU (123.490%) Mon Mar 8 07:50:39 2021
Total time = 27220.745 seconds. CPU (126.750%) Mon Mar 8 15:34:14 2021
Total time = 27251.753 seconds. CPU (126.500%) Mon Mar 8 23:18:43 2021
Total time = 27373.984 seconds. CPU (126.940%) Tue Mar 9 07:05:37 2021
Total time = 27739.977 seconds. CPU (126.730%) Tue Mar 9 14:59:00 2021
Total time = 23799.221 seconds. CPU (124.650%) Mon Mar 8 09:33:15 2021
Total time = 27088.447 seconds. CPU (127.080%) Mon Mar 8 17:14:33 2021
Total time = 26933.108 seconds. CPU (127.320%) Tue Mar 9 00:53:46 2021
Total time = 27275.458 seconds. CPU (126.310%) Tue Mar 9 08:39:05 2021
Total time = 25178.969 seconds. CPU (126.760%) Mon Mar 8 10:56:15 2021
Total time = 27201.988 seconds. CPU (127.280%) Mon Mar 8 18:39:33 2021
Total time = 27285.382 seconds. CPU (127.110%) Tue Mar 9 02:24:36 2021
Total time = 27098.957 seconds. CPU (127.160%) Tue Mar 9 10:06:58 2021
Total time = 26477.352 seconds. CPU (126.060%) Mon Mar 8 12:17:53 2021
Total time = 27705.813 seconds. CPU (126.120%) Mon Mar 8 20:09:40 2021
Total time = 27422.683 seconds. CPU (126.490%) Tue Mar 9 03:56:30 2021
Total time = 27471.681 seconds. CPU (126.310%) Tue Mar 9 11:44:29 2021
Total time = 27536.192 seconds. CPU (126.140%) Mon Mar 8 13:35:32 2021
Total time = 27771.750 seconds. CPU (126.260%) Mon Mar 8 21:27:58 2021
Total time = 27976.810 seconds. CPU (125.700%) Tue Mar 9 05:24:13 2021
Total time = 27767.981 seconds. CPU (126.300%) Tue Mar 9 13:17:15 2021
Total time = 27885.292 seconds. CPU (126.780%) Mon Mar 8 14:41:21 2021
Total time = 27917.716 seconds. CPU (126.770%) Mon Mar 8 22:43:29 2021
Total time = 27771.121 seconds. CPU (126.760%) Tue Mar 9 06:44:06 2021
Total time = 28240.464 seconds. CPU (126.380%) Tue Mar 9 14:54:48 2021
Total time = 27710.351 seconds. CPU (126.990%) Mon Mar 8 14:38:26 2021
Total time = 27946.248 seconds. CPU (126.210%) Mon Mar 8 22:40:53 2021
Total time = 27876.926 seconds. CPU (126.880%) Tue Mar 9 06:43:04 2021
Total time = 28150.070 seconds. CPU (126.150%) Tue Mar 9 14:52:09 2021

下面的例子将创建一个 k=32 的P盘文件,并使用 4GB (注意 - 不是GiB) 的内存。

chia plots create -k 32 -b 4000 -t /path/to/temporary/directory -d /path/to/final/directory

下面的例子将创建一个k=34图,并使用8GB的内存,2个线程和64个buckets。

chia plots create -k 34 -e -b 8000 -r 2 -u 64 -t /path/to/temporary/directory -d /path/to/final/directory

额外说明

在绘图过程中,第1阶段(正向传播)和第3阶段(压缩)往往花费的时间最多。因此,为了最大限度地提高绘图速度,-t和-2应该放在最快的硬盘上,而-d可以放在慢速硬盘上。

目前,绘图只使用1个CPU线程。因此,大多数Chia用户认为同时运行多个P盘程序可以显著提升效率。

在SSD固态硬盘上P盘比在机械硬盘上更快,这是客观存在的。然而,SSD的寿命明显有限,而且早期的Chia测试似乎表明,在SSD上P盘很快就会耗尽它们。因此,许多Chia用户决定在多个机械硬盘上同时并行P盘更 “绿色”。

P盘模式的设计是为了尽可能提高工作效率。然而,为了防止无休止算力攻击,农民不应该能够在平均爆块间隔内P好一个P盘文件。这就是为什么在主网上最小的k-size是k32。

P盘文件可用性校验

命令:chia plots check -n [num checks] -l -g [substring]

首先将在你的config.yaml配置文件中所设置的所有plot目录中查找。你可以用chia plots show检查这些目录。

-g 只检查 [substring] 目录或文件名包含大小写敏感的P盘文件。如果没有指定 -g,那么 config.yaml 中每个目录下的所有图都会被检查。

使用-g的例子

检查一个长目录名内的地块,如/mnt/chia/DriveA,可以使用chia plots check -g DriveA

检查只有k33地块可以使用 chia plots check -g k33

在2020年10月31日创建的检查小区可以使用 chia plots check -g 2020-10-31

-l 允许你通过 ID 查找重复的P盘文件。它检查config.yaml中列出的所有P盘文件保存目录,并列出所有以相同文件名结尾的绘图文件名; *-[64 char plot ID].plot。如果你只想检查重复的文件,你应该使用-l -n 0。

-n代表给出的challenges数量。如果你不包含-n整数,默认为30。例如,如果-n设置30,那么每个P盘文件将被检测30个challenges。challenges数从5(最小)到-n,而且不是随机的。

每个P盘文件都会接受每个挑战:

获取challenges的质量(是否有空间证明?你应该期望每个challenges有1个证明,但也可能有0个或1个以上的证明。)

如果有证明,则获得该challenges的完整证明。

验证完整校样的数量与预期质量校样的数量是否一致。

最后,你会看到一份报告,是最终的真实证明与预期证明的对比。

因此,如果-n是20,你会期望有20个证明,这取决于你的plot文件有多少。

使用 -n 10 或 -n 20 运行该命令对于一个非常小的检查来说是很好的,但实际上并不能给你提供很多信息,让你知道这些地块是否真的是高质量的。

可以考虑使用-n 30来获得更好的统计信息。

更多细节,您可以阅读 chiapos https://github.com/Chia-Network/chiapos/blob/master/src/prover_disk.hpp 中的 DiskProver 命令。

full proofs与expected proofs的比率意味着什么?

如果比率>1,说明你的P盘文件在这次的扫盘中比较幸运。

如果比率<1,你的P盘文件相对幸运值较低。

除非你的比值<0.70,否则你不应该真正关心这个问题。

理论上,比率>1的地块更有可能在区块链上赢得挑战。同样,比率<1的P盘文件获胜的可能性也会降低。然而,在实践中,这其实并不会有明显的影响。"P盘文件数量 "和 "k-size "在赢得爆块的影响因素要比 "每次挑战产生的证明 "大得多。因此,如果你的P盘文件检查比例小于1,不要担心,除非它们明显小于1。

下面是星球会员的兄弟实操分享,讲的比较白话一点:

一、chia相关工具安装与配置,我是根据星球硬盘挖矿工的文章攻略实操的,后面结果出来在大面积测试,目前只是流程走通了。

机器创建好后,注意配置下安全组,入方向TCP/UDP允许8444端口(到底是TCP还是UDP没具体研究)。远程登入你的主机:

ssh -i “aws-mark.pem” ec2-user@xxx-xxx-xxx-xxx.us-west-2.compute.amazonaws.com -o ServerAliveInterval=30
1、挂载申请的磁盘

列出磁盘状态

lsblk

格式化挂载上去的两个数据盘 比如格式化/dev/nvme1n1

sudo mkfs -t xfs /dev/nvme1n1

#创建文件目录
sudo mkdir /tmp1
sudo mkdir /data1

挂载

sudo mount /dev/nvme1n1 /tmp1
sudo mount /dev/nvme2n1 /data1

更改目录Owner,注意不改文件夹权限P盘的时候会报错

sudo chown -R ec2-user.ec2-user /tmp1
sudo chown -R ec2-user.ec2-user /data1

2、然后开始安装chia相关工具:

sudo yum update -y
sudo yum install python3 git -y

git clone https://github.com/Chia-Network/chia-blockchain.git -b latest
cd chia-blockchain

sh install.sh

. ./activate

注意". ./activate"这个一定不要打错,执行玩之后会进入一个python虚拟环境,如下所示,会有一个(venv)的前缀

3、首次安装,执行

chia init
做chia的初始化;因为我们之前已经生成过钱包密钥,所以这里不再生成,而是直接添加:

添加你的key(就是那20几个助记词)

chia keys add

官网上的指引,接下来会让你执行下面命令,但是这个在aws ec2上是不行的,印象中是缺少一个libtak什么的库,应该是跟GUI相关的

sh install-gui.sh
cd chia-blockchain-gui
npm run electron &

这里直接跳过上面这部,用命令行启动:

chia start farmer
这个命令会把full-node、farmer、harvester、wallet都启动,参考:github.com/Chia-Network

这个命令可以查看下钱包,核对下跟你之前的指纹是否一致

chia wallet show

二、开始p盘
上面的走完了,P盘其实是最简单的。参考我的p盘命令

nohup chia plots create -k 32 -b 4000 -r 2 -n 6 -t /tmp1 -d /data1 >> plots2.log 2>&1 &
-b就是使用的缓存大小(MB),我的系统是16GB的,所以我运行了两个任务,一个-b 8000,一个-b 4000,留一部分内存给其他进程。

-n 6就是要连续制作6个plot文件

-r就是并发线程,官网说默认2就比较好了,具体没研究。

-t /tmp1,临时盘的目录地址

-d /data1,最终存储plot文件的地址

nohup这个是为了让进程后台运行,我第一运行的时候,远程cli退出,这个进程就退了,p盘到一半,任务全白做,要重新P。

1、P好之后就会出现.plot文件了

chia farm summary
2、查看farm情况,可以看到plot count已经是1了

3、如果不放心,可以时不时看看进程是否还在run

ps -ef | grep chia

剩下的时间,就继续不停P盘,看看能不能中奖了,流程是走通了,谢谢硬盘挖矿工的分享,接了矿池后还是有点收益的。

最后家里个人电脑还是要搞起走滴如图:

最后:不同于比特币经典的总量受限设计,Chia项目选择了一种非常规的发行方案,其原生代币XCH没有上限,而是选择了一种可预测、持续的通胀替代方案,另外,该公司还预挖了2100 万 XCH,这是该公司在最近的商业白皮书中透露的,这也引起了很多人的不满,以当前XCH IOU市场价1300美元计算,这预挖的XCH部分便有了273亿美元的天价估值。

本文链接:http://www.28u.net/mine/10.html

上一篇:区间最值查询


下一篇:ST算法_解决RMQ(区间最值)问题