私链搭建(Ubuntu)

安装需要的软件

#ubuntu18
sudo apt-get install curl docker docker-compose golang nodejs npm python

软件

版本

docker

17.06.2-ce+

docker-compose

1.14.0+

go

1.9.x+

nodejs

8.9.x

bon

5.6.0

python

2.7.x

设置环境变量

#~/.bashrc
export GOPATH=$HOME/gopath
export PATH=$PATH:$GOPATH/bin

准备环境

#下载脚本
wget https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh

#运行脚本,可以考虑将里面的docker命令前增加su
./bootstrap.sh

运行私链

cd fabric-samples/first-network

#初始化配置
./byfn.sh -m generate

#这个脚本,做了以下事情:
#创建证书
#生成第一个区块
#生成MSP的锚节点
#启动管道mychannel
#管道包括了两个组织,org1和org2
#org1有两个节点peer0,peer1
#org2有两个节点peer0,peer1
#然后在org1和org2的peer0节点部署了智能合约
#查询合约
#合约转账
#查询合约
sudo ./byfn.sh -m up
##### Generate certificates using cryptogen tool #########
#########  Generating Orderer Genesis block ##############
#######    Generating anchor peer update for Org1MSP   ##########
#######    Generating anchor peer update for Org2MSP   ##########
===================== Channel "mychannel" is created successfully =====================
===================== peer0.org1 joined on the channel "mychannel" =====================
===================== peer1.org1 joined on the channel "mychannel" =====================
===================== peer0.org2 joined on the channel "mychannel" =====================
===================== peer1.org2 joined on the channel "mychannel" =====================
===================== Anchor peers for org "Org1MSP" on "mychannel" is updated successfully =====================
===================== Anchor peers for org "Org2MSP" on "mychannel" is updated successfully =====================
===================== Chaincode is installed on peer0.org1 =====================
===================== Chaincode is installed on peer0.org2 =====================
===================== Chaincode Instantiation on peer0.org2 on channel 'mychannel' is successful =====================
===================== Querying on peer0.org1 on channel 'mychannel'... =====================
Query Result: 100
===================== Query on peer0.org1 on channel 'mychannel' is successful =====================
===================== Invoke transaction on peer0.org1 on channel 'mychannel' is successful =====================
===================== Chaincode is installed on peer1.org2 =====================
===================== Querying on peer1.org2 on channel 'mychannel'... =====================
Query Result: 90
===================== Query on peer1.org2 on channel 'mychannel' is successful =====================
========= All GOOD, BYFN execution completed ===========

查看容器列表

sudo docker ps
CONTAINER ID        IMAGE                                                                                                  COMMAND                  CREATED             STATUS              PORTS                                              NAMES
92b34725eb84        dev-peer1.org2.example.com-mycc-1.0-26c2ef32838554aac4f7ad6f100aca865e87959c9a126e86d764c8d01f8346ab   "chaincode -peer.add…"   14 minutes ago      Up 14 minutes                                                          dev-peer1.org2.example.com-mycc-1.0
fc09cb911752        dev-peer0.org1.example.com-mycc-1.0-384f11f484b9302df90b453200cfb25174305fce8f53f4e94d45ee3b6cab0ce9   "chaincode -peer.add…"   15 minutes ago      Up 15 minutes                                                          dev-peer0.org1.example.com-mycc-1.0
bed1373228f0        dev-peer0.org2.example.com-mycc-1.0-15b571b3ce849066b7ec74497da3b27e54e0df1345daff3951b94245ce09c42b   "chaincode -peer.add…"   15 minutes ago      Up 15 minutes                                                          dev-peer0.org2.example.com-mycc-1.0
bfa16375cae2        hyperledger/fabric-tools:latest                                                                        "/bin/bash"              16 minutes ago      Up 16 minutes                                                          cli
97bbdad5a204        hyperledger/fabric-orderer:latest                                                                      "orderer"                16 minutes ago      Up 16 minutes       0.0.0.0:7050->7050/tcp                             orderer.example.com
9743b8716888        hyperledger/fabric-peer:latest                                                                         "peer node start"        16 minutes ago      Up 16 minutes       0.0.0.0:10051->7051/tcp, 0.0.0.0:10053->7053/tcp   peer1.org2.example.com
d3ea4a45d1f3        hyperledger/fabric-peer:latest                                                                         "peer node start"        16 minutes ago      Up 16 minutes       0.0.0.0:8051->7051/tcp, 0.0.0.0:8053->7053/tcp     peer1.org1.example.com
514337d43df4        hyperledger/fabric-peer:latest                                                                         "peer node start"        16 minutes ago      Up 16 minutes       0.0.0.0:7051->7051/tcp, 0.0.0.0:7053->7053/tcp     peer0.org1.example.com
3ced253d6808        hyperledger/fabric-peer:latest              

查看交易细节

sudo docker logs dev-peer0.org2.example.com-mycc-1.0
ex02 Init
Aval = 100, Bval = 200

sudo docker logs dev-peer0.org1.example.com-mycc-1.0
ex02 Invoke
Query Response:{"Name":"a","Amount":"100"}
ex02 Invoke
Aval = 90, Bval = 210

sudo docker logs dev-peer1.org2.example.com-mycc-1.0
ex02 Invoke
Query Response:{"Name":"a","Amount":"90"}

清理工作

sudo ./byfn.sh -m down

最后更新于