Hyperledger Fabric CLI docker 容器

Hyperledger Fabric CLI docker container

我有几个关于 HF CLI docker 容器和一些 CLI 命令的问题。

首先,有人可以在 docker 容器的上下文中解释此容器的用途,该容器与 HF 生态系统所需的其他 docker 容器一起启动。例如,我如何查询我的业务网络组织、不同的节点以及这些节点的链码状态?

其次,当我安装发出 peer chaincode install CLI 命令的链代码时,该代码安装到哪个节点(如果我有 5 个节点附加到 org1.example.com 组织,上面提到的节点命令将安装目标链代码)?

第三,如果我的业务网络规范中只有一个组织处理多个对等点和通道,当我尝试实例化已安装的代码并发出 peer chaincode instantiate 命令时,如何指定背书策略(http://hyperledger-fabric.readthedocs.io/en/latest/endorsement-policies.html) -P 参数后背书表达式中只有一个组织?

感谢您的帮助!

编辑 1: 关于第三个答案的更新。如果您有一个组织在实例化链代码时维护对等节点和通道,则可以省略背书策略参数 (-p)。在这种情况下,如果任何同行背书,交易将被背书

很多很棒的问题。

  1. "cli" 容器的目的是 运行 作为 CLI 的对等进程。同一个进程既是客户端又是服务器有点令人困惑,我们可能会改变这一点。基本上,当您 运行 peer chaincode 命令时,您正在 运行 运行 CLI。 peer node 命令是服务器命令。我们示例中的 cli 容器 运行 是一个脚本 (scripts/script.sh),它反过来对对等节点执行一系列 CLI 命令。

  2. 如果您检查 scripts/script.sh,您会发现 setGlobals 函数设置了一些环境变量,包括 CORE_PEER_ADDRESS。这是安装链代码时对等节点 (CLI) 将与之通信的对等节点(服务器)。

  3. 实际上,经过进一步研究,这是不可能的,很遗憾。门语法尚未实现。您需要为此模拟多个组织。

关于这个问题的第二部分。

进入 CLI

docker exec -it cli bash

CLI 的引导对等点是 peer0。org1.example.com

检查你在哪个 PEER:

echo $CORE_PEER_ADDRESS

returns peer0.org1.example.com:7051

更改为 peer1.org1:

export CORE_PEER_ADDRESS=peer1.org1.example.com:8051

也适用于 LOCALMSPID、MSPCONFIGPATH 等