區塊鏈 18 | Blockchain 整合ipfs進行文件驗證 (三)
透過ipfs進行文件驗證
Published in
May 13, 2021
流程
- 使用者上傳檔案
- 使用者編寫智能合約(儲存ipfs hash)
- (程式) 對內容進行簽章
- (程式) 對內容進行加密
- (程式) 將密文上傳至ipfs => 輸出ipfs hash path
- (程式) 將ipfs hash path及簽章寫入區塊鏈
- (程式) 從區塊鏈取出ipfs hash path =>輸出ipfs hash path
- (程式) 到ipfs下載密文並解密=> 輸出解密文
- (程式)驗證明文與簽章
Blockchain
- 連接到之前做的私有鏈
- 連接到以太坊測試網路
這個實作練習將連接到以太坊測試網路rinkeby,你也可以連接到自己的私有鏈試試!
連接到rinkeby後會做:
- 透過remix部署智能合約
- 在專案中呼叫智能合約的方法
- 在Etherscan上查看
環境
本環境為mac OS
步驟
一、連接到以太坊測試網路
$ geth --rinkeby --http --http.api "admin,eth,miner,txpool,personal,clique" --http.corsdomain "*" --http.port 8545 --http.addr "127.0.0.1" --syncmode full --allow-insecure-unlock console
因我的系統是mac OS,會在 ~/Library/Ethereum下生成 rinkeby 資料夾,並在這底下生成geth 跟 keystore 資料夾 。
keystore 資料夾存放帳戶資訊。
如果不知道路徑,在輸入geth指令(上面那行指令)後可以看到geth的資訊,如下:
需要先同步測試網路的資料 (放著讓它同步即可)
- 查看同步狀況:
$ eth.syncing
- 查看現在的 block number :
$ eth.blockNumber
二、確認同步完成的狀況:
- 確認是否出現下面這種情況:
2. 查看測試網路(terminal)是不是持續取得新的數據(number持續增加):
3. 到 etherscan –rinkeby 上看最新的block number是不是一樣
以上情況都有出現代表已經同步完成!如果沒有,表示同步卡住囉!卡住的話就再做一次。
三、設定帳戶
- 匯入帳戶 — — MyEtherWallet
- 建立新帳戶 — — Geth
- 直接透過終端建立帳戶
$ geth --rinkeby account new
要記下密碼!
2. 查詢測試鏈的account
$ geth --rinkeby account list
在remix上部署智能合約
使用set() 方法,傳入參數:file name、signature、ipfs hash
之後在網頁上(專案)操作。程式碼都放在我的github專案囉! 【在這裡】