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


前言

Fabric提供了一种名为链码即服务的方法来运行智能合约。


一、外部链码构建器

1.1. 说明

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

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

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

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

1.2. 使用

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

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

./network.sh up createChannel

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

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

./monitordocker.sh

使用CCAAS方法部署Java版本的asset-transfer-basic链码:

./network.sh deployCCAAS -ccn basicj -ccp ../asset-transfer-basic/chaincode-java

注:如果遇到问题,请使用最新版本。

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

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

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

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

二、在开发模式下运行链码

在智能合约的开发过程中,开发人员需要一种快速迭代测试链码包而不必为每次修改运行链码生命周期命令的方法。本教程使用Fabric二进制文件,以开发模式(“DevMode”)启动对等体,然后将链码连接到对等体。它允许启动链码而无需在对等体上安装链码,并且在链码最初提交到通道后,可以绕过peer lifecycle chaincode命令。这允许快速部署、调试和更新,而无需每次更新时带来peer lifecycle chaincode命令的开销。

注:为了以开发模式启动对等体,必须在网络中的所有节点上禁用TLS通信。由于强烈建议生产网络使用TLS通信,因此永远不应该在生产网络中使用开发模式。

  • 14
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值