FILecoin測試⽹挖礦解析git
目前FILecoin開放測試網了(仍是主要面向開發者),要參與測試⽹是⾮常簡單的事情。如今將基本的步驟和⼀些細節剖析出來。要開啓測試⽹的挖礦,大概分爲以下幾步。github
第一步,下載挖礦軟件,啓動節點。bash
第二步,去討⽶米獲取點FIL。服務器
第三步,抵押,設置價格開啓挖礦。網絡
去這里下載個版本,https://github.com/FILecoin-project/go-FILecoin/releases/tag/0.2.4tcp
tar -zxvf FILecoin-0.2.4-Linux.tar.gz mkdir -p /tmp/FILecoin-proof-parameters cd FILecoin ./paramcache export PATH="$(pwd)":$PATH
固然最好把這個變量設置到全局環境去中,在ide
~/.bash_profile
添加環境變量量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,討⽶是須要的,去他們的滴水管領取下就行了。也⾮常簡單。
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技術掛在 /Data ⽬錄下面,而後數據就都存在這下面就能夠。
挖了半天,假如仍是沒挖到⼀點FIL,算了,停下,加大抵押和空間來試下。效果會有所不一樣。不過挖到的FIL屬於測試網的虛擬通證,真正的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
簡單總結:目前Filecoin測試網有點難挖,專業服務器上CPU這些跑滿了。大型測試網還要等(但很快)。有點擔憂它的商用場景是否會受到限制,否則門檻過高沒人願意參與挖。另外官方很「雞賊」(其實正常),討米的時候應該是判斷了IP?mac地址?(但按理不會啊),FIL用完,一千個也不少的,要是沒有了只能換個V'P'N再去試試。