NEIL研究室:Hyperledger Fabric 2.0 开发(不定期更新)

更新日期:2020.04.03

欢迎大家一起交流,觉得还可以的话,可以给我点个赞或者打赏一下,毕竟有博主辛苦踩坑和整理资料。


目录

零、HyperLedger Fabric 2.0 原版文档链接

一、环境搭建

1.1 安装软件列表

1.2 具体安装

二、Fabric-sample官方例子

2.1 下载Docker镜像和Fabric-sample相关的二进制文件

2.2 创建channel,org和peer

2.3 用Peer CLI去部署Fabcar chaincode到Channel

2.3.1 打包smart contract

遇到一些问题的解决办法:

附加:

(1)docker常用的命令


 

零、HyperLedger Fabric 2.0 原版文档链接

链接:Hyperledger Fabric 2.0

一、环境搭建

1.1 安装软件列表

软件版本号
vim8.0.1453
git2.17.1

curl

7.58.0
wget1.19.4
pip9.0.1
golang1.14.1
nodejs8.10.0
npm3.5.2
docker-ce19.03.8
docker-compose1.17.1

1.2 具体安装

(1)我使用的系统是Ubuntu 18.04 LTS,在Windows里使用VMware 15 Pro虚拟该系统。因为往后的开发很多需要Root权限,所以直接用Root登录就免去麻烦了。具体设置可以参考:Ubuntu18.04.1设置root用户登录图形界面

(2)vim,git,curl,wget,pip,nodejs,npm,分别安装。

apt-get update
apt-get install -y vim
apt-get install -y git
apt-get install -y curl
apt-get install -y pip
apt-get install -y wget
apt-get install -y nodejs
apt-get install -y npm
apt-get update

(3)Go

进入:https://golang.google.cn/dl/

下载linux版本:go1.14.1.linux-amd64.tar.gz(自行下载最新版本)

解压到/usr/local/目录中:

tar -xvf /root/Downloads/go1.14.1.linux-amd64.tar.gz -C /usr/local/

环境变量:

\\打开环境变量
vi ~/.bashrc

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

\\保存退出后刷新
source ~/.bashrc

(4)docker

安装可参考链接:【Ubuntu18.04】安装Docker教程

apt-get update

apt install apt-transport-https ca-certificates curl software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"

apt-get update

apt-get install docker-ce

(5)docker-compose

apt-get install docker-compose

二、Fabric-sample官方例子

我们首先跑通Fabric-sample,这是一个官方给的例子,跑通这个再了解其中的原理,接下来就可以开发自己的Fabric了。

2.1 下载Docker镜像和Fabric-sample相关的二进制文件

开始我们首先下载 Fabric-sample源码。进入/home目录,并新建文件夹:go/src/github.com/hyperledger,把文件放在这里

mkdir -p /go/src/github.com/hyperledger

\\进入该文件夹执行:
git clone https://github.com/hyperledger/fabric-sample.git (耐心等待,最好FQ)

进入fabric-sample的文件夹里面,执行下载相关的Docker镜像和Fabric-sample相关的二进制文件

cd fabric-sample

curl -sSL https://bit.ly/2ysbOFE | bash -s (FQ吧,不FQ下载不到)

最后执行完毕会列出已经安装的Docker镜像:

2.2 创建channel,org和peer

(1)进入fabric-sample/test-network文件夹

(2)初始化,关闭所有的docker。作用就是关闭那些你不知道之前有没有关闭的docker container。

./network.sh down

(3)运行下面命令开始测试网络

./network.sh up createChannel

(4)知道看到下面logs的时候表示成功了

========= Channel successfully joined ===========

这个阶段做了几件事情:

1、创建一个Channel,并命名为mychannel

2、在这个Channel下加入两个组织Org1和Org2

3、每个组织都加入一个Peer

2.3 用Peer CLI去部署Fabcar chaincode到Channel

步骤如下:

1、打包smart contract

2、安装chaincode包

3、批准chaincode definition

4、把chaincode definition提交到channel

2.3.1 打包smart contract

这个阶段操作根据你的chaincode用什么语言写来确定,Go,Java和JS。

本文用Go语言,而且在打包chaincode之前,我们需要先安装chaincode依赖。

(1)进入fabcar/go目录

cd fabric-samples/chaincode/fabcar/go

(2)这个例子用一个Go module来安装chaincode依赖。go.mod文件里列出了所需要的依赖。输入下面命令来查看:

cat go.mod

(3)环境变量两个path的添加

export FABRIC_CFG_PATH=$PWD/../config/
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp

(4)进入test-network目录,使用bin中的peer命令来打包smart contract(需要FQ)。

peer lifecycle chaincode package fabcar.tar.gz --path ../chaincode/fabcar/go/ --lang golang --label fabcar_1

(5)如果目录中出现fabcar.tar.gz的文件

2.3.2 安装刚生成的fabcar.tar.gz

每一个peer都要安装一次,不管哪个组织。

安装进Org1的peer

(1)环境变量修改

export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_LOCALMSPID="Org1MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
export CORE_PEER_ADDRESS=localhost:7051

(2)安装命令

peer lifecycle chaincode install fabcar.tar.gz

安装进Org2的peer

(1)环境变量修改

export CORE_PEER_LOCALMSPID="Org2MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp
export CORE_PEER_ADDRESS=localhost:9051

(2)安装命令

peer lifecycle chaincode install fabcar.tar.gz

2.3.3 批准chaincode definition

打包完之后需要批准Chaincode definition,它包括管理Chaincode用到的重要参数,例如name, version和chaincode endorsement policy.

2.3.4 把chaincode definition提交到channel

 
 
 

遇到一些问题的解决办法:

(1)遇到curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to raw.githubusercontent.com:443 的问题时候,运行一下代码:

git config --global http.sslVerify false

(2)

 

附加:

(1)docker常用的命令

(2)MSP与TLS说明

1、MSP证书解释
admincerts:管理员证书,它比普通的peer0证书有一些特殊的权限,比如对节点的修改或者配置等操作
cacerts:里面放的是对这个peer0颁发证书的ca是谁,里面放的是ca的公钥
keystore:是peer0这个节点msp的自己的私钥
signcerts:里面放的是这个organization的ca(ca.org1.example.com-cert.pem)给peer0颁发的证书
tlscacerts:里面放的是对这个peer0办法TLS证书的ca是谁,里面放的是TLS ca的公钥
admincerts和signcerts都是签发之后的证书,只是他们的角色不同,admincerts对peer0有一些特殊的管理权限,但signcerts只是一个普通的certs
2、TLS证书解释
ca.crt:TLS安全认证过程的时候验证证书的ca
server.crt:节点本身的TLS证书
server.key:节点本身的TLS私钥


转载原文链接:https://blog.csdn.net/lisemi/article/details/94637264

 

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值