Hyperledger Fabric 入门笔记(十)Fabric V2.5 杂项 - 链码即服务

文章介绍了Fabric的链码即服务(CAAS)方法,通过外部链码构建器简化智能合约部署,允许对等体在受限环境中运行和调试。同时,文章展示了如何在开发模式下快速迭代链码。

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


一、说明

Fabric外部链码构建器(external chaincode builders)提供了一种实用的方法——链码即服务(CCAAS,chaincode as a service)——运行智能合约。该方法通过允许对等体运行外部(到自身的)命令来管理链码。

相比之下,之前的方法需要对等体协调链码的整个生命周期,并且需要对等体能够访问Docker守护程序来创建镜像和启动容器。这使将链码部署到Kubernetes或其它对Docker Daemon的访问受到限制的环境中,以及以任何形式的调试模式运行链码变得具有挑战性。此外,代码通常由对等体重新构建,需要外部互联网连接,并对安装的依赖项带来一些不确定性。

CCAAS方法需要管理员协调链码的构建和部署阶段。尽管这创建了一个额外的步骤,但它为管理员提供了对流程的控制。对等体仍然需要安装“链码包”,但没有源代码,只有关于链码所在位置的信息(如主机名、端口和TLS配置)。

CCAAS方法用到了一个名为ccaasbuilder的预配置构建器(preconfigured builder),它包含在Docker镜像文件fabric-peer中。


二、使用

下面以asset-transfer-basic链码为例说明该方法。

打开第一个终端,启动Fabric测试网络:

./network.sh up createChannel

注:使用CouchDB或CA可以在不影响CCAAS方法的情况下使用。

打开第二个终端,启动Logspout工具:

./monitordocker.sh

在第一个终端中使用CCAAS方法部署TS版本的asset-transfer-basic链码:

./network.sh deployCCAAS -ccn basicts -ccp ../asset-transfer-basic/chaincode-typescript

注:也可以使用CCAAS方法部署Java版本的asset-transfer-basic链码:
./network.sh deployCCAAS -ccn basicj -ccp …/asset-transfer-basic/chaincode-java

该命令会实现下面三部分内容:

  • 构建链码包的Docker映像,其中包含用于确定链码容器(托管一个或多个合约)运行位置的信息。
  • 安装、批准和提交链码定义;无论是否使用外部链码生成器,都会运行这些命令。链码包只包含连接信息(主机名、端口、TLS证书),不包含任何代码。
  • 启动包含合约的Docker容器。

使用peer CLI对Org1和Org2分别运行’GetMetadata’函数以测试链码部署是否成功:

export PATH=$PATH:${PWD}/../bin
export FABRIC_CFG_PATH=${PWD}/../config/
export $(./setOrgEnv.sh Org1 | xargs)
peer chaincode query -C mychannel -n basicts -c '{"Args":["org.hyperledger.fabric:GetMetadata"]}' | jq
export $(./setOrgEnv.sh Org2 | xargs)
peer chaincode query -C mychannel -n basicts -c '{"Args":["org.hyperledger.fabric:GetMetadata"]}' | jq

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值