给Gigahorse的Windows钱包加个图形界面使用

经过多个群友实测钱包尚不完善,启动频繁失败问题无法解决,等作者完善后再尝鲜或者试试Linux版本。

mmx压缩图方案的最后一个模块——Windows版本的定制奇亚钱包已经发布,但它仍然是命令行版本,本文介绍用ForkFarmer给它加个图形操作的界面。

注意 :

mmx提供的这个定制钱包跟奇亚官方钱包默认会冲突,只能运行一个,该定制钱包能完全替代官方钱包的功能;

如果害怕弄不好把奇亚官方钱包的数据也破坏掉,建议完整备份C:\Users\用户名\.chia\mainet整个文件夹;

ForkFarmer简单说就是一个集中管理奇亚和奇亚山寨币的统一客户端,不用逐个启动山寨币的钱包管理维护。

一、准备工作

  1. 下载gigafarmer-win-pfu-v2.zip工具包,解压在P夫的文件夹内(非常重要,除非你自己会搞定Java运行环境);
这四个文件就是本文会用到的

2.初始化奇亚客户端的mainnet目录。

如果本机已经运行过官方钱包,那么在一定已经存在 C:\Users\用户名\.chia\这个文件夹,建议关闭官方钱包,将.chia重命名成.chia2,一旦mmx定制钱包不想用了可以直接恢复到官方钱包的状态。

双击【生成mainnet】即可在C:\Users\用户名 目录下生成.chia文件夹。

3.双击导入助记词,如果直接使用原来的mainnet可以跳过本步。

将助记词的24个单词粘贴到key.txt内,双击【导入助记词.bat】后即可导入,关闭该命令窗口即可。

准备工作结束。

二、使用ForkFarmer

1、双击【启动ForkFarmer.bat】即可启动ForkFarmer图形程序。

界面上可能会显示已识别到的奇亚程序,可以右键-【操作】-【隐藏币种】将它隐藏,因为它识别到的是官方程序不是我们需要的。

2、在界面右键【配置未识别币种】,在弹出的窗口中分别配置如下内容:

假设你本机的P夫的文件夹在D盘:D:\pfu-plotter-Windows-v1.4.9

【config所在目录】C:\Users\<你的系统用户名>\.chia\mainnet\config\config.yaml

【exe所在目录】D:\pfu-plotter-Windows-v1.4.9\chia-gigahorse-farmer\chia.exe

【日志所在目录】C:\Users\<你的系统用户名>\.chia\mainnet\log\debug.log

填好后点击确定保存如下图界面,会提示重新启动软件生效,按要求重启。

3、区块数据库导入

如果是新生成的mainnet里面db是空的,需要从头同步区块db,此时可以从自己原来的mainnet/db目录拷贝数据到C:\Users\<你的系统用户名>.chia\mainnet\db里。

如果就是想从头开始同步数据,跳过此步。

4、启动mmx专用钱包

如果第二步里添加的数据没错,通过右键【操作】-【启动】即可启动钱包了。

软件界面刷新较慢,如果钱包正在同步红色圆点会变成橙色,同步成功会变成绿色。

首次启动防火墙提示请【允许访问】。

由于我已经事先同步完成,状态圆点已经变成绿色,挖矿状态:Farming 表示正在挖矿中,到此已经把mmx的专用钱包启动了。

5、把农田目录配置到钱包中

第一种方法:去原来奇亚mainnet/config/config.yaml里面拷贝原来配置好的图目录粘贴到新的config.yaml中。

第二种方法:在界面右键【查看】-【打开命令行】,在cmd窗口内输入下面命令即可添加一个图目录。

chia plots add -d D:\plot

第三种方法:编辑目录内提供的【批量添加图目录.bat】脚本,把所有目录按此编辑好后双击运行即可批量导入。

chia-gigahorse-farmer\chia plots add -d D:\
chia-gigahorse-farmer\chia plots add -d E:\

三、其他常用操作

1、在币数据行上右键【查看】-【查看日志】/【查看配置文件】,能实时查看日志和配置文件。

2、软件底部能看到钱包的余额变动情况,还能直接操作转账。

四、常用命令

在列表里的币数据行上右键【查看】-【打开命令行】,所有的操作都可以在这个命令行内完成。

chia plots show 查看所有已识别的图

检测某个图的有效性:chia plots check -g 图文件名(可以只填部分字母,会自动模糊匹配)

添加图目录:chia plots add -d E:\

删除图目录:chia plots remove -d E:\

查看挖矿状态:chia farm summary

添加节点:chia peer -a full_node ip:port

查看同步区块高度:chia show -s

查看已连接的节点IP:chia peer -c full_node

查看钱包余额:chia wallet show -f 指纹

Win系统用wsl运行mmx的奇亚的锄头

Gigahorse显卡P图已经支持奇亚,锄头暂时只有Linux版本,本文使用Windows的Linux子系统功能运行该Linux版本锄头来挂奇亚的压缩图。

本文方法可以继续参考、脚本也能继续用,但是下载链接中的chia-giga-farmer程序已经是老版本,目前win版本已经基本能用,不建议新手继续尝试wsl。

一、准备工作

注意wsl内访问Windows系统磁盘的路径默认是/mnt,假如想配置图目录 C:\MMX\11 配置到锄头内要设置成 /mnt/c/MMX/11
  1. 下载程序包 https://file.c4dig.cn/wsl-gigafarmer2.zip,解压在D盘(别放桌面,一会不好找),解压后就是:D:\wsl-gigahorse-farmer。(注意不要嵌套双层wsl-gigahorse-farmer目录,否则变成了D:\wsl-gigahorse-farmer\wsl-gigahorse-farmer)
  2. 开启Windows的WSL功能,然后打开windows应用商店Microsoft Store搜索ubuntu,下载Ubuntu22.04
  3. 将本程序包解压在D盘(别放桌面,一会不好找),解压后就是:D:\wsl-gigafarmer
  4. 打开D:\wsl-gigafarmer\plot-dir.txt,把所有的图目录配置在里面
  5. 打开D:\wsl-gigafarmer\key.txt文件,删除原有的例子。把自己的助记词的24个单词复制进去,保存关闭。
  6. 用文本编辑器打开 pfu.sh脚本 ,修改首行代码chia_root变量值,该变量用来定义锄头的mainnet路径,找一个大于150GB的SSD给它用。这里举例用D:\abc\mainnet chia_root设置成/mnt/d/abc/mainnet,假如是F盘就设置成/mnt/f/mainnet
  7. 启动WSL的Ubuntu22.04,首次需要初始化账户和密码,按提示操作即可。
  8. 依次执行下面两条命令,不包括冒号
第一个命令将d盘的锄头程序拷贝到Ubuntu中: cp -rf /mnt/d/wsl-gigafarmer ~                      
第二个命令启动自动化脚本: ~/wsl-gigafarmer/pfu.sh

执行成功后能看到如下的界面,开始进行下一步初始化系统。

二、初始化系统( 初始化操作系统、锄头客户端、导入助记词)

初始化系统和锄头:在脚本界面,依次输入并执行这几个批处理命令:initf、initm、initk、initp。

  1. initf:不必多次执行,用来初始化操作系统和锄头的依赖库
  2. initm: 初始化奇亚的mainnet,一定要提前编辑pfu.sh里面的chia_root变量值为你想要设置的mainnet路径
  3. initk:导入助记词,中间会出现提示让输入内存,直接回车跳过即可。
  4. initp:将plot-dir.txt内配置的图目录添加到锄头。

三、锄头相关操作

启动锄头:继续在pfu.sh脚本内输入start回车 启动锄头,或者在wsl操作系统的命令界面输入:cd ~/wsl-gigafarmer/chia-gigahorse-farmer && ./chia.bin start farmer -r 回车。

停止锄头:继续在pfu.sh脚本界面输入stop 回车 或者在wsl的系统命令界面输入:

cd ~/wsl-gigafarmer/chia-gigahorse-farmer && ./chia.bin stop all -d


查看锄头的运行日志:输入log 回车(可以启动多个wsl窗口,一个专门看日志,一个用来操作)
查看挖矿状态(包括同步状态等):输入3回车

正常能够看到下图的内容,Farming status : syncing (正在同步区块) farming(挖矿中)

Total size of plots能看到已经挂上的农田总量

导入下载好的区块db

  1. 先用上面的方法停止锄头
  2. 清空1.6中自己设置的锄头mainnet目录D:\abc\mainnet\db下面的所有文件
  3. 将下载的奇亚db或者自己原来就有的mainnet/db下面的所有文件拷贝到D:\abc\mainnet\db下面
  4. 重新启动锄头

四、其他日常操作

1、启动自动操作的脚本:
~/wsl-gigafarmer/pfu.sh

2、查看锄头运行日志:
用1的方法先启动脚本,输入log回车
取消查看日志按:ctrl + c (没错就是[复制]的快捷键)

3、查看锄头状态
用1的方法启动脚本,输入3回车

2、添加一个农田目录到锄头
cd ~/wsl-gigafarmer/chia-gigahorse-farmer && ./chia.bin plots add -d /mnt/f/plot
该命令是把F:\plot加入到锄头的农田目录,当然最方便是去mainnet/config/config.yaml里面直接修改

3、从锄头移除一个农田目录
cd ~/wsl-gigafarmer/chia-gigahorse-farmer && ./chia.bin plots remove -d /mnt/f/plot

4、矿池操作
稍后再写

五、已知问题

mainnet目录设置在外部ntfs磁盘上时候,奇亚会提示以下权限过大的问题,忽略即可。

NoSSD P图时使用SSD损耗大吗?

损耗非常小,比起madmax等传统P图工具的损耗量简直不值一提。

结论:NoSSD的P图任务(非压缩)对SSD读写消耗量跟分配的内存成反比,内存越多损耗越少。

测试用例还没全部完成。等待后续更新

测试数据

P图总数量10101010.4(注1)
P图任务数2222
压缩任务数0000
压缩等级5555
P图任务内存200GB122 GB
(默认)
61 GB12 GB
SSD总写入量测试中1330 GB4056 GB9466 GB
平均单个图写入测试中约88 GB约 365GB约900 GB
SSD总读取量测试中0 GB2743 GB约 8000 GB
平均单个图读取量测试中0 GB约274 GB约 800 GB

注1:测试完10个图后又多p了0.4个图左右。

P夫v1.4.1以及之前版本的NoSSD参数详解

从v1.4.2开始大幅精简NoSSD的创建任务界面,更简单直观。请下载最新版使用!

二、NoSSD的关键参数解析

下图是创建NoSSD的任务界面,左侧红框中全部都是针对P图进程(根据模式决定,不一定只P图)任务的参数,右侧红框【额外压缩任务】进程没有那么多自定义参数。

1、压缩等级:压缩程度,建议默认最高等级5。

数值越大压缩程度越大,可存图越多,收益越多,对挂盘机CPU性能要求越来越高,对CPU要求是根据压缩等级和挂图数量两个因素决定的。

2、P图任务工作模式

  • 【只P图】:强烈推荐!该P图任务只产出spt格式粗压图。该模式可选创建一些【额外的压缩任务】用来协同工作,P图任务负责产出spt,额外的压缩任务负责压缩这些spt为fpt。
  • 【只压缩】:创建的任务就是个普通的压缩任务,跟「额外压缩任务」创建的压缩进程功能一样。只将最终目录里现有的spt压缩成fpt,此时P图参数会有对应限制。内存允许范围[2,4]、CPU不允许调整、挂盘数不允许调整。
  • 【P图&压缩】NoSSD默认工作模式,先P出spt粗压图将最终目录装满,再逐个压缩成fpt。

3、P图任务:并发的NoSSD P图任务数量,不包括压缩任务。

4、额外压缩任务:并发P图流程的关键参数,设置后将创建指定数量的独立的压缩进程,这些压缩进程时刻监控P图程序产出的spt,发现后立即进行压缩。

压缩进程监控范围是所有最终目录,如果有替身盘则监控替身盘。

压缩任务数量只要能及时处理掉新P出来的spt图即可。

好在它们监控状态不消耗系统资源,压缩时每个任务需要1个CPU核心和1.6GB~4GB内存(低于1.6GB无法运行)。

你可能会问这些额外的压缩任务跟直接创建「只压缩」模式的P图任务有什么不同?他们功能完全相同。

5、每个P图任务内存强烈建议提前规划好任务数量和每个任务的内存大小,手动指定具体数值,否则极有可能导致某个任务申请不到最低运行内存而报错。

在NoSSD内核中,如果内存足够大P图任务默认会申请123GB内存,P图任务最低内存要求是2.72 GB;压缩任务默认申请4GB内存,压缩进程最低内存要求1.6GB。

6、每个P图任务CPU:P图任务间歇性使用CPU,所以不必均分CPU核心给各个任务,可适当调高。

在NoSSD内核中每个P图任务默认使用一半的CPU核心,每个压缩任务默认使用1个核心。

7、每个P图任务挂盘数这是影响性能的关键参数,一定要给P图任务分配至少3个机械盘,推荐5个。

8、填充辅助目录强烈建议给P图任务设置辅助盘,想把机械盘完美装满就必然要借助外部空间,这就需要提供除了最终目录以外的一个独立磁盘(或目录),这个磁盘至少要有410+GB空间用来生产fpt文件。

但是并不是一定要配置该参数,如果任务最终目录里面有替身盘、有未被P图任务挂上的最终目录、都会被P夫拿来作辅助盘使用,此时不配置【填充辅助目录】也是可以的。

可以用系统盘的某个目录、单独的机械盘、SSD都可以。

NoSSD默认会将机械盘P满spt,保证第一时间形成算力获得收益,这是不错的机制,但是P出最终的fpt图装满机械盘的过程就比较曲折,逐个压缩这些spt为fpt,挤出来空闲空间再重新P图直到把硬盘的装满fpt文件,机械盘大概率会剩余一个spt无法解决(当然有时候磁盘剩一个spt无所谓,即使把它压缩了也无法再多存一个图,P夫填充磁盘时候会根据实际情况决定是否压缩最后一个图)。

9、最终目录:就是存图的机械盘,盘的数量决定了并发任务数量。

假如有8个机械盘(最终目录),【每个P图任务挂盘】设置为5,【P图任务】设置为4,此时因为没有足够的机械盘只会创建2个P图任务。

如果想开3个并发P图任务,每个任务4块盘,总共能挂12块盘,如果有SSD或者其他盘建议也加到最终目录里面,12块盘之后又加了两个SSD在最后,那么最后这两个SSD就会在前面12个盘全部被NoSSD P满时最后填充时充当辅助盘。

【填充】是指NoSSD会剩余一个最大达225G的tmp和1个spt在盘里,P夫在最后会想办法全用fpt装满磁盘,这就需要借助外部磁盘实现。首先会寻找替身盘当辅助盘、其次是P图任务没挂上的机械盘、最后是任务中的某个机械盘。所以最差的情况是P图任务下的N个盘中有N-1个盘完美装满了fpt,还有一块盘会剩下spt。

10、替身SSD:虽然称为SSD,配置一个高速机械盘也是可以的。加上这个功能是因为NoSSD在P图和压缩对SSD的损耗极少(有待更多数据验证)。

它代替机械盘进行P图和压缩,只将最终的fpt文件拷贝到机械盘(是压缩成fpt再拷贝,还是一边压缩一边导出是可配置的)。为体质参差不齐的机械盘提供P图速度保底;并且有了替身盘直接就可将机械盘装满fpt而不必像原生NoSSD那样剩余NoSSDChiaPool.tmp、spt文件之后再由P夫逐个填满。

单个P图任务写入速度大概270+MB/s,压缩任务可能有130+MB/s,可以将一个SSD分配给多个机械盘当替身,建议普通sata接口的SSD不要给超过2个任务做替身,m2或者企业固态请根据SSD读写能力自行决定数量。

一个替身目录极端情况会有三个进程同时读写,1个P进程P图、1个压缩进程压缩、1个剪切图的进程往机械盘拷贝fpt,(剪切图进程和压缩进程在勾选【从替身直接压缩到机械盘】时不会同时存在)。

11、从替身直接压缩到机械盘:建议默认勾选即可。

该功能只对有【替身SSD】的最终目录生效,强烈推荐勾选,替身盘中的spt文件压缩同时导出在机械盘,免去了在替身盘中压缩后再次剪切的步骤,避免浪费时间。

三、NoSSD参数例子

样例1,该例子仅用作参数介绍,不是P图参数建议!!!

主机物理内存512,CPU核心128,19个物理机械盘

4个P图任务需要内存 4 x 90 GB = 360 GB,6个压缩任务需要内存 6 x 4 GB = 24 GB,这要求主机要有至少360 GB + 24 GB=384GB空闲内存。

能开4个P图任务的前提是要有足够多的机械盘,【每个P图任务挂盘】5个,最多需要20个盘,最少需要16个,硬盘<=15只会创建3个P图任务,此例子中每个任务的挂盘数就是:5、5、5、4。

例子2:主机CPU64核心、128GB内存、18块机械盘,想开2个并发P图和4个压缩,如何设置?

例子2的创建任务确认提示:

四、一些已知问题:

  1. NoSSD内核有时候无法申请到【已缓存】状态的系统内存导致任务实际使用的内存远低于系统可用的内存。

批量清除Linux下机械盘的5%预留空间

Linux默认会给磁盘预留5%空间,原本能存100个图现在只能存95个,对于P图存图肯定不希望这样。我已经将清空预留空间操作写成自动化脚本,运行下面一条命令即可自动清除所有机械盘的预留空间。

wget https://file.c4dig.cn/pfu-plotter/others/clearDiskReservedBlock.sh -O a.sh && chmod +x a.sh && sudo ./a.sh

P夫的NoSSD压缩图参数详解

P夫1.4.0开始集成了NoSSD的P图和挂盘挖矿。作者进行了大量的测试,在流程方面做了很多工作尽可能地提高单位时间产出效率和自动化。

更新记录:

2022年12月8日 第二版

2023年1月12日 第三版 适配1.4.8版本

之前版本请访问《P夫v1.4.1以及之前版本的NoSSD参数详解》

一、先了解NoSSD的P图程序

NoSSD的P图流程跟传统P图流程完全不同,总共分为了两步,第一步先P出一个spt格式粗压图,第二步将spt进一步压缩成fpt格式的最终图。在P夫里第一步被称为「P图」、第二步称为「压缩」,本文中「P图」有时候也笼统表示广义上的P图+压缩。

P图阶段需要大量CPU和内存,压缩阶段同样需要大量CPU和2~4GB内存。默认情况P图和压缩是串行状态,将P图和压缩两个阶段分开后同时执行是提高效率的有效办法。P夫里最重要流程优化就是可以随意指定两种并行任务数量。

串行任务在后半段系统资源浪费严重
并行方式能保持全程资源高使用率

总结加快P图速度的核心思路

  1. P图和压缩分开进行
  2. 多开P图任务
  3. 每个P图任务至少给搭配3块机械盘,没那么多机械盘用SSD替身来取代
  4. 用SSD替身能将速度最大化

二、NoSSD P图参数解析

P夫 v1.4.8新版界面

1、压缩等级:压缩程度,建议默认最高等级5。

数值越大压缩程度越大,可存图越多,收益越多,对挂盘机CPU性能要求越来越高,对CPU要求是根据压缩等级和挂图数量两个因素决定的。

2、P图任务的参数和压缩任务的参数

「P图任务数」和「压缩任务数」代表了想要创建的并发任务数量,后面的「内存」「CPU」分别表示每个P图任务(或压缩任务)的独立参数。

值得注意的是并不是设置3个「P图任务数」就一定会建立3个P图任务,还受限于最终目录数量,3个P图任务要有至少3个最终目录才能成功创建。

例子1:最终目录10个,「P图任务数」=3,会建立3个P图任务,每个P图任务的分配的最终目录数量是4、3、3。

3、最终目录:就是存图的机械盘,盘的数量决定了并发任务数量。

4、替身SSD:虽然称为SSD,配置一个高速机械盘也是可以的,好处是能利用SSD的速度实现p图速度最大化。

它代替机械盘进行P图和压缩,只将最终的fpt文件拷贝到机械盘(是压缩成fpt再拷贝,还是一边压缩一边导出是可配置的)。为体质参差不齐的机械盘提供P图速度保底;并且有了替身盘直接就可将机械盘装满fpt而不必像原生NoSSD那样剩余NoSSDChiaPool.tmp、spt文件之后再由P夫逐个填满。

单个P图任务写入速度大概270+MB/s,压缩任务可能有130+MB/s,可以将一个SSD分配给多个机械盘当替身,建议普通sata接口的SSD不要给超过2个任务做替身,m2或者企业固态请根据SSD读写能力自行决定数量。

一个替身目录极端情况会有三个进程同时读写,1个P进程P图、1个压缩进程压缩、1个剪切图的进程往机械盘拷贝fpt,(剪切图进程和压缩进程在勾选【从替身直接压缩到机械盘】时不会同时存在)。

三、其他参数

3.1、填充辅助目录:想把机械盘完美装满就必然要借助外部空间,这就需要提供除了最终目录以外的一个独立磁盘(或目录),这个磁盘至少要有410+GB空间用来生产fpt文件。

但是并不是一定要配置该参数,如果任务最终目录里面有替身盘、有未被P图任务挂上的最终目录、都会被P夫拿来作辅助盘使用,此时不配置【填充辅助目录】也是可以的。

可以用系统盘的某个目录、单独的机械盘、SSD都可以。

NoSSD默认会将机械盘P满spt,保证第一时间形成算力获得收益,这是不错的机制,但是P出最终的fpt图装满机械盘的过程就比较曲折,逐个压缩这些spt为fpt,挤出来空闲空间再重新P图直到把硬盘的装满fpt文件,机械盘大概率会剩余一个spt无法解决(当然有时候磁盘剩一个spt无所谓,即使把它压缩了也无法再多存一个图,P夫填充磁盘时候会根据实际情况决定是否压缩最后一个图)。

3.2、Public key :代P时候可能需要用到的参数,自己P图请忽略。

由于NoSSD的压缩图里面不包含任何账号信息,它可以用来防止代P老板拷贝图直接给你,NoSSD池子里两个相同的图是无法同时获得收益的。

NoSSD的压缩图研究

最近这个NoSSD压缩图的矿池出镜率比较高,它是个奇亚压缩图的矿池整体方案,调研之后打算将它集成进P夫,预计三五天内能发布第一个版本。

有趣的是它P图过程对CPU使用是间歇性的,写盘速度很明显在软件层面做了特定的限制,基本维持在270MB/s左右,所以CPU性能对P图时间影响不像传统P图内核那么大,限制了写盘速度也导致SSD的优势没那么大,但是P图的流程有较大的优化空间,这也是P夫要做的。

NoSSD官网:https://nossd.com/

下面是我调研之后的一些结论,方便大家快速了解。

一、关于NoSSD的一些结论

  • 它是个闭源的压缩图算法,未被chia官方认可;
  • 猜测可能是NoSSD自己实现了读取图的数据层相关逻辑,本质上我们P的图属于NoSSD的账号,如果有一天NoSSD发放的收益变少也是有可能的,请自行评估风险;
  • 它不是压缩现有的plot图,需要重新P图,并且NoSSD的图是私有格式无法solo、无法切换其他池;
  • 它的图文件不是plot,粗压缩文件是.spt,最终压缩后的图文件是.fpt ,粗压缩的spt文件就已经可以用来挖矿产生收益;
  • NoSSD的P图分为两步,第一步粗压缩后的图文件是spt格式,第二步将spt压缩成fpt格式,fpt文件就是最终的压缩图;
  • 压缩比率分为五级,相较于传统plot图最大压缩比例为23%,压缩程度越高图文件越小、单位存储量越高、总收益也就越高,对挂盘机CPU的要求也越高;
  • NoSSD的图文件中不包含任何你的个人信息,图在谁的盘里它就是谁的,因此它的挖矿奖励地址是可以随便更换的(任何奇亚指纹生成的收款地址都可以);
  • 基于上一条,不要随便购买其他人的NoSSD带图盘,因为无法辨别盘中的图是P的还是拷贝来的;
  • 基于上述原因为了防止代P老板欺骗你,NoSSD贴心地设计了一个加密解密图的功能,你可以给代P老板生成一个P图秘钥(public key),这个key是你用自定义的密码生成出来的,不知道密码的情况下别人无法解锁代P出来的图进行挖矿,从而保证你找别人代P时不会被骗;

二、NoSSD的一些常见问题

1、NoSSD是什么?

它是个奇亚矿池,有自研的压缩图算法可以压缩图文件。

2、NoSSD有什么优势?

它的压缩图算法能把标准的k32图压缩最高23%,提高单位存储空间的存图量从而提高收益。

3、要重新P图吗?

要,好消息是完全可以只用机械盘P图,速度也还不错。

4、如何P图?

命令P图:下载NoSSD官方的工具,P图参数略有些复杂,之后有时间单独开贴介绍吧,建议直接参考官方的帮助文档 https://nossd.com/help

图形自动化P图工具那必须是【P夫】了。

5、P了图如何挖?

用NoSSD给的挖矿程序,无需安装奇亚官方客户端,更不需要同步区块数据。

命令挖:下面给个只挖矿的命令例子,假设d盘和e盘是压缩图的目录,有更多盘照样都拼上就行了,收款地址可以随意更换,中括号里面的参数不是必需的,自己看情况加上。

client.exe -a xch收款地址 -d,r d:\ -d,r e:\ [-w 挂盘机名字(用来区分多个主机的贡献)]  --no-benchmark --no-plotting --no-finalizing [-p 图密码] [--m-threads 挖矿程序使用CPU核心数] 

--no-finalizing 禁用压缩
--no-plotting 禁用P图
--no-benchmark 禁用性能评估

图形工具挖:P夫里附带了个NoSSD的一键挂图挖矿功能(严格说P夫只专注P图,以后可能会做成一个单独的工具)。

三、NoSSD压缩图跟各个P图核心的硬件需求对比


NoSSD P图程序madmaxBladeBit 纯内存
CPU越强越好(注1)越强越好越强越好
内存越大越好要求极低(用Ramdisk另说)416GB(不算系统使用的)
SSD不需要(注2)不超过256GB(k32)至少102GB做中转(注3)

注1:CPU性能需要大内存来发挥

注2:用SSD当然更好,但是机械盘只要速度正常发挥也基本能CPU和内存资源利用最大化。

注3:虽然bladebit不强制使用SSD接收内存导出的图文件,实际上已经是标配了,否则严重拖慢P图速度。

奇亚的几个P图内核简介

奇亚有史以来总共就三个P图内核程序,市面上所有的第三方P图工具都是在这三个内核上做的二次包装,简单说就是给它们加了个图形界面的外皮。

本文以下讨论的缓存占用大小均以K32为标准。

一、P图内核介绍

这三个P图内核分别是:chiapos、chia-plotter和bladebit,下表将bladebit 2.0姑且也算作一个新内核。

功能对比chiaposchia-plotter
madmax
bladebitbladebit 2.0NoSSD
压缩图
速度最慢中等最快快于chia-plotter较快
速度量级1小时左右主流约20~60分钟约5~15分钟快于chia-plotter最快12分钟左右
内存要求每个任务3.32GiB左右未知(可能是几百兆)最少416GiB自由设定
达到192GB最佳
默认最大123GB,可手动调小
缓存盘要求每个任务约239GiB少于256GiB不需要暂时未知不需要SSD,有1个机械盘就能开始P图
K范围k32~k35
测试图最小可以k25
k32~k34
测试图最小k26
k32k32k32
优势可以P k35的大图SSD P图速度最快,使用110G ramdisk能节省大量SSD损耗速度最快、不损耗SSD原生支持内存缓存,并且能自定内存大小,降低内存门槛不需要SSD,对于低性能电脑比较友好
劣势速度最慢、多任务调度困难无明显缺点,速度中规中矩硬件门槛高即使是2.0.1正式版似乎也不算十分稳定P图命令晦涩难懂,机械盘数量影响速度
开发者奇亚官方团队madMAx43v3rharold-bharold-bNoSSD团队

1.1 chiapos

它在奇亚官方客户端中叫做Chia Proof of Space,虽然三个内核都已经集成到了chia官方客户端中,但我还是习惯称呼chiapos为【官方内核】,它是官方内置的第一个P图内核程序,它的代码集成在了奇亚币最核心的chiapos项目中,在chia-plotter发布前它是唯一的P图选择,它的缺点非常多,比如:无法最大化利用CPU、内存等系统资源、多个任务之间无法协调优化,它的低效的实现算法就决定了它最后被抛弃的命运。

1.2 chia-plotter

它是由国外开发者madMAx43v3r开发,它的名字太普通了所以大家也习惯用作者名字称呼它为madmax,一经发布立即碾压了官方内核,作者放出的测试日志显示它的速度来到了42分钟(k32),由于它P图时CPU资源几乎是全程100%,使用时不必像官方内核一样要同时启动多个任务,也不用精心协调调度这些任务,只要启动一个P图任务即可又快又省力地P图了,这也就是为什么有人给它起名:极速快P内核、快P。

1.3 bladebit

作者公开发布软件的消息是他2021年7月7日在YouTube发布了一个P图视频,使用64核ARM 架构Graviton 2 处理器+416GiB内存5分钟P完了一个k32,将P图速度提高到了5分钟级别。

后来奇亚官方在1.2.11版本将个人开发者的两款内核都集成在了官方客户端中,算是得到了官方的认可,harold-b更是被奇亚官方收编,bladebit项目也转移到了奇亚官方github账号下。

二、扩展阅读:全内存、半内存

2.1【全内存】

字面能看出是指P图任务完全在内存中进行,不再损耗SSD,全内存有两种实现方法:

第一种是416GiB内存+bladebit内核

第二种是将至少240GiB内存用软件虚拟为硬盘(也就是RamDisk,说白了就是把内存空间虚拟成硬盘用),使用chia-plotter内核将RamDisk作为缓存目录P图(官方内核理论也能用但还是因为资源无法高效利用不在考虑范围)

bladebit方案RamDisk方案
内存要求至少416GiB至少240GiB
内核bladebitchia-plotter

2.2 半内存

半内存指的是给chia-plotter的两个缓存目录分别使用SSD和RamDisk磁盘,创建一个不小于110GiB的RamDisk,将它配置到chia-plotter的-2参数上,再将另外一个SSD缓存目录配置到chia-plotter的-t参数上。

值得注意的是chia-plotter使用RamDisk几乎不会提高速度,它的唯一的优势是可以分摊75%的SSD损耗到内存上。

另外,bladebit 2.0也是一个半内存方案,准确说它才是原生支持半内存的P图方案,毕竟chia-plotter还需要借助第三方工具将内存虚拟成硬盘,bladebit 2.0目前尚未正式发布,暂不参与讨论。

广告:

老板们的时间不要用来研究P图,花点小钱解放双手,最屌的P图工具请点这里

P图需要的几个key分别从哪里找到?

  • Farmer public key(即农民公钥、fpk,新图老图都需要它)
  • Pool public key(奖励池公钥、ppk,P老图用)
  • Pool contract address(合约地址,P新图用)

查看自己奇亚账号的这三个参数的方法非常简单,在奇亚客户端就能找到。

一、Farmer public key和Pool public key的获取方法

第一种方法:客户端界面查看:

打开奇亚客户端(以1.3.3为例),点击右上角的【退出】按钮回到助记词指纹选择界面,单击助记词右侧的眼睛👁图标后会显示账号信息,其中【农民公钥】就是Farmer public key、【奖励池公钥】就是Pool public key。

第二种方法:命令查看:

以Windows系统为例,依次运行下面两个命令:

cd %USERPROFILE%\AppData\Local\chia-blockchain\app-*\resources\app.asar.unpacked\daemon

chia keys show

二、合约地址(Pool contract address)的查看方法:

第一种方法:客户端查看

点击【农业合作社】的标签,这里列出的就是已经创建的合作社,如果还没有请先创建。找到想要P图的合作社,按下图操作即可获取到Pool Contract Address。

第二种方法:命令

cd %USERPROFILE%\AppData\Local\chia-blockchain\app-*\resources\app.asar.unpacked\daemon

chia plotnft show

使用P夫在Linux下P图以及网络传图方案

目前比较好的P图方案应该是Linux系统P图到SSD,然后通过局域网共享拷贝到【存图机】的机械盘上。

下文例子仅使用3台P盘机,更多的P盘机、存图机、网络拓扑以及单个存图机的带宽上限均不在本文讨论范围,请根据自己的实际情况做规划,本文示例仅供参考。

一、方案简介

1、P图机安装Centos系统,将SSD作为中转盘挂载到/ssd目录(可以随便指定,下文所有例子均假设它挂载到了该目录),运行P夫开始P图。

2、P图机安装samba服务将/ssd目录设置为共享。

3、【分发机】分别将每一台【P盘机】的共享目录映射为本地驱动器,然后运行P夫【分发拷贝】功能监控这三台P盘机的/ssd目录即可实现从P图机自动拷贝到机械盘。

二、硬件网络架构

仅供参考,图中仅展示3台机器时最经济的网络方案

2.1 P盘机设置

每台P盘机要求有一张万兆网卡用于局域网传图,上图例子中需要给三台P图机的传图网卡手动设置IP,假如依次是:192.168.5.4、192.168.5.5、192.168.5.6。

P盘机设置samba服务将/ssd目录共享。设置方法见《Centos 一键设置共享目录》

万兆网卡理论传输速度1.25GB/s,假设平均传输速度只能达到理论的60%,传输一张k32图大概需要134秒,只要P一张图的速度低于134秒是完全够用的。

P盘机使用P夫创建BladeBit任务时无需再设置【中转盘】选项,将/ssd目录添加到最终目录即可,不要忘记在最终目录上右键勾选【无限空间】(目的是让P夫知道该最终目录能存无数个图,而不是根据磁盘空间大小自己计算P图数量)。

2.3 存图机(分发机)配置

存图机需要有3个万兆网口分别与三台P盘机相连,三个网卡的IP均需手动设置,这里举例设置为:192.168.5.1、192.168.5.2、192.168.5.3

按照下图方法将P图机的SSD共享目录映射为存图机的网络驱动器

映射后如下图,它也有盘符,跟读写本机磁盘一模一样。

存图机分发拷贝设置如下图: