什麼是PP.io?
PP.io是我和Bill發起的存儲項目,目的在於爲開發者提供一個去中心化的存儲和分發平臺,能作到更便宜,更高速,更隱私。
固然作去中心化存儲的項目也有好幾個,FileCoin,SiaCoin,MaidSafe等,可是仔細看看他們流出的資料,官網,白皮書,文章以及各個社區的言論,能夠看出他們注重這幾點,徹底去中心化,安全性,徹底的社區化治理,幾乎像比特幣同樣地宣傳區塊鏈精神,以便於把幣的價值經過共識作起來。甚至能夠說,這些項目都是把存儲項目純粹看成區塊鏈項目來作得, 可是這樣能把去中心化存儲作好嗎?
首先,去中心化存儲也是數據的網絡存儲,數據存儲和比特幣等數字貨幣實際上是不一樣的。
數字貨幣是錢,錢對安全性的要求很是高。每當我支付出一筆錢出去,我手上的錢就會變少,而錢支付的快和慢不是那麼重要。
數據網絡存儲是使用場景,在互聯網上處處都須要數據存儲。對於我的用戶而言,蘋果的iCloud,Google Drive, 微軟的OneDrive就是數據存儲;而對於開發者而言,AWS S3和微軟的Axure就是對開發者的存儲服務。存儲是真正須要使用的產品,因此服務質量很是重要,貴了,慢了,數據丟了,網盤服務關停了,都有多是用戶不使用的理由。在這個場景下,存儲價格合理,服務質量高,就很是重要了。因此存儲價格合理,服務質量高,纔是真正地作好去中心化存儲。
能夠再看看前面提到的幾個項目,他們輸出的資料、官網、白皮書、文章中幾乎沒有提到過服務質量(QoS)。甚至在社區裏還有人抱怨,去中心化存儲的價格相對於傳統雲存儲的價格,不但沒有變低,反而還高了不少。
再仔細一想,去中心化存儲是如今纔出現的嗎?其實不是,早就有了,如BitTorrent,Emule以及我以前設計的PPTV (數據早就存在不少節點上,而且廣闊地部署在全網,而後相互免費共享)。它們本質就是去中心化存儲。
因此我在設計PP.io項目的時候,想法和Filecoin、SiaCoin等幾個項目有很大的不一樣。我是把傳統P2P項目的精髓結合區塊鏈項目的特色來作,提出以用戶服務質量爲導向的去中心化存儲項目。 也由於如此,PP.io項目的實施過程並上來就直接徹底去中心,而要經歷3個階段,」強中心「、」弱中心「、」徹底去中心「。
你沒有看錯,咱們沒有一開始就直接徹底去中心。這不一樣於如今的區塊鏈項目。下面詳細說一下,我是怎麼思考的。
首先個人觀點:區塊鏈解決的是信任問題,不是數據存儲問題。因此我在設計PP.io的時候,不會將存儲文件放在鏈上,在鏈上只存放資產,合約,證實等和激勵相關的信息。數據存放在分散的存儲節點節點上,使用P2P存儲技術來分配和調度,不存入區塊鏈,數據是能夠被全部者刪除的,但也只能被數據全部者刪除。就像比特幣,只有全部者能發起轉帳同樣。
-
一個是分佈式存儲系統,是由P2P存儲技術構建,以Qos爲導向,目標是作出不低於AWS S3的Qos(服務質量)
-
另一個是區塊鏈系統,是由區塊鏈技術構建,以經濟激勵爲導向,目標是作出良性的市場經濟,讓真正價廉物美的服務商得到收益
首先,我在設計PP.io的時候,存儲方面從頭至尾都是去中心的,數據永遠存放在去中心化的網絡中。可是一個高效的P2P系統並非只有存儲節點,還有一些中心化的服務器。這些服務器是用於管理大量的索引信息,跟蹤信息等,讓節點之間相互發現對方,讓節點之間相互協調。就像Bitorrent系統中的Tracker服務器角色。這些服務器是不存放數據的,可是若是沒有這些中心化服務器,P2P網絡會變得很是低效。PP.io系統中也存在這樣的角色,這就是我所謂的「中心」。
簡單地說,區塊鏈,激勵,存儲都是始終去中心的, 只有相似於Bittorrent的Tracker角色,才須要經歷3個階段。
-
用戶節點:PP.io的消費者,經過消耗必定的PP.io Coin,來得到存儲或下載數據的服務。
-
發佈源節點:發佈內容服務的節點,屬於一種特殊的用戶節點,它們一般不下線,且可以長期提供下載服務;發佈源節點相似於IPFS
-
存儲節點:經過提供存儲空間和帶寬服務來得到PP.io Coin激勵的節點。
-
檢索調度節點:可同時提供檢索和調度兩種服務, 並可得到PP.io Coin激勵的節點,檢索功能方便爲用戶快速定位到指定數據的位置,調度功能管理數據的上傳和下載,並根據供需關係調整存儲數據副本的流動。
-
監督節點:承擔存儲證實中的驗證任務並可得到激勵的節點,監督節點確認存儲節點的總存儲容量,驗證用戶數據存儲下載,檢查存儲時空和下載帶寬的有效性;
其餘去中心化存儲,如FileCoin, MaidSafe,都沒有單獨的監督節點角色,都要用他們的礦工節點兼作監督節點。咱們覈算了礦工節點的性能,若是承擔監督工做,會有大量的密碼學工做,就會要求全部礦工配置更高。FileCoin裏面的礦工做用,有點相似PP.io裏面的存儲節點,咱們PP.io爲了下降存儲節點的門檻,將提供存儲服務的角色和監督角色分開,因此將監督節點獨立出來了。
差很少介紹了基本信息後,我該詳細介紹PP.io將來發展的3個階段了。
「強中心」階段 "Strong center" phase
這些節點是去中心化的:用戶節點,發佈源節點,存儲節點。
除此以外,咱們還有一個結算中心,也是中心化的。負責計算節點之間的Token的支付。
這個階段,區塊鏈只有一條主鏈。主鏈上咱們只存放資產信息,也就是用戶有多少幣,相應的轉帳記錄。
其實,StorJ如今也處於這個狀態,它的分佈式存儲是本身作得,它的激勵直接使用的是以太坊上的ERC20代幣。它是靠中心化統計,而後每月按時給礦工發工資的方式來激勵的。
「弱中心」階段
這些節點是去中心化的:用戶節點,發佈源節點,存儲節點
聯盟部署就是必須有PP.io的許可才能加入並部署這樣節點。這樣作的目地是使用人爲的方式來避免這些節點做惡,從而下降這個階段的開發難度。
以前的結算中心服務器,在這階段演化成了一組側鏈,每條側鏈上有多個節點交替產生區塊。由出塊節點作結算,其餘節點對結算的結果作驗證。側鏈和主鏈之間分別作共識,側鏈和主鏈之間經過預言機機制來通信。
這條側鏈咱們稱爲合約鏈。若是這條側鏈的性能不夠,能夠分裂出多條合約鏈。
這個階段,區塊鏈只有一條主鏈和多條合約鏈構成,資產,合約,證實均寫在區塊鏈上。可是合約鏈相關的節點是必須有受權才能部署的,簡單地說,合約鏈處於聯盟鏈狀態。
「去中心」階段
這個階段,全部節點都是去中心化的。這是PP.io的最終狀態,以前在」弱中心「狀態下聯盟部署的節點,如檢索調度節點,監督節點在這個階段就沒有接入限制了,任何人均可以加入PP.io網絡並進行部署這些節點。
這個階段,區塊鏈依然保持一條主鏈和多條合約鏈構成。合約鏈也不在是聯盟鏈,變成了公鏈。區塊鏈共識算法也會在這段階段實現最終共識算法。
這裏我詳細解釋了PP.io的三個階段。這篇文章我先說到這裏,可能你有很多問題。不要着急,下一篇文章我會講解爲何要把PP.io設計成三個階段。
若是有關於區塊鏈學習的交流,能夠經過下面的方式聯繫我: