chia奇亚 命令行参数 linux 系统 安装手册

​​Chia(奇亚)是由目前秀的网络协议工程师、BitTorrent的发明者Bram Cohen创建的。Chialisp是Chia新推出的智能交易编程语言,功能强大、易于审核、安全。目前可供参考的智能交易有:原子交换、授权收款人、可恢复钱包、多重签名钱包和限价钱包。 
 
Chia(奇亚)资料库:
 
Chia(奇亚)官网 https://www.chia.net/
 
区块浏览器 https://www.chiaexplorer.com/
 
Github源码库 https://github.com/Chia-Network

启动

命令:chia init

首先,init会检查你的~/.chia目录下是否安装了旧版本的chia。

如果有,init会将这些旧文件迁移到新版本

包括:

 

  • config (包含旧的SSL证书)
  • db
  • wallet
  • 加载config.yaml配置文件,更新钱包密钥并确保coinbase奖励进入正确的钱包

 

如果不存在旧版本,init可以创建默认的chia配置并且初始化一个新的SSL密钥和证书(用于与GUI的安全通信)。


开启服务

命令:chia start {service}

例如 :

chia start node 将只启动全节点。

chia start farmer将启动农夫、收割机、完整节点和钱包。

service可选参数有{all,node,harvester,farmer,farmer-no-wlet,farmer-only,timelord,timelord-launcher-only,wallet,wallet-only,introducer,simulator}。

P盘

命令:chia plots create [添加参数或赋值] 。

参数

-k [size]。定义绘图的大小。不同系统上的k大小和创建时间列表请查看:k大小对应的P盘文件规格

-n [绘图数量]。按顺序进行的绘图数量。一旦一个绘图完成,它将被移动到最终位置-d,然后再开始下一个绘图序列。

-b [内存缓冲区大小MiB]。定义内存/RAM使用量。默认值是2048 (2GiB)。更多的内存将略微提高绘图的速度。请记住,这只是分配给绘图算法的内存。运行钱包等将需要你的系统提供额外的内存。

-f [farmer 公钥]: 这是你的 "农民公钥". 当你想在其他机器上创建P盘文件时,如果你不想给chia账户完整的访问权限,就可以使用这个密钥。要找到你的 Chia 农民公钥,请使用以下命令: chia keys show

-p [pool 公钥]。这是你的 "池公钥". 当你想在其他机器上创建P盘文件时,如果你不想给chia账户完整的访问权限时,就可以使用它。要找到你的 Chia Pool 公钥,请使用下面的命令: chia keys show

-a [fingerprint]。这是用来选择农夫公钥和池子公钥的指纹。当你想从钥匙链中的多个钥匙中选择一个时,请使用这个命令。要找到你的 Chia 密钥指纹,请使用以下命令: chia keys show

-t [tmp dir]。定义P盘时的临时目录。这里是P盘的第一阶段和第二阶段需要使用。-t 路径需要的工作空间:通常是最终plot文件大小的 4 倍左右。

-2 [tmp dir 2]: 定义一个次要的临时目录,用于存放P盘临时文件。这是绘图阶段3(压缩)和阶段4(检查)发生的地方。根据您的操作系统,-2可能默认为-t或-d的相同路径。因此,如果-t或-d的空间不足,建议手动设置-2。-2 路径需要的工作空间与绘图的最终大小相等。

-d [final dir]: 定义存储plot文件的最终位置。当然,-d 应该有足够的可用空间作为Plot文件的最终大小。这个目录会自动添加到 ~/.chia/VERSION/config/config.yaml 文件中。你可以使用 chia plots remove -d 从配置中删除一个最终目录。

-r [线程数]: 2线程通常是的。多线程目前只在P盘第一阶段使用。

-u [buckets数量]。更多的数据包可以减少对内存的需求,但需要更多的随机磁盘搜索。对于机械磁盘,你需要设置更少的buckets,而对于NVMe固态硬盘,你可以设置更多的buckets。一般来说,你可以设置32、64或128(默认)

-s [stripe size]。这是在第一阶段进行并行工作负载时,交给每个线程的数据量。默认的64K似乎是整体的选择。32K往往是小损失,128K也是小损失。

-e [bitfield plotting]。使用-e标志将禁用bitfield P盘算法,并恢复到旧的b17的P盘格式。它降低了对内存的要求,但在P盘时时也会多写12%的数据。它通常被认为是一个更快的选项,适用于更快的驱动器,如SSD。

Example:

下面的例子将创建一个 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来获得更好的统计信息。
 

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

 

  • 如果比率>1,说明你的P盘文件在这次的扫盘中比较幸运。
  • 如果比率<1,你的P盘文件相对幸运值较低。
  • 除非你的比值<0.70,否则你不应该真正关心这个问题。

 

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


系统安装:

pvcreate -ff
 
sudo yum update -y
yum install epel-release -y 
yum install python-pip -y 
pip install --upgrade pip
yum install gcc-c++ make gcc openssl-devel bzip2-devel zlib-devel libffi libffi-devel install libsqlite3x-devel python3-devel gmp-devel  boost-devel libsodium-devel -y
yum groupinstall "Development Tools" -y
sudo wget https://www.python.org/ftp/python/3.7.7/Python-3.7.7.tgz

(venv) [root@localhost data-l]# ps axu|grep chia
root      1942  0.0  0.0 407212  8192 pts/0    Sl   May03   0:20 chia_daemon
root      2147  0.3  0.1 4718600 107692 pts/0  Sl   May03   2:53 chia_harvester
root      2148  0.1  0.0 558492 37708 pts/0    SLl  May03   0:50 chia_farmer
root      2149 22.6  0.3 3257344 374420 pts/0  Sl   May03 183:32 chia_full_node
root      2150  3.8  0.1 1202208 166296 pts/0  SLl  May03  31:03 chia_wallet
root      2643  0.8  0.0 1257164 89116 pts/0   S    May03   6:51 chia_full_node
root      2644  0.8  0.0 1257164 88820 pts/0   S    May03   6:36 chia_full_node
root      2645  0.8  0.0 1257164 85036 pts/0   S    May03   6:57 chia_full_node
root      2646  0.8  0.0 1257164 86924 pts/0   S    May03   6:56 chia_full_node
root      2647  0.8  0.0 1257164 83900 pts/0   S    May03   6:54 chia_full_node
root      2648  0.8  0.0 1257164 87084 pts/0   S    May03   6:58 chia_full_node

Chia多机集群挖矿教程:

    Chia允许你在每台矿机上只运行一个收割机(harvester)程序连接到集中的一个全节点钱包(重钱包full node)上进行挖矿,而不必在每台机器上都运行完整的重钱包。采用这种模式可以让你的系统更简单,使用更少的带宽、空间、CPU,也让你的钱包秘钥更安全。全节点钱包通过UPNP或手动NAT指向(8444端口)打通外网可以连接到更多的其他钱包节点,在挖矿时,它会让你的整体农场更快、更高效。

    整个农场(矿场)的架构是由一台运行全节点钱包(重钱包full node)的主机和其他只运行收割机(harvester)的机器组成。其中只有你的全节点钱包主机器会连接到Chia网络,而其他运行收割机的矿机只需要连接你的全节点钱包即可。

   为了保证你的收割机和主机之间的通信安全,使用了TLS加密技术,全节点钱包主机将是签署所有证书的私人认证机构(CA)。每个收割机都必须有自己的签名证书,才能与你的全节点钱包正常通信。
 

1、首先需要从全节点钱包安装目录中将收割机(harvester)相关程序拷贝出来,通常在windows下安装的chia钱包路径为 %LocalAppData%\chia-blockchain,其中我们需要将%LocalAppData%\chia-blockchain\app-1.0.1\resources\app.asar.unpacked\daemon文件夹整体复制到U盘中 (注意:app-1.0.1为你当前安装的chia版本号,不同版本改路径需要自行修改)
 
2、将全节点钱包配置目录中的CA证书(%USERPROFILE%\.chia\mainnet\config\ssl\ca 文件夹)复制到U盘中

3、将U盘中的daemon、ca两个文件夹复制到收割机的C盘中。
 
4、执行chia init命令进行初始化,然后执行chia init -c /home/ca命令进行CA证书授权,这样可以为不同的收割机授权唯一的通信证书来确保收割机和全节点钱包之间的通讯安全。

5、执行chia configure --set-farmer-peer 61.160.200.89:8447 命令为收割机配置全节点钱包主机的IP地址  其中192.168.88.181需要修改为你全节点钱包的实际IP地址。
 
6、执行chia plots add -d //home/plots/  命令添加农田文件所在目录 /home/plots。 如有多个硬盘路径,可以根据自己矿机实际情况修改后多次运行本命令

7、执行 start chia start harvester 命令启动收割机程序

8、其他收割机只需要重复以上2-7步操作即可。
 
9、在如果需要重启或者关闭收割机程序,可以执行 chia stop harvester命令,或者执行chia stop all -d命令可以关闭本台收割机上运行的所有chia相关程序

注意:
1、你的路由器开启UPNP或者手动NAT指向(8444端口)确保外网可以正常访问,这样可以让全节点钱包连接到更多的其他chia节点
 
2、需要确保全节点钱包的8447端口可以被其他机器正常访问(windows防火墙需要开启该端口,linux 开启iptable端口)
 
3、不能将全节点钱包的config/ssl文件夹整个复制到每个收割机上,这样可能会出现意外的错误,而且非常的不安全。每个收割机只能通过第4步命令来获得不同的授权
 
4、目前的版本全网节点钱包界面上无法查看当前收割机的运行状况,但是你可以先关闭全节点钱包,然后在config.yaml中设置你的日志级别为info,再重新启动全节点钱包。这样你就可以在%USERPROFILE%\.chia\mainnet\log\debug.log日志中查看是否有如下消息:

new_signage_point消息表示节点钱包的农场模块向你的收割机发出了挖矿任务。new_proof_of_space消息表示收割机找到了有效的证明。你会收到很多的new_signage_point消息,但new_proof_of_space消息可能不会是多条。

------分隔线----------------------------