fabric-samples的basic-network实现hyperledger网络部署和调用

本文通过使用fabric-samples提供的配置和链码示例,介绍了如何下载docker镜像并部署超级账本网络,包括创建和加入通道、安装及实例化链码,并演示了链码的调用与查询过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用官方提供的fabric-samples提供的配置和链码示例,调用和查询链码,最小化地体验超级账本的环境。

一、下载docker镜像

超级账本源码scripts目录下有多个下载镜像的脚本,我们可以修改权限以后直接运行:

#进入fabric/scripts目录
chmod +x bootstrap-1.0.0.sh
sed -i ' ' 's/curl/#curl/g' bootstrap-1.0.0.sh
./bootstrap-1.0.0.sh

二、部署超级账本网络

git clone https://github.com/hyperledger/fabric-samples.git
cd fabric-samples/basic-network #进入basic-network目录
docker-compose -f docker-compose.yaml up -d

使用docker ps查看已启动的容器
切换到管理员用户再创建通道和加入通道:

#切换环境到管理员用户的MSP,进入peer节点容器peer0.org2.example.com
docker exec -it -e "CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/Admin@org1.example.com/msp" peer0.org1.example.com bash
#创建通道
peer channel create -o orderer.example.com:7050 -c mychannel -f /etc/hyperledger/configtx/channel.tx
#加入通道
peer channel join -b mychannel.block
#退出peer节点容器peer0.org1.example.com
exit
#进入cli容器安装链码和实例化
docker exec -it cli /bin/bash
#给peer节点peer0.org1.example.com安装链码
peer chaincode install -n mycc -v v0 -p github.com/chaincode_example02/go
#实例化链码
peer chaincode instantiate -o orderer.example.com:7050 -C mychannel -n mycc -v v0 -c '{"Args":["init","a","100","b","200"]}'

三、链码调用和查询

在cli容器里查询初始值:

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

调用链码,从“a”转移10到“b”:

peer chaincode invoke -C mychannel -n mycc -v v0 -c '{"Args":["invoke","a","b","10"]}}'  

再次查询“a”和“b”的值:

peer chaincode query -C mychannel -n mycc -v v0 -c '{"Args":["query","a"]}'  
peer chaincode query -C mychannel -n mycc -v v0 -c '{"Args":["query","b"]}' 

查询结果显示,“a”的值为Query Result:90,“b”的值为Query Result:210。

四、注意事项

现在fabric出到1.1.0版本,在下载docker images时需要注意版本问题。
以及安装和实例化链码的时候是在cli容器里不是在peer节点容器里。

参考自
《深度探索区块链——hyperledger技术与应用》

### 在 Ubuntu 上安装运行 Hyperledger Fabric #### 准备工作 为了顺利安装 Hyperledger Fabric,在开始前需要准备一台基于 Ubuntu 的服务器或虚拟机环境。对于新手来说,建议通过 VMware 或 VirtualBox 创建一个 Ubuntu 虚拟机实例[^1]。 #### 更换 APT 下载源 由于官方默认的 APT 源速度较慢,推荐更改为国内镜像站点以提高软件包下载效率。Ubuntu 22.04 版本能够自动选择最优镜像源,这有助于减少因网络问题导致的下载失败情况[^3]: ```bash sudo sed -i 's@archive.ubuntu.com@mirrors.aliyun.com@g' /etc/apt/sources.list sudo apt update ``` #### 安装前置依赖项 在正式部署 Hyperledger Fabric 前,先要确保系统已安装必要的工具服务。首先是 Git 工具的安装,用于后续克隆项目仓库: ```bash sudo apt install git -y ``` 接着还需要安装 Docker Docker Compose,这是运行 Hyperledger Fabric 所必需的基础组件: ```bash # 更新APT索引并安装必要工具 sudo apt-get update && sudo apt-get upgrade -y sudo apt-get install curl wget nano gnupg2 jq -y # 设置Docker存储库密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # 添加稳定版Docker存储库 echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # 安装Docker引擎及相关CLI sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io -y # 验证docker服务状态 sudo systemctl status docker # 安装Docker Compose DOCKER_COMPOSE_VERSION="1.29.2" sudo curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose ``` #### 获取并初始化 Hyperledger Fabric 环境 完成上述准备工作之后,可以通过脚本来简化 Hyperledger Fabric 的安装过程。这里提供一种简便的方式获取最新版本的 Fabric 及其示例文件[^2]: ```bash mkdir -p $HOME/go/src/github.com/hyperledger cd $HOME/go/src/github.com/hyperledger git clone https://github.com/hyperledger/fabric-samples.git cd fabric-samples ./network.sh up createChannel -ca -c mychannel -s couchdb ``` 以上命令将会启动整个区块链网络,并创建一条名为 `mychannel` 的通道供测试用途。 #### 测试链码执行 最后一步是验证新搭建好的 Hyperledger Fabric 是否正常运作。可以利用自带的例子来检验链码的功能性: ```bash cd test-network ./network.sh deployCC -ccn basic -ccv 1 -cci initLedger -ccl javascript ``` 这段指令会编译、打包以及部署一个简单的 JavaScript 编写的智能合约至刚刚建立好的通道内,并调用初始方法填充账本数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值