【Hyperledger Fabric 学习】安装和运行

HyperLedger Fabric官方文档

中文网址:https://hyperledger-fabric.readthedocs.io/zh_CN/latest
英文网址:https://hyperledger-fabric.readthedocs.io/en/latest
一般情况英文网址的内容更全面,版本也比中文新。

前置

环境:Linux
sudo apt-get install git安装git
sudo apt-get install curl安装curl
sudo apt-get -y install docker-compose安装docker
根据指引去安装Go和jq,Go足矣
Go安装

安装Fabric

创建一个文件夹xxx用于拉取文件
mkdir xxx
cd xxx
拉取相关文件
curl -sSLO https://raw.githubusercontent.com/hyperledger/fabric/main/scripts/install-fabric.sh && chmod +x install-fabric.sh
安装
./install-fabric.sh docker samples
拉取二进制文件,版本2.2.1
./install-fabric.sh --fabric-version 2.2.1 binary

运行测试网络(test network)

进入文件夹
cd fabric-samples/test-network
下载二进制文件并添加到环境变量
curl -sSL https://bit.ly/2ysbOFE | bash -s
export PATH=$PWD/bin:$PATH
启动网络
./network.sh up
创建通道
./network.sh createChannel默认通道名为“mychannel”,可在后面加上自定义的通道名./network.sh createChannel -c 自定义通道名
部署智能合约
./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go
可以看出部署的是文件夹asset-transfer-basic/chaincode-go里的链码

与网络交互

当前目录为test-network
export PATH=${PWD}/../bin:$PATH
export FABRIC_CFG_PATH=$PWD/../config/指向文件core.yaml

作为Org1的Peer CLI:
修改环境变量CORE_PEER_TLS_ROOTCERT_FILECORE_PEER_MSPCONFIGPATH指向Org1的加密材料(文件夹organizations)
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

调用智能合约初始化账本
peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem" -C mychannel -n basic --peerAddresses localhost:7051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt" --peerAddresses localhost:9051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt" -c '{"function":"InitLedger","Args":[]}'

查询账本数据
peer chaincode query -C mychannel -n basic -c '{"Args":["GetAllAssets"]}'

更改账本
peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem" -C mychannel -n basic --peerAddresses localhost:7051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt" --peerAddresses localhost:9051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt" -c '{"function":"TransferAsset","Args":["asset6","Christopher"]}'

作为Org2的情况类似
更换为Org2的CLI
export CORE_PEER_TLS_ENABLED=true
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
查询
peer chaincode query -C mychannel -n basic -c '{"Args":["ReadAsset","asset6"]}'

启动有证书颁发机构的网络

Fabric使用公钥基础设施(PKI)来验证所有网络参与者的操作。提交交易的每个节点、网络管理员和用户都需要有一个公共证书和私钥来验证他们的身份。这些身份需要有一个有效的信任根,确定证书是由网络成员组织颁发的。network.sh脚本在创建对等节点和排序节点之前创建部署和操作网络所需的所有加密材料。

creating Org1, Org2, and ordering service organization with crypto from 'cryptogen'

/Usr/fabric-samples/test-network/../bin/cryptogen

##########################################################
##### Generate certificates using cryptogen tool #########
##########################################################

##########################################################
############ Create Org1 Identities ######################
##########################################################
+ cryptogen generate --config=./organizations/cryptogen/crypto-config-org1.yaml --output=organizations
org1.example.com
+ res=0
+ set +x
##########################################################
############ Create Org2 Identities ######################
##########################################################
+ cryptogen generate --config=./organizations/cryptogen/crypto-config-org2.yaml --output=organizations
org2.example.com
+ res=0
+ set +x
##########################################################
############ Create Orderer Org Identities ###############
##########################################################
+ cryptogen generate --config=./organizations/cryptogen/crypto-config-orderer.yaml --output=organizations
+ res=0
+ set +x

默认情况下,该脚本使用加密工具cryptogen创建证书和密钥。该工具用于开发和测试,可以快速为Fabric组织创建所需的加密材料,并具有有效的信任根。当您运行./network.sh时,您可以看到加密工具为Org1、Org2和Orderer Org创建证书和密钥。

但是,测试网络脚本还提供了使用证书颁发机构(Certificate authority, CAs)启动网络的选项。在生产网络中,每个组织运行一个CA(或多个中间CA),这些CA创建属于其组织的身份。由组织运行的CA创建的所有身份都共享相同的信任根。尽管这比使用cryptogen花费更多的时间,但是使用CAs生成测试网络可以介绍如何在生产中部署网络。部署CAs还允许您注册Fabric sdk的客户端身份,并为您的应用程序创建证书和私钥。
./network.sh up -ca

部署CA后,需要花时间检查。/network.sh脚本生成的日志。测试网络使用Fabric CA客户端向每个组织的CA注册节点和用户身份。脚本然后使用enroll命令为每个标识生成一个MSP文件夹。MSP文件夹包含每个身份的证书和私钥,并确定身份在操作CA的组织中的角色和成员资格。可以使用以下命令检查Org1 admin用户的MSP文件夹:
tree organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/

结果如下

organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/
└── msp
    ├── IssuerPublicKey
    ├── IssuerRevocationPublicKey
    ├── cacerts
    │   └── localhost-7054-ca-org1.pem
    ├── config.yaml
    ├── keystore
    │   └── 58e81e6f1ee8930df46841bf88c22a08ae53c1332319854608539ee78ed2fd65_sk
    ├── signcerts
    │   └── cert.pem
    └── user

您可以在signcerts文件夹中找到admin用户的证书cert.pem,在keystore文件夹中找到私钥。cryptogen和Fabric ca都在组织文件夹中为每个组织生成加密材料。在organizations/fabric-ca目录下的registerEnroll.sh脚本中可以找到用于设置网络的命令。要了解如何使用Fabric CA部署Fabric网络的更多信息,请访问Fabric CA操作指南
MSP

过程解析

  1. ./network.sh为两个peer组织和orderer组织创建证书和密钥。默认情况下,脚本使用位于organizations/cryptogen文件夹中的配置文件使用cryptogen工具。如果使用-ca标志创建证书颁发机构,脚本将使用Fabric CA服务器配置文件和位于organizations/ Fabric -ca文件夹中的registerEnroll.sh脚本。cryptogen和Fabric ca都在organizations文件夹中为所有三个组织创建加密材料和MSP文件夹。
  2. 一旦生成了组织加密材料,network.sh就可以启动网络的节点。该脚本使用docker- compose-test-net.yaml文件在docker文件夹中创建peer和排序节点。docker文件夹也包含docker- compose-e2e.yaml文件,它将网络的节点与三个Fabric ca放在一起。该文件用于Fabric SDK运行端到端测试。有关运行这些测试的详细信息,请参阅Node SDK repo。
  3. 如果使用了createchannel子命令,./network.sh运行scripts文件夹中的createchannel.sh脚本,使用提供的通道名称创建通道。该脚本使用configtxgen工具基于configtx/configtx.yaml文件中的TwoorgsApplicationGenesis通道配置文件创建通道生成块。创建通道之后,脚本使用peer命令行将peer.org1.example.compeer.org2.example.com加入到通道中,并使这两个Peer成为锚点Peer。
  4. 如果发出了deploycc命令,./network.sh运行deploycc.sh脚本在两个对等端安装asset-transfer-basic链码,然后在通道上定义链代码。一旦链码定义提交给通道,Peer命令行使用Init初始化链码,并调用链码来将初始数据放到分类账上。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Hyperledger Fabric是一个开源的区块链平台,它提供了一个可扩展的、高度安全的、模块化的架构,可以满足企业级应用的需求。安装Hyperledger Fabric需要以下步骤: 1. 安装DockerDocker Compose 2. 下载Fabric镜像 3. 下载Fabric二进制文件 4. 配置Fabric网络 5. 启动Fabric网络 具体的安装步骤可以参考Hyperledger Fabric官方文档。 ### 回答2: Hyperledger Fabric是一个用于构建可扩展、安全和均衡的分布式账本应用的开放式源代码平台。由于Fabric在金融、医疗、物流等行业的应用前景广阔,越来越多的企业和开发者开始着手研究Fabric。本文将介绍安装Hyperledger Fabric的步骤。 第一步:安装前置条件 在安装Fabric之前,需要先安装Git、Docker和Node.js。在Linux系统下,可以通过以下命令安装: sudo apt-get install git docker.io docker-compose nodejs npm 第二步:下载并解压FabricHyperledger Fabric官网上下载所需版本的Fabric包,并解压到相应的目录下。推荐解压路径为:$HOME/fabric-samples。 第三步:部署Fabric网络 在下载Fabric之后,需要进一步部署Fabric网络,包括运行、连接和测试链码。示例Fabric应用程序集成了fabric-samples中的两条简单链,即balance-transfer和commercial-paper。可以选择其中一条进行操作。 对于balance-transfer: 1. 进入fabric-samples/balance-transfer目录。 2. 执行start.sh脚本。 3. 运行Node.js服务器。 4. 打开浏览器,访问http://localhost:4000。 对于commercial-paper: 1. 执行fabric-samples/commercial-paper/organizations/fabric-ca/scripts/enrollAll.sh脚本,以enroll CA管理员和Peer节点的证书。 2. 进入fabric-samples/commercial-paper/organizations/network目录。 3. 启动fabric-ca-server。 4. 执行start.sh脚本。 5. 启动Node.js服务器。 6. 打开浏览器,访问http://localhost:8080。 第四步:运行示例代码 示例代码可以在fabric-samples目录下找到,在开发过程中可以参考相关代码进行开发。例如,要运行对balance-transfer的测试,则可以进入fabric-samples/balance-transfer目录,然后执行testAPIs.sh脚本。执行脚本后,会输出相关的测试结果。 以上就是Hyperledger Fabric安装过程的详细介绍。在实际安装过程中,还需要考虑到不同的操作系统和网络环境的差异,需要特别注意一些特定的细节。在安装过程中,如果遇到问题,可以参考Hyperledger Fabric官网提供的详细文档或者社区中其他开发者的经验。 ### 回答3: Hyperledger Fabric是一个用于开发和部署分布式应用程序的平台。它可以用于建立基于区块链的应用程序,支持分布式网络,具有灵活性和可扩展性。下面是关于Hyperledger Fabric安装过程。 安装前的准备工作 在开始安装Hyperledger Fabric之前,需要准备以下工作: 1.安装必要的软件:安装Docker和Go语言环境,以便使用Hyperledger Fabric的所有功能。 2.下载Fabric二进制文件:下载最新版本的Fabric二进制文件,将其解压缩到本地目录中。 3.设置Fabric网络:配置Fabric网络以进行测试和开发。 安装步骤 1.安装Docker和Go环境:根据操作系统的不同,选择合适的Docker和Go版本进行安装。使用以下命令验证安装是否成功: docker version go version 2.下载Fabric二进制文件:从Hyperledger Fabric的官方网站上下载Fabric二进制文件,选择与操作系统匹配的版本。将其解压到本地目录中,例如在Windows下使用以下命令: tar xvzf hyperledger-fabric-linux-amd64-2.3.2.tar.gz 3.设置Fabric网络:配置Fabric网络以进行测试和开发。使用以下命令来生成网络配置文件和初始证书: cd fabric-samples/test-network ./network.sh generate 4.启动网络:使用以下命令来启动Fabric网络: ./network.sh up 5.创建通道:使用以下命令创建Fabric通道,并且指定通道名称: ./network.sh createChannel -c mychannel 6.部署链码:使用以下命令来安装链码: ./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go 7.测试链码:使用以下命令来测试链码: ./network.sh invoke -c mychannel -n basic -c '{"Args":["InitLedger"]}' ./network.sh invoke -c mychannel -n basic -c '{"Args":["TransferAsset", "asset6", "Tom"]}' ./network.sh query -c mychannel -n basic -c '{"Args":["ReadAsset","asset6"]}' 总结 这就是关于如何安装Hyperledger Fabric的步骤。Hyperledger Fabric是一个功能强大的分布式平台,可以用于构建高效的区块链应用程序。使用上述步骤安装Fabric并开始构建具有可扩展性和灵活性的区块链应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值