2.08 hyperledger fabric完整案例
阿新 • • 發佈:2018-12-07
1.fabric開發流程
- 需求整理
- 合約編寫
- 合約部署
- 合約互動
- 外部服務編寫
2.需求分析
- 開發一個資產轉讓功能模組
- 平臺功能
- 使用者開戶和銷戶
- 資產登記,解決資產上鍊和使用者繫結資產
- 資產轉讓,資產所有權的變更
- 查詢功能,使用者查詢、資產查詢、資產變更歷史查詢
3.合約編寫
- assetsExchange.go
4.合約部署
- 關閉docker
- 生成通道的創世交易
- 檢視生成的交易檔案
- 啟動網路
- 登入到client會話操作
- 建立通道
- 檢視通道
- 加入通道
- 建立mychannel
- 安裝智慧合約
- 鏈碼例項化
- 註冊使用者
- 查詢使用者
- 資產登記
- 資產查詢
- 註冊第二個使用者
- 查詢第二個使用者
- 資產轉讓
- 檢視使用者2的資產資訊,已經有資產1的Id了
- 查詢資產1的歷史
- 查詢所有資產的變更歷史
- 登出使用者
- 查詢使用者是否存在
5.鏈碼開發者模式
- 特殊配置
- 使用dev模式啟動peer節點
- 方法一:peer node start --peer-chaincodedev=true
- 方法二(給peer節點注入環境變數):CORE_CHAINCODE_MODE=dev
- 刪除之前的網路
- 修改檔案
- 啟動網路
- 執行程式碼
- 進入cli
- 建立通道
- 加入通道
- 安裝鏈碼
- 例項化鏈碼
- 註冊使用者
- 查詢使用者
- 修改方法
- 再次執行,就可以生效
- 關閉docker
6.外部服務分析
- 如何提供服務,決定於應用場景,也就是決定於終端使用者
- 智慧硬體:提供socket或tcp服務,主流是還是socket服務,例如太陽能發電終端
- 遊戲、電商、社交:web或手機app,提供http服務(接下來例子採用http)
- 企業內部:rpc或grpc服務
- 如何選擇SDK
- node.js
- java
- python
- golang
- SDK的模組
- 區塊鏈管理:例如通道的建立和加入、鏈碼的安裝、例項化和升級等(區塊鏈和管理員或者雲服務提供商去用)
- 資料查詢:區塊(區塊瀏覽器)和交易的查詢
- 區塊鏈互動:發起交易(invoke或query)
- 事件監聽:業務事件(SendEvent)、系統事件(block/trancastion)
7.SDK下載和配置
- 搜fabric-sdk
- 可以檢視4個SDK的release
- 這裡選用第三個版本
- 下載SDK
- 切換版本
- 檢視日誌
8.外部服務編寫和部署
- 編寫main.go
- 編譯檔案
- 執行外部服務
9.外部服務呼叫
- 進入目錄
- 啟動網路
- 登入到client會話操作
- 建立通道
- 加入通道
- 安裝智慧合約
- 鏈碼例項化
- 使用者註冊
- 可以去linux中查詢使用者
- 使用者查詢,目前user2的資產還沒有登記
- 為user2資產登記
- 再次查詢user2,此時已經有資產了
- 也可以單獨查詢資產
- 建立user3使用者,測試資產轉讓
- user2的asset2資產,轉讓給user3
- 檢視user2和user3,資產已經被轉讓給了user3
- 查詢資產變更歷史
- 刪除user3
- 檢視使用者和資產,都沒有了