區塊鏈 18 | Blockchain 整合ipfs進行文件驗證 (三)

透過ipfs進行文件驗證

Megan
Learn & Record
May 13, 2021

--

Photo by Christina Rumpf on Unsplash

流程

  1. 使用者上傳檔案
  2. 使用者編寫智能合約(儲存ipfs hash)
  3. (程式) 對內容進行簽章
  4. (程式) 對內容進行加密
  5. (程式) 將密文上傳至ipfs => 輸出ipfs hash path
  6. (程式) 將ipfs hash path及簽章寫入區塊鏈
  7. (程式) 從區塊鏈取出ipfs hash path =>輸出ipfs hash path
  8. (程式) 到ipfs下載密文並解密=> 輸出解密文
  9. (程式)驗證明文與簽章

Blockchain

  • 連接到之前做的私有鏈
  • 連接到以太坊測試網路

這個實作練習將連接到以太坊測試網路rinkeby,你也可以連接到自己的私有鏈試試!

連接到rinkeby後會做:

  1. 透過remix部署智能合約
  2. 在專案中呼叫智能合約的方法
  3. 在Etherscan上查看

環境

本環境為mac OS

步驟

一、連接到以太坊測試網路

因我的系統是mac OS,會在 ~/Library/Ethereum下生成 rinkeby 資料夾,並在這底下生成geth 跟 keystore 資料夾 。

keystore 資料夾存放帳戶資訊。

如果不知道路徑,在輸入geth指令(上面那行指令)後可以看到geth的資訊,如下:

需要先同步測試網路的資料 (放著讓它同步即可)

  • 查看同步狀況:
  • 查看現在的 block number :

二、確認同步完成的狀況:

  1. 確認是否出現下面這種情況:

2. 查看測試網路(terminal)是不是持續取得新的數據(number持續增加):

3. 到 etherscan –rinkeby 上看最新的block number是不是一樣

以上情況都有出現代表已經同步完成!如果沒有,表示同步卡住囉!卡住的話就再做一次。

三、設定帳戶

  • 匯入帳戶 — — MyEtherWallet
  • 建立新帳戶 — — Geth
  1. 直接透過終端建立帳戶

要記下密碼!

2. 查詢測試鏈的account

在remix上部署智能合約

使用set() 方法,傳入參數:file name、signature、ipfs hash

之後在網頁上(專案)操作。程式碼都放在我的github專案囉! 【在這裡】

使用Vue.js寫前端

一開始的網頁
(上半部)上傳檔案後,顯示出IPFS資訊
(下半部)解密檔案

--

--