更新时间: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 -