Pour une brève explication du ce protocole, référez vous à l'article suivant.
Pour installer le client officiel, il faut au préalable préparer son ordinateur. Je présente ici un tutoriel pour Linux, en ligne de commande. Celui-ci devrait donc fonctionner sur un PC (type x86/AMD64) ou un SBC (type Raspberry Pi ou Orange PI. Vous trouverez probablement des tutoriels utilisant l'interface graphique, mais ce n'est absolument pas nécessaire (et vous le comprendrez volontiers, un GPU est une place perdue pour du stokage et une consommation électrique inutile).
Je ne présente pas l'installation de linux, mais j'ai basé ce tutoriel sur une distribution à base d'APT (type Debian ou Ubuntu).
Une fois l'ordinateur installé et l'accès à une console fonctionnel (type SSH ou via un terminal), il faut:
$ sudo apt-get update
$ sudo apt-get upgrade -y
$ sudo apt install git -y
$ cd && git clone https://github.com/Chia-Network/chia-blockchain.git -b latest --recurse-submodules
$ cd chia-blockchain
$ bash install.sh
$ . ./activate
À faire à chaque fois lorsque vous ouvrez une console pour avoir accès à la commande chia ci-dessous.
$ chia init
$ chia keys generate
$ chia keys show --show-mnemonic-seed
Copier ces informations dans un fichier sécurisé. Ces 24 mots protègent et identifient votre portefeuille. Les perdre, c'est perdre votre argent. Garder aussi les addresses (très importantes pour recevoir et envoyer des fonds).
$ chia start -d farmer
(et chia stop -d all
pour les arrêter.
Personnellement, j'utilise la commande suivante:
$ chia plots create -k 32 -n 33 -t /chia/plot0/ -d /chia/farm
Il faut expliquer les arguments ici:
k 32
C'est la taille du plot. Actuellement les plots de taille 32 sont utilisés (ça correspond à environ 100GB), mais vous pouvez aussi utiliser k 33
(qui génèrera des plots plus grands, c'est utile pour remplir un disque lorsque 2 plots de 100GB ne rentreraient plus, vous le remplacez par un plot de 150GB)n 33
C'est le nombre de plot à fabriquer. La commande est séquentielle, il ne s'attaquera au plot 2 qu'après avoir fini le plot 1. En gros, vous diviser la taille de vos disques de farm par 110GB et c'est ce que vous indiquez icit /chemin/
C'est l'endroit où fabriquer le plot. Typiquement, l'endroit où vous avez monté votre disque SSD.d /chemin/
C'est l'endroit où vous stockez vos plots (votre ferme). Lors du premier lancement, le système doit se synchroniser avec la blockchain, ce qui est assez lent (compter 2 jours environ, à la date d'écriture de cet article). Vous pouvez surveiller son état via la commande:
$ chia show -c -s
Qui doit vous retourner quelque chose dans ce genre:
Current Blockchain Status: Full Node Synced
Peak: Hash: 1cef650b28632ebca0dd124e15402c09ed30f87fc5371b73565575fbe2e493e1
Time: Tue Jun 08 2021 17:00:12 CEST Height: 402467
Estimated network space: 20.132 EiB
Current difficulty: 1448
Current VDF sub_slot_iters: 118489088
Total iterations since the start of the blockchain: 1317929356460
Height: | Hash:
402467 | 1cef650b28632ebca0dd124e15402c09ed30f87fc5371b73565575fbe2e493e1
402466 | 337b5ad992c3b8e8cbfb7c1a68b4a68d63f68ae8bebfccd7841f51e12bf1d4d9
402465 | 56ba7d3f53784a7145596fc77150acb38d638e59387d33dc8acb2ae708dcc762
402464 | 74cb10bf0a4e71fd9e6736c5203a75253d548dfe2f2edda3a3add008c95adb9a
402463 | ca3baba9caed4c2d3815b1169497818d1824869beb49860f0d35367894ce30ee
402462 | 5d898ca033162b9ef96032e5e59185b8653093ae2ba2878bd5d8eae91c1dfacd
402461 | 0c5a5a875d1edfb5cc889c884fb6eb42a0b96bd8662a8b5ad9a45d3ecf5b51e1
402460 | d4fffc9697b2dd768251bb4fc67d3dd3f7ccc6ff3b93b21c1e6f4fec6d36db26
402459 | 7889774e3297a783c1ccda277234597387eda5c38005c3e7883ef9b19e92c558
402458 | ca2f1354fba1b51d33c4928e1fb6324d275ac0c730151399821db0b32b21f0b4
Connections:
Type IP Ports NodeID Last Connect MiB Up|Dwn
WALLET 127.0.0.1 39336/8449 f4155955... Jun 08 17:01:06 18.5|0.1
FULL_NODE 94.112.245.173 8444/8444 18e44ca4... Jun 08 17:01:06 0.1|40.1
-SB Height: 402467 -Hash: 1cef650b...
FULL_NODE 217.165.112.142 49859/8444 aead4176... Jun 08 17:01:06 0.2|1.6
-SB Height: 402467 -Hash: 1cef650b...
FULL_NODE 146.0.42.46 8444/8444 51ce3b10... Jun 08 17:01:05 0.0|1.7
-SB Height: 402467 -Hash: 1cef650b...
FULL_NODE 61.187.188.242 8444/8444 8b64aad1... Jun 08 17:01:04 0.1|0.0
-SB Height: 0 -Hash: Info...
FULL_NODE 112.235.236.17 8444/8444 5305cc75... Jun 08 16:50:43 0.0|0.0
-SB Height: 400140 -Hash: ff6631e3...
FULL_NODE 184.147.5.110 8444/8444 43810a21... Jun 08 17:01:03 0.1|1.2
-SB Height: 402454 -Hash: ce409720...
FULL_NODE 24.159.43.190 8444/8444 1e978922... Jun 08 17:01:06 0.0|1.6
-SB Height: 402467 -Hash: 1cef650b...
FULL_NODE 84.32.165.67 8444/8444 cb07e3d8... Jun 08 16:50:43 0.0|0.0
-SB Height: 401126 -Hash: 5ad7364b...
FULL_NODE 119.36.140.69 8444/8444 e4b64e42... Jun 08 16:34:47 0.0|0.0
-SB Height: 400788 -Hash: fe51c2f1...
Si vous êtes synchronisé (comme dans l'exemple ci dessus), le status est Full Node Synced, sinon, il vous liste le bloc le plus haut de la chaîne (il faut donc patienter jusqu'à ce qu'il ait téléchargé et vérifié la chaîne jusqu'à ce block).
Pour savoir le status de votre ferme, c'est la commande suivante:
$ chia farm summary
qui retourne:
Farming status: Farming
Total chia farmed: 0.0
User transaction fees: 0.0
Block rewards: 0.0
Last height farmed: 0
Plot count: 1
Total size of plots: 104.120 GiB
Estimated network space: 19.279 PiB
Expected time to win: 96 years
Sous Linux en général, une commande qui dure longtemps s'arrêtera lorsque le terminal qui l'a lancé se coupe. Pour éviter cela, il faut soit démoniser la commande (c'est à dire, couper les liens avec le terminal et l'attacher au processus d'init du système), soit la faire tourner dans un terminal virtuel.
Dans le premier cas, vous ajoutez nohup
devant votre commande (et &
à la fin pour avoir la main sur le terminal). La sortie terminal de la commande va être sauvegardée dans un fichier de log (par défaut nohup.out
).
Dans le deuxième cas, vous devez utiliser un utilitaire comme screen
ou tmux
. Chaque utilitaire a ses affictionados, personnellement, j'utilise screen
.
Avec screen
, la commande d'échappement est Ctrl+A
, vous commencer un terminal virtual avec un screen -a
et vous rattachez à un terminal existant avec screen -r
. Vous listerez les terminaux avec screen -list
.
Pour scroller dans le terminal virtuel, il faut presser Ctrl+A
puis Esc
(ensuite, utiliser les flèches du clavier) puis Esc
Esc
(2 fois donc) pour revenir à la version live.
Bien que chia soit assez souple pour préciser l'endroit où se trouve vos fermes, cela implique de modifier la configuration du client chia à chaque fois que vous faîtes une modification, d'arrêter le client (via chia stop -d all
) et de le relancer. Sous linux, il est bien plus pratique de profiter d'un point de montage virtuel pour vos fermes. Ce point de montage fusionnera les points de montages individuels de vos disques en un répertoire unique où tous les fichiers seront mélangés.
Pour cela, je vous recommande d'utiliser mergerfs qui est un système de fichier virtuel de type Fuse simple à utiliser et efficace. Ils fournissent même des paquets dpkg pour debian tout compilés ici, prenez celui qui correspond à votre distribution.
Vous monterez ensuite vos disques de fermage dans un répertoire spécifique à chaque disque (j'ai choisi /chia/farmX
avec X étant le numéro du disque). Puis je demande à mergerfs de présenter un point de montage virtuel sur /chia/farm
en ajoutant cette ligne dans mon fichier /etc/fstab
:
/chia/farm[0-9]* /chia/farm fuse.mergerfs allow_other,use_ino,cache.files=partial,dropcacheonclose=true,category.create=mfs 0 0
(Puis, à faire une fois: sudo mount /chia/farm
)
Lorsque vous ajoutez un disque, vous pouvez lancer la commande suivante:
$ sudo umount -l /chia/farm
$ sudo mount /chia/farm
La première commande fait un "lazy unmount", c'est à dire que le démontage du chemin n'aura lieu que lorsque le dernier programme l'utilisant se sera arrêté. La deuxième commande met à jour le montage et fera donc apparaître le nouveau disque.