资讯专栏INFORMATION COLUMN

Hyperledger Fabric 部署for Mac

wangxinarhat / 1281人阅读

摘要:生成创世区块生成配置交易定义锚节点为定义锚节点为定义锚节点启动网络创建和加入命令成功后显示如下创建将加入创建的将加入创建的更新锚节点安装实例化查询

环境准备 docker安装

Docker最低版本要求是version 17.06.2-ce
推荐在Docker官网下载Mac版本

go安装

Go最低版本要求是 1.10.x
可在使用brew或者Go官网下载Mac版本

下载示例,二进制和docker镜像

在home目录新创建一个目录,比如

makedir ~/fabric_learning
cd ~/fabric_learning

下载脚本文件https://raw.githubusercontent... 到当前目录下
执行脚本

./bootstrap.sh -s version_number

e.g.

./bootstrap.sh -s 1.2.0

然后你将得到一个 fabric-samples 文件夹
在fabric-samples/bin目录下有如下平台相关的二进制文件

configtxgen

cryptogen

fabric-ca-client

idemixgen

peer

configtxlator

discover

orderer

并下载了一系列所需的image文件

手动搭建byfn网络

如无特别说明以下的操作都在fabric-samples/first-network目录下

修改docker-compose-cli.yaml文件log级别为DEBUG
cli:
  container_name: cli
  image: hyperledger/fabric-tools:$IMAGE_TAG
  tty: true
  stdin_open: true
  environment:
    - GOPATH=/opt/gopath
    - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
    - CORE_LOGGING_LEVEL=DEBUG
    #- CORE_LOGGING_LEVEL=INFO
生成加密材料 (x509证书和签名密钥)
../bin/cryptogen generate --config=./crypto-config.yaml

命令执行完成后会看到如下输出

org1.example.com
org2.example.com

并在first-network目录下生成crypto-config文件夹,证书和密钥都在此文件夹下

证书是身份的代表,当我们的网络实体交互和交易的时候,用来签名和验证权限
cryptogen 需要配置一个文件- crypto-config.yaml, 此文件包含了网络的拓扑定义,有三个成员,分别是一个Orderer Org和两个Peer Orgs (Org1 & Org2), 每个Peer组织维护两个peer结点为组织和其中的组件生成一系列的证书和密钥。

生成orderer 创世区块 genesis block
export FABRIC_CFG_PATH=$PWD
../bin/configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block
生成channel配置交易
export CHANNEL_NAME=mychannel
../bin/configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID $CHANNEL_NAME
定义锚节点 为Org1定义锚节点
../bin/configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org1MSP
为Org2定义锚节点
../bin/configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org2MSP
启动网络
docker-compose -f docker-compose-cli.yaml up -d
创建和加入channel
Docker exec -it cli bash

命令成功后bash显示如下

root@e1fac8b5ec98:/opt/gopath/src/github.com/hyperledger/fabric/peer#
创建channel
export CHANNEL_NAME=mychannel
peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/channel.tx --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
将peer0.org1.example.com加入创建的channel
peer channel join -b mychannel.block
将peer0.org2.example.com加入创建的channel
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp CORE_PEER_ADDRESS=peer0.org2.example.com:7051 CORE_PEER_LOCALMSPID="Org2MSP" CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt peer channel join -b mychannel.block
更新锚节点
peer channel update -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/Org1MSPanchors.tx --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp CORE_PEER_ADDRESS=peer0.org2.example.com:7051 CORE_PEER_LOCALMSPID="Org2MSP" CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt peer channel update -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/Org2MSPanchors.tx --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
安装 & 实例化chaincode
peer chaincode install -n mycc -v 1.0 -p github.com/chaincode/chaincode_example02/go/
peer chaincode instantiate -o orderer.example.com:7050 --tls --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 $CHANNEL_NAME -n mycc -v 1.0 -c "{"Args":["init","a", "100", "b","200"]}" -P "AND ("Org1MSP.peer","Org2MSP.peer")"
查询
peer chaincode query -C $CHANNEL_NAME -n mycc -c "{"Args":["query","a"]}"
Invoke
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 $CHANNEL_NAME -n mycc --peerAddresses peer0.org1.example.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses peer0.org2.example.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c "{"Args":["invoke","a","b","10"]}"

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/24367.html

相关文章

  • Hyperledger Fabric(入门)

    摘要:脚本列出了在结束时安装的映像。在不同的体系结构,将用标识体系结构的字符串替换。提供了许多来支持各种编程语言,官方发布了两款针对和的和文档。。 入门 在我们开始之前,如果你还没有这样做,你可能希望检查是否已经在开发区块链应用程序和/或运行Hyperledger Fabric的平台上安装了所有前提条件。 一旦安装了前提条件,就可以下载并安装HyperLedger Fabric了,当我们在F...

    SKYZACK 评论0 收藏0
  • 基于ubuntu16.04部署IBM开源区块链项目-弹珠资产管理(Marbles)

    摘要:协议的细节由一个名为的处理。运行下面的脚本来让所有的事情都发生一两分钟后,命令提示符将返回运行结果如下图所示现在运行该命令查看当前正在运行的容器。 showImg(https://segmentfault.com/img/bVbazHF?w=709&h=159); 前言 本教程基本上是对Marbles项目的翻译过程. 如果英文比较好的话,建议根据官方操作说明,一步步进行环境部署。当然你...

    voidking 评论0 收藏0
  • Hyperledger Fabric 2.0 Alpha发布了!

    摘要:新的模型要求只有足够数量的组织批准后才能允许升级链码。的设计初衷是考虑到安全性,而的发行版的极简主义特性大大降低了安全漏洞的风险。 原文地址:https://www.xuanzhangjiong.to...作者:TopJohn Hyperledger Fabric 2.0 Alpha发布了! 随着近期Fabric v1.4.1 LTS的发布,Fabric项目目前工作的重点正在向1.4...

    wing324 评论0 收藏0
  • Hyperledger Fabric(介绍)

    摘要:比特币和以太币属于一类区块链,我们将其归类为公共无许可的区块链技术。例如,在单个企业中部署时,或由受信任的权威机构运作,完全拜占庭容错的共识可能被认为是不必要的,并且对性能和吞吐量造成过度的拖累。 介绍 一般而言,区块链是一个不可变的交易分类账,维护在一个分布式对等节点网络中。这些节点通过应用已经由共识协议验证的交易来维护分类帐的副本,该交易被分组为包括将每个块绑定到前一个块的散列的块...

    yunhao 评论0 收藏0
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1

    摘要:阿里云容器服务区块链解决方案第一时间同步升级,在新功能的基础上,提供了弹性裸金属服务器神龙内置容器化集成阿里云日志服务等方面的增强。 摘要: 全球开源区块链领域影响最为广泛的Hyperledger Fabric日前宣布了1.1版本的正式发布,带来了一系列丰富的新功能以及在安全性、性能与扩展性等方面的显著提升。阿里云容器服务区块链解决方案第一时间同步升级,在v1.1新功能的基础上,提供了...

    vvpale 评论0 收藏0

发表评论

0条评论

wangxinarhat

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<