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源
vim /etc/apt/sources.list
//北郵鏡像源
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 更新源
apt-get update && apt-get upgrade
2.安裝Golang
go語言中文官網:https://studygolang.com/dl
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
apt-get -y install git
//查看git 版本
git -version
apt-get -y install curl
//查看curl 版本
curl -version
apt-get -y install libltdl-dev
4.安裝Docker
//安裝軟體包以允許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
注:如果執行第二條命令報錯

5.安裝 python-pip、docker-compose
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 檔案夾
//獲取fabirc并切換版本
git clone https://github.com/hyperledger/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
**搞不懂最近Github頻繁出現無法訪問情況,是不是遷到這個地址了 https://hub.fastgit.org/
注:(小技巧)如果出現執行不成功,可采用下邊加速鏈接或者使用碼云下載
//加速地址
git clone https://github.com.cnpmjs.org/wlc1216/Hyperledger-fabric.git
//碼云
git clone https://gitee.com/arxin/fabric.git
6.2 查看拉取鏡像
docker images
6.3 網路測驗
//進入first-network檔案夾
cd ../fabric/fabric-samples/first-network

- .env:存盤一些環境變數
- base:存盤docker-compose的一些公共服務
- byfn.sh:執行腳本
- configtx.yaml和crypto-config.yaml:根據之前生成的2個工具,生成相應的組態檔,用來啟動網路,放到當前目錄的channel-artifacts和crypto-config里
- dockper-compose:用于啟動網路
- scripts:存放測驗腳本,做的事:創建通道、加入通道,安裝鏈碼,實體化鏈碼,鏈碼互動
//生成所需的證書和鏡像
./byfn.sh -m generate
//啟動網路
./byfn.sh -m up

等待,,,,,

好!!恭喜你 出現這個頁面 Successful!
//關閉網路
./byfn.sh -m down
注:網路啟動的程序中docker-compose 報錯
原因是compse讀取的時間太短
vi /etc/resolv.conf
解決辦法:將 options timeout**** 這行內容在前面加# 注釋掉保存
7.測驗favirc網路
在官方例子中,channel名字是mychannel,鏈碼的名字是mycc
使用docker exec命令進入CLI容器:
docker exec -it cli bash
進入**github.com/hyperledger/fabric/peer目錄下,運行以下命令可以查詢a賬戶的余額:
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'

下面我們可以進行轉賬操作,操作為invoke ,由a轉b 20:
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"]}'

轉賬成功!!!
注:關于轉賬成功,但是沒同步問題
原因應該是背書策略問題,兩個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
curl -sL https://deb.nodesource.com/setup_8.x | sudo --E bash --
//查看node版本
node ---v
//查看npm版本
npm --v
1.1移動到fabcar目錄
cd ../
cd fabcar
1.2 安裝node模塊
npm install
注:可能會出現node.js版本問題,可嘗試升級
npm升級或者更新到指定版本,運行指令
npm install -g npm 或者 npm -g install npm@3.0.0
1.3 安裝grpc模塊以與Hyperledger Fabric進行通信:
sudo npm install grpc
1.4 啟動fabcar的Hyperledger Fabric網路
./startFabric.sh
參考部分文章
感謝@Hyperledger國際化作業組
https://hyperledgercn.github.io/hyperledgerDocs/build_network_zh/
感謝@馬McccccL
https://blog.csdn.net/so5418418/article/details/78355868
感謝@萬生世代teikin
https://blog.csdn.net/qianxuezi/article/details/105851614
感謝@筆閣
https://my.oschina.net/u/2275217/blog/3014598
https://www.tqwba.com/x_d/jishu/357137.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/271427.html
標籤:區塊鏈
上一篇:“同一世界”DC(遞客)中國區核心礦工會議在深圓滿舉行
下一篇:解決gpedit問題
