您好,登錄后才能下訂單哦!
這篇文章主要介紹區塊鏈之Hyperledger Fabric v1.2 的環境如何搭建,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
> 2015年,Linux基金會啟動了Hyperledger項目,目標是發展跨行業的區塊鏈技術。
> Hyperledger項目并不僅僅是定義一個單一的區塊鏈標準,它更鼓勵通過開源社區的力量協作開發區塊鏈技術。Hyperledger Fabric是Hyperledger中的一個區塊鏈項目。與其他區塊鏈技術類似,Hyperledger Fabric包含一個賬本,使用智能合約并且是一個通過所有參與者管理交易的系統。
> Hyperledger Fabric與其他區塊鏈系統最大的不同體現在私有和許可。與開放無需許可的網絡系統允許未知身份的參與者加入網絡不同(需要通過工作量證明協議來保證交易有效并維護網絡的安全),Hyperledger Fabric通過Membership Service Provider(MSP)來登記所有的成員。 Hyperledger Fabric也提供了多個可拔插選項。賬本數據可被存儲為多種格式,共識機制可被接入或者斷開,同時支持多種不同的MSP。
>
> Hyperledger Fabric提供了建立channel的功能,這允許參與者為交易新建一個單獨的賬本。當網絡中的一些參與者是競爭對手時,這個功能變得尤為重要。因為這些參與者并不希望所有的交易信息——比如提供給部分客戶的特定價格信息——都對網絡中所有參與者公開。只有在同一個channel中的參與者,才會擁有該channel中的賬本,而其他不在此channel中的參與者則看不到這個賬本。
Hyperledger Fabric是一個提供分布式賬本解決方案的平臺。
Hyperledger Fabric由模塊化架構支撐,并具備極佳的保密性、可伸縮性、靈活性和可擴展
Hyperledger Fabric被設計成支持不同的模塊組件直接拔插啟用,并能適應在經濟生態系統中錯綜復雜的各種場景。
Hyperledger Fabric提供了一個獨特的可伸縮、可擴展的架構,這也是Hyperledger Fabric與其他區塊鏈解決方案的顯著區別。假如你正在計劃部署具備完整審查機制以及開源架構的企業級區塊鏈,Hyperledger Fabric是你的一個不錯的起點。
參考Hyperledger Fabric中文官方文檔:[https://hyperledgercn.github.io/hyperledgerDocs/]
### 1.準備Linux系統 建議Ubuntu 16.04 或者18.04
###### 1.1. 查看apt source源
```bash
vim /etc/apt/sources.list
```
```bash
//北郵鏡像源
deb http://mirrors.byrio.org/ubuntu/ bionic main restricted
deb http://mirrors.byrio.org/ubuntu/ bionic-updates main restricted
deb http://mirrors.byrio.org/ubuntu/ bionic universe
deb http://mirrors.byrio.org/ubuntu/ bionic-updates universe
deb http://mirrors.byrio.org/ubuntu/ bionic multiverse
deb http://mirrors.byrio.org/ubuntu/ bionic-updates multiverse
deb http://mirrors.byrio.org/ubuntu/ bionic-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu bionic-security main restricted
deb http://security.ubuntu.com/ubuntu bionic-security universe
deb http://security.ubuntu.com/ubuntu bionic-security multiverse
//阿里源
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
```
###### 1.2 更新源
```bash
apt-get update && apt-get upgrade
```
### 2.安裝Golang
go語言中文官網:[https://studygolang.com/dl](https://studygolang.com/dl)
```bash
cd $HOME/ && wget https://storage.googleapis.com/golang/go1.8.1.linux-amd64.tar.gz
//解壓到/usr/local
tar -C /usr/local -xzf go1.8.1.linux-amd64.tar.gz
//修改環境變量
vim /etc/profile
//設置go的路徑
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
//環境變量生效
source /etc/profile
//查看go版本
go version
```
### 3.安裝git、cURL、 libltdl-dev
```bash
apt-get -y install git
//查看git 版本
git -version
apt-get -y install curl
//查看curl 版本
curl -version
apt-get -y install libltdl-dev
```
### 4.安裝Docker
```bash
//安裝軟件包以允許apt通過HTTPS使用遠程庫
apt-get -y install apt-transport-https ca-certificates curl software-properties-common
//添加Docker的官方GPG密鑰
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
//使用以下命令設置穩定版本的遠程庫
add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu
$(lsb_release -cs) stable"
//再次更新apt包索引
apt-get -y update
//使用apt安裝docker-ce
apt-get -y install docker-ce
//驗證是否安裝成功并查看版本
docker version
```
*注:如果執行第二條命令報錯*
![在這里插入圖片描述](https://cache.yisu.com/upload/information/20210522/356/545196.png)
### 5.安裝 python-pip、docker-compose
```bash
apt--get -y install python--pip
//查看pip版本
pip -V
apt-get -y install docker--compose
//查看docker-compose版本
docker--compose ---version
```
### 6.下載fabric源碼和Fabric-samples
###### 6.1 手動新建 mkdir 文件夾
```bash
//獲取fabirc并切換版本
git clone https://gitee.com/arxin/fabric.git
//進入fabric
cd /fabric
//查看當前已有的版本信息
git branch -a
//切換到1.2.0版本
git checkout -b v1.2.0
//獲取fabric-samples并切換版本
curl -sSL https://bit.ly/2ysbOFE | bash -s -- 1.2.0
```
*注:如果出現執行不成功,選采用加速鏈接或者使用碼云*
```bash
//加速地址
git clone https://github.com.cnpmjs.org/wlc1216/Hyperledger-fabric.git
//碼云
git clone https://gitee.com/arxin/fabric.git
```
###### 6.2 查看拉取鏡像
```bash
docker images
```
###### 6.3 網絡測試
```bash
//進入first-network文件夾
cd ../fabric/fabric-samples/first-network
```
![在這里插入圖片描述](https://cache.yisu.com/upload/information/20210522/356/545197.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dsY18xMTEx,size_16,color_FFFFFF,t_70)
- .env:存儲一些環境變量
- base:存儲docker-compose的一些公共服務
- byfn.sh:執行腳本
- configtx.yaml和crypto-config.yaml:根據之前生成的2個工具,生成相應的配置文件,用來啟動網絡,放到當前目錄的channel-artifacts和crypto-config里
- dockper-compose:用于啟動網絡
- scripts:存放測試腳本,做的事:創建通道、加入通道,安裝鏈碼,實例化鏈碼,鏈碼交互
```bash
//生成所需的證書和鏡像
./byfn.sh -m generate
//啟動網絡
./byfn.sh -m up
```
![在這里插入圖片描述](https://cache.yisu.com/upload/information/20210522/356/545198.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dsY18xMTEx,size_16,color_FFFFFF,t_70)
等待。。。。。
![在這里插入圖片描述](https://cache.yisu.com/upload/information/20210522/356/545199.png)
好!!恭喜你 出現這個頁面successful
```bash
//關閉網絡
./byfn.sh -m down
```
*注:網絡啟動的過程中docker-compose 報錯*![在這里插入圖片描述](https://cache.yisu.com/upload/information/20210522/356/545200.png)
原因是compse讀取的時間太短
```bash
vi /etc/resolv.conf
```
解決辦法:將 options timeout:2 attempts:3 rotate single-request-reopen 這行內容在前面加上井號注釋掉然后保存退出
### 7.測試favirc網絡
在官方例子中,channel名字是mychannel,鏈碼的名字是mycc
使用docker exec命令進入CLI容器:
```bash
docker exec -it cli bash
```
在/opt/gopath/src/github.com/hyperledger/fabric/peer目錄下,運行以下命令可以查詢a賬戶的余額:
```bash
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
```
![在這里插入圖片描述](https://cache.yisu.com/upload/information/20210522/356/545201.png)
下面我們可以進行轉賬操作,操作為invoke ,由a轉b 20:
```bash
peer chaincode invoke -o orderer.example.com:7050 --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n mycc -c '{"Args":["invoke","a","b","20"]}'
```
![在這里插入圖片描述](https://cache.yisu.com/upload/information/20210522/356/545202.png)
轉賬成功!!!
*注:關于轉賬成功,但是沒同步問題*
原因應該是背書策略問題,兩個org都要背書且不能省略不寫
AND('Org1.member', 'Org2.member', 'Org3.member')表示需要三個主體共同簽名背書
OR('Org1.member', 'Org2.member')表示需要兩個主體之一的簽名背書
OR('Org1.member',AND('Org2.member', 'Org3.member'))表示需要Org1的簽名背書或者Org2和Org3共同的簽名背書
### 8. 關于node.js開發
##### 1.安裝 node.js and npm
```bash
curl -sL https://deb.nodesource.com/setup_8.x | sudo --E bash --
//查看node版本
node ---v
//查看npm版本
npm --v
```
###### 1.1移動到fabcar目錄
```bash
cd ../
cd fabcar
```
###### 1.2 安裝node模塊
```bash
npm install
```
*注:可能會出現node.js版本問題,可嘗試升級*
npm升級或者更新到指定版本,運行指令
```bash
npm install -g npm 或者 npm -g install npm@3.0.0
```
###### 1.3 安裝grpc模塊以與Hyperledger Fabric進行通信:
```bash
sudo npm install grpc
```
###### 1.4 啟動fabcar的Hyperledger Fabric網絡
```bash
./startFabric.sh
```
以上是“區塊鏈之Hyperledger Fabric v1.2 的環境如何搭建”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。