虛擬幣已經火了好一段時間了,BTC比特幣的暴漲帶火了一批小弟,當中比較火的就是ETH以太坊,也是因為它的原因導致顯卡的價格暴漲,而現在大容量硬盤的價格也因為一個叫Chia奇亞的虛擬幣漲了起來,與BTC與ETH用剪刀直接的工作量證明不一樣,它用的是“空間和時間證明”(Proof of space and time), 以硬盤空間和時間來作為資源,利用CPU或者顯卡通過某種算法將硬盤空間寫入數據,用户將數據存儲在硬盤上一段時間,贏得獎勵的機會和分配的空間成正比,其實用這種證明的虛擬幣Chia並不是第一個, 只不過Chia是近段時間比較火的一個。

Chia的原理這裏就不説了,網上已經有許多很專業的分析,簡單來説的話就是程序在你硬盤上寫滿了彩票號碼,服務器會不時隨機抽獎,分配的硬盤空間越大,在線時間越長,中獎的可能性越大。
最開始的時候發現這Chia挖起來很簡單,基本上只需要你硬盤有足夠的可用空間的話就能挖,程序看起來也很簡單,所以就去下了個來研究一下,這裏只是説一下這幾天種田的體驗。

安裝好軟件後會叫你創建密匙還有其他的一些基本東西,把密匙記住就可以了,都弄好後就點繪圖,然後點擊右上方的添加Plot文件,開始P盤。

Plot文件的大小有K=32、K=33、K=34和K=35四種,K=25並不會計入主網算力內。不同Plot文件的大小和所需緩存盤大小軟件是有説明的,一個K=32的需要101.4GB硬盤空間,並且需要239GB的緩存空間;K=33的需要208.8GB硬盤空間,並且需要521GB的緩存空間;K=34的需要429.8GB硬盤空間,並且需要1041GB的緩存空間;K=35的需要884.1GB硬盤空間,並且需要2175GB的緩存空間。
Windows操作系統裏面顯示的硬盤可用空間其實就是GiB,所以可以直接根據HDD與SSD顯示的可用空間來分頻P盤隊列。

P盤想效率必然是要併發的,當然能同時併發幾個就得看機器性能了,每個P盤任務至少需要2個線程,k=32文件最少需要3390MB的內存,K=33的最少要7400MB,K=34需要14800MB,K=35需要29600MB。劃分更多的線程和內存可以加快P盤速度。
最初用的平台是Ryzen 9 3900XT加32GB內存,緩存用SSD是技嘉AOURSU Gen4 7000s 2TB,目標HDD是西數的紅盤6TB。

其實這次只是想看看P盤的系統需求,沒有經過任何計算直接拍了4個K=34的隊列,每個都開夠了24線程並給了10GB的最大內存,實際上這個緩存盤是根本塞不下的,只是單純看看能不能把系統資源耗盡。
結果就是12核的Ryzen 9 3900XT負載波動有點厲害,一時佔用100%,一時佔用就掉到20%,當然這是程序的問題,而32GB的內存是真的被吃光了,SSD的寫入量非常大,但讀寫性能不足以造成瓶頸。
在觀測一段時間後我準備停下這任務的時候悲劇發生了,手賤點了下密匙,然後進入了一個沒有後退鍵的界面,平時點擊最上方的“公共指紋為*****”的按鍵是可以退回住界面的,但P盤過程中點進去只會轉圈圈,根本無法回到主界面,此時你只能等它P完,然而我剛才亂來的設定只會把緩存盤塞滿,是不可能完成的,除了強行關閉程序外沒別的辦法, 所以絕對不要在P盤過程中點那個密匙,這程序有bug!

把程序關了之後我認真算了一下,2TB SSD的實際可用空間是1.81TB,可用並行7個K=32,而32GB的內存可以吃滿的話繼續堆就好了,我們手頭上容量最大的那套內存是16GB*8的芝奇皇家戟,索性直接把HEDT平台搬出來好了,最後真正用來P盤的系統變成了18核的Core i9-10980XE,128GB內存,緩存盤還是技嘉AOURSU Gen4 7000s 2TB,目標HDD是西數的紅盤6TB。
這次正式P盤的時候剛開始的時候我排了7個K=32的隊列,隨便分頻了下CPU線程與內存,基本上算果可以把資源耗盡的,但實際開始後只有兩個隊列是真的在動,其他的都卡在1%,經過兩小時後沒任何動靜,我決定把5個不會動的序列刪了,加了3個K=33隊列,在確認這三個隊列都能動後就放一邊不管了。
第二天回來上班查看HWInfo記錄的日誌,生成一個K=32文件大概需要6.5小時,K=33文件開始時間沒有記錄,所以不太清楚到底花了多少時間,生成三個K33兩個K32文件總共佔了829GB的硬盤空間,而HDD的寫入量是840.1GB,但SSD的讀寫非常厲害,整個P盤過程,SSD讀取11.8TB,寫入12.06TB,看到這個寫入量我就頭痛,因為SSD的寫入次數是有限的,把這個6TB的紅盤P滿雖然不至於把SSD寫死,但磨損也很厲害。
然後看了下內存佔用量,最高是42.6GB,所以插64GB其實就夠了,CPU最高佔用率是97%,但基本上大部分情況下都是很空閒的。看了下剩下這麼多內存可用,我都了歪腦筋,幹嘛不用RamDisk?

但除非你插滿256GB,否則也別指望能完全用RamDisk來P盤,最初嘗試的時候我發現Chia的軟件是可以指定兩個緩存盤的,所以我劃分了110GB的RamDisk盤做主緩存盤,SSD做備用緩存盤,這樣來試了P一個K=32,結果就是這軟件遠沒有我想象中那麼智能,RamDisk用光後就直接卡在那裏不動了,沒有自動跳轉使用備用緩存盤。最終是用了混合模式用內存+SSD組合出了一個300GB的RamDisk盤。

效果還是蠻好的,P一個K=32的文件產生了1401110MB的寫入量,而實際寫到SSD裏面的只有859561MB,內存幫SSD抵消了39%的寫入量,相當於延長了它39%的壽命。然而這樣做的侷限性很大,因為這樣每次只能P一個K=32,而且時間並沒有快多少,想高效率P盤還是得同時並行多個才是最好的。
P完這個K=32後我就停手了,因為每P一個對SSD的損耗太大了,以K=32為例,對HDD的寫入其實就101GB,但SSD的寫入量是1.33TB,差不多是13.5倍的寫入放大,簡直是謀殺SSD。
説真的這個Chia,普通人玩下無所謂,通常來説寫滿一兩個HDD也不至於把SSD寫死。但對於礦工來説選擇只有兩個,一個就是把SSD當作消耗品,寫死一個就換一個,二就是買的企業級的SSD,MLC或者SLC這種耐久度高的比較適合,當然最佳選擇是Intel的傲騰,這個幾乎可以忽略壽命的東西是最好的選擇。
我跟一個挖礦的朋友討論過這個Chia,其實挖Chia的投入可能不比用顯卡挖ETH低,挖ETH的話用專用礦板可以一塊連多張顯卡,但這個Chia你想P盤快的話得有高性能的CPU,大容量的內存和高壽命的SSD,還需要一堆硬盤,普通主板的SATA口數量最多就8個,所以你還得去買陣列卡來增加SATA口數量。
最適合做Chia礦機的其實是數據中心服務器,但這東西太貴了,普通人玩不起,但云服務運營上手上是有現成的設備,如果某日Chia真的起來了,他們覺得有利可圖入場的話,全網大小肯定直線飆升,到時候想挖Chia就真的難了。所以我對Chia的態度就是,玩一下可以,但是否值得投入就真得慎之又慎。