Fabric-CA1.0模組的搭建與使用

xiaokui9發表於2020-12-18

最近在看CA的內容,這個文章感覺不錯,轉過來。

https://gitee.com/mimori1994/FabricJavaSDKExamples/blob/master/doc/1.2.Fabric-CA1.0%E6%A8%A1%E5%9D%97%E7%9A%84%E6%90%AD%E5%BB%BA%E4%B8%8E%E4%BD%BF%E7%94%A8.md#

 

本篇主要介紹Fabric-CA模組的搭建與使用,本篇使用的版本是Fabric-CA1.0.6版本,由於官方的專案還處在不斷的快速迭代當中所以建議在配置和使用時還是按照指定的版本來使用,以免遇見不必要的問題


一、Fabric-CA模組基本作用與功能構架

二、基本環境的準備與部署

2.1、安裝依賴包以及MySQL資料庫

通過官網的介紹我們可以知道,預設情況下Fabric-CA模組啟動時預設使用sqllite作為儲存後設資料的資料庫,但是在實際的生產過程中,我們不會使用sqllite作為生產環境的庫進行使用的,一般情況下會配置為MySQL或者PG,此處本文以MySQL為例進行配置,筆者在官方的Github中為找到官方編譯好的二進位制包,所以在部署前,我們需要需要自行編譯fabric-ca的二進位制包,此處需要一點點Go語言的基礎支援,瞭解什麼是GOPATH等,關於GO的編譯環境大家可以搜尋其他資料,此處不在贅述。

Shell> yum install libtool libtool-ltdl-devel #安裝編譯時依賴包
Shell> cd ${GOPATH}/src
Shell> mkdir -p github.com/hyperledger        #建立編譯原始碼的目錄位置,網上很多的資料或者官方都會指導使用go get -u 的方式,但是此處我們只需要使用fabric-ca 1.0.6的版本,所以此處我們只能先clone一下原始碼然後使用git checkout我們想要的版本
Shell> cd github.com/hyperledger
Shell> git clone https://github.com/hyperledger/fabric-ca.git
Shell> git checkout v1.0.6 #檢出我們想要的版本,此處的方式不是很優雅,應該加上-b引數新建一個分支去做,但是我們又不修改原始碼所以不優雅就不優雅了
Shell> cd fabric-ca/cmd/fabric-ca-server
Shell> go install #編譯安裝fabric-ca-server,編譯完成後可執行的二進位制檔案在$GOPATH/bin目錄下
Shell> cd ../fabric-ca-server
Shell> go install #編譯fabric-ca-client

三、Fabric-CA的部署

四、Fabric-CA模組的基本操作

4.1、使用Fabric-Client操作CA模組

涉及到Fabric-CA的主要操作主要包含

  • enroll: 登陸獲取ECert即使用者身份證照
  • getcacert: 獲取證照鏈
  • reenroll: 再次登陸
  • register: 註冊使用者實體,該功能比較常用,因為在註冊使用者以及peer節點時比較有用
  • revoke: 吊銷發放的實體證照

上述命令都可以呼叫RESTful介面實現的,但是為了熟悉CA模組我們可以先使用官方的client熟悉一下操作

  • 登陸一個使用者

該操作就是登陸在CA模組中註冊的使用者獲取到MSP身份檔案,有了該檔案就可以連線到組織中進行操作了,當然對於剛剛初始化的超級賬本只有管理員身份

Shell> export FABRIC_CA_CLIENT_HOME=$HOME/fabric-ca/clients/admin #配置client讀取與儲存身份檔案的位置
Shell> fabric-ca-client enroll -u http://epoint:*******@localhost:7054 #登陸管理員身份

登陸成功後會發現在配置檔案位置會有一個MSP資料夾,該資料夾中就是存放著登陸身份對應的身份管理資訊

  • 註冊一個普通使用者
Shell> fabric-ca-client register --id.name city1user1 --id.type user --id.affiliation city1.peer0 --id.attrs 'hf.Revoker=true,foo=bar' -u http://epoint:epoint@localhost:7054 --id.secret epoint
Shell> fabric-ca-client register --id.name city2user1 --id.type user --id.affiliation city2.peer0 --id.attrs 'hf.Revoker=true,foo=bar' -u http://epoint:epoint@localhost:7054 --id.secret epoint
  • 註冊一個peer節點證照
Shell> fabric-ca-client register --id.name city1peer0 --id.type peer --id.affiliation  city1.peer0 --id.secret city1peer0
Shell> fabric-ca-client register --id.name city2peer0 --id.type peer --id.affiliation  city2.peer0 --id.secret city2peer0


 

相關文章