【Hyperledger Fabric 学习】运行一个Fabric应用

HyperLedger Fabric官方文档

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

前言

本教程介绍了 Fabric 应用程序如何与已部署的区块链网络进行交互。本教程使用使用 Fabric Gateway 客户端 API 构建的示例程序来调用智能合约,该智能合约使用智能合约 API 查询和更新账本 - 在将智能合约部署到通道中详细描述。

asset-transfer-basic
该示例演示了如何创建、更新和查询资产。它涉及以下2个组件:

  1. 示例应用程序。调用区块链网络,调用智能合约中实现的交易。该应用程序位于asset-transfer-basic/application-gateway-typescript目录中。
  2. 智能合约。实现与账本交互的交易,该智能合约位于asset-transfer-basic/chaincode-(typerscript,go,java)目录中。

本示例使用TypeScript智能合约,主要有以下两部分内容。

  1. 搭建区块链网络。 我们的应用程序需要一个区块链网络与之交互,因此我们将启动一个基础网络并为我们的应用程序部署一个智能合约。
    在这里插入图片描述

  2. 运行示例应用程序与智能合约进行交互。我们的应用程序将使用assetTransfer 智能合约在账本上创建、查询和更新资产。我们将逐步介绍应用程序的代码及其调用的交易,包括创建一些初始资产、查询资产、查询一系列资产、创建新资产以及将资产转移给新所有者。

示例内容

设置区块链网络

启动区块链网络

cd fabric-samples/test-network
./network.sh down
./network.sh up createChannel -c mychannel -ca

此命令将部署具有2个Peer、1个排序服务和3个证书颁发机构(Orderer、Org1、Org2)的 Fabric 测试网络。我们没有使用 cryptogen 工具,而是使用证书颁发机构启动测试网络,因此使用了-ca标志。此外,当证书颁发机构启动时,org admin 用户注册会自我启动(bootstrapped)。

部署智能合约
示例使用typerscrip
./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-typescript/ -ccl typescript
想使用go就把最后的typerscript改成go,使用java就改成java

准备示例应用程序
打开一个新终端到application-gateway-typescript目录。
cd asset-transfer-basic/application-gateway-typescript
安装依赖项构建应用程序
npm install

运行示例应用程序

运行:
npm start

1.建立到网关的gRPC连接
gRPC
客户端应用程序与 Fabric Gateway 服务建立gRPC连接,该服务将用于与区块链网络进行交易。为此,它只需要 Fabric Gateway 的端口地址,如果配置为使用 TLS,则需要适当的 TLS 证书。在本示例中,网关端口地址是提供 Fabric Gateway 服务的Peer的地址。

TypeScript 应用程序使用签名证书颁发机构的 TLS 证书创建 gRPC 连接,以便可以验证网关的 TLS 证书的真实性。

要成功建立 TLS 连接,客户端使用的端口地址必须与网关的 TLS 证书中的地址匹配。由于客户端通过一个地址访问网关的 Docker 容器,localhost因此指定了一个 gRPC 选项以强制将此端口地址解释为网关的配置主机名。

const peerEndpoint = 'localhost:7051';

async function newGrpcConnection(): Promise<grpc.Client> {
   
    const tlsRootCert = await fs.readFile(tlsCertPath
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值