HyperLedger Fabric 1.0 Alpha 入門 - 開發(fā)環(huán)境安裝測試

導(dǎo)言:
最近在國內(nèi)某金融公司做區(qū)塊鏈開發(fā),主要負(fù)責(zé)智能合約開發(fā),使用的是HyperLedger Fabric 1.0,自己也開始學(xué)習(xí)區(qū)塊鏈技術(shù),上周已經(jīng)學(xué)會(huì)自己搭建區(qū)塊鏈網(wǎng)絡(luò),同時(shí)自己也寫了一個(gè)關(guān)于數(shù)字貨幣發(fā)行和管理的智能合約,特將這段時(shí)間的學(xué)習(xí)分享給大家,希望可以幫到大家。
有可以一起交流可以私信我。

1.Git準(zhǔn)備

apt-get install git

2.GO開發(fā)環(huán)境設(shè)置

從官方下載地址下載最新穩(wěn)定版本:

wget https://storage.googleapis.com/golang/go1.9.linux-amd64.tar.gz
sudo tar -xzf go1.9.linux-amd64.tar.gz -C /usr/local

配置環(huán)境變量,使用 sudo vim /etc/profile 并添加下面的內(nèi)容:

export PATH=$PATH:/usr/local/go/bin 
export GOROOT=/usr/local/go 
export GOPATH=$HOME/go 
export PATH=$PATH:$HOME/go/bin

添加之后使其生效

source  /etc/profile 

3.Docker安裝

獲取最新版本的 Docker 安裝包

看官方教程
https://docs.docker.com/install/linux/docker-ce/ubuntu/

安裝Docker-Compose

sudo apt-get install python-pip

然后是安裝docker-compose,我們從官方網(wǎng)站(https://github.com/docker/compose/releases)下載也可以從國內(nèi)的進(jìn)行DaoClound下載,為了速度快接下來從DaoClound安裝Docker-compose,運(yùn)行腳本:

curl -L https://get.daocloud.io/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > ~/docker-compose
sudo mv ~/docker-compose /usr/local/bin/docker-compose
 chmod +x /usr/local/bin/docker-compose

啟動(dòng)docker

sudo service docker start

5.部署Fabric 1.0 Beta

1.下載官方自動(dòng)化部署腳本

Fabric源碼下載

我們可以使用Git命令下載源碼,首先需要建立對(duì)應(yīng)的目錄,然后進(jìn)入該目錄,Git下載源碼:

mkdir -p ~/go/src/github.com/hyperledger 
cd ~/go/src/github.com/hyperledger 
git clone https://github.com/hyperledger/fabric.git

由于Fabric一直在更新,所有我們并不需要最新最新的源碼,需要切換到v1.0.0版本的源碼即可:

cd ~/go/src/github.com/hyperledger/fabric
git checkout v1.0.0
 

2.啟動(dòng)Fabric實(shí)例

cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli/
sudo ./download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0
sudo ./network_setup.sh up

結(jié)果如下:


image.png

3.測試Fabric

1在CLI中測試Example02
首先我們需要登錄到CLI這個(gè)容器中,才能執(zhí)行Fabric的CLI命令。

sudo docker exec -it cli bash

如果成功進(jìn)入,我們會(huì)切換到該容器的root用戶下,得到如下的命令行目錄:

root@12f2eb6d9fa6:/opt/gopath/src/github.com/hyperledger/fabric/peer#

鏈上代碼是需要經(jīng)過Install和Instantiate兩步的。下面我們首先安裝Example02,并指定一個(gè)名字,比如我們這里就用devincc:

peer chaincode install -n devincc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02

結(jié)果如下


image.png

接下來是Instantiate,也就是初始化實(shí)例,設(shè)置a賬戶有100元,b賬戶有200元。

peer chaincode instantiate -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem -C mychannel -n devincc -v 1.0  -c '{"Args":["init","a", "100", "b","200"]}' -P "OR ('Org1MSP.member','Org2MSP.member')"

或者

peer chaincode instantiate -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --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 devincc -v 1.0  -c '{"Args":["init","a", "100", "b","200"]}' -P "OR ('Org1MSP.member','Org2MSP.member')"

運(yùn)行成功后可以看到如下的結(jié)果:


image.png

接下來我們用Query命令來看一看a賬戶的余額:

peer chaincode query -C mychannel -n devincc -c '{"Args":["query","a"]}'

返回的結(jié)果是:


image.png

好接下來我們需要把a(bǔ)賬戶的10元轉(zhuǎn)給b賬戶,需要調(diào)用invoke命令:

peer chaincode invoke -o orderer.example.com:7050  --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem  -C mychannel -n devincc -c '{"Args":["invoke","a","b","10"]}'

或者

peer chaincode invoke -o orderer.example.com:7050  --tls $CORE_PEER_TLS_ENABLED --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 devincc -c '{"Args":["invoke","a","b","10"]}'

運(yùn)行返回的結(jié)果為:


image.png

最后我們再調(diào)用query命令來查一下b賬戶的余額,如果沒有計(jì)算錯(cuò),應(yīng)該是210元。

peer chaincode query -C mychannel -n devincc -c '{"Args":["query","b"]}'

結(jié)果如下:


image.png

看來我們的Fabric 1.0 Beta已經(jīng)部署成功并測試通過了。
我的博客即將搬運(yùn)同步至騰訊云+社區(qū),邀請大家一同入駐:https://cloud.tencent.com/developer/support-plan?invite_code=3jhhrcx4atkww

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容