更新时间:2023-02-28 2:10:18

前言

本文虽以Ubuntu为例,Windows用户也可以参考本文中的chia命令用法。

【官方钱包】、GigaHorse专用钱包【chia-gigahorse-farmer】都可以参考本教程。

根据Windows那边的经验,官方钱包和chia-gigahorse-farmer一起安装后能用官方钱包的界面操作chia-gigahorse-farmer。

准备工作

操作系统:Ubuntu 22.04
系统用户名:admin
用户的Home目录:/home/admin

请注意:假如你的用户名是dyz,那么你的用户Home目录就是:/home/dyz,以下所有命令和配置里面的路径请根据自己实际情况变动。

更换系统软件源(可选)

逐个运行这下面命令更换为清华大学软件源,纯粹是为了安装软件速度更快,不改不会影响后面的步骤。

sudo sed -i "s@http://.*archive.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list
sudo sed -i "s@http://.*security.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list
sudo apt update

安装依赖库

sudo apt update
sudo apt install -y libgomp1 net-tools

下载Chia Linux客户端

Linux系统下新手不要同时安装官方客户端和chia-gigahorse-farmer,否则遇到冲突或启动错了你自己不一定能发现。

下面两个客户端二选一,不要同时安装,如果你在研究GigaHorse的挂图只安装第二个就好!!!

1、官方奇亚客户端有两个选择,一个是标准的图形界面操作,与Windows无异;另一个是无界面的纯命令客户端;
官方带图形界面的客户端下载地址:https://github.com/Chia-Network/chia-blockchain/releases
无界面版本下载地址:https://download.chia.net/latest/x86_64-Ubuntu-cli

2、GigaHorse的定制奇亚客户端只有无界面的版本。
Max压缩图定制客户端下载:https://github.com/madMAx43v3r/chia-gigahorse/releases
Linux版国内下载:https://doc.easyfarmer.org/web/#/5/31

安装Chia客户端

安装

1、官方的两个客户端下载后是deb格式,双击即可安装。
2、Max定制版本是个zip压缩包,直接解压即可。本文假设解压到了/home/admin下面,最终的目录是/home/admin/chia-gigahorse-farmer/。

chia-gigahorse-farmer准备工作

官方客户端安装后chia命令自动加入到环境变量,随便打开命令行即可运行;
Max定制版的程序文件叫做chia.bin ,每次执行的时候比较麻烦要专门进入/home/admin/chia-gigahorse-farmer/中或者输入全路径/home/admin/chia-gigahorse-farmer/chia.bin执行它,所以我们先给chia.bin设置个别名,方便后面使用。

注意如果安装了官方客户端,下面请不要将别名设置为chia,可以用其他短名字,比如:ggchia、gg等等系统里没有的命令名字都可以,这样下文中所有的chia命令都要改成ggchia、gg。

  • 安装chia-gigahorse-farmer的依赖库:

sudo apt install -y libgomp1 ocl-icd-opencl-dev

  • 配置别名,方便以后执行chia-gigahorse-farmer的chia命令。

执行 sudo gedit ~/.bashrc 命令打开文本编辑器后,增加一行:

alias chia='/home/admin/chia-gigahorse-farmer/chia.bin'

保存后执行 source ~/.bashrc 使别名生效,从此我们可以在终端里任意位置执行Max钱包的chia命令了。

初始化奇亚钱包

chia init

执行后会在用户主目录生成Chia的数据目录:/home/admin/.chia/mainnet 。
下面是执行成功的显示内容,顺便提示你现在本地还没有指纹账户,要么新生成一个。

admin@ubuntu:~/chia-gigahorse-farmer$ chia init
Chia directory /home/admin/.chia/mainnet
Can't find private CA, creating a new one in /home/admin/.chia/mainnet to generate TLS certificates
No keys are present in the keychain. Generate them with 'chia keys generate'

To see your keys, run 'chia keys show --show-mnemonic-seed'

导入助记词

执行该命令 sudo gedit /home/admin/key.txt 会打开的文本编辑器,将助记词的24个单词拷贝到该编辑器中保存退出。

然后运行该命令导入助记词: chia keys add -f /home/admin/key.txt,中间提示给该指纹输入个别名以后方便区分多个助记词,这里随便输入了一个pfu-test,直接回车留空也可以,导入成功后会显示该助记词对应的指纹4152577874。

admin@ubuntu:~/chia-gigahorse-farmer$ chia keys add -f /home/admin/key.txt 
Enter the label you want to assign to this key (Press Enter to skip): pfu-test 
Added private key with public key fingerprint 4152577874

拷贝下载好的区块数据库

从头同步300多万区块数据需要较长时间,为了加快同步速度可将现有的db文件或者网上下载的db文件直接覆盖。

注意替换前先关掉钱包客户端,参考本教程《5.2 停止钱包》。

假设下载好的db文件是/home/admin/Downloads/blockchain_v2_mainnet.sqlite,使用下面的命令清除现有的db并替换。

删除现有db数据:rm -rf /home/admin/.chia/mainnet/db/*

剪切新db进去: mv /home/admin/Downloads/blockchain_v2_mainnet.sqlite /home/admin/.chia/mainnet/db/

执行后命令行无任何提示,使用下面的命令验证是否拷贝成功:

ls -lh /home/admin/.chia/mainnet/db

能看到mainnet下的db文件已经存在,文件大小101G。到此整个钱包的安装和准备工作全部完成。

admin@ubuntu:~$ ls -lh /home/admin/.chia/mainnet/db
total 101G
-rw-r--r-- 1 admin admin 101G Feb 20 11:00 blockchain_v2_mainnet.sqlite

钱包的常用操作命令

启动(重启)奇亚钱包

启动 :chia start farmer

重启: chia start farmer -r

顺利地话能看到奇亚的Daemon、harvester、farmer、full_node、wallet五个模块started(已启动)

admin@ubuntu:~/chia-gigahorse-farmer$ chia start farmer -r
Daemon not started yet
Starting daemon
chia_harvester: started
chia_farmer: started
chia_full_node: started
chia_wallet: started

停止钱包

chia stop all -d

admin@ubuntu:~/chia-gigahorse-farmer$ chia stop all -d
chia_harvester: Stopped
chia_farmer: Stopped
chia_full_node: Stopped
chia_wallet: Stopped
Daemon stopped

查看挖矿状态

chia farm summary

Syncing:说明全节点正在同步中
Synced :已同步
Farming:正在挖矿中(这就是日常挖矿的状态)
Last height farmed:上次爆块的高度
Local Harvester:本机挂载的农田数和总容量
Total size of plots:所有收割机的农田总容量
Expected time to win:理论爆块的期望时间

dmin@ubuntu:~/chia-gigahorse-farmer$ chia farm summary
Farming status: Syncing
Total chia farmed: 0.0
User transaction fees: 0.0
Block rewards: 0.0
Last height farmed: 0
Local Harvester
   0 plots of size: 0.000 MiB
Plot count for all harvesters: 0
Total size of plots: 0.000 MiB
Estimated network space: 184.443 PiB
Expected time to win: Never (no plots)
Note: log into your key using 'chia wallet show' to see rewards for each key

查看同步高度

chia show -s
通常我会连续执行几次这个命令来查看区块同步高度是否有变化,来确定客户端同步是否正常。

  • Height:73216 表示当前全节点已经同步到的高度
  • Network: mainnet 当前在奇亚正式网,并不是testnet。
  • 当前区块链的同步状态:同步中 当前高度73216/当前全网高度3276197(落后全网3202981区块)
  • 73216高度时全网的容量是186.979 PiB
  • 其他数据是该高度时候的全网容量、该高度的时间。
admin@ubuntu:~/chia-gigahorse-farmer$ chia show -s 
Network: mainnet    Port: 8444   RPC Port: 8555
Node ID: 4b10d148bc73c80ed8dd7adb59d9495d872434b203427fd5ea0bf5f1dfe0c18b
Genesis Challenge: ccd5bb71183532bff220ba46c268991a3ff07eb358e8255a65c30a2dce0e5fbb
Current Blockchain Status: Syncing 73216/3276197 (3202981 behind).
Peak: Hash: 209ef71a4ba8ff8f04c926fcfae1d8cec039aee69b3d01a08d2eb8a3deb3b2a7
      Time: Sat Apr 03 2021 01:24:43 PDT                  Height:      73216

Estimated network space: 186.979 PiB
Current difficulty: 12
Current VDF sub_slot_iters: 112197632

  Height: |   Hash:
    73216 | 209ef71a4ba8ff8f04c926fcfae1d8cec039aee69b3d01a08d2eb8a3deb3b2a7
    73215 | d1365d87538949a2111e4d1037700d9b2e2431ea0e9b4ab772926276a6b6299a
    73214 | 17bdd2d2aa55aeeec7e7b3fff9728cdcf121ff0137da5b76beb63167e5bfeb8e
    73213 | 1a75b9ebb8ff31f9ac627e434a7256481d8a31088adc2807826eed6a726b0052
    73212 | 13bf991dd6ce41add211dbcbb244c552fff309072bae95c933463a42834caab0
    73211 | 12bddf261c6e04235d5ade0657e38f8a975a4a74e3690ded23c28bada6d2627b
    73210 | 4f48ed854e125072de829fc8c29e1a662f4f4d05c04777e64156a776c7ded9d4
    73209 | 3b99d30d440d1d7f82e24ac1dcc47c577daca446dfffea77919e6ee000ef7900
    73208 | ed18d0e1da57d55be6fba271e2e4177ad311d6774aba141d35f50b7fce8dfa5b
    73207 | ad9eddc350268a3ab83065ee2c050943b5a84c23abce7583a01d4d1aca4dfef0

查看全节点已连接的节点

chia peer -c full_node

admin@ubuntu:~/chia-gigahorse-farmer$ chia peer -c full_node
Connections:
Type      IP                                      Ports       NodeID      Last Connect      MiB Up|Dwn
WALLET    127.0.0.1                               40850/8449  f4e4d512... Feb 20 06:19:03      0.2|0.0    
FARMER    127.0.0.1                               40990/8447  c3aea398... Feb 20 04:08:09      0.0|0.0    
FULL_NODE 94.28.244.54                             8444/8444  50b89aeb... Feb 20 06:19:33      0.0|41.0   
                                                  -Height:  3276518    -Hash: dd2f8ebb...
FULL_NODE 192.168.18.11                            8444/8444  cd31760f... Feb 20 06:19:30      0.0|37.2   
                                                  -Height:  3276518    -Hash: dd2f8ebb...
FULL_NODE 45.9.72.115                              8444/8444  e4db0688... Feb 20 06:19:29      0.0|34.4   
                                                  -Height:  3276518    -Hash: dd2f8ebb...
FULL_NODE 190.183.76.91                            8444/8444  baf4ca03... Feb 20 06:19:29      0.0|44.0   
                                                  -Height:  3276518    -Hash: dd2f8ebb...
FULL_NODE 24.135.73.240                            8444/8444  8e84b309... Feb 20 06:19:29      0.0|37.4   
                                                  -Height:  3276518    -Hash: dd2f8ebb...
FULL_NODE 116.88.13.221                            8444/8444  1a014670... Feb 20 06:19:29      0.0|32.9   
                                                  -Height:  3276518    -Hash: dd2f8ebb...
FULL_NODE 79.9.114.138                             8444/8444  24c606fc... Feb 20 06:19:29      0.0|23.7   
                                                  -Height:  3276518    -Hash: dd2f8ebb...
FULL_NODE 203.132.89.42                            8444/8444  56379149... Feb 20 06:19:29      0.0|13.9   
                                                  -Height:  3276518    -Hash: dd2f8ebb...

该命令其实就是客户端里的这个界面信息:

添加节点

有时候客户端无法同步,这时候需要手动加一些有效的节点进去以加快同步速度。

chia peer -a 43.194.221.3:8444 full_node


admin@ubuntu:~/chia-gigahorse-farmer$ chia peer -a 192.168.18.11:8444 full_node
Connecting to 192.168.18.11, 8444

添加一个农田目录

如果本地有多个农田目录要重复执行N次添加。后续会出教程如何用脚本自动扫描目录或者批量改文本添加。

chia plots add -d /mnt/disk1/plot

admin@ubuntu:~/chia-gigahorse-farmer$ chia plots add -d /mnt/disk1/plot
Successfully added: /mnt/disk1/plot

查看已添加的本地农田目录

chia plots show

admin@ubuntu:~/chia-gigahorse-farmer$ chia plots show
Directories where plots are being searched for:
Note that subdirectories must be added manually
Add with 'chia plots add -d [dir]' and remove with 'chia plots remove -d [dir]' Scan and check plots with 'chia plots check'

/mnt/disk1/plot

删除一个农田目录

同样如果有多个目录要执行多次该命令逐个删除。

chia plots remove -d /mnt/disk1/plot

删除成功后没有任何提示。

admin@ubuntu:~/chia-gigahorse-farmer$ chia plots remove -d /mnt/disk1/plot/
admin@ubuntu:~/chia-gigahorse-farmer$ 

检查本地农田

总数、报错、重复 等等

chia plots check

下面例子是检查某一个农田,支持模糊匹配

chia plots check -g plot-k32-2021-07-09-20-58-8e948c3995f45c4687854e1935aae2352f6b6f18f7b3e4c0506d4c9cb799f7e6.plot

chia plots check -g plot-k32-2021-07-09-20-58

查看钱包

查看钱包余额等

chia wallet show

转账

chia wallet send -f 本地钱包的指纹 -a 转账金额 -m 手续费 -t 目标地址

如果钱包里只有一个指纹,-f 参数不是必选项,转账金额和手续费的单位都是xch。
下面例子中转账手续费是 0.00000001xch,转账金额是1xch。

chia wallet send -f 1349205713 -a 1 -m 0.00000001 -t xch1tesxjeyxjuq6k56q33ltreq8pe3c6zpv4jnjm6zmq3pmela0zk0qqrwh4c

查看奇亚日志

实时查看客户端运行日志,按ctrl + c 退出查看。

tail -f /home/admin/.chia/mainnet/log/debug.log

设置Chia日志级别

将日志级别默认是WARNING(只输出警告日志),设置为INFO可以方便地排查超时等问题。

chia configure --set-log-level INFO

设置后需重启钱包生效。

admin@ubuntu:~/.chia/mainnet/db$ chia configure --set-log-level INFO
Logging level updated. Check /home/admin/.chia/mainnet/log/debug.log
Restart any running chia services for changes to take effect

让客户端刷新图数量

钱包客户端的【查看挖矿状态】命令有缓存, 新P了图到磁盘里想立即看到效果可通过该命令强制刷新。

chia rpc harvester refresh_plots

admin@ubuntu:~/chia-gigahorse-farmer$ chia rpc harvester refresh_plots
{
    "success": true
}

查看合作社信息

chia plotnft show

创建合作社

创建一个自耕种(solo)的合作社

chia plotnft create -s local -y

命令执行结果示例:

Will create a plot NFT.
Transaction submitted to nodes: [{'peer_id': 'cc4dcf9898f313dc3bf81f4ffc2a42f0e9dd422b7dc8ecb94e770ce1aa1b8835', 'inclusion_status': 'FAILED', 'error_msg': 'NO_TRANSACTIONS_WHILE_SYNCING'}]
Run 'chia wallet get_transaction -f 2959519667 -tx 0x77c857fabac106364e70b551e7ab046291d99bcbbc0b02e1dcf1341d6b7aef2a' to get status

创建一个合作社并让它加入到太空池

chia plotnft create -s pool -y -u https://asia1.pool.space

命令执行结果示例:

---- Pool parameters fetched from https://asia1.pool.space ----
{'authentication_token_timeout': 5,
 'description': 'Welcome to Space Pool. By creating this Plot NFT, you agree '
                'to the following terms https://pool.space/terms',
 'fee': 0.01,
 'logo_url': 'https://pool.space/logo-250.png',
 'minimum_difficulty': 1,
 'name': 'Space Pool',
 'protocol_version': 1,
 'relative_lock_height': 64,
 'target_puzzle_hash': '0x2f2c9ba1b2315d413a92b5f034fa03282ccba1767fd9ae7b14d942b969ed5d57'}
----------------------------------------------------------------
Will create a plot NFT and join pool: https://asia1.pool.space.
Transaction submitted to nodes: [{'peer_id': 'cc4dcf9898f313dc3bf81f4ffc2a42f0e9dd422b7dc8ecb94e770ce1aa1b8835', 'inclusion_status': 'FAILED', 'error_msg': 'NO_TRANSACTIONS_WHILE_SYNCING'}]
Run 'chia wallet get_transaction -f 2959519667 -tx 0x372c5c6329dd78da14a18c749f12e2ef7fb306ce3e319cf070c4549ccd159251' to get status

-y 创建时无需二次确认;
-s 必需参数,合作社的初始状态,local是本地合作社,pool是矿池合作社,无所谓哪一个创建之后可以随便切换;
-u 可选,矿池的url,仅在-s=pool的时候使用,比如太空池亚洲节点是:https://asia1.pool.space
-m 可选参数,创建合作社的手续费,单位是xch,默认是0。填写手续费可以让合作社快速生效;
-f 可选参数,想要在哪个账号上创建合作社就填哪个账号的指纹,仅在本地有多个账号时需要;

合作社加入矿池

chia plotnft join -i 合作社的钱包ID -y -f 指纹 -m 操作手续费 -u 矿池url

这个假如矿池操作是新图加入「官方矿池协议」的池使用,哈池那种挂老图的池子是不可以的。

-u必需参数,矿池的url,比如太空池亚洲节点是:https://asia1.pool.space
-i 必需参数,【合作社的钱包ID】可以从【查看合作社信息】的结果中找到每个合作社的钱包ID(Wallet id)。
-f 可选参数,仅在本地有多个指纹时需要;
-y 可选参数,退出过程不用再次确认;
-m 可选参数,默认0。

合作社离开矿池

chia plotnft leave -i 合作社的钱包ID -y -f 指纹 -m 操作手续费

-i 必需参数,【合作社的钱包ID】可以从5.16的结果中找到每个合作社的钱包ID(Wallet id)。
-f 可选参数,仅在本地有多个指纹时需要;
-y 可选参数,退出过程不用再次确认;
-m 可选参数,默认0。

实际用法举例:chia plotnft leave -i 2

认领新图solo爆块的1.75xch奖励

chia plotnft claim -f 指纹 -i 合作社的钱包ID

【合作社的钱包ID】可以从5.16的结果中找到每个合作社的钱包ID(Wallet id)。

-f 可选参数,仅在本地有多个指纹时需要。

有用系统命令

查看chia进程是否启动

ps -ef | grep chia

下面例子可以看到奇亚钱包的5个模块的进程都在

admin@ubuntu:~/chia-gigahorse-farmer$ ps -ef | grep chia
admin     194680    4495 15 09:51 pts/1    00:00:01 chia_daemon
admin     194701  194680 15 09:51 pts/1    00:00:01 chia_harvester
admin     194702  194680 17 09:51 pts/1    00:00:01 chia_farmer
admin     194703  194680 33 09:51 pts/1    00:00:02 chia_full_node
admin     194704  194680 69 09:51 pts/1    00:00:05 chia_wallet
admin     194790  192279  0 09:51 pts/1    00:00:00 grep --color=auto chia

查看本机的端口监听情况

netstat -tlnp

可以看到chia钱包的各个模块的api端口都正常监听中,8444、8555、8559、8560、55400。

admin@ubuntu:~/chia-gigahorse-farmer$ netstat -tlnp
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:8447            0.0.0.0:*               LISTEN      194702/chia_farmer  
tcp        0      0 0.0.0.0:8444            0.0.0.0:*               LISTEN      194703/chia_full_no 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.1:9256          0.0.0.0:*               LISTEN      194704/chia_wallet  
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.1:8555          0.0.0.0:*               LISTEN      194703/chia_full_no 
tcp        0      0 127.0.0.1:8559          0.0.0.0:*               LISTEN      194702/chia_farmer  
tcp        0      0 127.0.0.1:8560          0.0.0.0:*               LISTEN      194701/chia_harvest 
tcp        0      0 127.0.0.1:55400         0.0.0.0:*               LISTEN      194680/chia_daemon  
tcp6       0      0 :::8447                 :::*                    LISTEN      194702/chia_farmer  
tcp6       0      0 :::8444                 :::*                    LISTEN      194703/chia_full_no 
tcp6       0      0 :::22                   :::*                    LISTEN      -                   
tcp6       0      0 ::1:631                 :::*                    LISTEN      -