Fabric-CA1.0模組的搭建與使用
最近在看CA的內容,這個文章感覺不錯,轉過來。
本篇主要介紹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
相關文章
- Python paramiko模組的安裝與使用Python
- pymysql模組的使用MySql
- wtforms模組的使用ORM
- Nuxt Kit 的使用指南:模組建立與管理UX
- ES6模組與commonJS模組的差異JS
- SpringBoot - 多模組專案的搭建教程Spring Boot
- glom模組的使用(一)
- glom模組的使用(二)
- Python中模組的使用Python
- openpyxl模組的日常使用
- Flask:sqlalchemy模組的使用FlaskSQL
- Python logging模組的使用Python
- Nginx的HTTP模組與Stream模組:區別與應用場景NginxHTTP
- 模組與包
- Python基礎12(模組與datetime模組)Python
- 模組化與MVC的VCMVC
- Spring Cloud微服務(一):公共模組的搭建SpringCloud微服務
- Python 中argparse模組的使用Python
- odoo的Aeroo Reports模組使用。Odoo
- Python模組 adorner 的使用示例Python
- BeautifulSoup模組的使用方法
- 爬蟲-urllib模組的使用爬蟲
- BOSHIDA DC電源模組與其他電源模組的區別與優勢
- Jenkins的搭建與使用Jenkins
- Dobbo的搭建與使用
- Python包與模組Python
- Python - 模組與包Python
- python模組與包Python
- SAP PM 入門系列14 – PM模組與其它模組的整合
- Python入門(二十六):檔案模組(os模組與shutil模組)Python
- Node.js常用模組Module的載入機制與使用Node.js
- 使用typescript開發angular模組(編寫模組)TypeScriptAngular
- nodejs 日誌模組 winston 的使用NodeJS
- Tengine新增nginx upstream模組的使用Nginx
- Day24:IO模組的使用
- python非同步asyncio模組的使用Python非同步
- Python中yaml模組的使用教程PythonYAML
- 【python基礎】os模組的使用Python