摘要:之后,存儲端礦工節點會在一定時間間隔可配置,默認為秒自動啟動密封過程,即獲取之前微支付通道中暫存區域的所有數據,并將其密封到礦工的承諾存儲區域中。
歡迎大家來到第四章,經過前章 【Filecoin源碼倉庫全解析】第三章(下):存儲提供方(礦工)的配置操作的內容閱讀后,我們應該會對Filecoin市場機制中的礦工對象有了更詳細的認知,對礦工事務的生命周期有了具象化地理解。
本章,我們將重點介紹存儲需求方(用戶)的配置操作,并反過來驗證第三章中存儲礦工后續挖取新塊的過程,幫助大家融會貫通,并在工程上驗證整個挖礦行為的生命周期。
4.1 存儲需求方(用戶)我們在3.2章節中,描述了Filecoin體系下的各個身份和角色,其中,存儲客戶(Storage clients)定位為想存儲數據的需求方用戶,也是Filecon所期望構建的雙邊市場中十分重要的一環,類比滴滴打車的乘車者。
Filecoin存儲市場(上帝)將以公開透明的方式,搭建一個被記錄在鏈上的訂單池,供所有存儲需求方(客戶)選擇和匹配存儲提供方(礦工)。
4.2 導入數據資源并獲取CID在Filecoin存儲網絡之上,我們需要先將所存數據導入自身Filecoin節點客戶端,并按照與IPFS很類似(應該是復用了)的處理流程進行了文件切片、散列處理和DAG建立,并生成子文件索引和內容ID(即:CID,在2.2章詳細介紹過)。
4.2.1 導入文本echo "Hi my name is jialesoho"> jialesoho.txt export CID=`go-filecoin client import ./jialesoho.txt` # 反向驗證是否成功導入 go-filecoin client cat $CID4.2.2 導入圖片
export CID=`go-filecoin client import ~/Desktop/your_test_img.jpg` go-filecoin client cat $CID > image.png && open image.png4.2.3 導入視頻
export CID=`go-filecoin client import ~/Desktop/your_test_video.mp4`4.3 查看Ask訂單池
在3.5章節中,我們模擬了礦工角色,并成功發送了ask訂單至Filecoin存儲市場之中,這里,我們再啟動一臺機器模擬用戶節點,對全網的Ask訂單池進行查詢,并根據存儲端(礦工)報價選擇交易對象:
go-filecoin client list-asks --enc=json | jq
執行上述命令,遍歷訂單池后,會得到形如下方的json對象,解釋一下每個字段意義:
{ "Miner": "fcqllepeqmcq9qnjff3rqfaz02ks8dvmandx4sa2d",//礦工ID "Price": "2.5",//價格,單位FIL/byte/block "Expiry": 588,//多少區塊高度后訂單過期 "ID": 0,//同一個礦工ID可能具備多個Ask訂單,用ID區分 "Error": null// }
如果需要在終端中依賴礦工ID來進行control+F快速選定,建議直接鍵入go-filecoin client list-asks
4.4 選訂存儲協議當我們在Ask訂單池上選定好心儀的訂單和礦工ID后,便可通過如下指令簽約了:
go-filecoin client propose-storage-deal
miner:心儀的礦工ID信息
data:4.2中所存數據的CID信息
ask:同一個礦工ID可能具備多個Ask訂單,此數據在訂單池中可查
duration:持續存儲所經歷的區塊個數(平均30s一個新塊產生,一天有效期大約需2880個新塊)
注意:因為是自己給自己灌數據,所以小編測試使用的是自己搭建的存儲礦工節點,minerID:fcqllepeqmcq9qnjff3rqfaz02ks8dvmandx4sa2d,對應節點名稱:jialesohoHK
小編資源有限,盡量保證這臺機器(還是友商好心贊助的)能穩定在線,并將本節點所獲取的所有Mock FIL收益用以長期創建Ask訂單,便于大家可以直接接入測試,不需要再自己模擬一個存儲端(礦工)機器了(經濟下行,能幫大家省一些是一些)。
如下圖所示,若選定存儲協議成功,將直接更新訂單狀態為accepted,并返回DealID。
問題與勘誤如上圖所示,大部分朋友可能會遇到:
Error: error creating payment: context deadline exceeded
這邊小編復現了這個場景,并針對這個問題,和一些熱心的讀者交流(感謝詹總,東方風來、chinmusic),分析了一些可能造成的原因和解決方案,大家可以對號入座試試:
1)檢查是否FIL金額足夠用戶子彈不夠...自然無法支付訂單...,請檢查余額,或者不要傳太大的數據,注意單價是按照 byte (FIL/byte/block)來計算。
2)檢查礦工節點狀態確保礦工節點在線,且是mining狀態。
3)檢查P2P連接狀態Filecoin體系中,節點網絡與IPFS節點網絡拓撲類似,每一個節點的鄰居集群是有限的,通過彼此的鄰居來間接建立聯系是很常見的,因此,很有可能礦工節點和用戶節點彼此并不直接相連,而需要吐槽的是,在測試網階段,官方建議我們在確保礦工節點在線的同時,也需要直接將兩個節點相連接。
我們可以通過minerAddrsID來搜索礦工節點ID,并通過節點ID搜索其網絡地址multiAddrs,并直接建立P2P連接操作如下:
export peerID=`go-filecoin addresss lookup minerID` export multiAddrs=`go-filecoin swarm findpeer $peerID` go-filecoin swarm connect $multiAddrs
注意:
目前測試網的出塊收益是直接劃到worker礦工賬戶下的,而我們看到,通過剛才上方描述的p2p連接過程,是可以通過worker礦工的minerAddrsID層層索引到對方節點的IP地址,這對于收益方是存在相當大的安全隱患。
這不,官方這段時間就做了如下調整,未來,將出塊收益直接劃到owner賬戶下,賬戶ID并不用暴露在交易市場中,提高了賬戶的安全性。
如果是devnet-user,小于單個扇區所分配的256MB即可。
6)清空消息池go-filecoin mpool ls | xargs -L1 go-filecoin mpool rm
具體緣由可追蹤此 issue:https://github.com/filecoin-p...
4.5 發送數據并建立微支付通道當我們使用go-filecoin client propose-storage-deal
type Payments interface { //建立每個pieceID所對應的微支付事務 Setup(target Address, piece Cid, value TokenAmount) ID //生成鏈上支付憑證 MakeVouchers(id ID, start, end BlockHeight, count int) []Voucher //異常后恢復支付憑證 RedeemVoucher(v Voucher, proof Proof) }
同時,為了防止女巫攻擊,Filecoin中節點與節點之間的數據傳輸,也會使用到IPFS中的bitswap模塊(信用分系統)來過濾惡意節點和作弊節點。
之后,存儲端礦工節點會在一定時間間隔(可配置,默認為120秒)自動啟動密封(seal)過程,即:獲取之前微支付通道中暫存區域的所有數據,并將其密封到礦工的承諾存儲區域中。此時,訂單狀態將轉為staged。 注意,此過生成PoRep和PoSt的生成,比較耗存儲端礦工機器資源:
在密封完成并且礦工在鏈上生成憑證信息后,訂單狀態將移至posted。
我們可以通過go-filecoin client query-storage-deal
如下圖所示:
登錄Filecoin網絡儀表盤:http://user.kittyhawk.wtf:8010/
由于在第一章中,我們對存儲端礦工節點設置了心跳鏈接,存儲端礦工節點的數據信息會不間斷地同步至Filecoin全網監控儀表盤上:
搜索了一下jialesohoHK,找到了我們的存儲端礦工節點信息,值得關注得是StoragePower與ProvenStorage兩個參數此時都有了數值,我們的存儲端礦工節點此時擁有了自己的算力:0.05%,即參與新塊的生成的權益概率為萬分之五,此值計算與存儲量證明(Proof of Storage)邏輯強相關。
有機器資源多的朋友,可以在測試過程中增加存儲交易訂單成單量,從而拉高ProvenStorage數值,進而提高StoragePower算力,這樣,后續參與出塊的概率將大大增加。
同時,儀表盤也帶給了我們許多其他統計,例如:近30天,IPFSMain(星際大陸團隊)是測試礦工的主力軍(有資源真心好),并且算力增長集中在2月18-20號左右,出塊率提升顯著,為優秀的中國礦工團隊點贊!
擴展:PoSt與PoRep的生命周期這塊還沒深挖,后面值得多帶帶開章節研究,這里留個口子。
至此,我們也通過工程操作,反向驗證了第三章中所描述的存儲礦工生命周期。
我們將在下一章《【Filecoin源碼倉庫全解析】第五章:檢索服務(礦工)的配置操作》中介紹與存儲市場并駕齊驅而又息息相關的檢索市場,以及檢索服務(礦工)的基本配置操作。
參考文獻:https://github.com/filecoin-p...
https://github.com/filecoin-p...
往期系列文章回顧:【Filecoin源碼倉庫全解析】第一章:搭建Filecoin測試節點
【Filecoin源碼倉庫全解析】第二章:如何創建賬戶錢包并獲取FIL Mock代幣
【Filecoin源碼倉庫全解析】第三章(上):存儲提供方(礦工)的配置操作
【Filecoin源碼倉庫全解析】第三章(下):存儲提供方(礦工)的配置操作
礦世大陸:一家專業的制造IPFS智能挖礦設備科技企業,提供智能硬件的設計、開發、制造及OEM 生產服務,同時滿足客戶在挖礦環節的配套需求,提供輕錢包支持、POC 礦池支持、存證算力合約平臺支持、礦場托管等綜合性服務。為企業級客戶提供整套商業模式輸出、運營指導、市場指導、市值管理、商業落地方案,提供專屬挖礦軟件開發,系統維護、ERC20代幣制作、錢包開發、POC礦池開發、算力合約平臺開發等區塊鏈礦業技術開發服務。公司總部位于華中地區最大的城市武漢,擁有最成熟完整的產業供應鏈,我們的服務輻射全球,用戶遍及世界。我們置身于區塊鏈革命的第一線,投身IPFS生態建設,我們堅信IPFS將為世界帶來更好的上網體驗,創造更大的商業價值。
感謝 礦世大陸(http://www.ksminer.com/) 對 嘉樂SOHO的原創內容提供支持。
聯系作者:本人從業經驗有限,不免有不足之處,歡迎指正和更多討論,可私信微信公眾號:jialesoho,或者加我微信:daijiale6239,如果覺得對您有幫助,可以幫點擊好看推廣和打賞支持噢,感激不盡!
(識別圖中二維碼,關注嘉樂SOHO微信公眾號)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/24587.html
摘要:我們將在本章介紹如何在一臺機器上構建多節點的方案和未來礦池產品設計的一些思路。本文將介紹一種直接在單機上部署和管理多節點的方案。最初起源于比特幣。 歡迎大家來到第六章,經過前章《【Filecoin源碼倉庫全解析】第五章:檢索市場及檢索礦工》的介紹,無論從定位職能,還是從設計原理,還是從工程操作角度,我們應該對目前的Filecoin檢索市場有了更加深入的了解。 我們將在本章介紹如何在一臺...
摘要:情人節,項目開放了核心源碼倉庫,并更新了下的諸多核心成果,這意味著,已然度過了最困難的難點攻關期,進入到了全民公測階段。年月日,開源了核心源碼庫,開啟全民公測階段。 2019.2.14 情人節,Filecoin項目開放了核心源碼倉庫go-filecoin,并更新了 filecoin-project organization下的諸多核心成果,這意味著,Filecoin已然度過了最困難的難...
摘要:我們將在這一章源碼倉庫全解析第五章檢索服務礦工的配置操作中介紹與存儲市場并駕齊驅而又息息相關的檢索市場,以及體系中另一重要角色檢索服務礦工的基本配置操作。 對不起,你們可能關注了一個愛拖更的公眾號... 不過不拖更,可能這篇也不會有這么多 猛料... 歡迎大家來到第五章,經過前章 《【Filecoin源碼倉庫全解析】第四章:存儲需求方(用戶)的配置操作》的內容閱讀后,我們應該對存儲需求...
摘要:我們將在下一章源碼倉庫全解析第四章下存儲需求方的配置操作中重點介紹存儲需求方用戶的配置操作,并反過來驗證第三章中存儲礦工后續挖取新塊的過程,幫助大家融會貫通,并在工程上驗證整個挖礦行為的生命周期。目前已成為華中區最大最具影響力的垂直媒體。 不好意思,這篇加了點八卦: 本來是不太想說這事的,從18年看到現在,不少見圈里的朋友和友商互相吐槽乃至攻擊...最近還鬧得比較大。這里說兩句:區塊鏈...
摘要:如上圖,驗證過程可以表述為驗證者會按照一定的規則向礦工提起挑戰,挑戰是隨機生成的,礦工不能提前獲知。三時空證明如圖所示,可以理解為礦工一定時間內持續地生成復制證明和接受挑戰和驗證的過程,并通過這個過程,更新全網存儲算力。 歡迎大家來到第七章,經過前章《【Filecoin源碼倉庫全解析】第六章:如何單機部署多節點集群及礦池設計思路》的介紹,我們分享了如何在單機部署多節點集群的知識以及礦池...
閱讀 1166·2021-11-22 15:22
閱讀 3837·2021-10-19 13:13
閱讀 3570·2021-10-08 10:05
閱讀 3292·2021-09-26 10:20
閱讀 2984·2019-08-29 14:21
閱讀 2192·2019-08-27 10:55
閱讀 1871·2019-08-26 10:31
閱讀 2578·2019-08-23 16:47