區塊鏈和分布式技術的最重要一部分就是共識算法(整個網絡如何達成共同決策)和智能合約(用于執行我們在這個中心化世界中每天使用的應用程序)。
但是當我們在使用日常應用程序時,這些屬性是不足以滿足當今世界的需求。如果只具備上述兩種屬性,想在優酷Netflix上面觀看喜歡的電影/電視劇、在社交網絡facebook上面存儲/記錄視頻/圖片、或是在區塊鏈上面玩你最喜歡的游戲,比如DOTA、LOL等,這一切都將很難實現。
我們現在所缺失的是一個強大的、安全的且去中心化的內容存儲和分布式系統,來為當前數以億計的應用程序提供數據存儲的服務。
下面我們將探索并評估一些最受歡迎的分布式存儲平臺(IPFS、Swarm、Sia、Storj、MaidSafe),由于篇幅較長,我們將分成上下部分。
1. IPFS
狀態:已上線(其激勵系統,“Filecoin”尚未上線)
闡述:IPFS(星際文件系統)一種點對點(p2p)文件共享系統,旨在從根本上改變信息在全球各地的分布方式。
IPFS由通信協議和分布式系統中的部分創新演變而生,這些創新已被組合以產生與眾不同的文件系統。因此,要全面了解IPFS試圖實現的廣度和深度,重要的是要了解將其實現的技術突破以及它試圖解決的所有問題。
IPFS的最終目的是取代HTTP,那么,讓我們來看看現今的互聯網是如何運作的。
簡而言之,互聯網是一組描述數據如何在網絡中移動的協議。開發人員隨著時間的推移采用這些協議,并在此基礎架構之上構建應用程序。作為Web主干的協議之一是HTTP即超文本傳輸協議,這是由Tim Berners-Lee于1991年發明的。
HTTP是一個請求-響應的協議,客戶端(例如Web瀏覽器)向外部服務器發送請求, 然后,服務器將響應消息(例如,Google主頁)返回給客戶端, 這是一個位置尋址協議,意味著當我將google.com鍵入我的瀏覽器時,它會被轉換為某個Google服務器的IP地址,然后該服務器會啟動請求 - 響應周期。
HTTP的問題
假設你正坐在演講廳,教授要求你去訪問指定的網站。講座中的每個學生都向該網站提出請求并得到回復。這意味著相同的準確數據會單獨發送給屋子里的每個學生。如果有100名學生,則有100個請求和100個回復。這顯然不是最有效的做事方式。理想情況下,學生將能夠利用他們的物理距離優勢來更有效地檢索他們所需的信息。
如果網絡通信線路中存在某些問題并且客戶端無法與服務器連接,則HTTP也會出現大問題。如果ISP發生中斷,某個國家/地區禁止某些內容,或者內容只是被刪除或移動,就會發生這種情況。這些類型的斷開鏈接存在HTTP Web上隨處可見。
HTTP的基于位置的尋址模型鼓勵中心化,使用我們的所有數據信任少數幾個應用程序很方便,但由于這一點,網絡上的大部分數據都變得很混亂,這使得這些提供商對我們的信息負有巨大的責任和權力(例如facebook)。
HTTP非常適合加載網站,但它不是為傳輸大量數據(如音頻和視頻文件)而設計的。這些限制可能使Napster(音樂共享服務)和BitTorrent(電影共享服務)等替代文件共享系統的出現和主流成功。
快進到2018年,按需高清視頻流和大數據正在變得無處不在; 我們正在繼續向上生產/消耗越來越多的數據,以及開發越來越強大的計算機來處理數據。 云計算的重大進步有助于維持這種轉變,但分發所有這些數據的基礎架構基本保持不變。
解決方案
IPFS最初是由Juan Benet努力構建一個能夠快速遷移版本化科學數據的系統。它是經過充分測試的互聯網技術的綜合,如DHT,Git版本系統和Bittorrent。 它創建了一個P2P群,允許交換IPFS對象。 IPFS對象的總體形成加密認證的數據結構,稱為Merkle DAG,并且該數據結構可用于模擬許多其他數據結構。 或者換句話說。..。..
IPFS是一種分布式文件系統,旨在將所有計算設備與相同的文件系統連接起來。在某些方面,這類似于Web的原始目標,但IPFS實際上更類似于交換git對象的單個bittorrent群。 IPFS可以成為互聯網的一個新的主要子系統。如果搭建正確,它可以補充或替換HTTP,或許補充或替代更多,聽起來很瘋狂,是很瘋狂。
IPFS的核心是一個版本化文件系統,它可以接收文件并對其進行管理,并將它們存儲在某個地方,然后跟蹤版本。 IPFS還考慮了這些文件如何在網絡中移動,因此它也是一個分布式文件系統。
IPFS規定了數據和內容如何在網絡上移動,其性質與bittorrent相似。此文件系統層提供了非常有趣的屬性,例如:
完全分布式的網站。
沒有原始服務器的網站。
可以完全在客戶端瀏覽器上運行的網站。
沒有任何服務器可以與之交談的網站。
讓我們看看這些不同的技術突破如何協同工作。
分布式哈希表
哈希表是將信息存儲為鍵/值對的數據結構。在分布式哈希表(DHT)中,數據分布在計算機網絡上,并且有效地協調以實現節點之間的有效訪問和查找。
DHT的主要優點是去中心化,容錯和可擴展性。節點不需要集中協調,即使節點發生故障或離開網絡,系統也能可靠地運行,DHT可以擴展以容納數百萬個節點。這些特征共同導致系統通常比客戶端 - 服務器結構更具彈性。
區塊交換
流行的文件共享系統Bittorrent能夠通過依賴創新的數據交換協議成功協調數百萬個節點之間的數據傳輸,但它僅限于torrent生態系統。 IPFS實現了該協議的通用版本,稱為BitSwap,它作為任何類型數據的市場運行。這個市場是Filecoin的基礎:一個基于IPFS的p2p存儲市場。
Merkle DAG
merkle DAG是Merkle樹和有向無環圖(DAG)的混合體。 Merkle樹確保在p2p網絡上交換的數據塊是正確的,未損壞的和不變的。 通過使用加密哈希函數組織數據塊來完成此驗證。 這只是一個函數,它接受輸入并計算與該輸入相對應的唯一字母數字字符串(哈希)。 很容易檢查輸入是否會產生給定的哈希值,但很難猜測哈希的輸入。
各個數據塊稱為“葉節點”,它們被散列形成“非葉節點”。 然后可以組合和散列這些非葉節點,直到所有數據塊可以由單個根哈希表示。這是一種更簡單的概念化方法:
DAG是一種模擬沒有周期的拓撲信息序列的方法。 DAG的簡單示例是族譜。 merkle DAG基本上是一種數據結構,其中哈希用于引用DAG中的數據塊和對象。 這創建了幾個有用的功能:IPFS上的所有內容都可以唯一標識,因為每個數據塊都有唯一的哈希。 此外,數據是防篡改的,因為改變數據就會改變哈希,如下所示:
IPFS的核心原則是對廣義Merkle DAG上的所有數據進行建模。這種安全功能的重要性很難夸大。用一個例子來表明這個想法有多么強大,價值數萬億美元的資產受到這一原則的保護。
版本控制系統
Merkle DAG結構的另一個強大功能是它允許您構建分布式版本控制系統(VCS)。最受歡迎的例子是Github,允許開發人員輕松地同時協作項目。 Github上的文件使用merkle DAG進行存儲和版本化。允許用戶獨立復制和編輯文件的多個版本,存儲這些版本并且稍后將編輯文件與原始文件合并。
IPFS對數據對象使用類似的模型:只要響應于原始數據的對象和任何新版本都可訪問,就可以檢索整個文件歷史記錄。鑒于數據塊通過網絡本地存儲并且可以無限期緩存,這意味著可以永久存儲IPFS對象。
此外,IPFS不依賴于對Internet協議的訪問。 數據可以分布在覆蓋網絡中,覆蓋網絡只是構建于另一個網絡之上的網絡。 這些特點值得注意,因為這是抗審查網絡的核心要素。 可以成為促進言論自由以對抗全球互聯網審查普及程度的有用工具,但我們也應該認識到不良行為者可能濫用言論。
自我認證文件系統
我們將介紹的IPFS的最后一個重要組成部分是自我認證文件系統(SFS)。它是一個分布式文件系統,不需要特殊的數據交換權限。它是“自我認證”的,因為提供給客戶端的數據是通過文件名(由服務器簽名)進行身份驗證的。結果?您可以利用本地存儲的透明性安全地訪問遠程內容。
IPFS以此概念為基礎,創建了星際名稱空間(IPNS)。它是一個SFS,使用公鑰加密技術來自我認證網絡用戶發布的對象。我們之前提到IPFS上的所有對象都可以唯一標識,但這也會擴展到節點。網絡上的每個節點都有一組公鑰,私鑰和一個節點ID,是其公鑰的哈希值。因此,節點可以使用其私鑰來“簽署”他們發布的任何數據對象,并且可以使用發件人的公鑰來驗證此數據的真實性。
以下是關鍵IPFS組件的快速回顧:
使用分布式哈希表,節點可以存儲和共享數據,而無需中央協調。
IPNS允許使用公鑰加密技術立即預先驗證和驗證交換的數據。
Merkle DAG可實現唯一標識,防篡改和永久存儲的數據。
可以通過ConsenSys查看有關文件如何在網絡中分發的更多信息(深入了解)。
2. Swarm
狀態:已上線
說明:
Swarm是一種分布式存儲平臺和內容分發服務,是以太坊web3堆棧的本地基礎層服務。 Swarm的主要目標是為以太坊的公共記錄提供充分去中心化和冗余的存儲,特別是存儲和分發dapp代碼和數據以及區塊鏈數據。 從經濟角度來看,它允許參與者有效地匯集其存儲和帶寬資源,以便為所有網絡參與者提供這些服務,同時受到以太坊的激勵。
目的
Swarm更全面的目標是為去中心化網絡應用程序(dapps)的開發人員提供基礎設施服務,特別是:消息傳遞,數據流,點對點管賬,可變資源更新,存儲保險,監管掃描和維修證明,支付渠道和數據庫服務。
從最終用戶的角度來看,除了上傳不托管在特定服務器上,Swarm與萬維網沒有什么不同。 Swarm提供點對點存儲和服務解決方案,具有DDoS抗性,零停機,容錯和抗審查以及自我維護的特點,因為內置的激勵系統使用點對點管賬并允許交易資源進行支付。 Swarm旨在與以太坊的devp2p多協議網絡層以及以太網區塊鏈進行深度集成,以進行域名解析(使用ENS),服務支付和內容可用性保險。
注意:為了解析ENS名稱,您的Swarm節點必須連接到以太坊區塊鏈(主網或測試網)。
請參閱我們的發展路線圖,隨時了解swarm的進展情況。
概述
Swarm旨在為新的去中心化互聯網提供基礎層基礎架構。 Swarm是節點的點對點網絡,通過向彼此提供資源(存儲,消息轉發,支付處理)來提供分布式數字服務。以太坊基金會運行Swarm測試網絡,可用于以類似于以太坊測試網(ropsten)的方式測試功能。每個人都可以通過在其服務器,臺式機,筆記本電腦或移動設備上運行Swarm客戶端節點來加入網絡。有關如何執行此操作,請參閱Swarm入門。 Swarm客戶端是以太坊堆棧的一部分,參考實現是用golang編寫的,可以在go-ethereum存儲庫中找到。目前Swarm正在POC(概念證明)0.3版本所有節點上運行。
Swarm提供了一個本地HTTP代理API,dapp或命令行工具可以使用其與Swarm交互。某些模塊(如消息傳遞)僅可通過RPC-JSON API獲取。測試網上的基礎服務器提供公共網關,用于輕松演示功能并允許自由訪問,以便人們可以在不運行自己的節點的情況下嘗試Swarm。
Swarm是devp2p網絡的節點集合,每個節點在相同的網絡ID上運行bzz協議組件。
swarm節點還可以與一個(或多個)以太坊區塊鏈連接以進行域名解析,并使用一個以太坊區塊鏈進行帶寬和存儲補償。運行相同網絡ID的節點應該連接到相同的區塊鏈進行支付。Swarm網絡由其網絡id標識,該網絡id是任意整數。
Swarm允許上傳和離開,這意味著任何節點都可以只將內容上傳到Swarm,然后允許其離線。只要節點不丟失或不可用,由于節點在彼此之間連續傳遞可用數據的“同步”過程,內容仍然可以訪問。
公共網關
Swarm提供了一個本地HTTP代理API,Dapp可以使用它與Swarm進行交互。以太坊基金會正在托管一個公共網關,允許免費訪問,以便人們可以在不運行自己的節點的情況下嘗試使用Swarm。
可以在https://swarm-gateways.net找到Swarm公共網關,并始終運行最新的穩定Swarm版本。
注意:此網關目前僅接受有限大小的上傳。在未來,可能無法上傳到此網關。
上傳和下載數據
上傳內容包括將內容“上傳”到你的本地Swarm節點,然后你的本地Swarm節點將所生成的數據塊與網絡中的節點“同步”。同時,下載內容包括你的本地Swarm節點查詢網絡中的節點以獲取相關數據塊,然后在本地重新組合內容。
內容解析器:ENS
注意:為了解析ENS名稱,你的Swarm節點必須連接到以太坊區塊鏈(主網或測試網)。
ENS是Swarm用于允許通過可讀名稱引用內容的系統,例如“theswarm.eth”。它的操作類似于DNS系統,將可讀名稱轉換為機器標識符 - 在本例中,是你引用內容的Swarm哈希值。通過注冊名稱并將其設置為解析你網站根目錄的內容哈希,用戶可以通過bzz://theswarm.eth/等網址訪問您的網站。
注意:目前主流瀏覽器(如Chrome,Firefox或Safari)不支持bzz方案。如果您想通過這些瀏覽器訪問bzz方案,目前您必須使用HTTP網關,例如https://swarm-gateways.net/bzz:/theswarm.eth/或使用支持bzz方案的瀏覽器,如Mist。
可變資源更新
可變資源更新是一個高度實驗性的功能,可從Swarm POC3獲得。 目前正在積極開發,所以讓我們靜觀其變。
我們之前在本指南中已經了解到,當我們在Swarm中對數據進行更改時,上傳該數據時返回的哈希將以完全不可預測的方式發生變化。 通過可變資源更新,Swarm提供了一種內置方法,可以為不斷變化的數據保留永久標識符。
保持指向更改數據的指標的常用方法是使用以太坊名稱服務ENS。 但是,ENS是一個鏈上功能,它限制了某些領域的功能:
1. 每次更新ENS解析器都會花費你的燃料來執行。
2. 更改數據的速度不可能比新塊的開采速度更快。
3. 正確的ENS解析要求你始終同步到區塊鏈。
可變資源更新允許我們在不必使用ENS的情況下為變更數據提供非變量標識符。可以使用創建資源時獲得的密鑰(MRU_MANIFEST_KEY),像常規Swarm對象一樣引用可變資源。更新資源的數據時,MRU_MANIFEST_KEY將指向新數據。
如果將可變資源更新與ENS解析器合約一起使用,則只需要一個初始交易來注冊MRU_MANIFEST_KEY。此密鑰將解析為最新版本的資源(更新資源不會更改密鑰)。
與Mutable資源更新有3種不同的交互方式:HTTP API,Golang API和Swarm CLI。
需要注意的事項:
只有創建資源的私鑰(地址)才能更新。
創建可變資源時,必須提供的參數之一是預期的更新頻率。指的是你的資源更新的頻率(以秒為單位)。雖然您可以以其他速率更新資源,但這樣做會減慢檢索資源的過程。
Swarm數據加密
現在,在POC 0.3中引入了對稱加密,可以與swarm up上傳命令一起使用。加密機制旨在保護您的信息,并使得分塊數據對于任何Swarm控制節點都不可讀。
Swarm使用Counter模式加密來加密和解密內容。將內容上傳到Swarm時,上傳的數據將拆分為4 KB塊。這些塊將全部使用分別隨機生成的加密密鑰進行編碼。在本地Swarm節點上加密,未加密的數據不與其他節點共享。單個塊(以及整個內容)的引用將是編碼數據的哈希和解密密鑰的連接。這意味著引用將比標準的未加密Swarm引用(64字節而不是32字節)更長。
當你的節點將內容的加密塊與其他節點同步時,不會與其他節點共享完整引用(或任何方式的解密密鑰)。這意味著其他節點將無法訪問你的原始數據,而且他們將無法檢測同步的塊是否已加密。
檢索數據時,只會在本地Swarm節點上解密。在整個檢索過程中,塊以加密形式遍布網絡,并且沒有參與的節點能夠將其解密。它們僅在您用于下載的Swarm節點上解密和匯編。
需要注意的事項:
Swarm支持加密。由于無法撤消上傳,因此強烈建議不要上傳未加密的敏感數據和私有數據。用戶應避免上傳非法,有爭議或不道德的內容。
Swarm目前通過使用--encrypt標志支持加密和未加密的swarm up命令。這在將來可能會發生變化。
加密功能是非確定性的(由于在每個上傳請求中生成隨機密鑰),API的用戶不應該依賴于等冪結果;因此,在啟用加密的情況下將相同內容兩次上載到Swarm將不會產生相同的引用。
PSS
pss(Swarm上的Postal Service)是一種基于Swarm的消息傳遞協議,具有強大的隱私功能。 pss API通過API Reference中描述的JSON RPC接口公開,這里我們解釋了基本概念和功能。
注意:pss仍然是一個實驗性功能,正在積極開發中,可從Swarm的POC3開始使用。敬請期待更新。
基本概念
使用pss,您可以將消息發送到Swarm網絡中的任何節點。消息的路由方式與檢索塊請求的方式相同。 pss消息不是塊哈希引用,而是在覆蓋地址空間中指定目的地,而與消息有效負載無關。如果特定節點是完整的覆蓋地址,則該目的地可以描述該特定節點,如果部分指定了一個節點,則到該目的地之前,使用轉發kademlia通過devp2p對等連接中繼消息(使用kademlia路由通過中繼節點之間的半永久性對等TCP連接傳遞消息)。在目的地鄰域內,使用gossip廣播消息。
由于pss消息是加密的,因此最終接收者是可以解密消息的人。 可以使用非對稱或對稱加密方法來完成加密。
消息有效負載由接收方節點分派給消息處理程序,并通過API分派給訂戶。
注意:pss不保證此時的消息排序(盡力傳遞)和消息傳遞(例如,不會緩存和重放到脫機節點的消息)。
隱私功能
由于端到端加密,pss適合私人通信。
由于轉發kademlia,pss提供發件人匿名服務。
使用部分尋址,pss提供了收件人匿名的浮動比例:目標鄰域越大(顯示的預期收件人覆蓋地址的前綴越小),識別真實收件人就越困難。 另一方面,由于暗路由效率低,因此在匿名性與消息傳遞延遲和帶寬(因此成本)之間存在折衷。 這個選擇留給應用程序。
如果使用Handshakes模塊,則提供轉發保密服務。
注意事項:
始終對敏感內容使用加密!對于加密內容,上傳數據是“受保護的”,即只有那些了解對根塊的引用(文件的swarm哈希以及解密密鑰)才能訪問內容的。由于發布此引用(在ENS或MRU上)需要其他步驟,因此只要用戶使用加密,就可以輕松地確保用戶不會手誤發布。即使不能保證刪除,尚未確保安全性的未訪問內容最終也會從Swarm中消失,因為節點將被激勵,以便在存儲容量限制的情況下對其進行垃圾回收。
在執行存儲保險之前,不保證上傳的內容會持久存儲在測試網上(有關詳細信息,請參閱路線圖)。所有參與節點都應該考慮參與志愿服務而沒有任何正式義務,并且應該按照他們的意愿刪除內容。因此,在激勵系統運行之前,用戶在任何情況下都不應將Swarm視為安全存儲。
Swarm是一個持久數據結構,因此在Swarm中沒有刪除操作的概念。這是因為內容被傳播到被激勵的swarm節點以提供服務。
3. SIA
狀態:已上線
闡述:
SIA為租用者提供訪問去中心化云存儲平臺,以便利用更便宜,更快捷的方式使用對任何人開放且不受單一權威來源管理的數據中心。 Siacoin基于獨立的Sia區塊鏈,并在存儲租用者和提供者之間達成協議。
文件在上傳之前被劃分
Sia軟件在上傳之前將文件分為30個段,每個段都用于分發給世界各地的托管方。 此分發確保沒有托管方會出現單點故障,并加強了整體網絡正常運行時間和冗余。
文件段是使用名為Reed-Solomon擦除編碼的技術創建的,通常用于CD和DVD。 擦除編碼允許Sia以冗余方式劃分文件,其中30個段中的任何10個段可以完全恢復用戶的文件。
這意味著如果30個托管方中有20個離線,Sia用戶仍然可以下載他/她的文件。
每個文件段都是加密的
在離開租用者計算機之前,每個文件段都是加密的。 這可確保托管方僅存儲加密的用戶數據段。
這與亞馬遜等傳統云存儲提供商不同,后者默認不加密用戶數據。 Sia比現有解決方案更安全,因為托管方只存儲加密的文件段,而不是整個文件。
Sia使用Twofish算法,這是一種開源和安全加密標準,是高級加密標準(AES)競賽的決勝者。
使用智能合約將文件發送給托管方
使用Sia區塊鏈,租用者與托管方形成文件合約。 這些合約規定了租用者和托管方之間的定價,正常運行時間承諾和其他方面的關系。
文件合約是一種智能合約。 允許我們創建存儲在Sia區塊鏈中的加密服務級別協議(SLA)。
由于文件合約由網絡自動執行,因此Sia不需要中介或受信任的第三方。
租用者和托管方使用Siacoin支付
租用者和托管方都使用Siacoin,這是一種基于Sia區塊鏈的獨特加密貨幣。 租用者使用Siacoin購買托管方的存儲容量,而托管方將Siacoin存入每個文件合約作為抵押品。
微支付使用稱為支付渠道的技術在租用者和托管方之間產生資產流動,這類似于比特幣的閃電網絡。 租用者和托管方之間的付款發生在鏈外,大大提高了網絡效率和可擴展性。 您可以在此處查看有關付款渠道的詳情:
由于托管方為每個存儲合同支付抵押品,因此它們對離線具有很強的抑制作用。
每當用戶和托管服務提供商在Sia上簽訂合約時,用戶必須提供津貼(以支付托管費用),并且托管服務提供商必須存入押金(以確保良好的行為)。合約訂立后,軟件將收取3.9%的津貼和押金,并支付給Siafunds的持有人,Siafunds是協議的次要代幣。制定協議的公司Nebulous Labs擁有約90%的Siafunds。
這當然是一個有趣的長期融資模式,是當今流行的“一次性”ICO模式的替代品;但是,此功能可能會給系統帶來結構成本,使其比競爭對手費用更高。文件存儲可能是一個競爭激烈的市場,顯著降低了價格(與目前的中心化選項相比)。一旦部署了若干不同的去中心化云存儲平臺,這些協議將不僅與中心化替代方案競爭,而且還將彼此競爭。 Sia對津貼和押金分別征收3.9%的費用,但在大多數合約中,兩項費用均由用戶支付。其他協議沒有這種結構成本,長期看來這種方式更優惠并且對用戶更具吸引力。
價格會發生變化,但您可以預計在109個Siacoins地區進行支付或者可以選擇每個TB每月1美元的價格。
合同隨著時間的推移而更新
租用者進行預付款以便在文件合約中存儲,留出固定數量的Siacoin用于存儲和傳輸數據。文件合約通常為期90天。
當Sia在某個到期窗口內時,會自動續訂合約。如果合約沒有續簽,Sia會在合約期結束時將任何未使用的金額退還給租用者。
當各個主機脫機時,Sia會在文件修復的過程中自動將租用者數據移動到新托管方。
托管方提交存儲證明
在文件合約結束時,托管方必須證明他/她正在存儲租用者的數據。稱為存儲證明。如果存儲證明在特定時間范圍內出現在區塊鏈上,則托管方將收到付款。如果沒有,托管方將受到處罰。
通過稱為Merkle樹的技術實現存儲證明。 Merkle樹可以證明一小段數據是較大文件的一部分。這些證明的優點是它們非常小,無論文件有多大。這很重要,因為證明永久存儲在區塊鏈中。
最后,Sia面臨著入門的重要障礙。目前,必須購買比特幣,使用它來購買Siacoins,并將Siacoins發送到Sia客戶端軟件以開始使用網絡。對于尚未持有加密貨幣的日常用戶,這是一個主要障礙。也為企業客戶提出了一個問題,因為出于監管和財務風險的原因,大多數企業仍然不愿意持有或交易加密貨幣。迄今為止,Sia團隊沒有優先考慮方案,可訪問性或我們自身的能力,也沒有表明這是一個重要的優先事項。
注意事項:
與Swarm和IPFS不同,Sia是一個分布式云存儲系統。它不專注于創建替代http的基礎架構,而是專注于為云存儲創建分布式,自我維持且價格優惠的市場。
4. Storj
狀態:已上線
闡述:
Storj(發音為:storage)旨在成為一個無法審查,監控或停機的云存儲平臺。它是首個去中心化端到端加密云存儲平臺之一。
Storj由一系列互鎖件組成,共同構成一個統一的系統。當人們與該系統的各個部分進行交互時,他們對Storj的含義有了不同的看法。家庭用戶不需要任何Bridge或協議知識來共享存儲空間,并且開發人員不需要知道有關家庭用戶的任何信息以便使用Storj API。每個人在與同一系統交互時都可以擁有截然不同的體驗。那么Storj是什么?它是一個協議,一套軟件,也是設計,構建和使用它的人。
Storj協議
Storj的核心技術是可執行的點對點存儲合約。這是兩個人(或計算機)同意在不了解對方的情況下交換一定數量的存儲空間的方式。我們稱計算機銷售空間為“礦工”,計算機購買空間為“租用者”。租用者和礦工會面,協商協議,并將數據從租用者轉移到礦工處進行保管。
合約和審計
合約有一定的期限。在這段時間內,租用者會定期檢查礦工是否仍然有閑置空間。礦工用加密證明回答仍在保留文件。最后,租用者向礦工支付其收到并驗證過的每份證明。該挑戰過程 - 》證明 - 》付款被稱為“審計”,因為租用者正在審核礦工的存儲。在合約期結束時,礦工和租用者可以自由地重新協商或結束這種關系。
雖然核心技術允許任何類型的支付,但某些類型比其他類型更適合。傳統的支付系統,如ACH或SEPA,非常不適合按審計付費。它們很慢,很難驗證,并且通常會收取高昂的費用。 Storj協議的理想支付方式是加密貨幣微支付渠道。支持小額付款,可立即驗證和安全,費用最低。意味著付款和審核可以盡可能地配對。
執行遵循一個簡單的針鋒相對模式:如果礦工未通過審核,即離線或無法證明她仍然擁有數據,則租用者無需支付。畢竟,他沒有繼續得到相應的服務。同樣,如果租用者離線或未能按時付款,礦工可以放棄數據,并向其他人尋找新的合約。只要雙方都遵守合約條款,大家就可以愉快地結束交易。
將付款直接與審計配對可以最大限度地降低與陌生人交易的風險。如果文件在合約期內中途被丟棄, 則租用者僅按審計證明支付實際執行的服務。 他需要找到新的礦工,但不能花費太多。如果租用者消失或停止向礦工付款,那么礦工已經收到了她以前所有服務的費用。 只損失一筆審計費用,以及找到新租用者購買該空間所需的時間。
Storj網絡
為了使租用者和礦工能夠相互遇見,合約和談判系統建立在分布式哈希表(DHT)之上。 DHT基本上是將一系列節點自我組織成有用網絡的一種方式。我們正在使用名為Kademlia的算法的修改版本。
DHT不是讓中央服務器注冊每個節點并協調所有合約,而是讓礦工和租用者將他們的合約通知廣播到大量節點。感興趣的節點可以輕松聯系提供合約的人。通過這種方式,礦工和租用者可以找到任意數量的潛在合作伙伴,并在廣泛的無權市場上購買或出售存儲空間。
為了尋找合作伙伴,節點可以簽署不完整的合約并將其發布到網絡。網絡上的其他節點可以訂閱某些類型的合約(即他們可能感興趣的類型)并響應這些發布的報價。該模型稱為publish-subscribe或pub / sub。節點可以輕松確定他們感興趣的合約,并將合約轉發給他們認為可能感興趣的其他節點。
總之,合約系統和網絡共同構成了我們所謂的Storj協議。它描述了網絡上的節點如何運作,節點如何與其他節點通信,協議如何協商和執行,以及在分布式系統上買賣存儲空間所需的一切。任何人都可以以任何方式實施Storj協議。
Storj工具箱
該協議包含安全地制定存儲合約所需的所有工具,但它缺少很多東西。它是有作用的,但還沒有開始使用。為了方便租用者使用,系統需要以服務水平協議(SLA)的形式提供可用性,帶寬和任何數量的其他承諾。交易軟件需要管理功能,以避免使用過多的資源和自動化功能來有效地部署到多個主機。 Storj沒有嘗試將所有這些功能融入核心協議,而是選擇在其他軟件層中解決這些問題。為了使這個網絡有用并且易于與之交互,Storj發布了兩個工具:Storj Share和Bridge。
Storj分享
Storj分享是參考交易客戶端。它允許用戶在任何機器上輕松設置和運行服務器場。 StorjShare可作為命令行界面(CLI)提供給更高級的用戶并實現自動化。 CLI允許用戶設置參數,例如要共享的存儲空間量,存儲位置和付款地址。它還處理合同協商,審計響應和所有其他網絡通信。
Storj還發布了StorjShare圖形用戶界面(GUI),以簡化非技術用戶的交易過程。任何人都可以下載StorjShare GUI,填寫幾個字段,然后進入網絡。 GUI是CLI的一個包裝器,可以完成所有繁重的操作。初始設置后,用戶很少需要與StorjShare GUI進行互動。可以進行設置,最小化,并讓其在后臺運行。
如果用戶選擇進行數據收集,StorjShare還將收集系統遙測。 此數據可能包括硬盤容量和利用率以及有關網絡連接質量的信息。 遙測數據被發送回Storj Labs,以便Storj開發人員可以使用這些數據來改進網絡和我們的軟件。 在未來,StorjShare甚至可以讓人們選擇加入特殊服務和計劃。
Bridge
為了幫助租用者使用網絡,Storj還創建了Bridge。 Bridge旨在部署到生產服務器,以處理合同協商,審計,付款,可用性和許多其他需求。 Bridge通過擴展,應用程序編程接口(API)和客戶端的存儲資源公開這些服務。客戶端旨在集成到其他應用程序中,以便任何應用程序都可以使用Bridge服務器在Storj網絡上存儲數據,而無需成為網絡的一部分。
顧名思義,Bridge是去中心化Storj網絡的中心化橋梁。它的目標是允許傳統應用程序與Storj網絡交互,就像使用任何其他對象存儲一樣。它提煉了p2p通信和存儲合同協商的所有復雜性來推送和拉取請求。與大多數對象存儲不同,Bridge不直接處理對象,而是處理對象的引用。它存儲指向分布式網絡上對象位置,以及審計這些對象所需的信息。理想情況下,沒有數據通過Bridge傳輸,而是直接傳輸到網絡上的礦工。
Bridge Client處理所有客戶端工作以有效地使用網絡。它在文件進入網絡時對文件進行加密,保護隱私和安全。為了確保可用性,它會對文件進行分片,應用擦除編碼,并將分片傳播給多個礦工。然后,客戶端與Bridge通信以管理網絡上的每個分片位置,并幫助用戶在本地管理其加密密鑰。雖然Bridge Client的初始實現是Node.js包,但最終目標是提供多語言版本。
Storj API
Storj核心服務是對象存儲,類似于Amazon S3。此對象存儲由一組公共Bridge節點管理。我們維護基礎架構以協商合約,管理付款,審計等。我們的客戶通過Bridge Client與我們的Bridge進行交互,甚至不必知道他們正在使用分布式網絡。 API是為可用性而設計的,因此在后臺處理所有復雜的內容,以提供流暢,可擴展的開發體驗。
Storj利用其廣泛的網絡知識提供一流的服務質量。Bridge做出的決定是基于與無數礦工的歷史互動。 Storj使用與其性能相關的數據以及他們自我報告的遙測數據來智能地在網絡上分發數據。 Storj優化了高正常運行時間以及快速檢索。
帳戶管理功能可通過Bridge Client或Storj的精美網絡應用程序獲得。同樣,GUI的功能使體驗盡可能順暢。 Storj認為大多數面向開發人員的服務都忽略了用戶體驗(UX),因此,他們在設計產品時考慮了簡單性和可用性。他們的目標是提供一種細致的用戶體驗,而不是提供廣泛的云計算和存儲服務。
使用Storj API,他們正在嘗試為像我們這樣的開發人員構建理想的工具:關注時間原型,高質量代碼和快速迭代的人。他們希望為小型團隊,快速擴展的產品和個人開發人員提供工具和支持。他們理解每個開發人員實際上都是為自己和他/她關心的項目工作。這是對我們愛的傳遞。 Storj希望構建一個不受影響的對象存儲庫,以便開發人員可以專注于構建他們喜歡的項目。
5. MaidSafe
狀態:已上線
闡述:
SAFE網絡是一個用于數據存儲和通信的分布式自治網絡。為每個人提供安全訪問(SAFE)。存儲在網絡上的數據具有極高的可用性,耐用性,隱私性和安全性。網絡有效擴展,網絡上存儲的數據的安全性隨著網絡的增長而增加。
為何選擇SAFE網絡?
現有的基于服務器客戶端的互聯網為操作服務器的人,而不是創建數據的人提供數據所有權。運營商可以限制,修改,刪除或出售該數據,而無需創建該數據的用戶。在有利于創建者的條款上,分發用戶數據的聯合協議的接受度和可用性差,促使創建SAFE網絡。
默認情況下,在SAFE網絡上存儲數據的客戶端具有強加密功能,可以通過靈活的權限層控制訪問。
評論
查看更多