Swarm、IPFS 、BigchainDB:資料儲存和去中心化

買賣虛擬貨幣

作者 |MattZand

譯者 | 火火醬,責編 | 高衛華

資料管理和內容管理是許多商業應用程式(如資訊門戶、維基百科、電子商務和社交媒體應用程式)的兩個核心功能。

在去中心化領域也不例外,當談到EVM時,人們往往十分看重EVM在以太坊上儲存資料的能力。雖然這一功能非常方便,但其成本過高,所以並不常用。開發人員們大可以選擇其他幾種方式來管理和訪問去中心化應用程式的資料和內容,比如Swarm (以太坊區塊鏈解決方案)、IPFS和BigchainDB(區塊鏈大資料平臺)。下面,我們一起來深入瞭解一下吧。

Swarm

Swarm為以太坊和DApp提供內容分發服務,具備以下功能:

➢ Swarm是一個去中心化的儲存平臺,提供以太坊web3堆疊的本地基礎層服務。

➢ Swarm旨在替代以太坊鏈上儲存解決方案,成為以太坊公共記錄的去中心化儲存平臺。

➢ Swarm能夠在不干擾區塊鏈上資訊的情況下,協助DApp儲存和分發程式碼、資料及內容。

假設我們正在開發一個以區塊鏈為基礎的的醫療記錄系統:跟蹤醫療記錄的新增日期、醫療記錄內容、以及何人出於何種目的檢視過記錄,那麼我們就需要在區塊鏈中維護上述所有不可變的事務記錄。但是,醫療記錄本身(包括醫生記錄、醫療診斷和影像等),其實並不適合被儲存在以太坊區塊鏈中。Swarm或IPFS更適合此類用例。

DApp可以直接在去中心化的檔案系統(如IPFS和Swarm)中建立、管理並儲存資料和內容,使用Swarm雜湊對資料和內容進行訪問和檢索。當DApp向以太坊網路提交事務時,事務可以藉助Swarm雜湊來引用Swarm資源。

Swarm在去中心化的節點上維護特定型別的內容定址分散式雜湊表(distributed hash table,簡稱DHT)。上傳到Swarm網路中的檔案或內容將被作為blob物件分割成不同的塊。然後利用這些分塊建立Merkle樹,從而確保內容的完整性。Trunks將被進一步分配到參與節點,並儲存到DHT中。當發出訪問請求時,由最接近分塊地址的節點提供內容。

Swarm提供了多個用於訪問和管理內容的API,其中包括CLI(命令列介面)和JSON-RPC API。我們可以透過erebos、swarm-js或者swarmgw包來獲得JavaScript包,其可用於大多數以UI/JavaScript為基礎的DApp。

IPFS

IPFS與Swarm十分類似,是一款在去中心化網路上儲存並共享內容的點對點分散式檔案系統。IPFS和Swarm二者都能夠提供去中心化資料和內容儲存,以及直接由內容所生成的可定址雜湊;二者都可以儲存區塊鏈事務中的各項內容。

但二者內部也存在許多技術差異——它們透過不同的方式來切分大資料集並將分塊儲存在分散式網路。我們可以把IPFS看作是一個BitTorrent swarm,在Git儲存庫中交換物件;而Swarm與以太坊區塊鏈整合更加密切,並且有促進內容共享的激勵系統。但其實IPFS也可以藉助Filecoin來提供相似的激勵系統。

同樣,Swarm中的DApp應用架構也適用於IPFS。IPFS也提供了多個用於訪問和管理內容的API,包括CLI介面、JSON-RPC API以及HTTP介面。JavaScript包和Go庫也同樣可用,可用於大多數以UI/JavaScript或Go為基礎的DApp。

BigchainDB

BigchainDB是一個去中心化的資料庫,它結合了傳統資料庫、資料管理功能以及區塊鏈功能。作為區塊鏈資料庫,BigchainDB是對其他去中心化系統的補充,例如去中心化檔案儲存(如IPFS或Swarm)和智慧合約區塊鏈(如以太坊或EOS)。作為儲存去中心化資料和內容的另一種選擇,它可以用作傳統應用程式的資料儲存,也可以用作去中心化區塊鏈平臺(如以太坊)的去中心化資料儲存。雖然它也可以儲存檔案,但我們並不推薦您這樣做,因為它其實更適用於結構化和非結構化資料。

在以太坊社羣中,很多人都想將BigchainDB和以太坊智慧合約進行整合,也曾提出過一些EIP和POC(概念原型)來進行相關嘗試,比如,利用Oraclize服務在智慧合約中從BigchainDB檢索資料。在成功檢索資料後,智慧合約將對邏輯進行評估,並執行請求的操作。DApp可以透過兩種方式與BigChainDB整合。一種是透過HTTP GET和POST,作為去中心化的資料儲存直接與BigchainDB進行互動。第二種是在智慧合約中利用Oraclize服務,從BigChainDB訪問外部資料。

該過程遵循以下規則:

➢ BigchainDB具有多個介面(包括CLI 介面和HTTP API),能連線到BigchainDB伺服器並且從區塊鏈資料庫儲存並檢索資料。

➢在資料庫中儲存資料時,我們需要用HTTP POST請求將資料傳送到資料庫伺服器,然後使用HTTP GET介面從資料庫檢索資料。

➢ BigchainDB還具備資料庫驅動程式,開發人員可以用Java、Python等高階程式語言連線網路伺服器。

在本文中,我們回顧了三種在區塊鏈上管理去中心化資料的內容儲存平臺。在選擇好資料儲存平臺之後,我們需要透過資料視覺化對網路平臺進行監控。我們可以透過虛擬資料室來實現這一目標,它可以將所有有用的資訊集中顯示在一起,協助我們評估網路資料,檢視收集的資料列表是否可信。

原文連結:https://hackernoon.com/swarm-ipfs-and-bigchaindb-comparing->

推薦閱讀

區塊鏈+生鮮:杜絕“偷樑換柱”和“以次充好”

PINGPONG技術文件:資料分析三劍客+MySQL+視覺化套餐+量化分析+Hadoop倉庫

用以太坊承載的比特幣,還只是起步階段

AI視覺大牛朱松純擔任北大AI研究院院長,提出透過構建大任務平臺走向通用AI

還不懂Redis?看完這個故事就明白了!

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;