【Filecoin源碼倉庫全解析】第六章:如何單機部署多節點集羣及礦池設計思路》

歡迎你們來到第六章,通過前章《【Filecoin源碼倉庫全解析】第五章:檢索市場及檢索礦工》的介紹,不管從定位職能,仍是從設計原理,仍是從工程操做角度,咱們應該對目前的Filecoin檢索市場有了更加深刻的瞭解。html

咱們將在本章介紹如何在一臺機器上構建多節點的方案和將來礦池產品設計的一些思路。node

若是本身學習進度ok,實踐效果符合預期,應該很快也會給你們分享多機(不一樣配置,不一樣規格,不一樣區域)多節點部署的方案。git

1、多節點的部署需求

1.單機便可使用不一樣的角色職能

咱們在第三章第四章第五章中,分別模擬了三個角色:存儲提供方(存儲礦工),存儲需求方(存儲用戶)以及檢索用戶,小編用了兩臺不一樣的機器來實驗。其實,也能夠經過單機完成全部測試。github

2.對於配置比較高的機器,可增長資源利用率

雖然節點客戶端對機器性能、配置要求目前比較苛刻,可是對於一些不常常處於滿負荷狀態,具備更高性能的機器和服務器,仍是能夠經過部署單機多節點方案,來增長整機資源利用率。算法

3.複用公網IP

相比於國外,公網IP是真的稀缺資源,目前看不到IPV6短期內普及的但願...json

libp2p所需的mutiaddress可經過配置端口,多路複用...vim

4.研發複合型產品

將來,隨着Filecoin項目的不斷成熟,和市場需求的不斷演化,將誕生除了礦機以外的一系列複合型產品和工具型產品,爲了把服務能力和邊界擴大,須要統一的節點管理、控制方案,以及專門針對檢索市場而設計的類CDN方案,存儲市場的礦池方案等。api

這些,都或多或少離不開多節點的部署運維工做。本文將介紹一種直接在單機上部署和管理多節點的方案。服務器

2、建立新節點倉庫

假設已編譯安裝了最新版的go-filecoin客戶端,可參考:Filecoin源碼倉庫全解析】第一章:搭建Filecoin測試節點微信

以後,經過指定不一樣的倉庫路徑--repodir,來建立新節點2:

export FCRD=$HOME/.filecoin2

go-filecoin init --genesisfile=http://user.kittyhawk.wtf:8020/genesis.car --repodir=$FCRD

成功後,將生成與以前默認初始化文件夾.filecoin同樣結構的的.filecoin2,如圖所示:

3、修改新節點配置

vim .filecoin2/config.json

修改默認值,從新設置新節點2的api.address和swarm.address的監聽端口:

{
    "api": {
        "address": "/ip4/127.0.0.1/tcp/3455"
        ...
    },
    ...
    "swarm": {
        "address": "/ip4/0.0.0.0/tcp/6011"
    }
}

4、節點互聯

在本機上,分別啓動原節點1和新節點2:

go-filecoin daemon

go-filecoin daemon --repodir=$FCRD

啓動daemon後,咱們也能夠對比單機節點1和節點2的配置信息,以下所示,MultiAddress與PeerID一一對應,且按照不一樣端口配置已生成。

咱們將原節點的multiaddress記錄至臨時變量NODE1_ADDR中,

export NODE1_ADDR=$your_node1_multiaddress

經過go-filecoin swarm connect $NODE1_ADDR --repodir=$FCRD,將新節點2與原節點1創建P2P鏈接。

成功後並經過go-filecoin swarm peers --repodir=$FCRD複查鏈接狀態:

如圖所示,咱們在新節點2的Peer集羣中,查詢到了原節點1的multiaddress。

這樣,一個初步的單機雙節點集羣就部署完畢了,以此類推,能夠繼續批量部署下去,直至機器資源滿負荷運行。

以後,咱們能夠在單機上分別操做多節點,並設置不一樣角色進行前面幾章所描述的測試過程了,有條件的朋友,也能夠將這幾章所描述的配置邏輯編寫成Shell腳本或者加入程序控制來實現自動化。

5、Filecoin礦池設計思路

5.1 礦池的概念

礦池從必定意義上來講,是伴隨時間和市場需求演化而來,更傾向於產品的一個定義。最初起源於比特幣。

在比特幣的體制下,全網平均每10分鐘產出一個區塊,每一個區塊包含50(如今是12.5,每四年左右獎勵減半一次)個比特幣,而一個區塊只可能被某一個幸運兒挖走,直接擁有全部獎勵,其餘人則顆粒無收,挖到的機率與礦工投入的設備算力大小成正比。

這就註定了若是比特幣挖礦參與人數龐大且分散到必定程度後,挖到比特幣的機率將無限接近於零,跟中彩票差很少。

這時候,若是散戶要參與,資源有限,只能投入一臺礦機挖礦,按照機率,要5~10年才能開採到一個區塊,這使比特幣挖礦陷入尷尬境地,讓普通人幾乎沒有參與的可能,並不利於比特幣的發展。

所以,解決的方案是集衆人之力,收益平攤的方式,這也是礦池產品的核心,舉個例子:

假設100萬人參與比特幣挖礦,全網400P算力,其中90%的礦工爲1P(1000T)如下的算力,若是投入一臺1T礦機,將佔全網算力的40萬分之1,理論上平均每40萬個10分鐘能挖到一個區塊,也就是7.6年才能挖到一個區塊而後一次性拿到50(如今是12.5)個比特幣。那麼,假如我再找9個擁有1T算力礦機的礦工,達成協定,咱們總共10我的,其中任何一我的挖到區塊,都按照每人的算力佔比來進行平分,那麼咱們就是一個總體,總共10T算力,那麼平均0.76年便可挖到一個區塊,而後算下來到咱們手上的就是0.76年開採到5個比特幣,若是組織100人、1000人、1萬人甚至10萬人呢?若是是10萬人,那麼平均40分鐘就能挖到1個區塊,做爲團隊的一份子,個人收入將會趨於穩定,且參與度顯著提升。

5.2 礦池的意義

  • 下降了比特幣等虛擬數字貨幣開採的難度,下降了開採門檻,真正實現了人人皆可參與的比特幣挖礦理念。
  • 提升了產業化程度,促進了更穩定的區塊鏈服務。
  • 更合理的商業模式,完善了虛擬數字貨幣行業的產品形態。

5.3 Filecoin可能存在礦池產品嗎?

首先,在DevNetworkState監控面板上有三個關鍵參數咱們須要瞭解:

  • ProvenStorage:存儲礦工已提交PoSt並獲得系統驗證的存儲量。

  • StoragePower:表示存儲有效率,即贏得挖掘下一個區塊的可能性。

  • %of BlocksMined 已被挖掘出的區塊全網佔比

其次,是競選算法的設計與實現完整度:

  • 競選算法:使用選票參與競選,得到選舉的條件。

從Filecoin的白皮書的設計可知,一個好的競選算法,應當知足至少以下的幾個特色:

公平:每一個參與者每次選舉只有一次試驗,簽名是肯定的,並且t和rand(t)是固定的。隨機值rand(t)在時刻t以前是未知的。所以,每一個Ticket的計算值域相對公平。

保密:即攻擊者沒有Mi(目前已經在網絡有抵押的擔保品信息),所以沒法生成有效的Ticket和被簽名的密鑰。

公開可驗證:能夠經過給出計算值域,時刻t和Mi來講服驗證者自身有效性。

其實白皮書的設計思想能夠歸結於下面這個公式,已被簽名的ticket值域,同時被簽名的ticket須要被哈希成一串較長位數編碼,以防被暴力破解 (相似比特幣中所使用的Hashcash,不斷嘗試要知足前綴N個比特位都是0這樣的條件) ,而紅框中的表示節點的存儲有效率Ratio,有效率是一個相對大的十進制值,須要換算成二進制的編碼,才能與Hashcash以後的簽名Ticket匹配作精準判斷,L與全網難度強相關,要求的前導0的個數越多,表明L難度越大。

那麼,小編查閱了一下測試網目前這塊的競選算法代碼實現:

Leader的選舉,目前僅比較了存儲有效率與Ticket的值域,全網難度L的策略目前還未實現...

儘管如此,綜合來看:存儲效率是關鍵,Filecoin很大可能也將催生出礦池類產品。 理由以下:

  • 在相同的時間內,只要某個礦工節點所提供的存儲增量的速度大於全網存儲增量的速度,那麼該節點的StoragePower將顯著提高。
  • 存儲訂單的選擇在測試網並未實現撮合,是由用戶來主動選擇,那麼用戶選擇的傾向很大程度取決於礦工的QoS和報價。存儲有效率更高的礦工提供QoS的信任感更強,同時得到的區塊獎勵更多,能夠以更低的報價單提供服務,那麼將致使更多的訂單流向存儲有效率更高的礦工節點。 雪球越滾越大...
  • 越早參與,存儲越久數據的礦工節將更有優點,當全網存儲量達到一個很大的基數時,新礦工短期內將難以得到較大的出塊可能,將隨比特幣系統同樣,節點礦工將造成馬太效應。

5.4 Filecoin礦池設計思路

如圖,設計了一個粗略的Filecoin礦池產品架構,複雜的系統都是由基礎的模塊迭代而來,歡迎對此感興趣的朋友作更深刻的交流和探討。

咱們也將在下一章《【Filecoin源碼倉庫全解析】第七章:如何參與複製證實遊戲測試》中,介紹Filecoin中的核心技術,EC共識,複製證實,時空證實,以及目前的證實測試遊戲等內容。

參考文獻:

往期系列文章回顧:

【Filecoin源碼倉庫全解析】第一章:搭建Filecoin測試節點
【Filecoin源碼倉庫全解析】第二章:如何建立帳戶錢包並獲取FIL Mock代幣
【Filecoin源碼倉庫全解析】第三章(上):存儲提供方(礦工)的配置操做

【Filecoin源碼倉庫全解析】第三章(下):存儲提供方(礦工)的配置操做

【Filecoin源碼倉庫全解析】第四章:存儲需求方(用戶)的配置操做

【Filecoin源碼倉庫全解析】第五章:檢索市場及檢索礦工

本章贊助品牌:

江西正舵者網絡科技有限公司 是一家專業的大數據和分佈式存儲的新興科技公司。公司團隊匯聚了國內外區塊鏈、人工智能、大數據、金融投資各個領域的經驗豐富的頂尖專家,包括美國亞利桑那州大學、香港大學、中山大學、華中科技大學等國內外一流大學畢業的教授博士團隊5人、碩士10人、核心技術骨幹18人等,擁有專利技術12項;公司與國內外各高校、區塊鏈實驗室等創建了戰略合做關係,其爲正舵者科技公司帶來了最前沿的科研成果、人才培養和輸送。公司專一於IPFS應用研究和礦場項目建設,爲IPFS生態提供最全面、專業的支持,包括礦機、礦場、託管、數據等,爲不一樣層次參與者提供多方位,多角度的服務。

感謝 江西正舵者網絡科技有限公司(http://www.zdzkj.net)嘉樂SOHO的原創內容提供支持。

聯繫做者:

本人從業經驗有限,難免有不足之處,歡迎指正和更多討論,可私信微信公衆號:jialesoho,或者加我微信:daijiale6239,若是以爲對您有幫助,能夠幫點擊好看推廣打賞支持噢,感激涕零!

(識別圖中二維碼,關注嘉樂SOHO微信公衆號)

相關文章
相關標籤/搜索