2017-02-28 51 views
8

我正在創建以太坊DApp。 DApp由具有關聯數據(例如電子郵件,姓名和個人資料圖片)的用戶組成。我想將用戶的內容作爲JSON對象存儲在IPFS中,並使用IPFS哈希在鏈上引用它。我怎麼能將這些數據與特定的用戶關聯起來?從這個意義上說,隨後與DApp的交互將用戶與存儲在IPFS中的數據連接起來。這是使用用戶帳戶哈希與某種密碼完成的嗎?在以太坊DApps中處理用戶配置文件

例如,用戶A有興趣使用DApp等,提供他或她的電子郵件,姓名和個人資料圖片。然後,任何後續與DApp的交互(如評論或帖子)都會將此用戶鏈接到IPFS中的相應用戶數據。

任何建議或調整這種建模用戶的方式將不勝感激。謝謝!

(PS我來自傳統網絡/移動應用程序的世界,所以我纔剛剛習慣於使用智能合同建模的東西。所以,我提前道歉,如果這是一個簡單或結構不良的問題。)

回答

9

使用以太坊平臺的美麗之處在於您可以構建一個ZERO點擊登錄。如果我們確定用戶的web3.eth.accounts[0]證明用戶控制該帳戶地址的私鑰,那麼您將始終知道該用戶是有效的。

如果你想使用IPFS如數據庫,我建議的方法是這樣的:

注意,大多數分散的系統有很多的動作發生在客戶端。

用戶註冊

  • 用戶有復仇賬戶。
  • 註冊用戶數據被收集到一個JSON對象中
  • 創建一個文件,將JSON對象寫入文件。
  • 通行證文件IPFS
  • 獲取的文件哈希值(也就是它的IPFS位置)
  • 商店IPFS哈希在用戶的帳戶復仇與IPFS的文件哈希值相關聯的合同復仇。

用戶驗證

  • 用戶訪問該網站
  • web3js獲取活動復仇帳戶
  • 讀取來自用戶的合同找到相關IPFS哈希從IPFS
  • 獲取文件
  • 閱讀JSON對象
  • 從JSON
  • 顯示的數據中提取數據到用戶
+1

感謝偉大的反應!你澄清了我相當多的困惑。我將使用您的方法使用IPFS對此進行建模。我認爲我無法理解的是用戶被綁定到可以通過特殊DApp瀏覽器訪問的以太坊帳戶的想法。所以基本上爲了讓用戶與任何DApp進行交互,他們需要在本地安裝霧,這需要DApp成爲客戶端應用程序。或者如果它將成爲一個網站,他們需要安裝MetaMask,以便可以使用web3來檢索他們的帳戶。 –

+0

頂尖反應我不知道這是如何工作的感謝! –