FILecoin測試網挖礦解析
目前FILecoin開放測試網了,要參與測試⽹是⾮常簡單的事情。現在將基本的步驟和⼀些細節剖析出來。要開啟測試⽹的挖礦,大概分為如下幾步。
第一步,下載挖礦軟件,啟動節點。
第二步,去討⽶米獲取點FIL。
第三步,抵押,設置價格開啟挖礦。
第一步,下載挖礦軟件,啟動節點。
去這裡下載個版本,https://github.com/FILecoin-project/go-FILecoin/releases/tag/0.2.4
tar -zxvf filecoin-0.2.4-Linux.tar.gz
mkdir -p /tmp/filecoin-proof-parameters
cd filecoin
./paramcache
export PATH="$(pwd)":$PATH
當然最好把這個變量設置到全局環境去中,在添加環境變量PATH中。
接下來就是啟動節點。
如果啟動過節點,可以先幹掉之前的一些數據。
rm -rf ~/.FILecoin
初始化go-FILecoin軟件,設置下開發者網絡標識,使得連接到開發者網絡。
go-FILecoin init --devnet-user --genesisFILe=https://genesis.user.kittyhawk.wtf/ge nesis.car
然後啟動go-filecoin進程。
go-FILecoin daemon
這步啟動後會返回一個peerID,⽐比較奇怪的⼀一點是這個軟件並不不會去探測這個機器是否已經開啟了一個ipfs節點。這個軟件本身會⾃己開啟一個ipfs節點。
當然你可以給你節點取一個名字,然後在一個可視化⻚⾯展示出來。
go-FILecoin config heartbeat.nickname "EngineMiner"
go-FILecoin config heartbeat.beatTarget "/dns4/stats-infra.kittyhawk.wtf/tcp/8080/ ipfs/QmUWmZnpZb6xFryNDeNU7KcJ1Af5oHy7fB9npU67sseEjR"
可以在下⾯面這網站可以查看到這個節點。https://stats.kittyhawk.wtf/
第二步,去討⽶米獲取點FIL。
現在沒有FIL,討⽶是需要的,去他們的滴水管領取下就好了。也⾮常簡單。
go-FILecoin address ls # 獲取⾃自⼰己的錢包地址WALLET_ADDR
去這個⽹址輸⼊⾃己的錢包地址,http://user.kittyhawk.wtf:9797 ,獲取交易信息的MESSAGE_CID。
go-FILecoin message wait ${MESSAGE_CID}
然後驗證下⾃己是否討⽶成功。
go-FILecoin wallet balance ${WALLET_ADDR}
第三步,抵押,設置價格開啟挖礦。
FILecoin將會有三種礦工:
- 存儲礦工
- 檢索礦工
- 修復礦工(後面會推出來)
當然,現在主要專注在存儲礦⼯這一塊
Go-filecoin軟件是開啟了同步區塊的進程,但是並沒有開啟一個礦⼯。這個礦工需要去挖FILecoin的區塊,就需要提供存儲容量量空間的一個承諾到FILecoin的DSN⽹絡。如果區塊挖到了呢,就會給到相應的獎勵。
一個礦⼯工需要給出存儲空間的承諾之外,還要給出相應的抵押,當然抵押就涉及到給FILecoin的區塊鏈上發送消息,也就是說會有⼀些鏈上的操作,只要有操作就會有成本,FILecoin採⽤了了和以太坊類似的gas機制,這裡可以設置的有兩個點,一個是gas的價格,這⾥是以FILecoin為標的的,另外是消耗gas的上限。
⽐比如,可以用下⾯面這行命令,來創建一個礦工,使⽤100FIL作為抵押,使⽤用默認的扇區大小(256M),gas 的價格為0.001FIL,使用的gas上限為1000gas。
go-FILecoin miner create 100 100 --gas-price=0.001 --gas-limit=300 --peerid `go-fi lecoin id | jq -r '.ID'`# this may take a minute
go-FILecoin mining start
然後開啟礦工挖礦。
⾼級進階
給存儲空間設置價格
⾸首先要明白,礦工的機器相當於一個客戶端,⾃己有存儲空間,然後設置一個價格發送到鏈上,這樣一個訂單信息 是需要如下基本信息的。
-存儲空間的價格。單位是FIL/byte/block
-blocks的⾼度範圍,這個訂單信息是有效的
-鏈上的礦工每挖到這個消息,所需要消耗的gas的價格
-為這個訂單信息,最多消耗的gas上限
具體剖析下這個訂單是如何工作的,存儲空間的價格,按理理來說,只要FIL/byte就夠了了,為何還有一個block 的概念。其實這非常好理解,區塊高度是一個時間的概念,設置一個價格,這個價格是在一段時間內的價格,過了這段時間後,價格⾃自然就不算數了。深層次來理解,訂單是在鏈上進⾏撮合交易的,不可能所有訂單請求都在每個區塊裡進⾏撮合,這就需要所有礦工為⾃己的訂單請求⽀支付gas費⽤用,那這⾥面就會有⼀個值得操作的空間,如果定價便便宜,就越能被撮合交易易,但是由於價格低,⽽而導致收益低,但⼜有一個區塊獎勵。如果定價太⾼高,就很難被撮合交易,同時還要⽀付gas費用,也是划不來的。
然而,這個價值設置並不是⾃動的,這裡面存在⼀些可操作的空間。
舉例,我們設置價格為0.000000001 FIL/byte/block,對2880個blocks有效,一個message的價格為0.001FIL/unit,消耗上限為1000gas。
go-FILecoin miner set-price --gas-price=0.001 --gas-limit=1000 0.000000001 2880
其會返回如下信息:
Set price for miner t26ro7zvtlsswdtus3fpp6467cvisb6kpwhnk6d3y to 0.000000001. Published ask, cid: zDPWYqFD6tZMKe9TQQYVFLTXqvFLYyfghEd8xTXc9hi5iakp3nBF.
Ask confirmed on chain in block: zDPWYqFCzAQCXBuuqmYNGbGM6HkpD8Zyp9rMAh76o11H4ZY7n b4p.
上⾯這個會在很短的時間內消耗掉我0.1FIL。道理理是⾮常簡單的,上面是⽤100個FIL作為抵押,然後100個扇區抵押到DSN市場,每一個扇區消耗掉的gas價格為0.001,算下來就是0.1FIL。
從頭到尾,⼀直有⼀個疑問,IPFS的數據到底要存在哪裡,其實非常簡單。設置一下就可以了。
go-FILecoin config sectorbase.rootdir /data/
⽐如我就直接講所有磁盤用LVM技術掛在⽬錄下面,然後數據就都存在這下面就可以。
挖了半天,假如還是沒挖到⼀點FIL,算了,停下,加大抵押和空間來試下。
go-FILecoin mining stop
rm -rf ~/.FILecoin
go-FILecoin init --devnet-user --genesisFILe=https://genesis.user.kittyhawk.wtf/ge
nesis.car --repodir=/data/.FILecoin
go-FILecoin daemon --repodir=/data/.FILecoin
go-FILecoin address ls --repodir=/data/.FILecoin
# 去討下⽶米
go-FILecoin message wait zDPWYqFCr17QWsfh9XgupovN8s7jW8sssb7j89sD9SryFAnwQKds --re podir=/data/.FILecoin
go-FILecoin miner create 900 900 --gas-price=0.001 --gas-limit=3000 --peerid `go-f
ilecoin id | jq -r '.ID'`# this may take a minute
go-FILecoin mining start
效果會有所不同。不過挖到的FIL屬於測試網的虛擬通證,真正的FIL只有主網上線才會釋放。
閱讀更多 星際在線 的文章