摘要:我們將在這一章源碼倉(cāng)庫(kù)全解析第五章檢索服務(wù)礦工的配置操作中介紹與存儲(chǔ)市場(chǎng)并駕齊驅(qū)而又息息相關(guān)的檢索市場(chǎng),以及體系中另一重要角色檢索服務(wù)礦工的基本配置操作。
對(duì)不起,你們可能關(guān)注了一個(gè)愛拖更的公眾號(hào)...
不過不拖更,可能這篇也不會(huì)有這么多 猛料...
歡迎大家來到第五章,經(jīng)過前章 《【Filecoin源碼倉(cāng)庫(kù)全解析】第四章:存儲(chǔ)需求方(用戶)的配置操作》的內(nèi)容閱讀后,我們應(yīng)該對(duì)存儲(chǔ)需求方(用戶)的配置操作有了系統(tǒng)的了解,并在實(shí)踐中反過來驗(yàn)證了第三章中所描述的存儲(chǔ)礦工挖取新塊的過程以及整個(gè)的生命周期。
我們將在這一章《【Filecoin源碼倉(cāng)庫(kù)全解析】第五章:檢索服務(wù)(礦工)的配置操作》中介紹與存儲(chǔ)市場(chǎng)并駕齊驅(qū)而又息息相關(guān)的檢索市場(chǎng),以及Filecoin體系中另一重要角色:檢索服務(wù)(礦工) 的基本配置操作。
5.1 檢索市場(chǎng)小編認(rèn)為,檢索市場(chǎng)協(xié)議在當(dāng)下的互聯(lián)網(wǎng)環(huán)境中,是非常非常關(guān)鍵,且有潛力的,這也是Filecoin體系設(shè)計(jì)中的一大亮點(diǎn)。
為什么這么說?
太遠(yuǎn)的就不追溯了,一起來看下,這兩天發(fā)生在我們身邊,與我們(公司或者個(gè)人)息息相關(guān)的事件:
事件一:3月2日23點(diǎn)55分阿里云出現(xiàn)大規(guī)模宕機(jī)故障這種事這幾年好像越來越頻繁了,作為一個(gè)感同身受的企業(yè)客戶(以下稱為甲方),想吼一句:
如果有一次讓你重新上談判桌的機(jī)會(huì),你愿意嗎?
你可能會(huì)在談判桌上看到一份這樣的不平等協(xié)議:
甲方重金購(gòu)置XXX服務(wù)器或者XXX對(duì)象存儲(chǔ)服務(wù)之前,先凍結(jié)乙方一部分的抵押金,并同時(shí)委托其他方為甲方生成多副本數(shù)據(jù)冷存。檢索數(shù)據(jù)時(shí),乙方出事了,宕機(jī)超過閾值了,甲方可無條件沒收抵押金,還有一堆丙丁戊方搶在乙方之前,第一時(shí)間立即為您恢復(fù)副本數(shù)據(jù),并繼續(xù)提供實(shí)時(shí)檢索服務(wù)。(小編猜測(cè),F(xiàn)ilecoin未公布的Repair Miner角色設(shè)定正是為了平衡這塊:你不干,別人搶著干,抵押金會(huì)分給最先幫助修復(fù)的朋友)
說到這里:
是不是比差遣研發(fā)運(yùn)維兄弟來得省心?
是不是比事后看阿里云臉色來獲得理賠更值得推崇?
是不是更能保障甲方的利益?
不知道你怎么想,真有這種好協(xié)議,反正我是簽定了...
你說巨頭們會(huì)不會(huì)改?
我覺得短時(shí)間內(nèi)(也可能是十幾年)、體制難改革...
畢竟這是道人性題,和技術(shù)無關(guān)...
阿里云做不到,
騰訊云也做不到,
亞馬遜應(yīng)該根本不Care...
但把人性和市場(chǎng)經(jīng)濟(jì)研究透了的Filecoin,或許真做得到...
事件二:感謝黑客0xDUDE讓我們知道中國(guó)普通民眾的明文聊天記錄情理之中,有數(shù)據(jù)黑產(chǎn)的利益驅(qū)動(dòng),有實(shí)力的黑客們都很難淡定。
而且,以現(xiàn)在網(wǎng)民的平均素質(zhì),關(guān)于自身數(shù)據(jù)有多值錢這件事,大部分是意識(shí)不到的...
身處于目前互聯(lián)網(wǎng)體制下的巨頭們都建立在"網(wǎng)絡(luò)中間商"的基礎(chǔ)上,中間商賺的不僅是差價(jià),還有大量的用戶數(shù)據(jù)。
畢竟大部分投資人都比你精明,你就不好奇,那些年的補(bǔ)貼大戰(zhàn),大家究竟燒錢是為了爭(zhēng)奪什么?領(lǐng)完紅包的你,究竟是得了便宜,還是被人套路?
我們真的能夠相信,中間商有意愿,有能力善待網(wǎng)民的數(shù)據(jù)?
至少我不相信,大部分"被害人"不相信,協(xié)議實(shí)驗(yàn)室更不相信...
不僅不信,還設(shè)計(jì)了IPFS+Filecoin這套體系,畢竟 "請(qǐng)把你的臟手從我的隱私數(shù)據(jù)上拿開" 這件事總歸還是有人帶頭做的,而且,還做得這么認(rèn)真且徹底...
Filecoin的檢索市場(chǎng)則是其中最重要的一環(huán):幫助數(shù)據(jù)確權(quán)和去中間商交易。
5.1.1 定位看完慷慨激昂的,我們來點(diǎn)內(nèi)涵的:
正如Star Li在《Filecoin邏輯梳理及源代碼導(dǎo)讀》06小節(jié)所描述的一樣,F(xiàn)ilecoin在協(xié)議層目前設(shè)計(jì)的模塊有:Hello協(xié)議,Storage協(xié)議以及Retrieval協(xié)議。(PS:小編通讀完一遍,覺得很棒,作者同樣花費(fèi)了很多心血研究Filecoin源碼和架構(gòu),并為大家梳理好了其中最為重要的一些關(guān)鍵點(diǎn),值得大家仔細(xì)閱讀。)
Retrieval協(xié)議用以規(guī)范檢索市場(chǎng),負(fù)責(zé)文件檢索讀取等交易事務(wù),與負(fù)責(zé)區(qū)塊同步的Hello協(xié)議和之前詳細(xì)介紹的Storage市場(chǎng)協(xié)議并駕齊驅(qū),分別發(fā)揮不同的專屬職能(與存儲(chǔ)市場(chǎng)協(xié)議不同,檢索市場(chǎng)協(xié)議的實(shí)時(shí)并發(fā)響應(yīng)要求更高,參與鏈上的事務(wù)會(huì)更少)。
5.1.2 職能Filecoin體系下的檢索市場(chǎng)(Retrieval Marketing Protocol)是未來真正意義實(shí)現(xiàn)Web3.0目標(biāo)的一個(gè)產(chǎn)品雛形。
Web3.0我理解為:消滅網(wǎng)絡(luò)中間商,建造可信互聯(lián)網(wǎng)基礎(chǔ)設(shè)施,讓用戶真正擁有數(shù)據(jù)自主權(quán),保障用戶身份安全以及數(shù)據(jù)交易。
5.2 實(shí)現(xiàn)程度需要注意的是,協(xié)議實(shí)驗(yàn)室目前在這塊的開發(fā)進(jìn)度還處于比較早期,優(yōu)先級(jí)并不如其他模塊,僅支持檢索訂單的正常交易和數(shù)據(jù)響應(yīng),版本號(hào)也因此暫設(shè)為0。
為了搭建一個(gè)完善的檢索市場(chǎng),已經(jīng)部分實(shí)現(xiàn)的依賴功能有:
鏈下支付通道的Actor擴(kuò)展
基于libp2p的檢索服務(wù)
鏈上內(nèi)容尋址接口
節(jié)點(diǎn)客戶端的相關(guān)命令行操作
下面將分別介紹每個(gè)子模塊的細(xì)節(jié):
5.3 鏈下支付通道的Actor擴(kuò)展Filecoin的交易市場(chǎng)將承載大量的實(shí)時(shí)交易,因此,訂單撮合和支付渠道被設(shè)計(jì)為鏈下事務(wù),同時(shí)在未來,除了使用FIL作為支付媒介,還將使用比特幣、以太坊等其他跨鏈支付方案作為支持。下面是支付通道的相關(guān)源碼結(jié)構(gòu):
//通道ID type ChannelID *big.Int //區(qū)塊高度 type BlockHeight *big.Int //簽名 type Signature []byte //支付收據(jù) type SpendVoucher struct { Channel ChannelID Amount *TokenAmount Sig Signature } type PaymentBroker interface { //用以創(chuàng)建微支付通道 CreateChannel(target Address, eol BlockHeight) ChannelID //用以更新微支付通道金額數(shù)量 Update(channel ChannelID, amt *TokenAmount, sig Signature) //用以關(guān)閉微支付通道 Close(channel ChannelID, amt *TokenAmount, sig Signature) //用以增加資金 Extend(target Address, channel ChannelID, eol BlockHeight) //用以收回未使用的資金 Reclaim(target Address, channel ChannelID) } // 生成收據(jù)信息 func MakeSpendVoucher(ch ChannelID, amt *TokenAmount, sk PrivateKey) *SpendVoucher { data := concatBytes(ch, amt) sig := sk.Sign(data) return &SpendVoucher{ Channel: ch, Amount: amt, Sig: sig, } }5.4 基于libp2p的檢索服務(wù)
在第三章3.2節(jié)中,我們介紹了檢索礦工(Retrieval miners)的角色和職能:比較像內(nèi)容分發(fā)網(wǎng)絡(luò)CDN的作用,負(fù)責(zé)“就近”檢索和抓取數(shù)據(jù),使得更快更好地把數(shù)據(jù)文件直接通過P2P鏈接,傳輸給需求方用戶。
而在IPFS和Filecoin的體系下,不光大文件的傳輸,所有的協(xié)議通信基本都是通過P2P的方式。而這一切都被封裝在libp2p模塊之中,而libp2p的職責(zé)就是負(fù)責(zé)節(jié)點(diǎn)之前的網(wǎng)絡(luò)發(fā)現(xiàn),協(xié)議通信,數(shù)據(jù)傳輸和響應(yīng)。
檢索服務(wù)很大程度上也是依賴于libp2p的,在V0版本下的檢索市場(chǎng)實(shí)現(xiàn)中,基于libp2p,新加了兩個(gè)與業(yè)務(wù)強(qiáng)相關(guān)的服務(wù)功能:
1)基于libp2p的檢索消息的響應(yīng)特征
type RetDealProposal struct { //被檢索數(shù)據(jù)的CID Ref Cid //支付金額 Price TokenAmount //檢索訂單的支付通道 Payment PaymentInfo } type ResponseStatus uint const ( Unset = ResponseStatus(iota) Accepted Rejected Error ) type RetDealResponse struct { //響應(yīng)體包括狀態(tài)碼和數(shù)據(jù)詳細(xì)信息 Status ResponseStatus Message string }
2)基于libp2p的檢索礦工報(bào)價(jià)查詢響應(yīng)特征
type RetQuery struct { //按數(shù)據(jù)CID信息進(jìn)行查詢請(qǐng)求 Piece Cid } type RetQueryResponse struct { //響應(yīng)體包括狀態(tài)碼和最低報(bào)價(jià) Status RetQueryStatus MinPrice TokenAmount } type RetQueryStatus uint const ( Unset = RetQueryStatus(iota) OK PieceUnavailable )5.5 鏈上內(nèi)容尋址
內(nèi)容尋址是延用了IPFS協(xié)議的設(shè)計(jì)思想,即我只關(guān)心我所要檢索的內(nèi)容,并不關(guān)心底層路由系統(tǒng)和網(wǎng)絡(luò)鏈接,系統(tǒng)默認(rèn)會(huì)以最優(yōu)的線路和速度幫我獲取。與現(xiàn)有HTTP路徑尋址的方式呈現(xiàn)根本的不同,更具創(chuàng)新性。
Filecoin的檢索市場(chǎng)也是使用內(nèi)容尋址,并且會(huì)根據(jù)區(qū)塊鏈上記錄的信息來匹配對(duì)應(yīng)存儲(chǔ)了該內(nèi)容的礦工ID集合(保證數(shù)據(jù)確權(quán)),然后解析成peerID和multiaddress,交給底層libp2p來負(fù)責(zé)網(wǎng)絡(luò)路由和建立傳輸鏈接。接口定義如下:
type ChainContentRouting interface { FindProvidersAsync(ref Cid, count int) <-chan pstore.PeerInfo }5.6 命令行操作
目前V0版本的節(jié)點(diǎn)客戶端設(shè)計(jì)集成關(guān)于檢索市場(chǎng)協(xié)議的三個(gè)命令行功能操作(但是小編親測(cè)的客戶端Demo,在工程上實(shí)現(xiàn)與設(shè)計(jì)有一些出入),這三個(gè)功能分別是:
5.6.1 通過CID檢索數(shù)據(jù)內(nèi)容USAGE filecoin retr get5.6.2 根據(jù)CID查看被檢索數(shù)據(jù)的所有檢索報(bào)價(jià)- Retrieve a piece from a miner. SYNOPSIS filecoin retr get [--price= ] [--miner= ] [--] ARGUMENTS - Content ID of piece to retrieve. OPTIONS --price string - Amount of filecoin to offer for this data. --miner string - Optional Peer ID of miner to connect to. (If unspecified, the chain routing service will be used)
USAGE filecoin retr lookup5.6.3 通過礦工ID查詢?cè)摍z索礦工的信息- Print a list of miners who have the given piece. SYNOPSIS filecoin retr lookup [--sort= ] [--] ARGUMENTS ... - Content ID of piece to find. OPTIONS --sort string - Output sorting scheme.
USAGE filecoin retr query5.6.4 案例[ ] - Query the given retrieval miner. SYNOPSIS filecoin retr query [--] [ ] ARGUMENTS - ID of miner to query. [ ] - Optional cid of piece to query for.
我們?cè)囍鴻z索查詢一下,于 第四章4.2節(jié) 中所導(dǎo)入并成功被存儲(chǔ)的文本數(shù)據(jù) QmRxRSrZgFfRc...7s1o 來試試:
當(dāng)存儲(chǔ)訂單的狀態(tài)變?yōu)閜osted時(shí),就可以進(jìn)行被存儲(chǔ)數(shù)據(jù)的檢索響應(yīng)了,需要礦工worker地址和對(duì)應(yīng)數(shù)據(jù)CID信息:
go-filecoin retrieval-client retrieve-piece
此過程有一定網(wǎng)絡(luò)時(shí)延,查詢成功效果如下圖所示:
至此,無論從定位職能,還是從設(shè)計(jì)原理,還是從工程操作角度,我們應(yīng)該對(duì)目前的Filecoin檢索市場(chǎng)都有了更加深入的了解。
我們將在下一章《【Filecoin源碼倉(cāng)庫(kù)全解析】第六章:如何組建多節(jié)點(diǎn)礦工集群》中介紹如何在一臺(tái)機(jī)器上構(gòu)建多節(jié)點(diǎn)的方案。
參考文獻(xiàn):https://github.com/filecoin-p...
https://github.com/filecoin-p...
往期系列文章回顧:【Filecoin源碼倉(cāng)庫(kù)全解析】第一章:搭建Filecoin測(cè)試節(jié)點(diǎn)
【Filecoin源碼倉(cāng)庫(kù)全解析】第二章:如何創(chuàng)建賬戶錢包并獲取FIL Mock代幣
【Filecoin源碼倉(cāng)庫(kù)全解析】第三章(上):存儲(chǔ)提供方(礦工)的配置操作
【Filecoin源碼倉(cāng)庫(kù)全解析】第三章(下):存儲(chǔ)提供方(礦工)的配置操作
【Filecoin源碼倉(cāng)庫(kù)全解析】第四章:存儲(chǔ)需求方(用戶)的配置操作
本章贊助品牌:深圳牛鏈科技有限公司 ,是一家專注存儲(chǔ)類IPFS礦機(jī)研發(fā)、生產(chǎn)、銷售、托管為一體的高科技企業(yè)。 目前技術(shù)團(tuán)隊(duì)包括IPFS硬件技術(shù)研發(fā),IPFS協(xié)議研究,IPFS底層程序開發(fā),IPFS應(yīng)用程序研發(fā),并在成都專門成立研發(fā)中心。2018年,研發(fā)中心團(tuán)隊(duì)在研究IPFS底層協(xié)議的基礎(chǔ)上,開始搭建并運(yùn)營(yíng)IPFS高速網(wǎng)絡(luò)系統(tǒng),并正積極研發(fā)基于IPFS的網(wǎng)絡(luò)應(yīng)用。牛鏈科技的技術(shù)研發(fā)團(tuán)隊(duì)全力以赴研究Filecoin的運(yùn)行機(jī)制,優(yōu)化礦場(chǎng)配置,作為一家區(qū)塊鏈技術(shù)服務(wù)提供商,致力于為廣大用戶提供優(yōu)質(zhì)的信息技術(shù)服務(wù)。牛鏈希望以技術(shù)驅(qū)動(dòng)效率,為Filecoin落地提供基礎(chǔ)設(shè)施。
感謝 深圳牛鏈科技有限公司 對(duì)嘉樂SOHO的原創(chuàng)內(nèi)容提供支持。
聯(lián)系作者:本人從業(yè)經(jīng)驗(yàn)有限,不免有不足之處,歡迎指正和更多討論,可私信微信公眾號(hào):jialesoho,或者加我微信:daijiale6239,如果覺得對(duì)您有幫助,可以幫點(diǎn)擊好看推廣和打賞支持噢,感激不盡!
(識(shí)別圖中二維碼,關(guān)注嘉樂SOHO微信公眾號(hào))
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/24586.html
摘要:我們將在本章介紹如何在一臺(tái)機(jī)器上構(gòu)建多節(jié)點(diǎn)的方案和未來礦池產(chǎn)品設(shè)計(jì)的一些思路。本文將介紹一種直接在單機(jī)上部署和管理多節(jié)點(diǎn)的方案。最初起源于比特幣。 歡迎大家來到第六章,經(jīng)過前章《【Filecoin源碼倉(cāng)庫(kù)全解析】第五章:檢索市場(chǎng)及檢索礦工》的介紹,無論從定位職能,還是從設(shè)計(jì)原理,還是從工程操作角度,我們應(yīng)該對(duì)目前的Filecoin檢索市場(chǎng)有了更加深入的了解。 我們將在本章介紹如何在一臺(tái)...
摘要:之后,存儲(chǔ)端礦工節(jié)點(diǎn)會(huì)在一定時(shí)間間隔可配置,默認(rèn)為秒自動(dòng)啟動(dòng)密封過程,即獲取之前微支付通道中暫存區(qū)域的所有數(shù)據(jù),并將其密封到礦工的承諾存儲(chǔ)區(qū)域中。 歡迎大家來到第四章,經(jīng)過前章 【Filecoin源碼倉(cāng)庫(kù)全解析】第三章(下):存儲(chǔ)提供方(礦工)的配置操作的內(nèi)容閱讀后,我們應(yīng)該會(huì)對(duì)Filecoin市場(chǎng)機(jī)制中的礦工對(duì)象有了更詳細(xì)的認(rèn)知,對(duì)礦工事務(wù)的生命周期有了具象化地理解。 本章,我們將重...
摘要:如上圖,驗(yàn)證過程可以表述為驗(yàn)證者會(huì)按照一定的規(guī)則向礦工提起挑戰(zhàn),挑戰(zhàn)是隨機(jī)生成的,礦工不能提前獲知。三時(shí)空證明如圖所示,可以理解為礦工一定時(shí)間內(nèi)持續(xù)地生成復(fù)制證明和接受挑戰(zhàn)和驗(yàn)證的過程,并通過這個(gè)過程,更新全網(wǎng)存儲(chǔ)算力。 歡迎大家來到第七章,經(jīng)過前章《【Filecoin源碼倉(cāng)庫(kù)全解析】第六章:如何單機(jī)部署多節(jié)點(diǎn)集群及礦池設(shè)計(jì)思路》的介紹,我們分享了如何在單機(jī)部署多節(jié)點(diǎn)集群的知識(shí)以及礦池...
摘要:我們會(huì)在后面的源碼倉(cāng)庫(kù)全解析第三章下存儲(chǔ)提供方礦工的配置操作章節(jié)重點(diǎn)介紹這個(gè)過程。參考文獻(xiàn)本章贊助品牌深圳牛鏈科技有限公司,是一家專注存儲(chǔ)類礦機(jī)研發(fā)生產(chǎn)銷售托管為一體的高科技企業(yè)。感謝深圳牛鏈科技有限公司對(duì)嘉樂的原創(chuàng)內(nèi)容提供支持。 歡迎大家來到第三章,經(jīng)過 前章《【Filecoin源碼倉(cāng)庫(kù)全解析】第二章:如何創(chuàng)建賬戶錢包并獲取FIL Mock代幣的內(nèi)容閱讀后,我們應(yīng)該能順利在Filec...
摘要:我們將在下一章源碼倉(cāng)庫(kù)全解析第四章下存儲(chǔ)需求方的配置操作中重點(diǎn)介紹存儲(chǔ)需求方用戶的配置操作,并反過來驗(yàn)證第三章中存儲(chǔ)礦工后續(xù)挖取新塊的過程,幫助大家融會(huì)貫通,并在工程上驗(yàn)證整個(gè)挖礦行為的生命周期。目前已成為華中區(qū)最大最具影響力的垂直媒體。 不好意思,這篇加了點(diǎn)八卦: 本來是不太想說這事的,從18年看到現(xiàn)在,不少見圈里的朋友和友商互相吐槽乃至攻擊...最近還鬧得比較大。這里說兩句:區(qū)塊鏈...
閱讀 2135·2019-08-29 16:53
閱讀 2711·2019-08-29 16:07
閱讀 2053·2019-08-29 13:13
閱讀 3276·2019-08-26 13:57
閱讀 1342·2019-08-26 13:31
閱讀 2446·2019-08-26 13:22
閱讀 1232·2019-08-26 11:43
閱讀 2095·2019-08-23 17:14