天天看點

以太坊DApp如何用IPFS存儲并調用資料

正在建構的一個Dapp。Dapp包括一些使用者資料,如電子郵件、姓名和個人圖檔等。我想将使用者資料内容存儲在IPFS中,通過一個JSON對象,并用IPFS hash處理過。我怎樣才能把這個資料和一個特定的使用者聯系起來呢?也就是說在與DAPP的互動時将使用者與IPF中存儲的資料關聯起來。要使用使用者密碼和某種類型的密碼來完成的嗎?

例如,使用者A對使用dapp感興趣,然後提供了他或她的電子郵件、姓名和一些個人圖檔。在與DApp的任何後續互動(如評論或文章)都會将該使用者和IPFS中相應的使用者資料相關聯。不知道該怎麼做。

dapp和ipfs資料關聯說明

使用像以太坊這種區塊鍊平台的一個優勢是可以建構一個零點選登入。如果我們用

web3.eth.accounts[0]

确認下就可以證明使用者控制該帳戶的位址的私鑰是否有效。

如果想就像資料庫一樣使用IPFS,建議的方法是:

請注意,在大多數去中心化的系統中,用戶端會發生很多動作。

使用者注冊

  • 使用者有以太坊賬戶。
  • 注冊使用者資料被收集到JSON對象中
  • 建立一個檔案,将JSON對象寫入檔案
  • 傳遞檔案到IPFS
  • 擷取檔案哈希值(基本上是它的IPFS的位址)
  • 将IPFS的hash值存儲在一個以太坊智能合約中,它将使用者的以太坊帳戶與IPFS檔案哈希值關聯起來。

使用者驗證

  • 使用者通路網站
  • web3js得到使用者的有效帳戶
  • 從使用者的智能合約中讀取,查找相關的IPFS哈希值
  • 從IPFS擷取檔案
  • 讀取JSON對象
  • 從JSON中提取資料
  • 向使用者顯示資料

原文:

http://cw.hubwiz.com/card/c/ethereum-FAQ/1/1/4/

另外推薦一些之前的教程:

  • python以太坊 ,主要是針對python圍繞web3.py進行區塊鍊以太坊應用開發的講解。
  • web3j ,主要是針對java和android程式員圍繞web3j庫進行區塊鍊以太坊開發的講解。
  • php以太坊 ,主要是介紹使用php進行智能合約開發互動,進行賬号建立、交易、轉賬、代币開發以及過濾器和事件等内容。
  • 以太坊開發 ,主要是介紹使用node.js、mongodb、區塊鍊、ipfs實作去中心化電商DApp實戰,适合進階。
  • 以太坊教程 ,主要介紹智能合約與dapp應用開發,适合入門。