在上篇文章中,咱們主要從價值定位、技術層次架構、服務質量、去中心化程度,和經濟激勵機制五個方面分析了三個項目的不一樣。在這一篇文章中,咱們將着重從區塊鏈的架構設計、數據傳輸技術設計和數據存儲技術設計三方面繼續分析。算法
Storj 僅使用 ERC20 的 Token 來標識其存儲節點的貢獻,而平臺自己沒有區塊鏈的支持。所以其客戶端(Client/User)與存儲節點(Storage Node/Miner)之間的交易是經過中心化的服務節點(Satellite)來完成。所以嚴格的說,Storj 並非一個公鏈項目,是基於以太坊上一個應用。Filecoin 和 PPIO 則都擁有本身的鏈,而且不只實現了價值在鏈上的流通,並且交易和證實也在鏈上完成,是真正意義上的基於區塊鏈的存儲和分發平臺。數據庫
#1 共識算法網絡
Filecoin 在設計上一開始就是去中心化的,發明了一種叫作 EC 的共識算法。Storj 沒有自身的共識算法,使用的是以太坊公鏈的算法。PPIO 在徹底去中心化階段將使用 VRF 和 BFT 結合的方式,比較相似於 Difinity 公鏈的機制。而 PPIO 在前期爲了簡化技術難度,採用比較中心化的 DPoS 共識算法。架構
#2 存儲證實算法分佈式
在普通的公鏈項目中,共識算法和證實算法是一體的,如 PoW,PoS 等;而在去中心化存儲項目中,這部分難度很是大,我專門將存儲證實算法單獨拿出來單獨分析。ide
Filecoin 支持 PoRep(複製證實)和 PoSt(時空證實)。複製證實是指實際產生一次網絡複製後所取得的證實;時空證實是一個文件佔據了必定的空間,保存了必定的時間所產生的證實。Filecoin 是這兩個證實的算法的提出者,在 Filecoin 的白皮書裏,這兩個證實算法的過程佔據了 70% 以上的篇幅。性能
Storj 的白皮上透露的其採用的證實是 PoS(存儲證實),從白皮書上看,不如 PoRep 和 PoSt 那麼嚴謹。區塊鏈
PPIO 也使用了 PoRep 和 PoSt 這兩種更爲嚴謹的算法。另外 PPIO 還自創了 PoD(下載證實), 主要用於對多點下載數據的證實,這種算法對流媒體傳輸比較友好。PPIO 在白皮書中還提過一種 LPoC(輕量級容量證實算法),來作存儲節點的冷啓動。不事後來官方已經決定取消 LPoC了,緣由是由於 LPoC 並不產生有價值的服務,而是像 BurstCoin 同樣,在對硬盤資源作無畏地消耗,這點不符合作 PPIO 項目的初衷。優化
#3 區塊鏈架構架構設計
PPIO 設計主鏈加多個合約鏈的架構,合約鏈至關於側鏈。採用這樣設計有兩個主要緣由:
爲了讓性能有更好的擴展。一條鏈性能不夠的時候,能夠有多條鏈來擴展,側鏈自己至關於作了 Sharding 技術。
爲了避免同地區的內容管理的合規性考慮。PPIO 的定位是公司,考慮要遵照不一樣國家的法律,可能須要不一樣國家部署獨立的合約鏈,能夠支持實現的合約細節上有些不同。
#4 上鍊信息
傳說中區塊鏈中一旦數據寫入區塊(這個過程也被稱爲上鍊),就不能刪除,不可篡改。事實確實如此,區塊鏈本質就是分佈式數據庫,全世界千萬臺機器都同步和承認了的信息,是不能刪改的了。因此一提到存儲區塊鏈,你們的直覺就是既然須要存儲的數據內容上鍊了,是否是存儲的內容也就不能刪除、不可修改。答案是否認的。Filecoin,Storj,PPIO 都沒有將實際存儲的內容寫入區塊鏈。因此說,實際存儲的數據是能夠刪除和修改的。
那麼存儲在這三個公鏈上的信息是什麼呢?
Storj 是基於 ETH 公鏈實現的,上鍊的信息都寫在 ETH 上的 Stroj 合約裏面,這是著名 ERC20 合約,因此說上鍊的只有資產和交易。
Filecoin 除了資產和交易外,還上鍊了證實信息。Filecoin 的合約則所有在鏈下完成,不上鍊。
PPIO 不只僅上鍊了資產、交易、證實,還上鍊了合約。
#1 重疊網絡
PPIO 支持重疊網絡(Overlay網絡),每一個存儲節點(Storage Node/Miner)都會將與本身物理鏈接較快的存儲節點做爲本身的鄰居,在數據傳遞和信息交互過程,充分發揮臨近節點的優點,使得網絡效率大大提升。
Storj 目前並未設計相似支付網關的功能。
Filecoin 中自己也沒有提供相似支付網關的功能。但這一功能有可能經過第三方開發者在上層實現。
#2 流媒體傳輸的優化
Filecoin 和 Storj 都是針對文件下載,沒有考慮對流媒體作特別的處理。
PPIO 實現了針對流媒體的由數據來驅動的特別下載算法,從而保證明時流媒體的流暢播放。
#3 P4P 技術的支持
全稱 Proactive Network Provider Participation for P2P,在增強相同服務供應商(ISP)內網絡流量的同時,下降了骨幹網絡傳輸壓力和運營成本,從而也提升了 P2P 文件的傳輸性能。與 P2P 隨機挑選節點的方式不一樣,P4P 模式能夠協調網絡拓撲數據,有效選擇節點,從而提升網絡路由效率。
PPIO 團隊以前在作 PPTV 的時候有個豐富地和運營商打交道的經歷,採用了 P4P 的技術,Filecoin 和 Storj 在設計上沒有考慮 P4P。
#4 熱門內容的自適應調度
PPIO 支持 P2P-CDN。在 P2P-CDN 裏面,熱門內容的自適應調度是很是重要的,也是提升服務質量(QoS)的重要手段。熱門內容的自適應調度就是當一個文件在網絡中變得受歡迎以後,系統會自動觸發調度機制,讓更多的存儲節點存儲這個文件。這樣的設計既能提升用戶體驗,也能提升更多存儲節點的收益。反之,當很受歡迎的文件失去熱度以後,系統則會自適應地減小存儲此文件的存儲節點的數量。這樣就造成一種動態的平衡。PPIO 在熱門內容調度算法上下了很大的功夫。Filecoin 和 Storj 目前看尚未設計相似機制。
#1 糾刪技術
PPIO 實現的是全副本和糾刪並存的方式;Storj 是純糾刪碼模式;Filecoin 也許不考慮這個問題。
要理解這個問題,首先要明白糾刪碼對存儲系統來講很是重要。經過糾刪技術可以大大地降數據的不丟失率,專業的指標叫作耐用性(Durability)。糾刪技術是把文件適當擴大後,分割成 n 份,只要有其中的 k 份,就能恢復出完整的文件。若是把這 n 個分片分別放在不一樣的機器上,即便有 n-k 臺機器下線也不會影響文件恢復。
由於 PPIO 的定位是存儲與分發,因此在上層對於文件的分片設計了糾刪碼和全副本雙模式。全副本主要用於作分發,由於全副本傳輸是可以保證獲取數據的效率,最快拿到數據。而糾刪是可以更好地保證數據不丟失的。即便在礦工數量很不穩定,採用糾刪碼技術也能夠在不多冗餘的狀況,作到很高的耐用性(俗稱11個9)。
#2 基於 Overlay 網絡存儲節點優先選擇
存儲節點的選擇,可類比爲 BitTorrent 下載中 Tracker 的功能,專門配合資源和用戶。
PPIO 設計了基於網絡距離來優先選擇存儲節點的算法。這一算法是多維度的,不只考慮了網絡距離(有重疊網絡中獲得的),還要考慮價格、承諾時間、節點穩定性、節點信用值等歷史狀況。但網絡距離是第一考量因素。
Filecoin 的定位是基礎設施,存儲和證實是配套的。Filecoin 的供給端和需求端徹底是鏈下自行匹配的,有簽名和證實就能得到獎勵。也就是說,整個 Filecoin 設計上沒有一個相似於 BitTorrent Tracker 的角色用來匹配資源和礦工之間的關係。
Storj 在這一點沒有透露太多的細節。但這個問題 Storj 必定考慮過的,由於每個 P2P 項目都要考慮節點的選擇問題。
以上就是這三個項目的八大異同點,用一張圖爲你們總結:
若是你有更多問題,歡迎給咱們留言,或加入 PPIO 開發者社區,直接和咱們的核心開發團隊面對面。